zoukankan      html  css  js  c++  java
  • 《人月神话》读书笔记(一)

    《人月神话》读后感

    这篇文章主要讲了在软件开发工程项目中,时间和人员数量上的转化关系。表明了在一个项目中增加人员的数量不一定能够缩短项目完成的时间,很多时候还会起到相反的作用。

    正如Brooks法则中所说的那样“想进度落后的项目中增加人手,只会使进度更加落后”。在软件项目中,缺乏合理的时间进度使造成项目滞后的最主要的原因。

    造成这个结果主要由于以下几个方面,我们对工程的乐观的估计,错误的认为人和月(时间)可以无条件的相互替代,软件经理不合理的估算和缺少对进度的跟踪和监督。

    在编程人员中弥漫着乐观主义,他们通常会认为一切都将运作良好,每一项任务仅花费它所应该花费的时间。但是人员的构思总是会存在某些偏差,导致了 idea是很好的,但在实现的过程中出现问题,这种结果会严重的影响到软件工程最终的完成时间。所以说在做一个项目的时候,人们不应该盲目的乐观。

     

    文章对造成项目滞后的第二个原因进行了详细的论述,他为我们否定了一个关于 “人月神话 ”谬论。 “人月神话 ”的主要内容是人员数量和时间是可以相互替代的。事实上,人员数量和时间是不可以无条件的相互替代的。

    文中也表明了人员数量和时间的互换仅仅适用于以下情况:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。只有在这种可分解的任务中人月神话是存在的。但是在更多的情况下,由于任务常常是不可分解的,且需要人员之间的大量的相互沟通。这时候,一味的增加开发人员不会缩短时间的进度,相反还很有可能比没增加人员的时候完成的时间还要晚。在文中作者也举了一个例子,假定没有在规定的时间内完成任务,达到第一个里程碑,项目经理可以有四种选择的方案。 1、在原来 3个人的基础上增加 2个人。 2、将原来的 3个人增加到9个人。 3、重新安排进度。 4、削减任务。说明了项目经理往往倾向于选择削减任务来减少后续的成本,也说明了第一种和第二种方案的不可行。因为增加了人员就要对他们进行培训,这是需要时间的,还有就是会出现重复工作的问题,原先由3个人负责的工作分解到了由5个人来工作,这就导致了某些已经完成的工作必然会丢失,丢失的工作还需要再做一遍,这也导致了时间的浪费和延长。这样一来,表面上看来投入了更多的人力,可是结果还是和没有增加人手一样或许更糟。说明了时间和人员数量是不可替代的。

    文中还说到了系统测试的重要性,出现了问题越早发现才能把成本降到最低,发现的晚对项目的影响将是灾难性的。所以系统测试进度的安排是很重要的。作者还提到了自己的经验法则:1/3计划 1/6编码  1/4构建测试和早期系统测试,1/4系统测试。这里也说明了计划和维护的重要性,而具体的写代码的工作是相对来说比较不占用时间的,体现了那句话 “三分技术,七分管理 ”。更多的增加开发人员往往不会缩短计划完成的时间进度,与人们最初的预计相反,所以不要迷信人员数量和时间上的相互的转换,要想不让项目的完成时间滞后,我们就要制定合理的时间进度。

  • 相关阅读:
    CNN网络架构演进:从LeNet到DenseNet
    【OCR技术系列之四】基于深度学习的文字识别(3755个汉字)
    【OCR技术系列之三】大批量生成文字训练集
    【Keras】基于SegNet和U-Net的遥感图像语义分割
    Python各类图像库的图片读写方式总结
    我的2017:从工作再到学生
    VS2017 WinFrom打包设置与教程
    采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)
    采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目)
    采用Opserver来监控你的ASP.NET项目系列(一、Opserver监控的简介与平台搭建)
  • 原文地址:https://www.cnblogs.com/rainbow-1/p/14809029.html
Copyright © 2011-2022 走看看