SCRUM节外生枝(一)

 

每个接触SCRUM的人,可能很快被SCRUM框架所描绘出的美好景象所吸引,SCRUM所运用的方法和流程不难被理解,很容易被拥戴者拿来试验或实施。但当到达某个微观步骤时,一些节外生枝的事情总会发生,SCRUM的圣经里没有药到病除的良方,有的只是过来人亲身体验的痛苦和有关成败的感慨。

 

1.       抵触

 

SCRUM的实施者,最先碰到的节外生枝的事情莫过于在实施刚刚开始时(亦或刚刚被提出来讨论时)来自团队内部的抵触。

MountainGoatSoftware的创始人Mike Cohn在《Succeeding with Agile: Software Development Using Scrum》(中译名《Scrum敏捷软件开发》)的第II部分第6章分析了抵触的方式和原因以及消除这些抵触的方法。他的分析全面而透彻。在此,我只写写我的切身体会。

在我们的SCRUM实践中,无可避免的也遇到过抵触。

首先,我们是分布式团队,中国与美国各有一个软件研发团队,每个团队都有各自的开发和测试人员。语言、地理与文化的差异,阻碍着主张紧密协作、结对编程、面对面交流的SCRUM和极限编程的实施,使得有些人(类似Mike Cohn所述怀疑论者)对使用SCRUM存有疑虑。针对这些问题,我们采取的应对措施包括:

1)       两个团队的互访。经常性地派技术人员到彼岸访问,通过学习、培训、讨论、会议等方式,以增加认识、促进交流。

2)       英语培训。聘请美国外教,对团队成员进行每周2次,每次2小时的英语口语培训,以美国文化和商务交流为主,以增进对对方的了解和减少语言障碍。

3)       安装网络电话系统和远程视频系统,以便于远程通话,参加远程会议。

4)       每人安装Skype等软件,配备耳麦等设备以便随时进行远程交流。

5)       使用Code Collaborator进行Design ReviewCode ReviewTest Document Review等,在大洋间,最大限度地靠近结对编程所体现的精神。

6)       两个团队的主管每天发Status Update,所有团队成员都能看到,每个人都能知道对方团队正在做什么,将要做什么,遇到哪些障碍(Blocks),解决了哪些我方团队所遇到的障碍。

通过这些措施,逐步地使两个团队的成员感觉到我们是一个团队,借着奥运会“One World One Dream”的口号,我们提出 One Team”的精神,并使其深入每个人的内心。

其次,在SCRUM的实施过程中,也有很多细节步骤,被有些人(包括我本人)称作“形式主义的东西”,遭到抱怨。举两个例子:第一个,Planning Poker,每个人都要参加Planning Poker,但事实往往是,那个最了解这个User Story如何来实现的人,他所估算的结果跟其他人差距甚大,这使得他不得不向其他人讲解这里面隐藏的玄机,而使其他人靠近他的想法。这有助于其他团队成员深入了解此User Story的技术机理,但同时也较费时间。最终由于这些抱怨,我们去掉了这个“游戏”,直接由最了解的一两个人直接估算。我不知道,这个经验在开Retrospective Meeting时应该放进Pros,还是放进Cons

     第二个被称为“形式主义”而遭抱怨的东西是Daily Standup Meeting。倒不是因为这个会不重要,被抱怨的是:每天开这个会,形式多于内容。改为2天或3天开一次,似乎并不影响什么。渐渐地,每日例会改为隔日例会或三日例会,而不开会的日子,组员发给UpdateScrum MasterScrum Master把他们汇总起来,再Email给每个人,这样15分钟开会时间的变为5分钟写Update加上5分钟(或者只要1分钟)看汇总的邮件。既然大家没感觉这样有什么不好,调整也许不是坏事。

     我觉得,宏观上对原则的抵触,我们应该提出宏观的方案来打消抵触,而微观上对过程的抵触,我们可以考虑通过调整来减少思想上的和行动上的矛盾。

 

(待续……下一节:Sprint中间改变目标

 

posted @ 2011-03-02 15:08  wanghui  阅读(916)  评论(2编辑  收藏  举报