Application development life cycle

I am a fan of the traditional waterfall model for application development. I know agile development is the current hype within the software development community, and like all programmers, I hate documentation, but there is something elegant in creating a perfect design for an application before you even fire up your favourite IDE. Below is an example of my typical application development life cycle…

Application development life cycle
1. Requirements! Gather requirements from the client and create a requirements specification.

2. Design! From the confirmed requirements, begin to creation a technical design for the application.

3. Implementation! Development includes looking through the current range of applications and applications templates and picking a similar one as a template. Commit the copy into SVN as the trunk of a new project. From here, start designing your new building block to fit with the technical design. This may involve looking through the any APIs, tag libraries and web services as well as any required third party services.

4. Quality Assurance! Code review and testing.

5. Release! Change control (follow any ITIL processes), Communication and eventually deployment into production.

6. Maintenance! Repeat the above steps for enhancements and bug fixes.