BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

文章:成功实施结对编程

| 作者 Jay Fields 关注 0 他的粉丝 ,译者 金毅 关注 0 他的粉丝 发布于 2009年6月4日. 估计阅读时间: 不到一分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!
被人“允许”结对不会取得成功。要想成功的话,就要让团队享受结对的乐趣,并且从中获得生产力的提升。如果你从这个角度来实施结对的话,成功的概率就会高很多。

Jay Fields分享了他成功帮助团队运用结对编程的经验。 他提到了这么几点:

  • 结对空间的配置
  • 一次只关注一个人
  • 交换结对
  • 谁来当驾驶员
  • 结对中的指导者/学习者
  • 常见问题:
    • 不感兴趣&精力不集中的结对伙伴
    • 检查语法的结对伙伴
  • 不该结对的时候
  • 核心结对时段(Core Paring Hours)
  • 做可能管用的最简单的事
  • 强制执行代码审查

这篇文章深刻地阐述了怎么样从“我认为结对编程是个好主意”到“我们正在有规律的结对编程,它给我们带来了很多帮助”的转变。

详细内容,请阅读全文成功实施结对编程

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

有启发 by 陈 明磊

看了这个文章还说有启发的..
一直都想能在我们的行业组里面实施结对编程...

个人认为结对编程在人力资源紧张的时候,只要结对的好,肯定是能提高生产效率的,肯定比单兵作战要好很多,从设计到最终的编码都应该会有很好的质量提升...

关于结对编程学习者 by Teng Daniel

很多的结对编程都是强弱搭配。我觉得这种方式更加好。
1 两个人分析,弄清要解决的问题;
2 有较弱的成员提出方案;
3 水平较高的成员帮较弱的成员分析,为什么提出的方案不好(这对水平高的成员提高水平也有很大的好处,很有challenge,另外较弱的成员也会很快了解系统中的很多Why,帮助他以后可以独立做决定)
4 当然较弱的成员也会提出比较好的方案(由于水平高的成员固有经验,或者思想的束缚)
5 找到一个好的方案,用TDD去实现。

太有指导意义了。 by Zuo Hm

有幸经历过结对编程,这篇文章描述的一些问题也是我们曾经遇到过的,解决的方案也是大同小异。
“让大家离开自己的桌子(和耳机)是很难的,不过要是让他们在一个条件更差的环境里工作可就太蠢了。你应该把地方搞得舒舒服服的,让大家可以心甘情愿的过来。”尤其对这句是感触良多。想当初,还始终不明白为什么要买那么好的设备。实际上结对编程是对开发人员现在的工作方式的一种颠覆。要让他们改变,的确是要先给些能看见的好处。

差异化结队 by yan lix

差异化结队对team内知识的传播是十分有利的,但是通常都要面临结队的两人水平不一致的情况。
如果老让一个人握方向盘,估计那家伙很不爽吧。
不过如果经过一段时间,team内部对pair已经游刃有余了,这时效率会相当的好,
此时看burn down chart会不会近乎一条斜线?! :0

Re: 关于结对编程学习者 by zhu zhu

如果让两个实力相当的弱者进行结对,效果会怎么样呢,是不是能够很好的保证质量

Re: 关于结对编程学习者 by yan lix

"如果让两个实力相当的弱者进行结对,效果会怎么样呢,是不是能够很好的保证质量"
原来我们team就试过新人间搭配,效果不是很好;后来都是新旧/旧旧搭配,而且每周switch两次。
个人感觉经常结对并做规律性的switch可使团队开发速率趋向稳定,降低项目延期的风险。

Re: 关于结对编程学习者 by zhang leslee

问一下
1、当遇到不需要结对开发的时候,比如需要研究一个核心算法或者一个很怪异的问题时候,多出来的同学,怎么安排工作呢?
2、对不感兴趣或者有的人就是一下子容易专注于开发,忽略身边的结对伙伴,如果非要来一下“混乱”那效率是否更麻烦?

Re: 关于结对编程学习者 by 金 毅

多出来的同学可以安排其他的任务呀,一个项目不可能只有算法问题的。对于你的后一个问题,可以尝试一下乒乓结对试试。

Re: 多出来的同学,怎么安排工作呢? by Zhang Charlie

leslee zhang:



问一下 1、当遇到不需要结对开发的时候,比如需要研究一个核心算法或者一个很怪异的问题时候,多出来的同学,怎么安排工作呢?



还有很多工作可以安排,比如让同伴去写对应的测试程序,重构已有的代码等等 ... 这样时间就不会浪费了。

Re: 那效率是否更麻烦? by Zhang Charlie

leslee zhang:



2、对不感兴趣或者有的人就是一下子容易专注于开发,忽略身边的结对伙伴,如果非要来一下“混乱”那效率是否更麻烦?



结对之前最好经过培训,掌握必要的技能。如果尝试之后,两个人不匹配,反而带来效率下降,不如分开工作好,那自然没必要结对。



PP 不是敏捷必需的作法。

Tobias Mayer为什么讲《不要用XP》 by Lea Jean

这篇译文还是很有价值的,看了之后,我明白Tobias Mayer为什么讲《不要用XP》了,
至少我们心里有底了,结对最遭也就是这个样子了

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

11 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT