项目工作量估算是进行项目日程安排的重要依据,如何准确估算需要有一定的经验和技巧。
实用的估算方式
- 通过对比历史数据进行估算;
- Delphi方式:第一步,向团队阐述项目事宜,每人写下任务列表和时间估算,注明预设条件;第二步,收集任务列表,进行复查,看哪些任务可以同时进行;最后整合所有时间,得到项目的整体估算;
实用的估算技巧
- 在顺序式生命周期下,避免在一开始就估算整个项目;
- “试探性开发”可以为估时提供实践意义上的数据;
- 使用自信心或日期范围范围进行估算;
- 使用三种日期进行估算:最佳状况、最有可能、“墨菲”日期。最佳状况日期是项目最早可能完成的日期;最有可能日期是增加了经验系数或缓存时间后的日期;“墨菲”日期在最有可能日期之上再加入一些经验系数,是一个比较悲观的日期;
- 使用斐波那契数列进行估算;
- 估算后的时间单位和真实的时间单位可能不对等,需要进行速率检测;
- 估算单位时间相等的任务放在一起进行对比,检查估算结果是否合理;
理解估算
- 估算只是一个大概值——一个猜测而已;
- 很多软件开发人员都很乐观,另外实际情况也是一项任务总是要花费比预计更多的时间;
- 估算小块任务更容易,采用的时间单位也最好采用“人时”;
- 做好反复估算的准备;
- 若项目时间限制得很死,就采用时间盒把各个阶段和任务包围起来;
- 若有技术风险,不易估算,可以先采用试探性开发;
用里程碑切分项目
如果项目估算不是几个人、几周时间内就可以完成的,可以定义一些里程碑,并基于可交付物来定义里程碑。
使用波浪式规划
波浪式规划指为固定的时间安排详细的日程规划的过程。
不要在一开始就想着把整个项目规划出来,使用波浪式规划产生开始日程,在项目进行过程中调整日程,在必要时重新规划各种活动。
使用小石子进行规划
“小石子”就是大任务把拆分成的小任务,每个任务的完成不超过两天,通过只有两种状态“完成”和“未完成”。“小石子”的集合就是日程安排中定义的任务,通常用几天或几周时间来完成。
项目经理或技术带头人不必定义这些小任务,而是由每个任务负责人来完成“小石子”的划分。“小石子”相当于微管理,如果负责人不知道如何产生“小石子”,可以指导他们,但不要规定他们应该怎么做。
使用“小石子”可以减少日程安排的风险,因为它有以下的好处:
- 便于理解任务及任务之间的相关性;
- 可以暴露任务之间的依赖性;
- 有助于创建更准确的日程;
铭记在心
- 绝对不要提供确定的项目结束日期;
- 任务越小,估算起来越容易;
- 寻求估算的准确性,而不是精确性;