什么是结对编程?
简单通俗,结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。
结对编程的优势
- 通过互相协作,帮助彼此发现并解决问题,从而提高了软件的质量和开发效率。
- 可以避免个人的误区存在,通常个人的想法难免有局限性,自己看自己写的代码总是觉得怎么都对。每个人站在不同的角度能够看到彼此的误差。
- 通过结对,代码至少有一个程序员进行了审查,这样可以让设计、测试和编码更加友好,减少了缺陷,从而提高了产品质量。
- 结对的形式也保证了一个功能至少两个人知道,互为形成backup,不会出现一个人请假或者离职,后续无人知的情形。有的公司还会定期更换结对的人,这样可以让团队的成员都能熟悉到项目的各个功能模块,形成项目集体所有和负责的氛围,避免了一人责任制,自扫门前雪的现象,也可以让团队成员快速的熟悉业务。
在实践结对编程时,需要注意以下几点:
- 两个人的水平需要比较相近,这样可以形成互补,引起讨论。
- 需要注意每个人的角色分配,驾驶员和导航员的职责需要明确。
- 需要注意交流的方式,保持积极的沟通和反馈。
- 需要注意时间的控制,结对编程的时间一般不宜过长,可以适当设置时间限制。
- 需要注意结对编程的目的,避免形式主义,注重实际效果。
结对编程的质疑和争议
- 管理者认为提高了人力成本。一个人可以完成的工作,变成两个人来做,产出就降低了一半,这很显然是一种浪费。
- 团队认为找到合适的结对人员很难。首先水平相差不太多的人在团队中不多;其次结对要求两个人的脾气性格都能够相投,否则很难合作;再次,有些人喜欢单打独斗,不善于和别人合作等等很多的原因和理由