原文链接

结对编程系列


以下是你的下一次结对编程的模板:

  1. 大声地商定高层次的目标.
  2. 将工作分解成一只手数的过来的任务, 并对其按优先级排序.
  3. 决定你们的"驾驶员"/“导航员"互换策略.
  4. 配置 git 来分享"信用”.
  5. 消除分心的因素.
  6. 工作.
  7. 用一个小型的回顾来分析这次结对

让我们对每个步骤进行详细讨论.

1. 大声地商定高层次的目标

大声地说出你们在较高层次上希望完成什么.

你不会认为两个目标不一致的人开始结对编程是可能的, 但是(定义一致的目标)是出乎意料的简单.

2. 将工作分解成一只手数的过来的任务, 并对其按优先级排序

将你们的高层次目标分解成少量的小步骤是值得尝试的.

这又很多好处:

  • 这使得目标不那么令人生畏.
  • 你们更容易发现死胡同和陷阱.
  • 你们可以按照优先级对任务清单排序.
  • 你们更有可能注意到, 任务 C 比任务 B 更简单, 并适当地重新排序.
  • 你们可以根据你们目前的能量水平来决定当前的任务.
  • 它可以给你们一个地方来放置工作时想到的新任务.
  • 有些人喜欢将每个任务写到自己的索引卡上. 他们堆叠在"导航员"前. 每个卡片都可以成为记录笔记或者想法的好地方, 以便在中途休息时提炼出来.

3. 决定什么时候交换"驾驶员"/“导航员”

Unless you already know what works best for you, I strongly recommend the Pomodoro Technique: 如果你已经知道怎么做对你们来说最有效了, 否则我强烈建议使用"番茄钟":

  • 编码 25 分钟.
  • 休息 5 分钟.
  • 交换 “驾驶员”.

如果你想尝试,还有其他的结对编程方式.

4. 配置 git 来分享"信用"

如果你们两个人在编写同一份代码, 你们两个的名字应该都出现在提交上.

这里有一个方便的指南, 可以正确的配置 git.

另外: GitHub 能够原生地明白这一点, 并把你们都显示在提交上.

有一些工具可以让这件事情更简单:

5. 消除分心的因素

对你的搭档和工作表示尊重.

  • 不要带手机, 或者把它静音.
  • 禁用你用来结对编程的机器上的通知.
  • 关闭电子邮件/Slack/Twitter/IRC. 不要在第二台显示器上保留分散注意力的东西.

6. 工作

做工!

别忘了:

  • 作为导航员: 提出问题而不是提出需求.
  • 作为驾驶员: 说明你在做什么和为什么.
  • 尽量避免过度沟通.
  • 多中断, 多休息.
  • 经常互换角色.
  • 做(当下)最容易成功的简单事情.
  • 避免这些结对编程反模式

7. 做一次小型回顾

在结对结束后, 化几分钟反思下这次精力.

首先, 讨论哪些做得好.

然后, 考虑怎样才能让下一次做得比这次好上个 1%.

可能需要改进的地方:

  • 专注: 是否有分心的情况出现?
  • 沟通: 是否有长时间不说话?
  • 节奏: 配对是不是在任何时间都像在"坐牢"?
  • 责任分工: 你们工作分配得好吗?
  • 代码质量: 你们的最终产品是否高质量?