敏捷开发中如何保障项目进度(相对估算加迭代求精法)

 

随着敏捷开发热潮的到来,很多开发者开始了敏捷之旅!本人也不例外,正踏上敏捷的航班!

 

敏捷开发的模式和普通的开发模式存在几点关键的不同:

@1、敏捷开发拥抱变化。

@2、是人管项目,而不是项目在牵制人。(人永远处于主动地位,不可让项目牵着走)。

@3、采用xp进行项目实践。

@4、采用scrum进行过程管理。

 

本文主要探讨敏捷流程中如何确保项目的开发进度の相对估算加迭代求精法

 

当开发团队第一次被问到"这个项目要多长时间能够完成?"的时候,项目的需求不全,只知道大概的功能模块,非功能性的需求还不是很清楚。

 

那么我们估计确定项目的开发时间呢?在敏捷中可以尝试采用“@@”方法。

 

一、相对估算:

1、项目经理和开发人员:定义功能模块,同时赋予每一个功能模块一个规模系数难度系数 。给出一个初步估计的分值。这个分值供相对参考使用。

     比如,现在有显示,查询,修改三个功能模块,初步确定显示是10分,那么查询可能定为15,修改可能定为20

2、项目经理和开发人员:选取一个分值最小的模块,进一步分析,如上例中显示为10分,最小分值的功能模块。确定,显示需要有设计数据库,查询,显示界面,显示内容等操作,初步确定需要10人天(一个人完成该工作的天数)。这样,一分值对应的工作量就是1人天。那么整个显示,查询,修改加在一起就是45人天。注意,这只是初步的结论。含有相当大的误差。

 

这样相对估算的过程就算完成了。接下来的任务是“迭代求精”。

 

二、迭代求精

1、开发团队开始实现显示模块,如果实际完成所用的时间是12人天,那么根据比例关系,剩余的工作所需的时间就为(12/10)*35=42人天。

2、开发过程中可以根据已经实现的模块,改变未实现模块的分值。然后根据修改后的分值,重新计算剩余模块的相对分值。

 

三、其他总结:

1、开发过程中可以将每个模块定义一个优先级,按照从高到底的顺序排列,对高优先级的模块进行细分,最后确定分值最小的功能模块。

2、在估计模块工作量的时候,可以加入调整系数,开始时,调整系数可能比较高,如0.4,随着项目的进行,各个功能模块的调整系数也在逐渐降低,经过几次调整,可以将调整系数定为0。

3、开始的时候,调整系数可能较大,如0.4,那么上例中项目时间就是[0.6*45~1.4*45]

后面显示模块做过之后,经过调整,剩余工作量是32个人天,现在可以将调整系数定为0.3,那么剩余的项目时间就是[0.7*32~1.3*32]。通过不断迭代,最终对工作量的估算也越来越精确。

4、项目时间的估算是有开发人员自己确定的。那么每个人如何估算某个模块所需要的时间呢?要求开发团队最好能做到每天开个小例会,在会上,每个成员需要当前任务的剩余的开发时间进行重新估计。

5、开发中在每日例会中及时解决瓶颈问题。

6、几次迭代之后,可以确定一个校正系数,这样,在估算任务时间的时候,可以有效避免过于保守或者过于乐观!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值