《人月神话》读书笔记

缺乏合理的进度造成项目滞后:

        我们所面临的挑战和任务是在现有的时间和有效的资源范围内,寻找解决实际问题的切实可行的方案。在众多软件项目中,缺乏合理的时间进度
是造成项目滞后的最主要的原因,它比其他所有因素加起来的影响还大。导致这种普遍性灾难的原因是什么呢? 
        首先:我们对估算技术缺乏有效的研究,更加严肃地说,它反映了一种悄无声息,但并不真实的假设----一切都将运作良好。
        第二:我们采用的估算技术隐含地假设人和月可以互换,错误地将进度与工作量相互混淆。
        第三:由于对自己的估算缺乏信心,软件经理通常不会有耐心持续地进行估算这项工作。
        第四:对进度缺少跟踪和监督。在其他工程领域中,经过验证的跟踪技术和常规监督程序在软件工程中常常被认为是无谓的举动。
        第五:当意识到进度的偏移时,下意识以及传统的反应是增加人力。这就像使用汽油灭火一样,只会使事情更糟。越来越大的火势需要更多的
                  汽油,从而进入了一场注定会导致灾难的循环。
        第二个谬误的思考方式是在估计和进度安排中使用的工作量单位:人月。
成本的确随开发产品的人数和时间的不同,有着很大的变化,进度却不是如此。因此我认为用人月作为衡量一项工作的规模是一个危险的和带有欺骗性
的神话。它暗示着人员数量和时间是可以相互替换的。
        *人数和时间的互换仅仅适用于以下情况:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。(如图2.1)
         (这在割小麦或收获棉花的工作中是可行的,而在系统编程中近乎不可能。)

图2.1 人员和时间之间的关系--完全可以分解的任务

当任务由于次序上的限制不能分解时,人手的添加对进度没有帮助。

无论多少母亲,孕育一个生命都需要十个月。由于调试、测试的次序特性,许多软件都具有这种特征。对于可以分解,但子任务之间需要相互沟通
和交流的任务,必须在计划中考虑沟通的工作量。因此,相同人月的前提下,采用增加人手来减少时间得到的最好情况,也比未调整前要差一些。
(如图2.2)
        图2.2 人员和时间之间的关系--无法分解的任务
        沟通所增加的负担由两个部分组成,培训和相互的交流。每个成员需要进行技术、项目目标以及总体策略上的培训。这种培训不能分解,
因此这部分增加的工作量随人员的数量呈线性变化。(如图2.3)
图2.3 人员和时间之间的关系--需要沟通的可分解任务

人员相互之间交流的情况更糟一些:若任务的每个部分必须分别和其他部分单独协作,则工作量按照n(n-1)/2递增。一对一交流的情况下,

三个人的工作量是两个人的三倍,四个人的工作量则是两个人的六倍。而对于需要在三四个人之间召开会议,进行协商,一同解决的问题,
情况会更加恶劣。所增加的用于沟通的工作量可能会完全抵消对原有任务分解所产生的作用。此时,我们会被带到图2.4的境地。
图2.4 人员和时间之间的关系--关系错综复杂的任务

因此软件开发本质上是一项系统工作--错综复杂关系下的一种实践--沟通、交流的工作量非常大,它很快会消耗任务分解所节省下来的

个人时间。从而添加更多的人手,实际上是延长了,而不是缩短了时间进度。

总结:

        人员和时间的关系: 1.完全可以分解的任务: 人 = 月
                                       2.无法分解的任务:        人 != 月 (任务由次序上的限制不能分解)
                                       3.需要沟通的可以分解的任务: 人 ≈ 月 (需在计划中考虑沟通的工作量)
4.关系错综复杂的任务: 人!= 月 (增加人手产生的工作量抵消了分解任务产生的作用)
向进度落后的项目中增加人手,只会使进度更加落后。
这就是除去了神话色彩的人月。项目的时间依赖于顺序上的限制,人员的数量依赖于单个子任务的数量。总之,在众多软件项目中,缺乏合理的
时间表(进度)是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还要大。
不变的只是愿望,变化才是永恒。
普遍的做法是,选择一种方法,试试看;如果失败了,没关系,再试试别的。不管怎么样,重要的是先去尝试。
没有银弹--软件工程中的根本和次要问题。
没有任何技术或管理上的进展,能够独立地许诺十年内使生产率,可靠性或简洁性获得数量级上的进步。
实践是最好的老师,但是,如果不能从中学习,再多的实践也没有用。
不变只是愿望,变化才是永恒。

注:
        人月神话 The Mythical Man-Month  FrederickP Brooks JR著    清华大学出版社  1999

《人月神话》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. win7 64位安装mysql教程视频_64位Win7系统安装Mysql 5.7.22图文教程
  2. rust腐蚀 木制窗户怎么修_冬天装修后怎么去除甲醛?紧闭门窗和准备一盆水,轻松教你解决!...
  3. java中抽象类和接口的作用与区别
  4. Java设计模式-桥接模式 理论代码相结合
  5. Spring MVC开发RESTful风格的URI
  6. 八皇后问题求解动态图形演示
  7. 生成下拉框的几种方法总结——数据来源:枚举
  8. 2020 年 Flink 学习资料整合,建议收藏
  9. 字节跳动杯2018中国大学生程序设计竞赛-女生专场题解
  10. Effective Java Methods Common to All Objects
  11. bzoj1010 [HNOI2008]玩具装箱toy
  12. Dynamics CRM2013 6.1.1.1143版本插件注册器的一个bug
  13. SWF文件反编译调试记录
  14. 【DSP】CCS 5.5的安装教程
  15. VueCli 中安装 axios
  16. 三款小工具:Resource Hacker、PE Explorer、SWF Converter
  17. IDEA自动生成serialVersionUID的设置
  18. 跑马灯广告语的实现过程,并且自定义marquee,解决焦点抢占问题.
  19. 由dorp database 数字引发的思考
  20. 设计模式03 行为型模式

热门文章

  1. 老人机java游戏模拟器_KEmulator(JAVA手机游戏模拟器)
  2. html vba 单元格 格式,VBA设置单元格格式之——边框
  3. 视频教程-Excel VBA网抓教程【你学得会】-Office/WPS
  4. 几款经典css框架下载
  5. 【读书笔记《Android游戏编程之从零开始》】14.游戏开发基础(Bitmap 位图的渲染与操作)
  6. 【毕业设计】毕业设计选题指南
  7. 开放源代码软件及其许可证的法律特征研究
  8. PTV-VISSIM交通仿真
  9. MySQL数据库优化的八种方式(总结)
  10. 自适应特征融合用于Single-Shot目标检测(附源代码下载)