The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.
Tom Cargill. Bell Labs.
It sounds a bit funny, yet so many times it’s true. The question is why?
The reason is what I call: “The Waterfall Trap.” Any project, at the moment it starts, uses logic, knowledge, experience and good practices to guess the future. That’s right the plan is at best a very good educated guess.
Waterfall methodologies for software development, or project management turn this guesses into stone. Stones usually called Milestones, Targets or Deadlines.
The funny thing is as time goes by, everyone can see the future more clearly, everyone can guess we won’t make it. But the Waterfall Trap includes a clause of Inflexibility, no target is ever revised, any revision is seen as a failure from the plan. So instead of improving the prediction, the team often goes to a land of overtime, where quality decreases, morale falters and even health suffers. Only when disaster strikes in these circumstances are plans revised, but usually under an unfair banner of targets missed.
The truth is, we can only guess-timate the future. Can you even predict you will be alive tomorrow for sure? Now you can’t! A car could hit you, you may slip down the stairs, etc. So if we can’t predict our own tomorrow, it’s no surprise projects where multiple resources and challenges are involved, are hard to predict. It’s actually rather remarkable that Waterfall projects, or any project with dates set on stone makes it within the 90-90 rule!
The Agile Way however, is quite different, it embraces chaos and unpredictability, through open, sincere communication, it prepares and adjusts for change, and for unexpected problems. It is not against planning, but rather as we move forward in a project it adjusts to reality on the ground. As a consequence it allows the team, our “troops” to work hard, but with strong morale, and good pace, to deliver a quality product.
General Patton once said:
Make your plans to fit the circumstances.
It doesn’t get more Agile than that. Agile planning means intelligent decision making, every step of the way, including revising estimates, and moving the team to victory. An Agile Team should never live the 90-90 rule, they should be close to 100% every time, simply because they acknowledge reality, and plan for it.