软件估算拍脑袋,你就等着凉凉吧

软件估算书籍人月神话

进入90年代,Capers Jones也在他的报告Applied Software Measurement:Global Analysis of Productivity and Quality中表示,“过度紧张的、或不合理的进度表,可能是对所有软件项目最具破坏力的影响因素”。

无论是时间估计不足,还是不合理的进度表,全指向了软件估算。因此,准确的软件估算是进行合理计划项目、推进项目、顺利完成项目的基石。今天,我们就来说说这个话题。

软件估算,到底估算什么?

软件估算,是对项目将持续多长时间,或将花费多少成本而进行的预测。通常,一家公司的人员单价和其他资源单价都是相对固定的。因此,软件估算说到底,就是对工作量多少的预测。因为有了工作量的估算,才会衍生出进度估算、成本估算等其他方面的预测。

工作量表征了一个项目工作内容的多少。它可以协助确定项目所需要的人员数,也可以支撑进度表的建立,是软件项目管理中最重要的度量之一。

工作量估算,可以满足项目管理在无法得到实际工作量时,对项目工作量数据的需求,可以说是项目管理进行计划和控制的基准。工作量估算的结果,构成了项目计划的基础,比如详细的进度计划、关键路径、交付功能优先级以及迭代分解等。但是,软件工作量估算,往往会受到项目不切实际的目标、无法实现的承诺,以及管理混乱的影响,导致最终结果缺乏准确率。不准确的工作量估算,通过对项目计划的影响,导致项目无法在规定的时间、预算和质量约束下完成,甚至失败。

软件估算的核心是工作量估算

何时进行工作量估算?

我相信很多人会胸有成竹地说:“计划之前。”

我曾经也是这么想的。直到七年前,受上海邮电设计院的委托,我们帮助电信集团建立软件平台供应商的工作量评估体系。

当时,中国电信软件采购的费用在业务中的比重越来越高,电信觉得贵,但供应商却觉得亏。由于电信采购的特殊性,单价是确定的,所以只能、也必须从工作量的角度来对这个项目的规模进行估算,并作为判断依据,对供应商的技术方案和报价进行评审。

在做这个项目之前,我从没有这么清楚地意识到,原来估算在乙方项目立项之前就早已开始,并且发挥着如此重要作用。

一个完整的软件生命周期,会经历4个阶段的估算:

软件估算发生的时间

 

l  原始估算:主要用于项目决策和竞标支持

项目决策。当一个公司进行某个项目的可行性研究的时候,或者决定是将软件项目外包给外部公司开发还是自行开发时,估算提供了工作量、规模等的数据,进行决策支持。

提供软件产品或服务的竞标支持。当一个公司根据估算的结果向客户提出竞标方案时,估算的准确度将直接影响公司能否竞标成功,以及最终盈利。

l  粗略估算整个项目策划的基础和输入

项目早期估算,是项目依据类似项目的历史数据进行资源分配的核心活动,也是更好的制定项目进度计划和进度、编制预算的基础。

l  精确估算:提供对项目管理的、更为精确的数据支持

在项目过程中帮助评估项目变更的影响以及支持项目计划的调整或重排;同时精确的估算也有助于避免产生与进度压力相关的质量问题,使项目管理和控制变得简单有效。

另外,精确估算还能提供项目的早期预警——当估算结果与项目目标的不一致性时,就是项目无法成功的风险隐患。

l  结果估算:运行维护期管理支持

对项目运行和维护期的资源投入、风险进行数据支持。

如何进行工作量估算?

工作量= 规模 ÷ 效率

 

我们可以很直观的发现,对工作量估算最具决定性的影响因素毫无疑问是软件项目的规模,以及团队的工作效率。

而其他影响工作量的因素,比如人员能力、编程语言、工具、产品等,都是通过影响这两个因素而最终影响工作量估算的。变量的设置不能贪多,一定要根据数据收集的性价比进行选择。在不明确这些因素与工作量之间的关系时,从二八原则来说,仅仅从规模和效率入手,已经基本上能解决了80%的问题。

规模和效率的估算方法“千变万化”,但万变不离其宗,归纳起来,主要也就是如下这些方面:

如何进行软件估算

总结一下

1.  软件估算的核心,是工作量估算

2.  软件生命周期的各个阶段都需要估算支撑管理,从原始估算,到粗略估算,到精确估算,最后到结果估算

3.  影响规模和效率的因素有很多,不要设置过多的自变量,抓住20%的精华,解决80%的问题

凡奉首页    管理实践    CMMI管理实践    软件估算拍脑袋,你就等着凉凉吧
创建时间:2018-11-05 00:00
收藏