Pair (结对)已经不是什么新鲜的事情。工作中我们进行 Pair。但是也会经常发现一个问题:“两个人单纯的坐在一起工作或者被领导命令坐到一起工作,并没有什么工作效率提升的“。工作中许多人对 Pair 这个词的理解多于 Pair 应该怎么做的理解。这篇文章将详细描述关于 Pair 的中的详细细节,主要设计内容如下:
- 什么是 Pair Programming?
- 为什么我们要做 Pair Programming?
- Pair Programming 过程中经常遇到的问题(14 个常见问题)
- Pair 的扩展。
这篇文章并不涉及到具体的代码,但是了解清楚 Pair Programming 之后能够让我们在工作中事半功倍。
91 什么是 Pair programming?
先回顾一段历史,1999 年《解析极限编程-拥抱变化》中提出了XP(极限编程),而 Pari Programming 是 XP 的核心实践之一。XP的信条是:如果一个实践有价值,我们就把它做大极致。Pair Programming 随着 20 多年的实践一样已经拥有了多种形式和多种工具。
关于 Pair Programming 的理解分为广义的理解和狭义理解:
(1)广义理解:两名 Dev / BA / QA 等 坐在一台电脑前开发软件;
(2)狭义理解:两名 Dev 坐在一台电脑前开发软件。
上面描述的是 Pair Programming(结对编程),经过20多年,我们做很多事情都可以都可以采用 Pair (结对)的形式,而不仅仅在局限在写代码上。
Pair Programming 的形式:
**(1)键盘/鼠标式。**如果在 YouTube 上搜索 Pair Programming 会搜索到两名小朋友坐在电脑前,一个人操作鼠标、一人操作键盘。现实工作中我至今没有使用过这种方式。
**(2)Ping-Pong 形式。**经常使用的一种方法。比如 TDD 过程就可以采用 Ping-Pong 形式完成,A 编写测试,B 编写实现,B 编写测试,A 来完成实现。在 Ping-Pong 形式中会遇到两人抢键盘的问题,这个使用我们可以使用 switch 方法,轮流交换,确保一个时间只有人来操作。
(3)Navigator-Driver 式。 领航员-驾驶员模式,看过汽车拉力赛的朋友会注意到一辆车上会坐着两人,一名领航员,一名驾驶员。领航员聚焦在实现宏伟目标,Driver 聚焦如何实现。比如前往弯道领航员和驾驶员都期望过弯,领航员会发出指令,前方 200 米发卡弯,下坡,路面有碎石头,驾驶员来控制油门、档位、方向来过弯。Pair Programming 使用这种方式,两人需要首先针对问题达成共识&#x