性。在实际操作时,我们让团队成员每天对其参与的每一任务都键入下列两项数字:1)该任务花费时间,和2)该任务所剩时间。结果就会生了类似如下的燃尽图。

如图所示,起初这项目被估计是要3480小时完成。大致上来说,一般的研发团队因着人员请假、会议和其他突发事情,平均每人每天只能有六小时花在实际项目工作上。现这项目有七个人参与,估算出来大约需要四个月完成。(也就是从2009年11月29日到2010年3月29日,图中红色直立线为起始线,蓝色直立线为终止线。)这图里共有三条曲线。红色号码?/span>表示到现在为止在该项目的总花费时间,红色号码?表示估算的项目剩余时间,红色号码?是到目前为止所花的时间与剩余时间之和的曲线。到了2010年3月21日就得到了上面的这个图。到了这一天,我们发现原本估计的3480总小时数是低估了,更可能的是?所示的3740小时。
以纵轴的性质区分,燃尽图可以分为两大类,即纵轴可以是时间或是事件。以范围区分,燃尽图至少可以分为三类:项目级的、任务级的和需求级的。透过燃尽图,我们可以看到项目进行的情况,项目需求是否按计划进入开发流程,工作是否有延时,或者工作安排的饱和度是否适合。如上图所示,我们可以轻易地看到,照着现在的进度,这项目最可能会延期6到7工作天。当高层看到这图时,就可以在资源上做调动,以避免延期产生的不良后果。
我们刻意使用了这个较理想的图做讲解,为的是让读者更容易理解。它不是个典型的图。在大多情况,使用燃尽图会是比较复杂的,因为它可能包含了需求搜集、编程、单元测试、集成测试和缺陷修复,并且还可能有迭代。所以估算时间会较困难。这个燃尽图的过程是比较稳定的,结果是比较理想的,其原因至少有二:(一)项目里单纯地只有编程、单元测试和缺陷修复任务,全都由程序员搞定;它里头没有需求搜集、集成测试或其他任务。(二)这个项目复杂度低,约一半的编码任务是机械性的,所以估出来的时间较为准确。
(2) 固化工作流以管控过程
对于公司里既定的流程,我们在DevSuite里以图形化的工作流将其固化。下图就是以前面王总监提到的需求变更流程设计出来的。
这工作流指明了,在一个变更事件被创建后,它需要经过一个《评审》状态。在评审阶段里,有三个人(A,B和C)要全部同意,才能到达《通过》状态。有任何一人不同意,状态就转到《拒绝》。当一到达《评审》状态,系统马上促发邮件和手机通知,将信息寄给A,B和C。系统可以预先设定这三人有两天的时间评审该变更。假如两天过了,状态仍为《评审》,那就是有人未及时处理该事件。这时候,系统会自动将事件升级,把状态转换为《升级处理》,系统马上促发邮件,将信息寄给研发部王总监。王总监可以斟酌情况,做最妥善的处理。

使用固化的工作流至少有四个优点:1)提高通知效率 ?邮件和手机自动通知提高效率,沟通出错的机会减少了;2)避免流程出错 ?DevSuite的工作流将流程完全自动化,每个人在收到邮件或短信通知时,照着工作流中既定的步骤操作就行了,省心又省力; 3)工作流变动时处理很容易 ?当流程或人员变动时,系统配置员可以轻易地花几分钟就做完调整,之后所有团队成员就照着流程走便行了;4)避免摩擦?人是有情绪的,固化的工作流使得操作完全对事不对人,避免了人和人之间不必要的摩擦。
以上提到的软件项目风险实例几乎在每个项目中都出现,而且,它们造成的
!--StartFragment-->