经管 |《人月神话》

经管 |《人月神话》

00:00
27:26

不是魔幻小说,是软件工程管理的圣经!图灵奖获得者撰写,研发人员必读经典。

点击进入喜马讲书频道页>>>


听书笔记 


《人月神话》从书名上看,给人的第一感觉可能是本魔幻小说,但事实上,这是一本畅销了40多年的软件工程方面的项目管理书籍。

 

“人月”这个词的英文原文是Man Month,而不是表示“人与月”的Human and Moon,这个词组是一个考察工作量的度量单位,一个“人月”即一个人在一个月的时间里能够完成的工作量。在软件工程管理的场景里,我们经常用“这个项目需要多少个人月”来估算任务量。 


本书作者弗雷德里克·布鲁克斯,是美国一位大名鼎鼎的软件工程师。他是美国首届计算机先驱奖获奖者之一。在只有29岁时,他就主持与领导了IBM的360系统开发工作。360系统是人类第一代计算机系统,这一系统的开发成功标志着人类正式进入信息时代;正是在这一系统的协助下,美国太空总署建立了数据库,完成了航天员登陆月球计划。360系统的开发成功,让布鲁克斯名噪一时。1999年,布鲁克斯又获得了计算机领域的最高奖项“图灵奖”。

 

上世纪70年代起,他开始撰写文章,讲述在软件开发中如何进行更有效的项目管理。其中一些名篇,如《没有银弹》《外科手术团队》等,至今被奉为经典。后来,他将这些文章集结整理,出版了这本《人月神话》。


《人月神话》首次出版于1975年,但直到今天,本书的核心思想都依然适用,被誉为“项目管理”的圣经。



第一部分:什么是“人月神话”?“人月神话”反映出项目管理中怎样的难题?



很多软件项目管理人员总是希望,通过加入更多人手来加快软件工程的完成进度。比如,一个工作量为10个人月的项目,如果只有一个人做,那么需要10个月才能完成;软件工程的管理人员想一个月就完成,于是,他认为,只要再加入9个人,那么,这10个人就可以在一个月的时间里完成项目。

 

然而,实际情况却并非如此。因为软件工程的各项工作之间,往往有一个前后承继的关系,得完成一项,才能进行另一项。加进来的人手,并不能马上就开展后面的工作。所以,想要通过增加人手来缩短工程时间,其实只是一个“神话”。


“人月神话”所反映出的,是软件开发在项目管理中遇到的难题:管理人员因为盲目乐观,对项目开发过程中的困难没有充分的认识,在计算项目的工作量和交付时间上采用了错误的计算方法,忽略了细节对整体的巨大影响,这就很可能导致项目延期。


第二部分:如何靠近这个神话,进行有效的项目管理。


首先,作者建议,以小团队的方式开展工作。

 

在项目实施的过程中,如何更加有效地组织团队成员开展工作,是项目管理人员要重点考虑的事情。作者提出了一种卓有成效的建议,即以类似外科手术团队的组织结构来开展工作。为什么要使用这种方式来开展工作呢?

 

作者从团队对员工效率的影响说起。调查表明,最好的成员和最差成员之间的工作效率的差异是10:1;这其实跟乔布斯说的,一个优秀的人可以顶得上50个平庸的人是一个意思。既然不是所有人都优秀,那么管理者该怎么办呢?作者认为,应该让优秀的人作为整个团队的核心来开展工作;团队中其他人各司其职,作为辅助来完成整体工程。这就是外科手术团队的奥秘,即以主刀医生为核心,其他像负责助理医师,麻醉师,护士等人都是为主刀医生服务的,大家各司其职、齐心协力,从而保证手术可以顺利完成。

 

这个思路,反映到软件工程管理上,就是:首席程序员或者架构师充当主刀医生的角色,而团队管理者充当副手或者服务人员,其它团队成员则分别负责单元代码编写,功能单元测试,文档管理,工具开发以及技术专家支持等职能。即使整个项目团队人数庞大,只要根据工作边界,将大家划分到一个个类似外科手术队伍那样的小团队当中去,就可以保障项目在一定程度上的效率提升。

 

其次,要进行行之有效的沟通。


记录电话会议的内容,定期召开统筹项目进度的例会,对数据结果进行监督和全员反馈等等,这些都是很常见的促进沟通的手段。但除了这些之外,本书的作者还特别强调了两点:一是使用产品文档,二是“手把手带”的沟通方式。

第三点项目管理建议是“防微杜渐”,为此,他提出了很多具体可行的建议。


第一,在项目推进过程中要设立一些关键节点,作者称之为“里程碑事件”。第二,为项目设立一个专门的规划和控制小组。第三,项目管理人员必须要认清这样一个现实,那就是:“唯一不变的就是变化”。最后,为了避免项目延迟和失败,要尽可能地提前集成测试。

 

第三部分:人月神话中的一些问题,根源在于软件工程本身的特性,是无法彻底解决的。


其一,计算机技术的发展太快了。

其二,软件研发本身的内在特性也制约了软件工程的进展。

作者用四个词概括这种特性:复杂性、一致性、可变性、不可见性。这些词儿听起来有点抽象,我来一一举例说明。


虽然作者说,这些困难是软件开发的根本困难,无法彻底解决,但书中还是提出了三方面的建议,来尽可能改善这种困难造成的困境。


第一个建议,是采用新技术。

第二个建议,是“快速开发原型”,然后再做“增量开发”。

第三个建议是人才。


解读 | 王福强

杭州福强科技创始人,独立顾问兼撰稿人,曾原挖财技术VP及首席架构师,著有《Spring揭秘》《SpringBoot揭秘》《深度思考揭秘》《极简管理课》等。

播音 | 贾逢韬

策划编辑 | 刘雪聪

音频编辑 | 陈子夫



以上内容来自专辑
用户评论
  • LiuFengWen

    基本现在软件开发都是这样的模式,果然是开发管理的圣经。

  • 爱情保鲜

    抢个沙发坐坐喽

  • 舒展佛手

    听了,感觉还可以,也看了一下音频笔记,再感觉笔记差了一点。

  • 啊白1234

    不搞新技术,就找不到工作了啊

  • 杰夫梨

    人月神话无法达到是因为一方面计算机技术的不断发展,人们不得不时刻更新技术,另一方面软件开发工作的复杂性,所以需要采用新技术、快速开发原型、聘用卓越人才。软件工程是最错综复杂的工作只有不断更新技术和探索更好的管理方法

  • 婷婷美的

    十个人完成一件事一个月不对等一件事十个月完成,知识型密集工作,不是简单的相加,当所有人都视而不见的小错误,里程碑事件,总会遇到困难,发展快,先用起来,而后改进,最新反馈,因人成事。

  • butterflyfi

    Fine

  • MOON_8a

    哇,学习

  • 拾贝哲

    thank

  • lmb520999

    没有神话