敏捷开发(纪念版)
上QQ阅读APP看书,第一时间看更新

结对编程

两名程序员结对一起写代码。一个控制键盘并输入代码,另一个观察输入的代码,找出错误和改进措施。(2)两个人频繁互动,都全神贯注地写代码。

两个人的角色频繁交换。控制键盘的人如觉得疲劳或遇到困难,就由同伴接过键盘继续写代码。在一个小时内,键盘可能在他们之间来回传递好几次。最终的代码是由他们俩人共同设计和实现的,两人功劳均等。

结对成员并不固定。一个合理的目标是每天至少改变一次组合,使每个程序员在一天之内可以在两个不同的结对组合中工作。在一轮迭代中,每个团队成员都应该和其他团队成员结对工作过,并且所有人都应该参与本轮迭代所涉及的每项工作。

结对编程显著提高了知识在团队内的传播速度。当然,专业知识还是必不可少的,需要一定专业知识的任务通常需要合适的专业人员去完成,不过他们几乎也会和团队中的所有人结对。这将加快专业知识在团队内的传播。在紧要关头,团队中的其他人就能够代替专业人员的角色。Laurie Williams(3)和Nosek(4)的研究表明,结对非但不会降低开发团队的效率,反过来还可以大大降低缺陷率。