观点:结对编程并不适合所有人

  • Mike Bria
  • 金毅

2009 年 9 月 26 日

话题:敏捷文化 & 方法

最近几年,结对编程仍旧是最具争议的实践之一。支持者们不吝赞美之词,但是即使不少支持者都不得不承认他们自己公司真正结对编程都困难重重。为什么?Obie Fernandez 给出了 10 个可能的原因。

Obie 所在公司 Hashrocket 的两名员工 Desi McAdam 和 Jim Remsik 在《纽约时报》发表了一篇文章,大谈结对编程好处的,为此 Obie 回应了一篇令人深思的博文,概括了很多公司不能成功实施结对编程的 10 大原因。他首先澄清并解释他是非常认同结对带来的好处的,他认为”结对编程是 Hashrocket 里面最重要的竞争优势之一。”

接着他阐述道:“结对编程,尤其是完全 100% 地实施结对,他不得不逐步提醒大多数敏捷理想主义者:那条路对他们来说可能走不通”,他也解释了为什么。

  • 10 - 大多数软件经理不想在必要的硬件上投资:高效的结对编程需要好的设备,但很多公司不愿意做这种投资。
  • 9 - 大多数软件公司的办公布置不适合结对编程: 很多软件公司让他们的程序员在自己的小隔间工作,但小隔间不能用在结对编程上。
  • 8 - 大多数软件公司还是使用传统的招聘方式: 好的结对意味着有合适的人合适的环境,很多公司的招聘方式并不能保证这一点。
  • 7 - 大多数软件公司会容忍不合群的行为:结对需要双方都谦虚(或者像 Obie 说的那样,需要强力推行“没有混蛋守则” )。不合群(不和谐)的行为不能参合到结对里面来,但很多公司并不会积极处理这种有不良举止的程序员。
  • 6 - 大多数人不理解结对的生产力:关于结对的一个由来已久的误解:“难道这不就降低了一半生产力吗?”
  • 5 - 很多软件公司招聘了不合格的开发人员

  • 4 - 很多软件公司都超负荷以及人员不够:结对编程,尤其在刚开始的胡乱搭配阶段,可能需要更多的人(但不需要更多时间),但很多公司没这么多人。
  • 3 - 很多软件开发人员并不会每个人都喜欢:除非你能有个由善于交往的人组成的小团队,不然你得经过一段痛苦期才能让大家开开心心地一起工作
  • 2 - 很多软件开发人员就是不想那么努力工作:结对编程非常紧凑,会引领着你努力工作,但很多人并没有激情那么努力地工作。
  • 1 - 很多软件公司并不真正地追求卓越:投资结对意味着投资工艺,但很多公司并没有兴趣

Obie 的列表(我在这里做了精简概括,但在你得出判断前,请完整地阅读一下他的文章),并不武断,引发来很多讨论,大部分都在他博文的那个长长的评论列表中。

Brian Guthrie 花了点时间做了一份他自己的列表用来反驳 Obie 的观点。他这么说道:

Obie 和他的公司 Hashrockets 提供了适宜的结对环境,但是很多初次尝试这一实践的人并不会有那种工作环境,而且你也不必都需要有那些。

他在列表里面罗列了他认为 Obie 遗漏或者不尽然的 5 项:

敏捷文化 & 方法