zoukankan      html  css  js  c++  java
  • 人月神话阅读笔记01

    《人月神话》是软件工程管理的一本奇书,他用深入浅出的文字阐明了在软件工程开发的过程中,我们可能会遇到的陷阱,以及如何避免它们。

      系统编程的进度安排背后的第一个错误的假设是:一切都将运作良好,每一项任务仅花费它所"应该"花费的时间。

      在单个的任务中,“一切将运转正常”的假设在进度上具有可实现性。因为所遇到的延迟是一个概率分布曲线,“不会延迟”具有限定的概率,所以现实情况可能会像计划安排的那样顺利,然而大型的编程工作,或多或少包含了许多子任务,某些任务间还具有前后的次序,从而一切正常的概率变得非常的小,甚至接近于零。

      用人月作为衡量一项工作的规模是一个危险和带有欺骗性质的神话。它暗示着人员数量和时间是可以相互替换的。

      相互之间交流的情况更糟一些。如果任务的每个部分必须分别与其他部分单独协作,则工作量按照n(n-1)/2递增。在一对一交流的情况下,3个人的工作量是2个人的3倍,4个人的工作量是2个人的6倍。

      向进度落后的项目增加人手,只会使进度更加落后。

      效率高和效率低的实施者之间个体差异非常大,经常能达到数量级的水平。

      概念的完整性要求设计必须由一个人,或者非常少数互有默契的人员来实现。 
      而进度压力却要求很多人员来开发系统。有两种方法可以解放这种矛盾,第一种是仔细地对设计方法和具体实现进行分工。第二种前一章节所讨论的,一种崭新的组建开发团队的方法。

      在开发第一个系统时,结构师倾向于精炼和简洁,他知道自己对正在进行的任务不够了解,所以会谨慎、仔细的工作。 
      第二个系统设计师们所设计的最危险的系统。而当他着手设计第三个或第四个系统时,先前的经验会相互验证,得到对此类系统通用特性的判断,而且系统之间的差异会帮助他识别出经验中不够通用的部分。

      对于软件开发团队来说,进取同样是非常必要的。进取提供了缓冲和储备,使开发团队能够处理常规的灾祸,可以预计和防止小的灾祸。

  • 相关阅读:
    《Programming WPF》翻译 第8章 1.动画基础
    一些被遗忘的设计模式
    《Programming WPF》翻译 第4章 数据绑定
    《Programming WPF》翻译 第3章 控件
    《Programming WPF》翻译 第5章 样式和控件模板
    《Programming WPF》翻译 第7章 绘图
    《Programming WPF》翻译 第9章 自定义控件
    《Programming WPF》翻译 第7章 绘图 (2)
    《Programming WPF》翻译 第8章 前言
    关于Debug和Release之本质区别
  • 原文地址:https://www.cnblogs.com/liurx/p/8297568.html
Copyright © 2011-2022 走看看