回归结对编程

开发 开发工具
我这一生中,很少进行结对编程,当然非正式的除外(例如和别人一起解决bug)。在 Typemock 工作的时候,我大部分时间都在改 bug,没有特定的做法,也没有人指导应该怎么合作,仅仅是随意地和不同的人解决不同的问题。

当被问及提高代码质量的***方法时,我一般回答是:代码审查。代码审查是***的减少 bug 的方法。但我更喜欢的是 —— 结对编程。

我这一生中,很少进行结对编程,当然非正式的除外(例如和别人一起解决bug)。在 Typemock 工作的时候,我大部分时间都在改 bug,没有特定的做法,也没有人指导应该怎么合作,仅仅是随意地和不同的人解决不同的问题。

最近我又接触到了结对编程,我现在的感觉和以前完全不同。我更加注重这个过程,而以前的我仅仅对结果感兴趣。

以下是我最近总结的一些要点。大部是作为专家的拍档的角度来说,有些也从主导人的角度。

氛围. 开始一段工作的时候,你大概可以估摸到事情会怎样发展。你有多投入,你的拍档有多投入,你们对问题和代码有多熟悉,这些都很重要。你们***能做到多好,决定于你们的开始。

耐性. 这是说给急性子听的。我不知道以前自己是不是有耐心,但是现在我真的需要下大功夫去培养一下耐心。当我是主导人的时候,我常常需要不厌其烦地对拍档作出巨细无遗的解释。

静心聆听,不要一味反驳. 当我不是主导人的时候,我会一次又一次地要求主导人解释他的方案是怎样解决问题的。当然,我需要安静地听他讲解,才能听明白。但是,要我一声不吭的,太难了。

不当沉默的羔羊. 当我不是主导人的时候,我常常在心里衡量,要不要提出我的疑问。说出来的话,怕他会笑我笨。沉默的话,的确不会引来嘲笑。但是我还是常常逼着自己提问,一般这样开头:“可能是我太笨,但是我不太明白……”。结果,有时候我们会就这个问题讨论下去,有时候拍档则会像看傻瓜一样看着我。

态度很重要. 我自己的态度固然重要,但是拍档的态度也很大程度上影响了结果。例如,当我不是主导人的时候,对方有些言语和举动使我感觉到自己好像拖慢了进度。我经常告诉自己不要那样想。当我是主导人的时候,我尽量控制自己的言行举止,以免拍档误会。当主导人与不,都难啊。

拍档也是很重要的. 无论是菜鸟还是高手,都没有***的拍档,只有最适合的拍档。有时候,你不能选择和谁合作,但你的拍档总有值得你学习的地方。

学会协商. 即使是这个层面的合作,也脱离不了付出和收获的关系。你需要根据进度决定什么时候讨论相应的话题,从命名到测试点。你的拍档可能同意,或者不同意,又或者与你击掌欢呼。失败总是存在的,做好心理准备吧。

缺少争论. 当带领一个新手的时候,我说出来的话好像都是对的,像是无可厚非的事实。这实际上是非常危险的。我们应该鼓励人们发问,对我们的观点提出疑问和建议。可是,很多时候即使我的假设是错的,我还是很难放弃我观点。

结对编程不仅仅是一种开发的手段,它更是一种技巧,需要不断地改进,并应用到实践中去。即使多花点时间也是值得的,就像单元测试一样。当然,结对编程也需要有一些准则:即使尴尬也要提问;当你确信自己的观点是对的时候要大胆地提出来;为了大局,有时候需要妥协一下。

原文链接:http://www.oschina.net/translate/re-pair-programming

责任编辑:张伟 来源: oschina
相关推荐

2013-05-06 10:22:07

结对编程敏捷开发敏捷管理

2013-11-28 10:22:37

编程结对编程

2010-01-27 09:33:40

结对编程

2013-06-20 09:38:57

2015-09-11 08:59:03

结对编程

2023-01-18 23:20:25

编程开发

2013-05-24 09:37:25

结对编程结对编程实践BitBucket

2014-03-03 09:48:55

SSHTmux

2023-04-20 18:45:44

2015-09-11 09:43:27

分析编程特征

2011-06-03 09:58:03

结对编程程序员

2024-01-11 08:00:00

人工智能开发

2011-08-30 10:03:59

软件工程

2017-10-20 11:07:45

编程代码编程模式

2015-08-19 13:35:56

编程代码审查开发者

2010-01-27 09:16:18

结对编程

2014-03-13 11:08:42

结对编程代码审查

2015-09-15 08:46:27

代码质量结对编程

2015-09-15 09:31:36

结对编程

2015-08-19 13:40:58

编程编程更有效
点赞
收藏

51CTO技术栈公众号