首页 > 其他分享 >人月神话2

人月神话2

时间:2023-03-31 21:58:52浏览次数:34  
标签:估算 项目 Brooks 实际上 我们 神话

第2章-人月神话

2.1为什么项目会滞后

缺乏合理的时间进度是造成项目滞后的最主要原因

实际上这是一句矛盾又合理的话:
矛盾的点在于,我们总是已经估算了项目的时间,对于项目需要的功能和模块都进行了划分。每一个部分我们都给了必要的时间安排。按道理来说,其实不应该出现时间上的问题而导致项目滞后
但是这句话却又很合理:既然延后了,一定是我们的安排有问题

2.2安排的不合理

那么安排为什么不合理?我认为比较核心的几点是:

  1. 所有的编程人员都是乐观主义者:“一切都将运作良好”。
  2. 我们的构思本身是有缺陷的,因此总会有bug
  3. 人月神话
  4. 沟通与培训的工作量

对于第一点,软件开发的从业者应该都有很深的体会。每当我们的程序出现BUG的时候,我相信大部分人的第一反应都是:“不会吧,我写的代码应该没什么问题啊”。实际上这就是一种盲目的自信。
第二点也是人类为什么要应用计算机的其中一个原因:人会犯错。即便是其他已经工程化的领域,有着非常成熟的流程和技术的领域,实际上人们还是有可能犯错。我们偶尔会看到一些航天器的坠毁,一些化学仓库的爆炸。
更重要的一点是人月神话。软件的开发也是有自己的规律的。母亲十月怀胎能孕育一个生命,那么10个母亲能一个月内孕育出一个生命吗?显然是不行的。但是实际上,对于没有足够经验的软件开发管理者而言,这一点非常容易混淆
对于第四点,实际上开发的工作量比较容易估算,但是沟通与培训的工作量是很难以估算的——我个人认为这还是依赖于管理者丰富的经验。就像Brooks在本书中提到的一些数据,集成测试需要的时间远比人们想的要多。但是在实际的项目开发过程中,留给集成测试的时间实际上非常的少,大多数人估算的只是开发出单个模块的时间——甚至于对这个问题的估算也会偏少

2.3Brooks法则

Brooks法则:为进度落后的项目增加人手,只会使进度更加落后。

没什么经验的项目经理总是会犯这样的错误:当项目进度落后的时候,着急忙慌地招揽更多的人,试图用人数的“优势”来让项目及时完成。而实际上,这样的实践并不可能成功。

仅以我们平日里编写程序的经验而言,我们在看别人的程序的时候,往往比我们从头写这个程序所需要花费的时间更多——因为代码某种意义上来说也属于一种“艺术品”,我们拿着同样的工具,但却有着完全不一样的思维。那么用于统一思想和沟通交流的代价就会明显地显得特别高。对于一个已有的项目来说,显然加入更多对于这个项目不熟悉的人显得没有一点帮助

标签:估算,项目,Brooks,实际上,我们,神话
From: https://www.cnblogs.com/fuchuchu/p/17277563.html

相关文章

  • 人月神话
    第1章-焦油坑第一章主要阐述了三个方面:引出了一个问题:为什么我们的项目看起来好像没有问题,实际上却出现了这么多的问题?虽说一些项目可能是“失败的”,但是他们大多数还是开发出了可运行的系统。只不过只有极少数的项目满足了目标、进度和预算的要求。为什么其实系统已经开发出......
  • 人月神话读书笔记3
    第十三章—整体部分。防范bug的定义。系统各个组成部分的开发者都会做出一些假设,而这些假设之间的不匹配,是大多数致命和难以察觉的bug的主要来源。好的自顶向下设计从几个方面避免了bug:首先,清晰的结构和表达方式更容易对需求和模块功能进行精确的描述。其次,模块分割和模块独立......
  • 人月神话阅读笔记(三)
    第4章:贵族专制、民主政治和系统设计概念的完整性是系统设计中最重要的考虑因素第5章:画蛇添足在开发第1个系统时,结构师倾向于简洁,之后不断产生装饰和润色。第二个系统是最“危险”的,往往会过度设计。而随后的系统由于之前的经验会相互验证,因此能识别出不够通用的部分。第6章:贯彻......
  • 人月神话读书笔记2
    第七章—为什么巴比伦会失败?巴比伦的失败是因为缺乏交流。他们无法交谈,从而无法合作,以至于工作陷入停顿。因为不知道对方在做什么,许多小组修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定。由于对其他人的各种假设,团队成员之间的理解......
  • 2023年3月31日(软件工程日报)人月神话读书笔记3内容
    第8章:胸有成竹软件工作量是根据规模成指数型增长的,指数大约是1.5,即:工作量=常数×指令的数量1.5工作量=常数\times指令的数量^{1.5}工作量=常数×指令的数量1.5实践是最好地老师实践是最好地老师,但智者还能从其他地方有收获。第9章削足适履这一章讨论了内存......
  • 人月神话读后感3
    对于工作量和工作时间的估算,对于所有的设计者来说都是一个难题。因此我们也在思考一个问题,对于产品的设计,第一次可能因为经验不足出现各类问题和各种错误,第二次会不会比第一次好一些。毕竟我们默认一个人在某个领域的深耕会获得大量的经验,从而有助于他将工作做好。然而《人月神话......
  • 人月神话读后感2
    “人月”难道真的无法换算吗?添加人手对于项目的进展难道一点作用都没有吗?对此,书中也是予以了解答“人数和时间的互换仅仅适用于以下情况:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。”上述的条件在编程领域几乎是不可能的,可以想见,在实际的工作中也极少存在有这些既......
  • 《人月神话》读后感(二)
    第七章的主题是为什么巴比伦塔会失败?书中写道巴比伦塔项目的失败是因为缺乏交流,以及交流的结果——组织。在日常编码中我们要明白团队的重要性,团队在一个完美的项目中是不可缺少的存在,在团队中要学会交流,不要“因为左手不知道右手在做什么,从而进度灾难、功能的不合理和系统缺陷纷......
  • 人月神话读后感1
     为什么“人月”是“神话”。小学的时候我们都做过这样的应用题:“工厂需要加工一批零件,安排5名工人的话需要10小时完成,那么安排25名工人加工,多少小时可以完成”之类的。对于这类题目,小学一二年级的学生都可以轻松得到答案。也正是如此,如今的工作中,仍有不少同仁秉持这样的小学生......
  • 人月神话阅读笔记(二)
    《人月神话》是一本软件工程领域的经典著作,作者是著名的计算机科学家弗雷德里克·布鲁克斯。这本书主要讲述了软件开发过程中的一些问题和解决方法,以及如何管理一个软件项目。以下是我对这本书的一些阅读笔记。首先,布鲁克斯在书中提到了一个非常重要的概念,即“人月”。他指出,软......