有关结对编程的一些新想法

来源:互联网 发布:数据库范式例子 编辑:程序博客网 时间:2024/03/29 03:40

以前了解过结对编程,总觉得结对编程的弊是大于利的。这个,与中国人的性格特点有关系。记得有句话,叫一人成龙,两人成虫,来描述中国人的合作关系,所以吧,总觉得两个人坐在一台电脑前写代码最终要么演变为争吵,要么演变为服从,总之,很难演变成为结对编程期望的结果。

今天看《怪诞行为学》这边书,里面提到,拖沓是一种恶习,具有普遍性,而且,对绝大多数人来说,严格的自我控制是很难的事情,这不禁让我想起了现在程序员的一些问题:打开网页,半小时过去了,浏览浏览邮箱,又半小时过去了,聊个QQ,十几分钟又没了……总之,一天中很多时间都不能有效的利用起来。也曾尝试过断网或者禁QQ等,但是,确实导致很不方便,而且效率没有明显的提高。

突然意识到,结对编程,很大的一个作用就是能够减少私人的时间,有效的把时间利用起来。能否改进一下呢?

结对两人,基本上只有两种情况:两人水平相似;两人水平一高一低。

针对两人水平相似情况:A、B两人水平相似,结对编程,每个人都有一台电脑。分配给A、B两人相似的任务,但是,A的任务由A对B进行指导,B完成功能、代码,A对B完成的代码、功能进行验证、检查;同理,A完成B的任务。这样做的好处是,AB水平很差,可以相互学习;AB一旦有了争执,可以用事实说话,比较两人工作相似,同时,AB之间存在相互检查、竞争,也符合结对编程的一些思想,保证了有效的减少私人时间。当然,这种结合方式,还是需要有一个高层的领导适时的进行监督检查,杜绝一些不恰当的行为。这种模式比较适合在项目初期进行或者两个项目老人对项目进行维护时进行。

两人水平相差较多:适合老人带新人。AB结对,A水平比较高,B水平比较低,由A指导B进行代码的开发,并随时对代码质量进行监督检查,从而至少保证了B的代码具有较高质量,B能快速的了解业务,A在业务层面上具有相当的水平与表达能力,同时对业务层面上的东西进行验证。适合培养新人,或者项目老人指导项目新人时配对。

打算在公司推广尝试一下,看看效果如何。刚刚进了几个新人,用起来还是费劲点,希望能快速的带起来,下面马上压力大了以后,可以快速完成项目。

原创粉丝点击