人月神话笔记-焦油坑、人月神话

人月神话笔记-焦油坑、人月神话

焦油坑

程序、编程系统、编程产品、编程系统产品

  • 程序
    • 本身是完整的
    • 可以在指定的平台运行
    • 作为单个程序员的生产率的评估标准
  • 编程产品:
    • 可以被任何人运行、测试、修复和扩展的程序
    • 可以在多种操作平台上运行,供多套数据使用
    • 要求
      • 必须按照普遍认可的风格编写
      • 有合理的基本算法
      • 进行彻底的测试
      • 完备的文档
      • 成本至少是程序成本的3倍
  • 编程系统
    • 在功能上能相互协作
    • 具有规范的格式
    • 可以进行交互的程序
    • 的集合
    • 要求
      • 按照一定的要求编制
      • 语法和语义上于精确定义的接口一致
      • 符合预先定义的资源限制–内存空间、输入输出设备、计算机时间
      • 程序必须和其他单元一道,进行完备的组合测试
  • 编程系统产品
    • 成本至少是程序成本的9倍
    • 大多数系统的开发目标

职业乐趣

  • 创建事务的纯粹快乐(创造的快乐)
  • 开发对他人有用的东西(对他人的帮助)
  • 整个过程体现出的强大魅力(多铆蒸刚)
  • 持续学习的快乐(非重复)
  • 易于驾驭的介质上工作(权利?)

职业苦恼

  • 追求完美
  • 由他人设定目标,提供资源、信息(无法控制全部)
  • 琐碎的bug等重复性工作
  • 大量工作后的成功显得陈旧过时

人月神话

美食的烹调需要时间;片刻等待,更多美味,更多享受。

Good cooking takes time.If you are made to wait,it is to serve you better,and to please you.

进度安排不合理的原因:

  • 对估算技术缺乏有效的研究。(不真实的假设:一切都将运作良好)
  • 错误的将进度于工作量相互混淆(假设人和月可以互换)
  • 对自己的估算缺乏信心
  • 对进度缺少跟踪和监督
  • 意识到进度偏移时,下意识的反应为加人

乐观主义

所有的编程人员都是乐观主义者。

进度安排背后的第一个错误:一切都将运作良好,每一项任务仅花费它所“应该”花费的时间。

人月

成本随着开发产品的人数和时间的不同,有着很大的变化。
进度却不同。

用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。

人月暗示着人员数量和时间是可以交换的。

任何时间仅在以下情况可以交换:

某个任务可以分解给参与人员,并且他们之间不需要交流。

比如割小麦。

对于可以分解但是需要 沟通和交流的任务,必须在计划工作中考虑沟通和交流的工作量。

沟通的负担:

  • 培训
    • 培训不可分解,随着人员数量呈线性变化
  • 交流
    • 交流必须单独协作,工作量:n(n-1)/2

系统测试

系统测试进度的安排往往是最不合理的。

没有哪个单元比系统测试和调试更受顺序限制影响。

比较合理的安排:

1/3计划
1/6编码
1/4构件测试和早期系统测试
1/4系统测试、所有的构件已完成

空泛的估算

  • 发行并推行生产率图表、缺陷率图表、估算规则等。
  • 坚信自己的估算。

重复生产的进度灾难

向进度落后的项目中增加人手,只会使进度更加落后。

发布了88 篇原创文章 · 获赞 150 · 访问量 56万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览