首页 > 技术文章 > 个人阅读作业1

xrst 2014-10-16 17:34 原文

《快速软件开发》

2.2.3中提到,如果产品功能是灵活的,你就可以使用80/20规则,先开发出只需要花20%时间的80%的产品功能,而后开发产品另外20%的功能。

Q:这个规则有何科学依据?如果时间-功能的关系是线性的呢,即花20%时间最多只能开发20%的产品功能?

A:80/20规则是意大利经济学家帕累托在1895年提出的。经过他的研究,实际上所有经济活动都服从这个规则:你20%的活动获得的成果在所有成果中占80%,20%的客户占80%的销售量,20%产品或服务占你80%的利润,等等。对于软件工程同样适用,这是统计出来的一个奇妙的规律。

Q:软件的风险很值得重视吗?具体有什么体现?

A:软件项目所面临的不断变化的用户需求,糟糕的计划与估算、不可信赖的承包人、欠缺的管理经验、人员问题、伤经动骨的技术失败、政府政策的改变、性能欠佳……等等不胜枚举的风险,是大型项目按时完成的概率几乎为0,大型项目被取消的概率和赌博一样成败参半。这里有一个实际的例子:1982年,Allstate公司宣布其公司运营全部要实行自动化。他们启动了一个将耗时5年投资800万美元的大型项目,而后改为6年和1500万美元。1988年,Westpac Banking Corporation决定重新设计它们的信息系统,他们做了5年、8500万美元的计划,3年后,在花费了1.5亿美元后,依然收效甚微。Westpac为了减少损失,取消了这个项目,并为此裁员500人。从中看出,软件开发在财力上的风险绝对是不可忽视的。

第八章提到,大多数项目超过估算进度25%到100%,但也有少数一些组织的进度估算到了10%以内,能控制在5%的还没有听说。

Q:为什么估算这么困难?实际比估算花费少的情况会出现吗?

Q:给定一个项目,如何预估其规模?在人员管理上,是事先预估好直接分配,还是在项目进行中进行随时调整?

Q:作者认为,任何形式的英雄主义都将是弊大于利。那如何看待乔布斯领导下的苹果团队创造的奇迹?

推荐阅读