Waterfall Process vs. Incremental Process

Waterfall process


A waterfall process is one where all of the work is done by the team, and when it is complete, it is delivered to their customer(s). With a waterfall, the water doesn't do anything useful until after it falls off the end of the cliff – and by then it's too late to climb out of the barrel if you change your mind. You don't know if you'll hit a rock until you reach the bottom of the waterfall. The larger the waterfall, the larger the risk, and the bigger the mess if you do hit a rock.

The same is true for waterfall software processes – we decide what to do, we develop the solution, and then we deliver it. We don't revisit our decisions. Once the decisions are made, we're in the barrel and falling, and we won't know if our software will succeed until after we deliver it. The risk of failure is proportional to the amount of money and time spent before delivering the software to our customer.