确定性因素一般是项目客观存在的,容易在开始前预测的。关于确定性因素大致参考如下:
影响因子 影响因子分数(以下为示例分数,具体分数可根据情况自定义i>0,若稳定则为1)团队组成 0.95
开发过程 1
需求清晰完整度 0.96
技术因素 0.97
团队配合 1.05
其它因素 0.98
团队组成:考虑到团队成员不可能为标准工程师。因此团队人员的能力是影响团队开发速度的一个很大因素。我们可以在团队中找一个接近于标准工程师的人,得到他的能力系数(SF)为1sp(一天可以完成1sp的工作量),则以他为基准可以得到团队所有人的能力系数。则团队组成的影响因子分数(TF)计算公式为:
$$
TF=\frac{\sum_{i=1}^N{(SF)}_i} {N}
$$
开发过程:考虑到改进开发过程(采用敏捷,优化测试方法等)会对开发速度有影响,因此开发过程是影响因素之一。其值可大于1也可以小于1,若稳定不变则为1
需求清晰完成度:需求是否足够清晰、完整也会对开发速度有影响。
技术因素:若完成该项目涉及到团队中未知、不具备的技术知识也是风险之一。当然也可能为正面因素。
团队配合:一个配合好的团队和配合差的团队其开发速度也是明显不同的。
说明:以上因素具体项目团队可自行调整。
确定性因素(FF)的综合影响(FR)计算公式为:
$$
FR=\prod_{i=0}^n(FF)_i
$$
突发性因素往往是项目开始前哪一预测的。关于突发性因素大致参考如下
团队变化 1.1 1.05 1.02 1 0.98 0.95 0.91
需求变化 - - - 1 0.99 0.98 0.97
团队成员兼职 - - - 1 0.98 0.96 0.94
业务方失误 - - - 1 0.97 0.95 0.92
开发环境变化 1.1 1.05 1.02 1 0.98 0.95 0.92
临时增加减少任务 1.1 1.05 1.02 1 0.97 0.95 0.91
其它 1.1 1.05 1.02 1 0.99 0.97 0.96
团队变化:团队人员离职,新增成员等
需求变化:开发过程中需求的变更
团队成员兼职:团队成员身兼数职,在其他团队也有工作。
业务方失误:业务方提出错误的要求等
开发环境变化:项目开发过程中开发环境发生变化
临时增加减少任务:项目过程中临时性的新增或减少需求。
说明:以上因素具体项目团队可自行调整。
突发性因素(VF)的综合影响(DF)计算公式为:
$$
DF=\prod_{i=0}^n(VF)_i
$$
实际开发速度需要在理想开发速度的基础上增加各种影响因子。其公式如下:
$$
V=V_t^{FR\times DF}
$$
如上图,由下往上分别为3-8人的开发团队开发速度与综合影响因子分数的函数图像(影响因子在0.8-1.2之间)。
2.3 开发时间评估
开发时间计算公式如下:
$$
T=\frac {E}{V}=\frac {\sum_{i=1}^n{(SC)}_i}{V_t^{FR\times DF}}(Days)
$$
输入:
任务数:50
团队人数:7
固定性因素影响值:
团队组成 0.97
开发过程 1
需求清晰完整度 0.95
技术因素 0.96
团队配合 1.02
其它因素 0.96
突发性因素影响值:
团队变化 0.95
需求变化 0.98
团队成员兼职 0.99
业务方失误 1
开发环境变化 1
临时增加减少任务 1
其它 0.99
输出:
总工作量: 150
理想开发速度: 7
理想开发时间: 21.4天
固定性因素影响综合值: 0.87
突发性因素影响值: 0.91
实际开发速度: 4.65
实际开发时间: 32.2天
结束语