在工作中经常涉及到对进度(或成本等)进行估算,常用的估算方法有专家判断、类比估算、参数估算、三点估算、自下而上的估算、储备分析等,在此介绍一下三点估算,这种估算方法在不确定的情况下可以得到一个相对准确的估算值。
软件项目管理过程始于规划阶段制定的项目计划,而估算是制定项目计划的基础,估算的对象包括完成该软件项目所需要的资源、成本和进度 。
在软件项目管理的规划阶段,可通过建立管理团队来进行项目估算和制定项目计划。既然是估算,肯定是不准确的、带有风险的。估算需要借助一定的经验、一些项目的历史信息和公司知识库里的定量数据来完成,同时也带来了估算精度的问题。
进行估算的依据是项目合同和系统方案指定实现的范围,如要求实现功能。卷席筒性能要求等。在开始鼓算钱,项目团队首先对软件的功能进行评价,并进行适当的细化以便能够进行初步估算。在实际估算中,团队采用功能分解、经验估算等对成本和进度估算。性能方面设计系统响应时间和处理时间的要求。
我们都知道在软件项目管理中,没人能够百分百的进行准确估算,只有在项目完成后才能同实际所需的工作量进行对比。在通常情况下,团队成员在估算中往往会尽量扩大工作量以保证具有充足的时间来完成任务。这样的话,导致估算的误差范围很大,项目的持续时间被认为拖长,导致大量的资源限制和浪费。
在国内的软件项目管理中,工作量的估算大多还停留在凭空想想上或者以来以往的工作经验,其实发展到现在,已经有了很多更加科学的估算模型可以利用。
一般在对于没有类似项目管理作为参考的时候,可以采取用例驱动方式进行估算,先将用例按照包含的事物数分为:简单用例、一般用例、复杂用例三类。其中,事务为任务的自己,要么全都执行,要么一个都不执行。然后就一句不同类型的用力估算工作量的数据。
接下来,只要计算项目中各类型用例的数量,利用下面的公式:
某类用力构件的工作量= 某类用例数量*对应的工作量
通过估计工作量可以估算出每个用例任务要花费的时间和所需的资源。在确认可以得到需要资源后,还要考虑任务之间的以来关系,之后就可以很容易估算出项目的总工期。
在估算中考虑不确定性和风险,用以提高估算的准确性。三点估算可以用于进度或成本,以下以进度为例,首先需要估算出进度的3个估算值:
1. 最可能时间-tm:假设资源、资源生产率、可支配时间、依赖关系、风险、问题等各种条件下,完成某项活动需要持续的时间;
2. 最乐观时间-to: 假设基于最乐观的情况,即各种期待的条件都满足,不利的因素没有出现的情况下,完成某项活动需要持续的时间;
3. 最悲观时间-tp: 假设基于最悲观的情况,即各种不利因素出现的情况下完成某项活动需要持续的时间;
ok,三点估计即根据以上三个值进行加权平均,来计算活动的持续时间,使估算更加准确:
活动持续时间te=(to+4*tm+tp)/6
另外,我们也可以根据三个估算值计算其标准差,即一个西格玛=(to-tp)/6。此时我们的估算可以为一个范围,例如:3周±2天