部分取决于您如何进行结对编程。在某些情况下,该对驱动程序正在编写代码,而该对驱动程序的第二个成员正在观察并讨论系统的设计和实现细节。结对编程的另一个实例涉及两个人同时编写代码-一个人在编写实现的功能,另一个人在单元和集成级别积极开发和编写测试代码,再次讨论了系统的设计和实现细节。
无论结对编程的类型如何,它都可以有效地用作连续的代码审查。您有两个人在看代码,看着错误,然后再将它们转入以后的系统/验收测试环境或现场。您还有两个人非常了解系统的特定部分,可以作为冗余来最大程度地减少您的总线系数。尽早发现缺陷和在团队中传播系统知识都可以降低构建系统的成本。
知识的传播也不仅限于团队的技术知识。根据这对对象是谁,它可以使信息在公司的更高级成员与新成员之间流动,以涉及超越该项目的其他事项-编码样式,公司文化,期望等。它还可以使对技术或工具更熟悉的人在实际应用环境中分享他们在该技术或工具中的知识。
如您所提到的,它也确实有助于使开发人员保持专注和顺畅。除了流程外,许多人打扰多个人工作的可能性比一个人打扰的可能性小。如果您走在某人的桌子旁并且他们一个人在工作,但是您需要与他们交谈,则可能会敲门并与他们交谈。如果您看到两个或两个以上的人一起工作或进行讨论,则这种可能性较小。您不会打扰他们。中断会浪费时间,而花费更多的时间则意味着更高的成本。最大限度地提高员工的生产力符合企业的最大利益。
但是,要使成对编程可行,必须克服一些挑战。考虑诸如人格冲突之类的事情,或者选择两人以正确地分配知识。还需要考虑何时旋转配对。随意进行的结对编程可能不会按计划中的那样有效。视团队的组成而定,将人配对可能根本无效。