18 December 2008

掐指一算,到TW已经快5个月了, 每天都是结对编程,已经感觉很习惯了,以至于自己一个人写代码的时候感觉没个人一起聊天很别扭,这里说说自己的感受。

首先说说好的地方: 可以使你更专注,两个人一起写代码,想开个小差都不行,眼睛要跟上,思路也要跟上。直接的好处就是生产率提高了。

可以不那么枯燥,写代码写烦了可以聊聊天,休息休息,没思路的时候可以让另一个人思考 :p。

解决问题更有效,一个人的想法难免有偏颇,当一个问题拿不定注意的时候,两个人之间的讨论往往能互相启发,从而找到更好的解决办法。有的时候我们甚至会花大半天的时间用来讨论一个问题,什么代码也不写。这样看起来好像很没有效率,很浪费时间。但是它可以使两个人想法统一,在真正写代码的时候思路会更清晰,写的也会快很多,在涉及到系统架构的时候尤其必要。

有利于知识传播,最有效的学习方式就是一对一的教授,结对编程恰恰就是一个一对一的过程,你可以从别人身上学到不同的思考方式和技术,别人也同样可以从你这里获益。我觉的就凭这一点好处,就应该尝试一下结对编程。

当然有好的就会有不好的地方,不好的就一个字:累。每天下班都感觉疲惫,主要是高强度的思考和交流使得“嘴”和“心”都很累,要是这一天说的还都是英语,就别提多累了。不过随着对结对编程的熟悉与适应,加上经常的短暂休息作为调节,累的感觉会慢慢消失,你就可以好好的享受结对编程了。

结对编程可能会给你好的体验,但是也可能会让你觉得很困扰。我觉得这取决于和你结对的人。如果这个人很open,善于表达,能够接受别人的想法,同时也能表达自己的想法,一切讨论都是基于客观事实,那么结对时感觉就会很好。如果这个人很固执,不肯采纳别人的想法,一直坚持自己的想法,那和他结对就是灾难,还不如自己干自己的。当然也要想想你是什么样的人,是否适合结对编程。

最后,结对编程对沟通和表达能力的要求也比较高,两个人的能力水平最好也能够相似,这样沟通才会比较有效率。