《人月神话》读后总结

一、前言:

程序员的世界里,有一本很经典的书,就叫《人月神话》,就是在驳斥这种算法。

这本书的作者是图灵奖的得主布鲁克斯。他的意思是,软件开发,工程庞大,又非常复杂。我们人类对于这种项目,通常是分工合作,因为它促进效率,节省时间的。但是,随着一个项目参与的人越来越多,分工越来越细,人和人之间需要的沟通量,也指数增长。很快你会发现,沟通花费的时间,渐渐地就比分工省下来的时间还要多。说白了,过了一个临界点,人越多不是越帮忙,而是人越多越添乱。一个人12个月能完成的事,不见得上12个人1个月就能完成,甚至12个月也未必能完成。

所以,《人月神话》这本书里建议了一种组织方式,叫“外科手术式的队伍”。就像一台外科手术一样,有一个主刀大夫,软件项目也应该有一个首席程序员,其他人都是给他提供支持的。这样,就既能获得由少数头脑产生的产品完整性,又能得到多位协助人员的总体生产率,还彻底地减少了沟通的工作量。(转自作者唯有1)

二、感悟:

1.表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢且很难看清问题的本质。

2.缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来影响还大。

3.关于进度安排,我的经验是为1/3计划、1/6编码、1/4构件测试以及1/4系统测试。

4.Brook法则:向进度落后的项目中增加人手,只会使进度更加落后。特别需要指出的是,不为系统测试安排足够的时间简直就是一场灾难。在现实情况中,一旦开发团队观察到进度的偏差,总是倾向于对任务进行削减。当项目延期所导致的后续成本非常高时,这常常是唯一可行的方法。

5.小型、精干队伍是最好的–尽可能的少。

6.即使是大型的设计团队,设计结果也必须由一个或两个人来完成,以确保这些决定是一致的。对于存有疑问的实现人员,应鼓励他们打电话询问相应的结构师,而不是一边自行猜测一边工作,这是一项很基本的措施。

7.为什么巴比伦塔会失败?----------------巴比伦塔项目的失败是因为缺乏交流,以及交流的结果–组织。

8.举行常规项目会议,会议中,团队一个接一个地进行简要的技术陈述。这种方式非常有用,能澄清成百上千的细小误解。制定项目工作手册,并实时记录变更:首先,必须在页面上标记发生改变的文本,例如,使用页边上的竖线标记每行变化的文字。第二,分发的变更页附带独立的总结性文字,对变更的重要性以及批注进行记录。

9.使用适当的高级语言,编程的生产率可以提高5倍。

10.在大型的团队中,各个小组倾向于不断地局部优化,以满足自己的目标,而较少考虑队用户的整体影响。这种方向性的问题是大型项目的主要危险。培养开发人员从系统整体出发、面向用户的态度是软件编程管理人员最重要的职能。

11.提纲挈领:如果要制造一台机器,哪些是关键的文档呢?------目标:定义待满足的目标和需要,定义迫切需要的资源、约束和优先级。

12.变更的客观需要是正常的,要未雨绸缪:目标上(和开发策略上)的一些正常变化无可避免,事先为它们做准备总比假设它们不会出现要好得多。

13."细致的功能定义、详细的规格说明、规范化的功能描述说明以及这些方法的实施,大大减少了系统中必须查找的bug数量。 注: 需求文档越详细,bug越少

14.好的自顶向下设计从几个方面避免了bug。首先,清晰的结构和表达方式更容易对需求和模块功能进行精确的描述。其次,模块分割和模块独立性避免了系统级的bug。另外,细节的隐藏使结构上的缺陷更加容易识别。最后,设计在每个精化步骤的层次上是可以测试的,所以测试可以尽早开始,并且每个步骤的重点可以放在合适的级别上。

15.里程碑的选择只有一个原则,那就是,**里程碑必须是具体的、特定的、可度量的事件,能够进行清晰定义。**例如:“结构师和实现人员签字认可的规格说明”,“100%源代码编制完成,纸带打孔完成并输入到磁盘库”,“测试通过了所有的测试用例”。如果里程碑很模糊,慢性进度偏离是士气杀手。Microsoft的Jim McCarthy说:“如果你错过了一个最终期限(deadline),确保制订下一条deadline

16.保持进度透明可见

17.软件可变性

18.软件不可见性

三、总结:

1.首先得到需求后,应先对需求进行优先级划分,得出迫切需要的资源、约束
2.接下来尽量产出非常详细的需求文档(要有清晰的结构和表达方式,以及模块分割),并将其与功能测试一同交给测试人员
3.接下来合理的安排时间进度(1/3计划、1/6编码、1/4构件测试以及1/4系统测试),并定时召开会议(注重沟通),并做好项目变更记录手册,记录好更改的部分和优先级。要注意保持进度透明化,制定好deadline。同时应时刻朝着系统整体出发,本着面向客户的态度进行开发。
4,接下来 需求的变更是正常的,要正视。
5.最后 要合理安排人员数量,向进度落后的项目中增加人手,只会使进度更加落后。要知道:一个人12个月能完成的事,不见得上12个人1个月就能完成,甚至12个月也未必能完成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值