Agile VS PMP -- Part 2 About Sprint(Iteration)

本文探讨了敏捷开发中迭代的核心概念,解释了为何采用短周期迭代,如何切割项目并确保产品质量。通过持续改进和快速响应变化,实现高效项目管理。

Agile 的另一个关键词 “series of short, stable, time-boxed iterations”。

这里迭代(Iteration,Sprint)是主语,series,short, time-boxed都是迭代的形容词,也即迭代在Agile里边的特性,stable在RUP迭代里边就有了。

所谓迭代,简单地说就是持续改进或者螺旋上升。早在1950年,戴明和朱兰就把人们做项目的过程概括为PDCA(Plan Do Control Action),一次次的PDCA,并且对产品或过程本身持续改进的过程既是迭代了。PMP将项目过程组概括为启动,规划,执行,监控,收尾也很不错,很万能。每个跌代干什么?其实就是不断的启动,规划,执行,监控,收尾;不过一次比一次进步,一次要比一次完美。至于迭代的优点RUP里说的很多了,这里就不重复了。

Agile的特性或贡献就是迭代的周期短,频率高;确切的说是把原来较长的项目生命期切成更多更小的chunk或迭代来处理。RUP强调项目和项目间的迭代,而Agile更多的强调对项目本身做切割。
我公司推荐的迭代周期是2-6周,假设项目做1年,迭代个十几二十几次都有可能。怎么样,周期是长是短?可能还真不一定,有的朋友2天就deliver一个产品,有的team实践过1周一个迭代的Agile也都OK。项目生命期的长短各异,所以迭代周期不同可以理解,但这里强调的是深度切割。

那么为什么深度切割,切割后干什么,怎么切割,切割后会遇到什么问题,如何克服这些问题,如何balance速度和质量?

 

1 为什么深度切割
昨天去同一首歌, 听主持人说北京的特点用1个字概括,就是变,唯一不变的就是不停的变。其实,项目的需求也是这样的,即便你用最好的方式去挖掘和收集了用户的需求,需求的变化还是必然的。举个射箭的例子,你对着靶子瞄准半天,终于开弓放箭,但靶子移动了,你肯定射歪了,瞄准了半天也白费了。怎么办?还真不好办,只能给这个箭加个调整装置,在飞行过程中不断的根据靶子的移动调整自己的飞行线路,最后命中靶心。Agile便是这个原理,将你的项目生命期分割成更小的周期,给你更多的机会去自我调整,避免无用功或路线错误。对我们的产品而言,2-6周是一个比较合适的调整期。

此外,you konw,小的东西总是很好控制。所以,东西分的更细(要合适),你对时间,进度,成本,质量,风险的控制应该越有效、越可靠。

 

2 切割后干什么
调整方向。
就产品而言,每个迭代或2-3个迭代要有可交付的成果,拿去让Stakeholder review,并从他们那里得到及时的反馈。还记得吗,Stakeholder的反馈是迭代的triger。Stakeholder满意了,要巩固战果,并且下此还这按这个思路招呼。如果Stakeholder不满意,你应该庆幸,你有比传统方式更多的机会去调整你的方向。我的项目证明了这点,项目初期Stakeholder对产品不是很满意,但我们我们有足够的时间为之作相应的调整和改进,所以项目后期,终于有个皆大欢喜收尾。

就流程而言,我们个迭代结束后都总结我们做对了什么;做错了什么,该如何改,几个月后,我们的team高效而和谐。举个例子,在项目最初,我们迭代周期是6周,可是我们经常delay committed的工做,可是到了中后期,我们可以适应2周的迭代。

 

3 怎么切割
WBS切割。PMP里边说的概括的真明白,Work BreakDown Structure. 按着树形结构细化你原比较来大的LineItem. Agile里边把细化后的工作单元叫User Story(Use Case). IT里边的经验值是这个Story要在80小时能够完成,真正应用中可根据需求自行定夺。

Stroy组合。Pick up一些有关联的Stories作为本次迭代的工作内容,可能是一个有实体意义的功能。迭代结束的时候提交这部分功能给Stakeholder Review.

 

4 切割后会遇到什么问题,如何克服这些问题,如何balance速度和质量?
实践Sprint最常见的问题就是Story估算不准确,特别是初次实践Agile的team。team往往高估自己的能力,因为在长周期工作环境下,我们有更多的时间容忍code质量较低或不稳定的状态。而短周期、高质量条件下一个周期里边做的工作会比想象的多。举例来说,一个Developer往往忽略对test时间的估算,而这是必须的。所以大部分team run Agile的第一个sprint都是以不能完成全部任务收尾。我们第一个sprint commit了300多story points,可是我们最后只deliver了90 points。Less then 1/3.

另一个问题是短时间内如何提供高质量的产品。比如,我们的产品测试要cover20多个平台,Regression test的功能要包括所有上个Release的所有功能,在1个sprint周期里怎么能完成这么多工作呢?如果这样的问题出现,首先要看Story切分是否合理,然后要考虑如何提高效率,work smart。就我们的case我们最终采用了Automation技术作为我们高速迭代的技术保证。关于Auotomation的话题又有很多,以后会写专题讨论。

所以,如一个朋友所说,Agile的一个特点就是小步快跑。不断调整方向,最终命中靶心。

顺便提一句,希望这篇文章让你消除一些对Agile的误解。 Agile不是让你用半年的时间干1年的活,是要你在这在一年里频繁的迭代。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值