人月神话读书笔记2
在众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还大。 导致这种灾难的原因:
1.乐观主义:编程人员潜在认为程序会一切运行良好,但我们的构思总会存在缺陷,因此总会存在bug,在大型的编程任务中一切正常的概率非常小甚至接近于无。
2.人月:作者认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。 它暗示着人员数量和时间是可以相互替换的。人数和时间的互换仅仅适用于以下情况:某个任务可以分解给参与 人员,并且他们之间不需要相互的交流。这在割小麦或收获棉花的工作中是可行的;而在系统编程中近乎不可能。系统编程在增加人力的时候需要额外增加的交流成本,这种交流和沟通的工作量巨 大,在相同人月下,增加更多的人手实际上会增加时间进度而不是减少。
3.系统测试:传统项目往往不重视测试,不安排足够的时间但实际中测试占用了大量时间,因此作者提出1/3 计划 1/6 编码1/4 构件测试和早期系统测试 1/4 系统测试
4.空泛的估算:产品经理要对自己的估算自信,避免为了顾客的期望的日期而造成不合理的进度安排
5.重复产生的进度灾难:作者认为向进度落后的项目中增加人手,只会使进度更加落后
关于系统测试想起来一个段子:
一个测试工程师走进一家酒吧,要了一杯啤酒
一个测试工程师走进一家酒吧,要了一杯咖啡
一个测试工程师走进一家酒吧,要了0.7杯啤酒
一个测试工程师走进一家酒吧,要了-1杯啤酒
一个测试工程师走进一家酒吧,要了2^32杯啤酒
一个测试工程师走进一家酒吧,要了一杯洗脚水
一个测试工程师走进一家酒吧,要了一杯蜥蜴
一个测试工程师走进一家酒吧,要了一份asdfQwer@24dg!&*(@
一个测试工程师走进一家酒吧,什么也没要
五百个测试工程师在酒吧门口呼啸而过
一个测试工程师走进一家酒吧,又走出去又从窗户进来又从后门出去从下水道钻进来
一个测试工程师走进一家酒吧,又走出去又进来又出去又进来又出去,最后在外面把老板打了一顿
终于测试工程师满意的离开了酒吧
一个顾客走进一家酒吧,点了一份蛋炒饭,酒吧炸了