人月神话 -- 读书笔记二

  1. 巴比伦塔为什么失败
  2. 提纲挈领
    1. 为什么要有文档?
  3. 唯一不变的是变化
    1. 前进两步,后退一步
  4. 干将莫邪
  5. 失败的原因

巴比伦塔为什么失败

他们具备了很多的条件,失败的原因在于

  • 交流

  • 交流的结果-组织

当交流的缺乏导致了争辩,沮丧和群体猜忌之后,大家选择孤立,而不是争吵。

缺少交流

项目设计手册应该做好,未来的产品将会基于他,并且要控制信息发布,以确保信息可以达到所有需要它的人手里。

系统编程需要多少时间?

编程大约只占 1/6。但是根据小型项目的估时没法得出大型项目的估时的,就像用百米跑的记录推算跑 1 英里的时间是不对的。

工作量 = 常数 x 指令的数量的 1.5 次方

  • 对于常用的编程语句,生产率是固定的

  • 使用适当的高级语言或特性,编程的效率可以提高 5 倍

提纲挈领

文档是集中考虑,并使各种讨论意见明朗化的主要时刻。可以终止项目无休止的混乱状态。文档本身可以作为检查列表,状态控制,也可以作为汇报的数据基础。

文档需要包含的内容:

  • 目标:定义待满足的目标

  • 技术说明:手册以及性能说明

  • 进度

  • 预算

  • 组织结构图

  • 工作空间的分配

  • 报价,预测和价格

为什么要有文档?

  • 只有书面记录下来,分歧才会明朗,矛盾才会突出。书写过程中的无数细小决定才能让人们从混乱的现象中找到清晰,确定的策略

  • 文档能够作为同其他人的沟通渠道。很多应该被普遍认同的策略,完全不为团队的一些成员所知

  • 只有书面计划才是精确并且可以沟通的

书面记录让我们做很多细微的决定,并能保证传达的效率和广泛度。

唯一不变的是变化

大多数项目,第一个开发的系统并不合用。是否要预先计划抛弃原型的开发或者将该原型发布给用户。

变化是与生俱来的,不是不合时宜和令人生厌的异常情况。开发人员交付的是用户的满意程度

软件产品易于掌握的特性和不可见性,导致它的构建人员面临永恒的需求变更。所以我们要:为了变更设计系统!

前进两步,后退一步

对一个广泛使用的程序,维护总成本通常是开发成本的 40%或更多。缺陷修复总会以(20%~50%)的几率引入新的 bug,整个过程是前进两步,后退一步。

随着时间的推移,系统会越来越无序,修复工作迟早是去根基。尽管系统理论上一直可用,但实际上,系统的面目全非,无法再成为下一个进展的基础。

系统软件开发是减少混乱度的过程,本身是亚稳态的。软件维护是提高混乱度的过程,即使是最熟练的软件维护工作,也只是放缓了系统退化到非稳态的进程。

开发者必须时刻保持警觉,经常重构,以优秀清楚的设计来应对这个过程!

干将莫邪

开发和维护公共的通用编程工具的效率更高。对这类工具的开发不能吝啬人力和物力。交互式编程的生产率是原来的 2 倍。

变更必须被阶段化,并且定期发布。每个用户拥有稳定的生产周期,这种方法与持续波动所造成的混乱无序要好一些。

看到这句想到我们固定了发布周期的事情真是不谋而合~

失败的原因

通常失败的原因是因为白蚁的肆虐,而不是龙卷风的侵袭。

如何根据严格的进度来控制大型项目,第一步是制定进度表。进度表上的每一件事情被称为‘里程碑’。

里程碑必须是清晰定义,可度量的事件。90%完成,测试都是在 99%的时候完成,计划完毕是任何人只要愿意,就可以声明的事件。

里程碑是百分之百的事件!


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com

文章标题:人月神话 -- 读书笔记二

文章字数:1.1k

本文作者:泽鹿

发布时间:2019-08-28, 16:45:23

最后更新:2019-08-28, 16:45:23

原始链接:http://panyifei.github.io/2019/08/28/读书笔记/人月神话/2/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏