结对编程有助于提高软件质量和加强团队成员合作。它有非常多的好处,但是,团队成员真的很容易结成对子吗?
Marcos Brizeno,巴西 ThoughtWorks 公司的电脑科学家和顾问开发,在他最近的博客中分享了他的想法,描述了为什么采用结对编程很难。
Marcos 提出如下在做结对编程时的一些挑战:
- 基础设施:团队需要有专用的工作站,提供通用的安装, 例如编辑器,操作系统等。
- 疲劳:提高专注力并不容易,要花很多的精力专注在某个问题上,要分享你的想法和倾听其他人的意见。
- 自我:很重要的一点是要保持谦卑并倾听其他人的想法,而不是争辩。
David Green, TIM Group 的软件工程师,说结对并不适合所有人。他在最近的博客 上分享了他的观点:
任何一个团队最终都是由不同性格的人混合在一起的。外向型的人更喜欢结对,然而内向型的人会更倾向性地认为这很难做到,并且他们尽量避免这种做法。这并不一定是教育或者说服的问题,相对来说也看不清其中的收益,甚至更多内向型开发人员可能会发现整个过程并不比独自工作更快乐。
Joe Barnes,ASCII 字符的制作者,提到了剽窃是团队停止做结对的原因。
我相信我已经意识到了,扼杀我们团队合作的最大因素是结对。老是担心被剽窃就会间接这样的结果。
Marcos 介绍了一项回顾练习,称为“那个人和这个人”,从而得出你们团队结对编程一系列的最佳实践。最初这是一个回顾活动,该活动信息是由 Paulo Caroli(ThoughtWorks 的敏捷教练)和 Taina TC Caetano(ThoughtWorks 的开发者顾问)联合发表的。
把一堵墙分成两个部分,“不要做那个人”和“要做这个人!”:在第一部分,成员写下他们不喜欢哪些行为的示例。第二部分包括大家真正喜欢的行为示例。
然后,走到墙边让团队成员讨论每一个例子。在交流中应该让团队讨论对于某个特定类型的行为有什么看法,大家是否都觉得这个行为还不错呢?有些示例中的行为可能潜显易懂没什么可谈的,而有一些就可能值得深入讨论了。
我认为这个活动是提高团队士气的一个好方法,有了这样的对话,经常会让人们感觉彼此间能够更加地坦诚,因此又会增进了更多的交流。如何感受团队的动力呢?一个比较好的方式就是观察他们互相之间是如何谈话的。通常,一个安静的团队就意味着人们之间都不怎么联系,并且很少分享信息。
查看英文原文: Why Pair Programming is Hard to Implement
感谢夏雪对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论