90-90法则 (Ninety-ninety rule)

90-90法则(ninety-ninety rule,九九定律,99定律)是计算机编程和软件工程领域的一个有名的法则,出自于一句幽默的格言:

“ (开发软件时)前90%的代码要花费90%的开发时间,剩余的10%的代码要再花费90%的开发时间。
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,贝尔实验室


合计180%的时间总量用看似荒诞的形式指出了软件开发项目里一个臭名昭著的倾向-完成时间常常严重超出预期时间表。这一格言体现出了软件工程的对编程项目的简单与困难部分的时间分配太过粗糙的问题,也揭示了许多项目拖延的原因(即对困难部分没有足够的估计)。换句话说,完成一个项目要花比预期的更多的时间和代码。

这一法则被认为是贝尔实验室的Tom Cargill所提出,后来因为Jon Bentley在《ACM通讯》上的“编程珠玑”(Programming Pearls)专栏的“可靠性法则”(Rule of Credibility)一文而流行[1]。这句格言也收录在Jon Bentley后来出版的“编程珠玑II”(More Programming Pearls)一书中[2]。