关于结对编程

如果在百度上搜索结对编程的话,偶尔会搜到一些奇怪的内容,比如“和妹子结对编程是什么样的体验”、基情四射的好基友结对编程图,对于那些喜欢黑程序员,说程序员不懂幽默,不懂生活的群体来说,绝对是一个强有力的反证!

不同的观点

不过这里还是想稍微严肃一点,所以先把这些搞怪的信息排除掉,剩下的观点差不多有这么3类:

  1. 强烈支持
  • 更高质量的代码
  • 更高的“巴士指数”
  • 更高的开发效率
  • 更好的团队氛围
  • 更容易维护的代码
  • 更有助于团队成员发展
  1. 强烈反对
  • 单干得到的代码质量、维护性本身就很高
  • 更低的开发效率
  • 很难适应的团队氛围
  • 能力提升是自己的事情
  1. 辩证观点,适合就结对,不适合就单干

一般来说我们对事物的看法都会存在支持、反对和中庸3种态度,支持和反对多半是出现在不同的维度上,但对结对来说支持和反对两种态度在相同的维度呈现出完全的对立,这就值得我们好好思考一下原因在哪。

个人观点

我个人经常使用结对编程实践,在和团队的不同同事进行结对时获得的体验是完全不同的。

  • 在和团队最厉害的高手结对时,会发现开发效率的确提升了不少,不管是架构还是细节都更好,整个结对的过程精神高度集中在代码上,甚至会忘记时间的存在,到下班时才感到精疲力尽,甚至会有轻微的头痛感。
  • 而如果是和团队的新手结对,就需要额外花时间去解释为什么这样更好,时不时还要确认下对方是否还在follow状态。
  • 个别的同事,在结对时需要特别注意措辞和引导的方式,在讨论设计的时候注意不要触及对方的自尊心。

不过整体来说,结对对于新人的培养、知识备份、代码质量方面都会有加分,在团队氛围方面来看,结对开发相当于是代码走查的极限形式,如果团队的代码走查的氛围 OK,那么在实践结对开发时可能最初的几次会有一些不适,但马上就能适应的很好,反过来如果多次尝试结对编程都有强烈的不适感,就需要反过来回顾下团队成员之间的关系和沟通方式,以及代码走查是否的确有效的开展。

原因在哪

错误的方式

  1. 不理解什么叫做结对
    结对的要领在于一个人领航,一个人实施,两个人在同一时间做同一件事情,在最初实践结对时,常常因为搞不清楚领航者和实施者之间该怎么配合和交流,就演变成了一个人写测试用例,一个人写业务代码,或者一个人写类A,一个人写类B,这种方式显然不能叫做结对。

  2. 不在一个频道上
    正确的结对方式下,两个人的思想是时刻保持高度同步,如果你发现你的队友有点follow不上了,一定要先缓一缓确认下出现了什么问题,先同步上再继续;如果在结对时出现了严重的意见不合,互相不能说服对方的,可以找其他同事一起讨论达成一致后再继续,实在不能达成一致的可以终止结对。

  3. 缺乏交流的技巧
    我有时会怀疑这会不会是很多人选择程序员这个行业的理由,但其实软件开发是一个非常重视交流技巧的职业,比如敏捷宣言中就强调“个体与交互”。如果在结对时浪费太多时间在猜测对方在说什么上面,那结对的效率和效果将会大打折扣。

  4. 过度关注细节
    有时候是因为缺乏代码公约,对细节缺少统一的标准,有时候则是因为结对的一方为了掩盖自己缺乏对代码的把控,过度的关注细节,导致另一方难以忍受,虽然变量命名很重要,但完全可以先放一放把用例先跑通,然后回过头来重构。

能力差距

前面提到过,结对时如果双方的能力差距比较大,则能力较强的一方会觉得效率被明显拉低,而较弱的一方会比较挫败,甚至伤及自尊,最终导致双方对于结对的效果都会给负分。所以结对最好是在能力相当或者差不太多的两人间进行,这样才能保证结对过程中保持有效的互补和高度的专注,最终不仅仅是开发效率提升了,结对双方的能力也能因此而得到提升。

反过来说,通过频繁的、正确的结对,团队成员之间的能力差异一定程度上会减小,当较弱的一方能力得到提升后,他的信心会增强,反而他的自尊心反而就没有那么容易受到伤害,对于较强的一方来说,在结对时也能获得一些差异性的观点,而且团队整体能力的提升长远来看也会减下自己的开发负担。

心智模式

心智模式是借用自《第五项修炼》中的概念,事情在变好之前可能会先变糟,或者说引入变化和得到结果之间存在延时,或者简单点说就是学习曲线。

人类在演进的过程中对外部世界的抽象一直保持着简单线性的模型,因和果之间的距离很短,比如说:

刚才打dota的时候我选择了最新的英雄和战术,我输了,所以下次我还是选择我最擅长的英雄和战术吧。

对于大多数场景这个认知模型已经够用了,所以进化论并没有将这样的人给淘汰掉,然而在现代社会中,特别对于软件开发这种高度复杂和抽象的工作,我们需要重新调整下我们的认知,才能应对这个复杂的世界,比如说:

刚才打dota的时候我尝试了最新的英雄和战术,虽然我输了,但是我想如果能操作更好一些,赢面比选择最擅长的英雄和战术要更大,所以下次我还会选择新的英雄和战术。

我们在尝试结对开发时,往往尝试一两次没有取得明显的效果就立刻放弃了,就是因为我们没有意识到学习的曲线本身就是起起落落,在爬到更高的山顶之前我们需要先走一段下坡路,并不是像爬楼梯一样是一直向上的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,095评论 25 707
  • 2015年度Review已经拉开帷幕,今年你都收到了哪些醉人的反馈呢?和往常一样,作为开发的我听到最多的话题当属结...
    禚娴静阅读 765评论 0 3
  • 认真地抽完这最后一支烟 努力克制自己,不再回忆过去 背起行囊,去远方流浪 让属于天空的还给天空 铁轨旁的蒲公英恣意...
    过路的蜻蜓阅读 396评论 2 2
  • 佛洛伊德说过,梦是愿望的实现。但梦却很难解释,我研读的是心理学,但最终也无法能解读梦,但我的梦很奇怪,所以我希望找...
  • 东去的列车,它背着太阳头也不回 急匆匆穿梭在柿子树林 柿子树举起大红灯笼,关照它前行 它不爬山,也不转山,抱头钻山...
    木貞ma阅读 107评论 0 3