• 寒假阅读人月神话3


             本书作者作为一个经验丰富的软件项目管理者提供给我们很多发人深省的观点。先从书名“人月神话”开始探讨,人月即早期用来度量软件开发工作量的一个单位。具体为将每个人每月的工作量作为一个基本单位。用人月的量来衡量整个项目的规模与工作量。并且早期认为人月的模式简单符合线性关系。即:10人*月的项目等价于5人*2月等价于1人*10月。但是这种看似简单完美的模型却是一个美丽的神话,人员和时间是不能简单替代的。

            软件项目的进展并不能用简单的线性关系抽象。软件开发不是一项简单重复的体力劳动。设想如果一个人要扫雪,假设他一个人需要一个小时扫完,但是如果他再找来5个人一起扫,可能只需要十分钟。软件开发比这要复杂的多;如果一个人用十天能做完的一个项目,他做到第五天后想找人来一起做,这就不是找五个人一天就能做完的事情。也许完成项目花费的时间比十天还要多。他要花时间为新加入的队员介绍项目,为他们合理分工,如果有一人没按时完成,所有人都要停下等待……由此引出一系列不可预估的问题。复杂度大大提高。总之:从项目的人数和时间两个维度考虑,都不能以人月作为软件开发度量:1.人数的增加对软件开发的贡献不是线性增长的(队友之间有协作交流的问题)。2.每个人在项目开发中的工作量也不是线性递增的(开发的过程中复杂度提高)。他们可能会是log(o)或更复杂的情况。总之,在软件开发中,合理评估参与人数和时间是一项很有挑战并且需要经验性的工作。同时,应该尽量减少或避免人员的改动。

             此外,文中一个核心的观点就是保持软件产品的概念完整性,概念完整性是产品质量的核心。“一个整洁、优雅的编程产品必须向它的每个用户提供一个条理分明的概念模型,这个模型描述了应用、实现应用的方法以及用来指明操作的各种参数的用户界面使用策略。”对于大型的软件产品,较好的实现概念完整性并不是一件简单的事情。

  • 相关阅读:
    sql面试题
    C#基础(1)
    Java中的冒泡排序(减少比较次数)
    Java中面向对象的分拣存储
    Java中分拣存储的demo
    XML序列化
    C#读取csv文件使用字符串拼接成XML
    Java中HashMap(泛型嵌套)的遍历
    Java 中List 集合索引遍历与迭代器遍历
    java 中的try catch在文件相关操作的使用
  • 原文地址:https://www.cnblogs.com/youknownothing/p/8515147.html
Copyright © 2020-2023  润新知