Search This Blog


Monday, September 19, 2011

SDLC: Iterative and Waterfall Processes

One of the biggest debates about process is that between waterfall and iterative styles . The terms often get misused, particularly as iterative is seen as fashionable, while the waterfall process seems to wear plaid trousers. As a result, many projects claim to do iterative development but are really doing waterfall.

The essential difference between the two is how you break up a project into smaller chunks . If you have a project that you think will take a year, few people are comfortable telling the team to go away for a year and to come back when done . Some breakdown is needed so that people can approach the problem and
track progress .

The waterfall style breaks down a project based an activity. To build Software, you have to do certain activities : requirements analysis, design, coding, and testing. Our 1-year project might thus have a 2-month analysis phase, followed by a 4-month design phase, followed by a 3-month coding phase, followed by a
3-month testing phase.

The iterative style breaks down a project by subsets of functionality . You might take a year and break it into 3-month iterations . In the first iteration, you'd take a quarter of the requirements and do the complete software life cycle for that quarter : analysis, design, code, and test . At the end of the first iteration, you'd have a system that does a quarter of the needed functionality . Then you'd do a second iteration so that at the end of 6 months, you'd have a system that does half the functionality.