I've created a lot of PHP projects in the past based on quick 'make a change, upload it' development methodology.
I'm beginning a long (6-8 months estimate) project to provide a fairly full featured hosted web application. Over the last few weeks I've been looking into the best way to 'project manage' this (my actual code is fine). The application will have an initial release, providing basic functionality and a further release providing advanced functionality. I've never used SVN, Trac, Bug Tracking, Staging Servers or Deployment Tools so this is all pretty new to me.
Based on what I've learnt over the past week, here is what I'm looking at having.
4 x VPS with 128mb RAM (256 burstable) and 10gb HDD space.
Configured in the following configuration
- tools.ops.ourdomain.co.uk - server hosting SVN, Trac, and secure file storage for uploads and DNS (where the nameservers for point)
- development.ops.ourdomain.co.uk - development environment to work on trunk version of software. Automatically updated htdocs folder on SVN commit
- staging.ops.ourdomain.co.uk - where 'potential releases' are deployed for testing.
- production.ops.ourdomain.co.uk - production server where 'final releases' are deployed.
Does this make sense? Should I drop my development server down to my local machine? Does it make sense to put the DNS on the tools server or not?
Secondly, what's the best development methodology for a single developer? I was going to plan out all the features first of all eg "Authenticate a user", "Logout a user" and then create them as trac tickets. The actual 'how' and 'where' could then be worked out when I come to the task in question. Would it make more sense to plan out all the class methods (and general files) and then create tickets for these?
Thanks in advance.