快速开发:估算与进度
估算
软件工程估算是一个逐渐改进的过程
可以向客户承诺在每个阶段向他们提供更加精确的估算
在估算的乐观系数与悲观系数之间找平衡
寻找估算与实际情况的交汇点
精确与准确:55人月 与 40-70 人月;估算应该保证准确而不是精确
估算步骤
估算产品规模
估算工作量
估算进度
提供某一范围内的估算,并随着项目的进行,定期改进范围,以提供更高的精确度
规模估算
利用功能点进行估算
估算技巧:避免无准备的估算;留出估算时间,并做好计划;使用以前项目的数据;使用以开发人员为基础的估算;走查估算;分类法估算;详细的较低层次的估算;不要忽略普通任务;使用软件估算工具;使用几种不同的估算技术,并比较它们的结果;项目进行中改变估算准则
估算的表达方式
加减限定 :10+1人月
范围:9~11人月
风险量化:将造成 +1 人月的风险表示出来
情况:最佳情况与最坏情况、计划情况与当前情况
粗略的日期与时间段
把握性因素
进度估算
业界的进度公式:月进度 = 3.0* 人月1/3
基于承诺的进度表:从需求出发安排进度,要求开放人员作出进度承诺而不是进度估计。
Jones的一阶估算准则:取得功能点总和(FP),然后从幂次表中选择幂次(dex)升幂。即:初略进度 = FP * exp(dex)
幂次表(dex):
软件类型
最优级
平均
最差级
系统软件
0.43
0.45
0.48
商业软件
0.41
0.43
0.46
封装商业软件
0.39
0.42
0.45
大致的进度估算
大致估算的背景
可能的最短进度
存在一个不能突破的最短进度。
把进度缩短得比普通进度短时,费用将迅速上升。
有效进度:进度压缩因子 = 期望进度/初始进度
估算修正
随着研究的深入或者项目的开展,对整个项目的估算或越来越准确。一旦发现偏差,可以进行估算的再修正
进度计划
过于乐观的进度计划
根源:赶特定时间、管理人员和客户的固执于主观想象、项目管理人员与开发人员享受挑战
不良后果:进度计划的精确性降低、计划的质量降低、增大了偏离规划的风险、产品功能范围的缩小、仓促实现导致的返工,无法专注于项目的推进,与客户关系的紧张、仓促收尾
超负荷的进度压力:产品质量降低、赌博心理、激励效应不再起作用、创造性思维被抑制、精疲力竭、中途退出、长期的快速开发难以持续、开发人员与管理人员的关系紧张
底线:
战胜进度压力
有原则的谈判:将人从困境中解脱;关注共同利益,不要过分坚持立场;提出对双方均有利的方案;坚持客观标准,顶住压力。
可以从以下三个方面来说服对方:
真正提高开发速度:过分乐观的进度计划实际上阻碍了开发速度
增加成功的机会:说明估算是得到论证的,且成功的几率只有一半;如计划进度缩短,成功的概率也会减少
援引以前类似项目的失败教训