定义:
结对编程是指两个程序员共同完成一个功能或任务,其中一个人负责代码的编写,另一个人负责代码的审查。结对编程的两个程序员水平相当,相互协作,共同完成一个任务或功能。结对编程可以提高产品质量,加快开发速度,同时也可以促进团队合作和知识共享。
特点:
1、两个程序员共同完成一个功能,可以避免个人的误区,减少缺陷,提高产品质量。
2、通过结对,代码至少有一个程序员进行了审查,让设计、测试和编码更加友好。
3、两个人的智慧大于一个人的智慧,可以加快开发速度,提高工作效率。
4、保证一个功能至少有两个人知道,避免出现因一个人离职而导致功能无法维护的情况。
5、可以让团队的成员都能熟悉到项目的各个功能模块,形成项目集体所有和负责的氛围,也可以让团队成员快速的熟悉业务。
地位:
结对编程在敏捷开发中占有一定的地位,据VersionOne的14届年度敏捷状态报告,在组织采用的敏捷工程实践中,结对编程占受访企业的31%,排第八位,仅次于持续部署,高于TDD。
存在的问题:
1、结对编程增加了人力成本,一个人能完成的工作需要用到两个人来完成,产出会减少一半,是一种对人力资源的浪费。
2、结对编程在人员的寻找方面较为困难,需要水平相差不多且脾气相投的人,否则很难实现结对编程。