不知道《人月神话》都不好意思说自己是项目经理,所以《人月神话》可以说是项目经理必备书单之一。
这本书的书名一直是我比较疑惑的,一度觉得这应该是一本神话故事书,理解了“人月”,你就知道这本书核心讲的是什么了。这里的“人月”就是指工时单位,类似的还有“人日”或者“人天”。这本书表达了几个关于大型项目管理的观点:
01 人员数量和时间无法互换
书中是这样表达的:
认为用人月作为衡量一项工作的规模是一个危险和带有欺骗的神话。他暗示着人员数量和时间是可以相互替换的。
例如:30个人月≠3个人10个月≠5个人6个月
有一个经典比喻,1个孕妇十月怀胎,那是不是2个孕妇就只需要5个月就能生下一个宝宝,答案无疑是否定的。
为什么人员数量和时间无法互换?
- 人员的增加会带来沟通成本的指数级增加。因为除了编码,人员还需要重复业务熟悉,需求分析,关联任务的沟通。
- 任务和任务之间存在先后顺序,增加人手无法改变关键路径的依赖关系
- 越到后期,通过增加人员来追回进度的可能性越低
Brooks法则
向进度落后的项目中增加人手,只会使进度更加落后。
如果当进度落后时,我们应该要怎么做?
分析引起进度落后的根本原因,我们首先要清楚进度落后是“外部原因”还是“内部原因”
- 外部原因,考虑是否需要更换依赖方,或者通过向上反馈,协助推动外部问题解决
- 内部问题,分析是人员水平问题,还是时间评估问题
02 为什么巴比伦塔会失败
在拥有清晰的目标,充足的资源下,为什么巴比伦塔项目还会失败。引用原文
芭比伦塔项目的失败是因为缺乏交流,以及交流的结果--组织。
可以通过哪些方式增加沟通
- 非正式沟通
- 常规的项目会议 项目经理组织各种会议的时候,常常会被团队成员吐槽,认为会议没有价值,没有价值的不是会议,而是会议的效率,会议如何组织,缺乏必要会议同样也会导致项目失败。
- 制定项目工作手册
03 削足适履
“削足适履”,其实表达的就是本末倒置。
大型项目的团队中,将重心放在局部优化,而忽视对用户的整体影响的优化。-------这是大型项目在优化的方向性上的错误。
作为项目经理,需要培养开发人员从整体出发,从用户的角度考虑问题的能力。
04 贵族专治、民主专治和系统设计
其实核心论证了两个观点:
- 保持概念完整性的重要性
- 如何将这种概念完整性传递到开发过程中,架构师和程序员之间的配合。
简述
以上关于人月神话的笔记,对我最大的收获其实就是对于软件开发项目,
- 项目经理需要注重进度计划,合理安排计划(无法简单的通过人、月来转换来调整项目周期)
- 沟通决定着项目的成败 例如:巴比伦塔项目的失败
- 培养团队成员从全局、面向用户的角度优化软件