驾驶员和导航员的实际操作(该方法的朝鲜语版)译者的话:今天,我们正在为您出版由数据科学专家
Andrew Sprul撰写的文章 。 他谈到了在同一项目中结对程序员的好处。
我经常听到人们说他们一个人工作最好。 我了解某些适合一个人的想法和方法不适合另一个人。 但是,尽管如此,“一个头好,两个头好”这句话与我很接近。 剪辑的下方是两个视频,显示了两个人在一项任务上的配合情况。 从字面上和比喻上讲,这只是和谐。
Skillbox建议:为期两年的实践课程“我是PRO Web开发人员” 。
我们提醒您: 对于所有“ Habr”读者来说,使用“ Habr”促销代码注册任何Skillbox课程时均可享受10,000卢布的折扣。
这是第二个视频 (作者禁止嵌入第三方资源,但绝对值得一看)。
音乐不是两个人之间的协作可以使一个共同项目受益的唯一领域。 布法罗大学社会学教授迈克尔·法雷尔(Michael P. Farrell)在他的著作《协作圈:友谊动力学与创造力》中谈到了更多内容。 特别是,他认为许多伟大的想法出现在成对工作的人们中:可能是科学家,艺术家,作家。
在绘画中,这是莫奈和雷诺阿,在写作中是托尔金和刘易斯,在科学中是克里克和沃森。您可以列出很长时间。 此外,“生理学和医学”类别的诺贝尔奖获得者中约有一半是两人一组。
好吧,在我们这个时代,“对等编程”(Wikipedia将其描述为软件开发的敏捷方法论)由两个在同一工作站上工作的程序员组成,可提供出色的结果。 其中一个驱动程序编写代码,第二个驱动程序编写观察程序,监视进程并读取键入的每一行。 程序员经常更换角色。
该技术与“教师-学生”模型的工作无关,我们正在谈论两位平等专家的共同工作。 其中一位可能有更多经验,但他们的工作方式相同,权利是平等的。 通常,想法是两个人找到解决方案的速度比一个人快。
最初,一对夫妇可能很难顺利地工作,实际上,这样的工作流程对于许多人来说似乎很荒谬。 但是在这里,和其他地方一样,需要经验。 随着时间的流逝,工作会越来越好,流程会顺利进行,几乎没有问题。

我再说一遍,在配对编程中有两个角色:驱动程序和导航器。 第一个主要任务是遵循代码的细节,实施思想,将其转变为代码行。 驾驶员和导航员应讨论想法和问题。
导航器会注意每条键入的行,并且这种注意不会分散,因为他不需要键入文本。 导航器的主要目的是向驾驶员传达清晰的想法。 导航员应向驾驶员提供一定程度的抽象的指令,以便他能够尽可能高效地实施这些指令。

如果驾驶员有想法,则导航器和驾驶员可以切换角色。 这有助于合作伙伴同步工作。 分享想法类似于集思广益,但这是一个更有效的过程,而且减少了错误率(如上图所示)。
我可以建议成对工作的专家有时会打扰并互相提问。 这有助于朝一个方向思考,相互理解并有效地工作。
配对编程和工作流程

研究结对编程问题后,我发现有几种策略可用于此类工作。 一些选项可以在
这里找到 。 最有趣的策略之一是打乒乓球。 其工作方式如下:
- 程序员A编写了一个新测试,发现它不起作用。
- 程序员B添加通过测试所需的代码。
- 程序员B编写了一个新测试,发现它不起作用。
- 程序员A添加了通过测试所需的代码。
- 回来吧
是的,它看起来并不是理想的工作流程,但是直到我们尝试之前,我们不知道它的有效性。
我最近从一个同学那里得知,Atom具有一个Teletype软件包,该软件包使开发人员可以实时协作,从而使同事可以访问其桌面。 这甚至比只坐在同一个工作站上要好得多,因为它可使您处于更舒适的环境中,并减少分心。
并且不要忘记:您需要在一整天中更改的角色。 但是,您不能使用计时器,因为它会干扰工作流程。 许多人认为您应该在30分钟的间隔内更改角色。 但是这里的一切都是主观的。
从单身到结对节目过渡期间的适应期类似于吃辣椒。 第一次出现所有问题时,您都不喜欢它。 但是,吃胡椒的次数越多,越早开始喜欢它。
总之,所说的话
一旦我听到这句话:“为了使这个想法在图中实现,有必要让它通过另一个人的手。 这种类型的编程是交流和协作。” 在我看来,沟通与合作是成功工作的两个组成部分。
当我与某人一起工作时,我自己会更有生产力。 我作为音乐家的经验表明,与合奏相比,在合奏中演奏要好。 这不是因为我依赖于另一个人,而是当我看到一般工作更有效时,我对成功的信心就会增强。 现在,我有一个比驾驶员更好的导航仪,但是我正在逐步改进。 希望本文对您将来的项目有所帮助。
Skillbox建议: