Straybird’s Blog

A blog for life and study

敏捷初体验

公司转入敏捷已经有一段时间了,我们组实践开始得比较早,算起来有1个多月了,从最开始尝试的新鲜感,到第一次开iteration planning meeting开了4个小时时的无奈,再到开始体验到敏捷的好处,一切看似曲折却又无比的顺其自然。当然对于敏捷,我这也只是初体验而言。

刚开始敏捷的时候,我们时常会被各种各样的meeting,繁杂的流程搞得很崩溃,觉得导致效率低下,整天这么开会,还怎么敏捷?讨论的时间都可以把事情做完了!但渐渐地开始觉得每个meeting都有其意义和用处,如果你觉得开会耽误了效率,那说明这个会本身开得有问题。

首先说说iteration planning meeting,个人认为po在其中的角色非常重要,po在开会之前需要做很多的准备,包括写backlog,包括从组员处了解当前的需求等等,如果po没有做好这些准备,会极大地影响到会议的效率。会议的第一步就是要对backlog进行rank,这个如果po前期准备做好了,则很快就能够让大家达到共识,之后的user story打分是会议比较好玩的一部分,因为这个时候owner需要向组员阐述清楚任务到底是什么,然后通过打分讨论最后达成共识,这个过程一开始的时候大家的打分可能会很不一致,但越往后出现大家打分都一样的情况会越来越多,我觉得这一过程一方面可以培养owner表达任务的能力,另一方面就是小组里的每一个人对一项任务都可以处于同样的理解层面。之后的建立task等等不细说了。这个meeting需要详尽地确定在这个iteration中每个人的task是什么,需要多长时间完成等等。个人觉得也是每个人对于一个iteration的承诺。

再来说说daily standup meeting,我们组把这个meeting放到了一天工作差不多结束的时候,需要说三个问题,1.我今天做了什么,完成度是多少2.我明天要做什么,3.我遇到了什么困难,一开始我们的困难仅仅局限于需要别人帮助的问题,然后会后自己私下讨论,后来我们又加了一点,就是当完成度小于100%的时候需要说明原因,我觉得这个很好,这相当于强制我们对一天的工作进行反省,除了理清楚今天做了什么之外,我们也要思考为什么任务没有100%完成,阻挡因素在哪,应该怎么处理,然后在做第二天的plan的时候也会更加仔细地考虑。

最后说说review,retrospective and demo meeting了,这个meeting就是对一个iteration的工作进行总结和反省了。review会看每一个user story,task完成的情况,retrospective就是思考在上一个iteration中有什么做得好的地方和不好的地方,demo就是展示一下做的成果。这个meeting就是一个总结的meeting,这也是我们兑现在plan meeting中承诺的meeting,这也是我们反省思考并且争取在下一个itreation中改善自己不足的meeting。

也许有人会说,敏捷的meeting似乎不是这么分的呀?我觉得敏捷是活的,不是死的,敏捷提出了一些很好的概念,而怎么去实践,则可以根据自己组里的情况和大家讨论的结果,比如我们小组就决定将上一个itreation的结束meeting和下一个itreation的开始meeting放在一块开,总结完之后就开始指定下一个iteration的计划了,我们觉得这样效率更高,更符合我们的实际情况,再比如一开始我们的daily standup meeting是在早上开,说昨天做了什么,今天要做什么,后来发现经常会忘记昨天做了什么,况且我们也不是特别在意这个,所以我们才改为了快下班的时候开,也觉得效果很好。

还有人会说,敏捷也有很多问题啊?对,我也承认敏捷有很多问题,但既然是问题,那就有解决方案。比如突然来了urgent task怎么办?个人对此的回答是,如果这个task不影响整个iteration的plan,那么可以默默地处理掉,但如果影响了,那么就需要联系po,让他决定,如果po决定不做,则联系scrum master,让他去交涉,如果po决定做,那么同时还要挪出一些priority比较低的task,在敏捷中,po和scrum master都是很关键的角色,遇到问题的时候不要犹豫,该寻求帮助的时候就要果断出手。再比如一个iteration结束了,很多task没完成?这个就是在最后的iteration结束的meeting中需要考虑的了,为什么没做完?是对自己的估计失误还是做task时对一些临时的task的处理有问题等等,这样做下一个iteration plan的时候就要多加考虑了。我们很难保证我们每次都能完成所有的任务,但是再一次一次的迭代中,我们对于任务估计与实施的理解会更准确。

最后说说我个人从敏捷中得到些什么吧。
1. 由于自己拖延症很严重,所以这种有计划有deadline的形式帮助了我不少, 这种感觉跟给你一个task,然后就放任不管的感觉很不一样
2. 让我养成了反省和思考的习惯
3. 我清楚地了解了各个组员在做什么,这样遇到相关问题可以很方便地请教或借鉴
4. 学会了时间管理,这算是1的附属物吧,因为deadline摆在那,每天也需要汇报自己做了啥,所以必须对自己的时间和task进行有效地管理

当然,我也没有成为敏捷的脑残粉,其可能不是适用于所有的团队和所有的人,我自己也觉得敏捷走起来也没有那么容易,很多时候反而会成为“敏捷”的绊脚石,当然了,个人还是相信再一次又一次的实践中,一切应该都会变得更有效率,而我们也必将通过不断的改善,让敏捷造福于我们。

Comments