结对编程的理解

       结对编程是极限编程(XP)的十二个实践之一,是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法以及同一段代码,并且两人的角色可以随时互换。XP认为结对编程能提高软件开发效率,很多国外软件企业都在热衷于结对编程,Facebook程序员肯特•贝克(Kent Beck)表示:“结对程序员之间的交流非常充分,你甚至可以再也不用言语进行交流。你只要简单描述再结合着手势就可以。”Grockit首席执行官罗伊•吉尔伯特(Roy Gilbert)表示,这种模式已经证明非常成功,他的程序员“正在继续推广这种做法。”而IBM还为结对编程推出了协同开发工具ECF。

       在乒乓结对编程中,观察者编写失败的测试用例,驾驶者修改代码以通过该用例,观察者编写新的单元测试用例,等等。这个循环持续到观察者不能写出失败的测试用例。但是这种方法比估计的计划要花更多的时间。

结对编程也会有缺点比如说:

对于有不同习惯的编程人员,可以在起工作会产生麻烦,甚至矛盾。

有时候,程序员们会对一个问题各执己见(代码风格可能会是引发技术人员口水战的地方),争吵不休,反而产生重大内耗。

两个人在一起工作可能会出现工作精力不能集中的情况。程序员可能会交谈一些与工作无关的事情,反而分散注意力,导致效率比单人更为低下。

结对编程可能让程序员们相互学习得更快。有些时候,学习对方的长外,可能会和程序员们在起滋生不良气氛一样快。比如,合伙应付工作,敷衍项目。

面对新手,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。

所以我认为所谓结对编程就是一个小型的团队合作,可能也是团队合作的另一种方式。对于结对编程有缺点也有优点。

结对编程可能也就是团队合作的雏形,所以我认为在编程中团队是必不可少的。

原文地址:https://www.cnblogs.com/y1503/p/5339281.html