结对编程最早源于极限编程XP中。
每一行代码的编写都是由两个人在同一台电脑前完成的。结对编程提高了软件质量,却并不会影响交付时间。这是反直觉的,但是2个人在同一台电脑前工作,可以产出与2个人单独工作时同样多的功能,同时质量更高。而更好的代码质量和可读性可以节省项目后期的时间。
结对编程的最好方式是在电脑屏幕前并排就坐。不断地滑动键盘和鼠标。一个人敲键盘并从战术层面来思考当前编写的函数,同时另一个人从战略层面思考该函数如何适应到类中。这种做法需要一些时间来习惯,所以不用一开始感觉到的不适应。
除了编码,其他工作也可以结对完成,比如测试、分析、研究等等。
结对的好处在于可以自动地完成代码评审,从其他人那里学习技巧、技术、领域知识,甚至是良好的习惯。两个人在共同工作时可以碰撞出更好的想法,更迅速的解决掉问题。
还有一点,通过结对编程一种很好的传播知识的方式,降低团队核心人员的压力,降低项目的整体风险。