敏捷开发:如何通过回顾保持学习状态

发表于:2014-04-16来源:博客园作者:Rachel Davies点击数: 标签:敏捷开发
敏捷开发:如何通过回顾保持学习状态 软件开发不是孤独的追击,它需要同其他开发者和其他部门协作。大多数组织建立的软件生命周期没有涉及到如何进行这些交互。现实是许多团队的过程并不符合他们的要求或没有得到一贯地遵循

  软件开发不是孤独的追击,它需要同其他开发者和其他部门协作。大多数组织建立的软件生命周期没有涉及到如何进行这些交互。现实是许多团队的过程并不符合他们的要求或没有得到一贯地遵循。当发生这种情况时,很容易让人产生抱怨情绪,如果你已经有了改进的想法却又无从下手,也会让人感到沮丧。本文提供了一个工具,可以帮助你的团队基于其日常经验进行过程改进。回顾是工具,团队可以利用它来产生积极的变化:从遵循过程到驾驭过程。

  回顾是会议,让整个团队都参与到检查过去的事件过程中,并对就今后如何更高效的工作进行头脑风暴。团队根据获得教训制定对应措施,并应用于自身。本文旨在说明为推动你的团队进行回顾,你需要做些什么。

  背景

  术语“回顾”是由Norman Kerth在其著作《项目回顾:团队审查手册》[1]中创造的。书中描述了如何推动团队在项目结束时举行三天脱岗会议(off-site meetings),以总结经验教训。这种回顾是一种履行后检查(post-implementation review)——有时称为验尸(post-mortems)!等到项目结束时才开始总结经验教训是一件憾事。在2001年,极限编程团队将回顾纳入迭代周期[2]。回顾被加入到另一种敏捷方法 —— Scrum[3]中。并且,在项目生命周期内举行多次简短的“心跳”回顾,是现今采用敏捷方法团队普遍的做法,这使得他们能够在项目进行期间就能收集和总结其开发过程的经验教训,而不是等到项目结束后。

  从经验中学习

  没有经过反省的经验仅仅是数据而已。退一步说,反省我们的经验是我们日常生活中学习和转变的方式。举一个简单的例子,如果我在开车上班途中碰到了严重堵车,我会考虑换一条路径,甚至用其他方式赶到办公室。经过几次试验后,我会习惯于一个新的路径。

  如果人们不愿意做那些注定要重复的工作,说明他们并不是真正地在工作(有些疯狂的定义)。虽然回顾始于回首往事,但这样做的原因是为了改变我们未来的行事方法 —— 回顾是在进行长远地转变。有时候,我们必须重新思考我们的做法,而不是试图以加快现有过程。

  回顾还能改善团队沟通。有一个古老的格言“共享的问题就是减半的问题(a problem shared is a problem halved)”。把我们的经验复述给朋友和同事是我们日常生活中都做过的事情。在团队的成果中,没有人知道完整故事的始末。完整的故事只能通过整理个体经验来了解。通过探讨如何从不同的视角感知同一事件,团队成员能够更好的了解对方,并调整了团队中人们的需求

  化解定时炸弹

  让我们看看如何举行一次有效的回顾。当团队一直受到压力或面临严重困难时,人们的脾气可能变大了,而且团队成员间的关系可能已经出了问题。指望通过把团队集中在房间里一起讨论近来发生的事情简直就是奇迹,这有点不切实际。像任何富有成果的会议一样,回顾需要明确的议程和主持人去保持会议平稳进行。如果没有这些措施,会谈很可能会充满批评和指责。这只会使进入房间的每个人发泄他们的不满情绪,不可能解决任何问题的,甚至还可能使问题加重。

  回顾采用精心设计的结构来消除分歧,将重点转移到学习和借鉴已有经验上。基本技巧是放慢谈话节奏,在完全探究大家对事件的不同看法之后,再下结论。

  基本指令

  检查过去的事件但不评判发生了什么,这更容易使我们转而问:下次是否可以做得更好? 关键是要采用系统思考的角度。为了对此有所帮助,应维持如下假设:问题出在系统创建期间而非个人,这是Norm Kerth所宣称的回顾基本指令,它是所有回顾的基本原则。

  基本指令:不管我们发现了什么,我们必须明白并真正相信,在给定时间、其自身的技能和能力、可用资源及最近状态的前提下,每个人都尽力做到了最好。

  该基本指令的意图经常被误解。显然,有时候人们乱作一团时 —— 或许他们不知道有更好做法,或许他们真的很懒或很残忍。但是在回顾过程中我们的焦点单单是做出改进,因而我们用该基本指令来帮助我们保持在处于有建设性的方式之中。至于个人的拙劣表现则最好交由管理者或人力资源(HR)部来处理,基本指令将这种交流设定在回顾的范围之外。

  基本规则入门

  为了有效进行回顾,需要有人推动会议。主持人应努力营造一种气氛,使团队成员对谈话感到轻松。

  设置基本规则和回顾目标有助于回顾顺利进行。还有一些明显地规则是适用于大多数有成效的会议的,比如设置手机为静音状态。那么我们还需要为回顾增加些什么特别地规则呢?听取每个人的意见是很重要的,因此一个重要的基本规则是“不要打断”,如果在某个激动的瞬间该规则受到了忽视,那么你可以尝试使用“说话棒” —— 某一时间只有一个人可以说话,即持有说话棒令牌的人(令牌不一定非是一根棒子,它可以是办公室的任何东西,如杯子。我所工作过团队用的是一个毛绒玩具,它比杯子更适合在屋里扔来扔去)。

  一旦会议基本规则建立起来了,就应该把规则写到活动挂图纸(flipchart paper)上,并张贴在人人都能看见的墙上。如果人们开始忘记基本规则了,那么主持人的工作就是提醒大家。例如,如果有人在会议室接听了电话,主持人应该和气地引导其离开,这样他的谈话内容不会干扰到回顾。

  安全检查

  另一项重要的基本规则是可选的,即在回顾中参与练习。有些人在小组讨论中可能感到不自在或被揭发了,如果你想让他们在回顾中作出贡献的话,不要在他们的感觉上再雪上加霜是很重要的。当一个团队做最初几次回顾时,执行“安全检查”是很有用的,以了解谁能轻松的对待谈话。来一个匿名投票可以做到这一点,匿名投票要求每个人说明他们多想在回顾中发言,在小纸片上写下范围从1到5的一个数字(1表示“不可能分享我的观点”,5表示“完全可以公开谈论”),主持人收集并统计这些选票,将结果张贴在房间的活动挂图(flipchart)上。此举目的是让与会者认识到,房间里人们相互信任程度是不同的,让主持人评估在随后的讨论中采用何种形势。如果个人的信任程度比较低,让人们在更小的组里工作,并做更多的练习(人们可以匿名的写出评论)是有效的做法。

原文转自:http://kb.cnblogs.com/page/138127/