ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [技术讨论]06年12月11日关于结对编程实践的一段对话

[技术讨论]06年12月11日关于结对编程实践的一段对话

原创 Linux操作系统 作者:qingrun 时间:2008-01-30 11:23:07 0 删除 编辑

对话内容

海皮-  说:
呵呵,我觉得结对编程最大的阻力在于说明经理这样是可以提高效率的
青润 说:
呵呵,其实在我所看到的论文中,有些数据很充分的论文,说明结对变成并不能始终保证具有较高的质量和较好的效率。
青润 说:
而且,国外所做的所有的研究都是建立在结对的两人组和一个人的开发组之间的对比,如果通过结对的两人组和两个单人开发组进行对比,结果更是未必。所以,我目前不认为结对一定能始终提高效率,但是,我觉得,他应该能够在某一个阶段,或者说项目进行的某一个阶段内提高效率提高质量。
青润 说:
只是这个阶段需要实践来作验证。
海皮-  说:
我们的技术总监认为,只有当结对的两个人的业务能力相差无几的情况下,才能提高效率。我们经理认为,这种方式没法写到公司的月报和年终总结中。
青润 说:
那些数据很充分的论文来自德国,德国人做事的严谨程度也是可以说明问题的。
青润 说:
我觉得有可能我给你们公司做个结对实践的交流吧。否则,很多东西会出现问题的。
青润 说:
你们技术总监的这种看法仅仅是建立在感性的基础上的,他绝对没有实践过,而且没有作过对比试验,所以,这样的话,其实是有点不负责任的
海皮-  说:
我想结对编程可能减少单元测试时,Bug的数目,
青润 说:
这也是有条件的。
海皮-  说:
我们确实没有试验过
青润 说:
想,是没有太多现实意义的,想了以后,要去做,这才有可能来作验证。
海皮-  说:
有道理
青润 说:
其实从实际结对的感受来说,我认为,经验较为丰富的坐在旁边,而经验较弱的动手编码,这样才能提高质量,减少一次编码的bug率。而从效率上来说,只有两个经验相等的人结对才有可能做到。
青润 说:
这是我02年实践的一个总结。
加密助手 说:
--- 系统提示:以下会话未被加密 ---
海皮-  说:
一个有经验的人每天对小组内的新手的程序,做一次走读,是不是也可以起到减少Bug的目的
青润 说:
不能。这样做是无效的。
青润 说:
因为他根本没有时间,也没有足够的精力把所有的都思考到位。[注1]
海皮-  说:
我打算这么做,因为我的小组新手太多。
青润 说:
那样做反而会浪费这个人,不如让这个人自己去做开发。呵呵
青润 说:
这个原因和我前面那个结对方式的原因,你自己考虑考虑,应该能想明白。
海皮-  说:
呵呵,可是我一个人不能把所有的活都干了。
青润 说:
原因你自己去思考。我告诉你的那个结论是必然的,当然可能会有例外,比如这个人是神仙,那就不在此列了。
海皮-  说:
OK,谢谢

青润 说:
不客气。 

几个总结

1、提高编码质量减少一次编码bug率的结对方式:经验较为丰富的坐在旁边,而经验较弱的动手编码,这样才能提高质量,减少一次编码的bug率。

2、提高编码效率的结对方式:而从效率上来说,只有两个经验相等的人结对才有可能做到。


3、国外所做的所有的研究都是建立在结对的两人组和一个人的开发组之间的对比,部分文章的结论是结对编程不能始终保证开发质量和效率始终高于单人编程。

4、如果通过结对的两人组和两个单人开发组进行对比,结果更是未必。所以,我目前不认为结对一定能始终提高效率,但是,我觉得,他应该能够在某一个阶段,或者说项目进行的某一个阶段内提高效率提高质量。

[注1]:

2006年12月11日补充:应该说新手过多的时候,这种指导只能做到对简单问题的核查,对于业务逻辑复杂或者代码质量上是没有什么提高的。更不可能达到结对变成或者交换编程的效果——但是,一个有经验的人轮询多个新手进行开发的方式应该是国内公司十分常见的模式。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/257598/viewspace-165678/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-22

  • 博文量
    178
  • 访问量
    325285