结对编程感想

公司一直采用敏捷开发模式,一般都是单人分模块开发,而这次项目太大,技术要求较高,而技术储备又不够,所以首次结对编程进行开发。

结对编程,顾名思义,就是双人结对进行编程,说白了就是两个人写一个功能,这个在国外的敏捷开发小组里非常普遍,而在国内则较少,原因是两个人做一个事,就意味着效率的“降低”(注意,我这里的降低是打引号的)。

这个项目有4个实际开发的工程师,根据能力,我分为A,B,C,D四个级别,其中我们采用的底层框架,只有A和C熟悉,其余两人首次接触。

根据互补原则,我将AD分为1组,BC分为2组。

经过了将近3个月的开发,我发现了一些有意思的现象,记录下来,以供大家参考。

首先是业务需求的整理和讨论,对两组同时进行了需求的阐述和协商,结果很明显1组的理解速度比2组快,于是开始开发。

1组基本是指导式的开发,A一直在指导D如何做,而2组则是协商式的开发,BC一直在讨论研究如何做,由于需求理解的不深,也一直询问需求方如何处理,第一个月,1组开发的速度比2组快,2组更多的时候是花在讨论需求,找技术解决方案上。

第二个月下来,情况发生变化了,2组的效率明显提升,而1组的效率则开始降低,原因是2组的技术交流产生的作用,BC能够同时快速解决问题,而且由于是双人编程,代码成功率大大提高,配合效率明显,而1组由于是教学式的,当遇到问题后,更多的是A在独自处理,由于实力相差较大,技术的讨论和相互监督的作用几乎没有了,也造成了1组的士气低落。

我们知道单人开发的时候,总会随着坏境的变化而心理出现波动,注意力会出现不集中现象,经常被打断,就会影响开发效率,而双人结对,一直是处于交流状态中,很难出现注意力不集中的现象,而且一旦中断,总有一个人能快速进入中断前状态,所以从表面上看结对开发,浪费了一个程序员的人力,但是从效率上看,却节约了大量返工,时间浪费等情况,代码的通过质量明显提高,而且由于是双人编程代码的质量也得到了保证,至少是两个人都能看懂的,避免了一些疏忽。

但是1组并没有发挥出双人编程的好处,原因就是当双人实力差距较大时,沟通上就会存在一些不平等,从而形成一些抵触,各管个的情况出现,双方出现了不信任感。

所以在进行结对编程的时候,一定要注意程序员的能力差,已经性格等因素,用的好时,开发速度并不比单人开发来的慢。



无觅相关文章插件,快速提升流量

标签:

实在不堪垃圾评论的骚扰,还是禁止了吧,有事微博联系吧。