探索结对编程(2)
作者:佚名; 更新时间:2014-12-05
3 结对编程遇到的问题
结对确实能给工作带来质的飞跃,但是通过结对实践,它也会带来一些新的问题。
3.1 由于人员的变动,来了新成员
在这种情况下,前期确实会对其搭档产生一定的影响,但是磨刀不误砍柴工,通过结队编程,可以最快的使新成员进入状态,信捷职称论文写作发表网,通过后期的高效完全可以弥补前期的消极影响。
3.2 后面坐着的人跟不上写代码的人的思路,写代码的人要不断对其讲解
结队编程不仅仅只是一起写代码,在写代码之前也需要一起对需求进行探讨,一起讨论设计方案,达成共识之后才再一起写测试用例,一起编码,一起测试。如果出现跟不上的情况,那么赶紧停下来,需要讨论的时候到了。
3.3 由于每个人有不同的习惯风格,坐在后面的人不习惯写代码人的代码风格
这正是XP另一个关键实践的必要性:代码规范。在采用XP方法后,要求所有成员编写的代码都想出自于一个人之手写的,这样才能使代码本身就是设计,方便所有成员沟通维护。通过代码规范之后,也才使XP强调的另一个关键实践“代码共同拥有”成为有效。
结对可以使两个人精神更加集中,可扩展思路以创造更简单,更严谨,更便于修改重构的代码,所以这正应对了项目时间紧的要求。因此结对编程确实是强度非常大的一件事情,所以XP强调40小时/周的另一实践。
4 结对编程的几条准则
用编码规范来支持结对编程:如果两个人整天把时间浪费在争论代码风格的问题上,那么结对编程就不可能发挥它的威力。应该尝试对风格进行标准化。
不要让结对编程变成旁观:不掌握键盘的那个人应该主动参与到编程当中,他应该分析代码,提前思考接下来的代码应该做些什么,对设计进行评估,并对如何测试代码做出计划。
有规律地对结对人员和分配的工作任务进行轮换:如同在其他的协同开发实践一样,结对编程的好处在于能够让不同的人熟悉系统的不同部分。有规律地进行轮换有助于知识的互相转播——有些专家建议尽可能经常进行人员轮换,甚至每天进行。
鼓励双方跟上对方的步伐:要是其中一个人相对走得太快的话,那就会大大限制了其结对搭档的作用。速度太快的人需要放慢步伐。否则这对组合应当被拆开,然后和其他人重新组合。
避免新手组合:两个人当中至少一个有结对经历时,结对编程的效果最好。
Pair Programming有很大的优势,是获得XP最大价值的关键。没有Pair Programming,无法实现有效的Continuous Code Review,代码质量下降;没有Pair Programming,Communication很容易弱化,进而影响Team work。然而Pair Programming是XP所有的Practices中最被争议和被认为是最难接受。
Pair Programming是个渐进的过程,有效率的Pair Programming不是一天就能做到的。Pair Programming是一个相互学习,相互磨合的一个渐进过程。 Developers需要时间来适应这种新的开发模式。刚开始的Pair Programming很可能不比Solo Programming有更高的效率。但适应后的Pairs的开发质量,开发时间都应该比Solo Programming有大幅度的改善。因此我们需要在不断实践中克服结对的一些不足,相信到最后一定能达到一个完美的结对方式。
参考文献:
[1] 陈斐. 结对编程技术[M]. 北京:机械工业出版社,2004.
[2] Laurie Williams,Robert Kessler,等. Pair Programming Illuminated[M]. 北京:机械工业出版社,2004.
[3] William C. Wake. 探索极限编程XP系列丛书[M]. 北京:人民邮电出版社,2005.
[4] Scott W Ambler. 敏捷建模—极限编程和统一过程的有效实践[M]. 北京:机械上业出版社,2003.
上一篇:数据库全文检索的安全技术研究
下一篇:移动播客的发展及产业模式研究
热门论文