Applying A Waterfall Methodology to Web Development
Luke Welling
The web environment provides a few challenges to the waterfall model and requires some adaptation. The most of the same sequential phases are there, but their contents vary to suit this dynamic environment.
Naturally, the first phase is requirement gathering. Fortunately, there is only one requirement--a catchy domain name. Ideally, this would be a common English word, but absolutely all dictionary words, in all languages (with the exception of 7 obscure and unpleasant diseases in a little known Klingon dialect) are already taken so brainstorming is required to find and register a pronounceable misspelling. This is generally the most time consuming phase of web software development. After all, you are not going to be able to sell a company named myCumbersome-domainNameFullofNumb3rsAnd-Hyphens to Yahoo! or Google are you?
The design phase is generally far less time consuming. The only important design elements to tie down are those that affect the project's buzzword compliance. The project must be implemented using trendy technology and some forethought is required as trends may change over the three months it will take to implement. You don't want to be stuck trying to sell something based on a 1999 also-ran like J2EE when all the cool companies have moved on to Ruby-on-Roids.
The only thing set in stone about the implementation phase is that it must take three months. Interestingly nobody really knows how this number came about. Nutritionists speculate that it may be because that is the period that an average programmer can subsist solely on employer provided pizza and soda before critical body systems start shutting down from malnutrition. Fortunately, programmers are no longer required in a waterfall based web project after the implementation phase, so their longer term viability is not important.
Verification and testing of web systems works a little differently to most other systems. It has been naively suggested that web application developers simply write 'Beta' at the top of all pages and launch, but it is not quite as simple as that. You also need to generate buzz among alpha-nerds and only let people use your Beta system if they have been invited by a friend. That way, they will feel so special that they will only want to give positive feedback. Positive feedback is all you are interested in as there is little point in gathering defects that you have no intention of correcting before sale.
While a traditional waterfall model ends in a Maintenance phase, a web system instead enters the "Exit Strategy Phase". Essentially, the project must sell to Google or Yahoo! before the whole thing implodes.