Ninety-ninety rule
The ninety-ninety rule is an aphorism, attributed to Tom Cargill of Bell Labs and popularized by Jon Bentley, that pokes at the optimism of software project estimation.
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
Read literally, the two halves sum to 180 percent. The joke is that the milestone teams celebrate as "90 percent done" tends to mark only the first half of the actual effort, not the closing stretch. The remaining work — edge cases, error handling, integration, performance tuning, documentation, and polish — routinely consumes as much time again as everything that came before it.
The rule is a tongue-in-cheek extension of the Pareto principle, substituting 90 for 80 to sharpen the point. Where the Pareto principle observes that a minority of causes produces a majority of effects, the ninety-ninety rule applies that asymmetry twice: an early, productive 90 percent of the work is followed by a second, stubborn 90 percent that the original estimate failed to price in.
The "last 10 percent" is expensive because it is where the easy, well-understood cases run out. What remains is the long tail of unusual inputs, cross-component interactions, and quality attributes that only become visible once the happy path is in place. Estimators tend to extrapolate from the velocity of the first 90 percent, which is exactly the velocity the second 90 percent will not sustain.
Like Brooks’s Law and Parkinson’s law, the ninety-ninety rule is one of a family of wry observations about how software effort diverges from the plan. It is a warning against reading partial progress as a forecast of total duration.
See also
References
- Bentley, Jon (1985). Programming Pearls. Communications of the ACM, 28(9), September 1985. The "Ninety-Ten Rule" is introduced in this column.
- Bentley, Jon (1986). Programming Pearls. Addison-Wesley.