代码的前90%占开发时间的前90%。其余10%的代码占了开发时间的90%。
—贝尔实验室的汤姆·卡吉尔
实际上这是什么意思?程序员需要做大量工作,他们付出了180%的努力吗?
代码的前90%占开发时间的前90%。其余10%的代码占了开发时间的90%。
—贝尔实验室的汤姆·卡吉尔
实际上这是什么意思?程序员需要做大量工作,他们付出了180%的努力吗?
Answers:
可以这样想象:开始使用软件时,您可以在相对较短的时间内编写大量代码。此新代码可以添加大量新功能。问题在于,通常功能远非“完成”,可能存在错误,小的更改(业务规模较小)等。因此,由于该软件支持大多数用例,因此该软件可能感觉已完成(90%完成)。但是该软件仍然需要工作。该规则的重点是,尽管感觉软件即将完成,但使软件进入正常工作状态的工作量与达到“即将完成”状态的工作量一样大。这是因为错误修复通常很耗时,但不会产生很多代码。
问题在于大多数开发人员都估计使软件进入“几乎完成”状态,因为与实际估计软件将花费的总精力相比,这相对简单。
它是对一种常见情况的引用,可悲的是今天仍然存在:
“ 90%”是一个任意数字,但它很好地说明了这一点:估计是猜测,很可能是错误的(通常是非常错误的),而人的本性确保我们几乎总是被估计,因此事情变得过分了。
other 90%
此规则是80-20规则的补充。现在,对80-20规则有许多不同的解释,但我最喜欢的两种是:
实际上,这意味着以下内容:开发将开始并继续进行,直到注意到第一个延迟的某个特定点。延迟可能具有多种性质:
最重要的是,接近目标要比实际达到目标容易得多。
我发现Wikipedia的解释很有启发性:
最多可得出180%的结果,这是对软件开发项目臭名昭著的怀疑,它大大超出了其进度(请参阅软件开发工作量估算)。它表示了对编程项目的容易部分和困难部分的时间粗略分配,也表示了许多项目迟到的原因是无法预测困难部分。换句话说,与完成项目工作相比,它花费了更多的时间和更多的编码。