九十-九十法则是软件工程中的一句自嘲格言:前 90% 的代码耗费 90% 的开发时间,剩下 10% 的代码又要耗费另外 90% 的时间。它出自贝尔实验室的汤姆·卡吉尔,精辟概括了软件项目普遍存在的收尾难与进度乐观偏差。

| 中文名 | 九十-九十法则 |
| 英文名 | Ninety-Ninety Rule |
| 提出者 | 汤姆·卡吉尔(Tom Cargill) |
| 流传途径 | 《ACM 通讯》1985 年专栏 |
| 相关定律 | 布鲁克斯定律、霍夫斯塔特定律 |
九十-九十法则(Ninety-Ninety Rule)是软件工程领域一句广为流传的幽默格言:前百分之九十的代码占用了百分之九十的开发时间,剩下百分之十的代码又占用了另外百分之九十的开发时间。两个九十相加为百分之一百八十,故意超出百分之百,用夸张的算术自嘲软件项目几乎注定超期的现实。
这句格言出自贝尔实验室(Bell Labs)的程序员汤姆·卡吉尔(Tom Cargill),经乔恩·本特利(Jon Bentley)1985 年在《ACM 通讯》的编程珠玑专栏中引用而广为人知。它之所以引起长久共鸣,是因为击中了软件开发的两个顽疾:一是进度估算的系统性乐观——人们习惯以主体功能完成度衡量进度,而忽视集成、边界条件、性能调优、文档和修复缺陷等收尾工作;二是最后的百分之十往往是最难的部分,项目长期停留在快好了的状态,即所谓的百分之九十综合征。
九十-九十法则常被用来给项目计划降温:提醒管理者在估算中为集成与收尾预留充足缓冲,警惕长期报告完成百分之九十的项目。敏捷方法对它的回应是把大目标切成每个迭代都可交付的小增量,用完成的定义强制收尾工作前置,用燃尽图暴露真实进度,从结构上压缩最后的百分之十。
问:这条法则有严格的统计依据吗?答:没有,它是经验性的自嘲格言而非定量定律。但大量项目延期研究确实支持其方向性结论:软件项目普遍低估收尾复杂度。
问:如何避免落入九十-九十陷阱?答:常用手段包括小步交付、纵向切片(每个切片端到端可用)、把测试文档纳入完成标准、参考历史数据估算,以及对快好了的模块要求可演示的证据。

| 中文名 | 九十-九十法则 |
| 英文名 | Ninety-Ninety Rule |
| 提出者 | 汤姆·卡吉尔(Tom Cargill) |
| 流传途径 | 《ACM 通讯》1985 年专栏 |
| 相关定律 | 布鲁克斯定律、霍夫斯塔特定律 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧