项目总结之结对编程
这是我们项目配对的情况

项目完成后,统计了结对编程与没有结对编程的数据对比。

注:A项目与B项目在规模上和复杂度上相差不大。
对上表进行分析得到以下结论:
1)设计阶段,结对编程比没有使用结对编程慢。因为,两人的讨论更多,想法更多,方案也更多,设计的也更加全面。尽管慢,但是效果和质量明显比没有使用结对编程的质量好。
2)编码阶段,结对编程比没有使用结对编程快。我想主要体现在两人可以保持思维一直高度集中,和对遇到问题解决的速度上。并且是一个逐渐融合的过程,两人融合的快,编码的速度也快。
3)测试阶段,结对编程比没有使用结对编程快。从Bug数可以肯定,结对编程对软件质量有所提高。在测试时间上也缩短,得益于bug数的减少,修改时间减少和回归的次数减少。
2、结对编程中两人不合作问题。
在开始运作结对编程上,这个问题特别烦人。在新人中倒是很好解决,在公司呆的久的员工反成了问题。习惯了单打独斗的,旁边有一个人总是显的不习惯。还有,在性格上不是问题,大家都是一定文化层次的人,很容易融合。但是在生活上,反成了问题,比如一些坏习惯,个性等。我进行如下的解决方法
1)营造团结,和谐,活跃的环境,让大家多点自我表现的机会,使大家充满自信,勇于发言,勇于表达自己的意见。
2)多进行团体活动,下班打篮球,周末有空去一起喝茶聊天(从来没有加班)。做集体运动,使其有共同目标,还相互理解,拉进距离。聊天可以轻松玩笑的指出一些人的坏习惯。
3)多多对小组鼓励奖励,使他们有共同荣誉感,责任心。
4)实在不行,就赶人吧!(我没有用过)。
3、结对编程中两人编程水平问题。
这是很多人提问最多的问题,我很牛,也要结对吗?又或者我是新手,可以结对吗?其实结对编程的内涵为一种共享;一种技术,经验,知识的共享。通过共同商讨、解决问题,来提高沟通,交流,来降低误解和疏远。所以这不是问题,问题的本身在于共享精神,要求大家没有私心,要求大家互相帮助。不管菜鸟与菜鸟,或者老鸟与菜鸟,老鸟与老鸟的结对,都不会有问题。尽管两人编程水平问题有所差异,那也是工作的方式不同罢了,专家级的两个人,更多的是创新,一老一小,更多的是教育,两个菜鸟那就是更多是在唱歌,就像过河的小马。
最后,谈谈公司文化对结对编程的影响。首先要明白,不是什么公司都可以进行结对编程。结对编程是XP的核心实践之一,但很多人执怀疑态度和观望态度。我觉得软件公司的企业文化对是否能成功执行结对编程是一个关键因素。如果下面三个问题都回答是,你可以试试实施结对编程。
1、是否有一个可以能畅所欲言的,和谐平等的,相对民主的环境?
2、是否有一种相互交流,相互研究,共享代码,共享知识的氛围?
3、是否致力于一种共同成长,开放共享的学习型组织?