The way we accumulate risk in a Waterfall software development project has some striking similarities to playing the odds in Las Vegas.
In traditional Waterfall development, in order for anything to work, everything has to work. Programmers don’t see their code run with the rest of the system until integration—one of the last stages before release—when all the separate pieces of code are brought together to make a whole.
When we put off integration until the very end, we’re basically playing roulette where we have to win ten times in a row in order to succeed.
One mistake in the way even a single line of code was written, and a program won’t compile into executable code, or if it does compile it crashes when you run it. ...