《人月神话》精华要点总结

《人月神话》精华要点总结

3290发表于2017-05-14

"人月是危险的带有欺骗性的神话,因为它暗示人员数量和时间是可以相互替换的。" —— 即在某些任务中,不要以为1个人花10个月才能完成的任务(10人月),换成10个人就能在1个月完成;
本书每章都是独立的短文,书中的第18章:《人月神话》的观点:是与非?对前面每章的观点做了总结;
核心观点:

1. 人月有时无法替换,增加人手只会更糟


2. 外科手术队伍(10人):外科医生、管理员+秘书、编辑+秘书、副手、程序职员、工具维护人员、测试人员、语言专家;
   外科医生是超级程序员,亲自负责设计、编码、技术文档、测试,其它全是打下手的,类似外科手术;
   好处就是系统是一个人或者最多两个人思考的产物,达到概念一致性;而当规模大到需要200人时,只需要组织每个团队的超级程序员沟通——仅20人,大大降低沟通成本和提高效率;

   这种组合也基于一个“事实”,超级程序员的效率是菜鸟的10倍;


3. 贵族专制:为了获得概念完整性,设计必须由一个人或者具有共识的小型团队来完成;


4. 画蛇添足:设计第二个系统是最危险的,往往会过分设计;


5. 文档出于精确性,需要形式化定义,出于理解性,需要记叙性定义;但只能选其中一种作为标准,另一种为辅助;


6. 项目工作手册:不是一篇独立的文档,是对项目必须产生的一系列文档进行组织的一种结构,项目所有文档都必须是该结构的一部分,每个团队成员都应该能看到;
   组织架构:
   每个子项目具有两个领导角色——产品负责人、技术主管或结构师;
1> 产品负责人(项目管理):组建团队、划分工作、制定进度表、争取资源、建立内部沟通和报告方式、确保进度实现

2> 技术主管(纯技术):系统设计、提出技术解决方案


7. 时间估算:工作量是规模的幂函数


8. 控制程序空间规模;


9.通过关键文档进行项目管理;


10.新的概念和技术不断涌现,必须计划构建一个实验性系统然后抛弃它,不要将原型直接丢给客户;


11.个性化的工具妨碍沟通,开发和维护公共的通用编程工具效率更高;


12.通过剔除bug的设计、构件单元调试、系统集成调试来保证系统可运行;


13.警惕慢性进度偏离;

   使用PERT或关键路径判断关键偏离


14.文档可防止记忆衰退导致失去对程序的了解;
   不同的用户需要不同的文档;

   自文档化(self-documenting)的程序,即将文档整合到源程序中;


=================



小编蓝狐