人月神话

内容纲要

人月神话

人月神话:即人和月是不可互换的。不存在人月这样的单位。 所有使用人月来衡量软件项目时间的人都是在耍流氓。

  1. 构建大型软件项目是非常艰难的。
  2. 大多数程序员在大型项目中每年只能生产出1000行调试好的代码。
  3. 具有几百名程序员的大型项目和小型项目完全不同,小型项目获得的结果不能放大到大型项目中。
  4. 大型项目在编码开始之前,大量的时间消耗在规划上
  5. Brooks工作量估计划分:
    • 1/3时间规划
    • 1/6时间编码
    • 1/4时间模块测试
    • 1/4时间系统测试

原因

  1. 工作不可能完全并行化
    划分模块和接口完成之前是无法进行编码的。

  2. 为了完全利用数目众多的程序员,工作必须划分成数据众多的模块,这样每个人才能有事情做。
    模块和模块之前是相互关联的,模块越多模块关联越多。模块与模块的关联随着模块数呈平方增长趋势。

  3. 调试工作是高度序列化的。
    增加更多的人进行调试会比安排一个调试人员慢,因为他们在相互沟通上浪费了很多时间。

备注

  1. 对于一个延期的项目,增加人力将使它延期更久。

现代操作系统对Brooks定律的简单重述是:

无论分配多少妇女从事这一工作,生一个孩子都需要9个月。

参考

  1. 现代操作系统
  2. 人月神话

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部