# Pair Programming 是什麼？對工作有什麼幫助？

- 作者：林鼎淵（Dean Lin）
- 網址：https://deanlin.net/blog/202208/what-is-pair-programming/
- 發布：2022-08-10
- 主題：團隊合作
- 標籤：科技島專欄、Pair Programming、職場
- 摘要：今天想跟大家聊聊 Pair Programming 的話題。

今天想跟大家聊聊 Pair Programming 的話題。

## 什麼是 Pair Programming？

通俗的定義就是雙方看同一個電腦（或是螢幕分享），一個人寫程式（**駕駛員**），另一個人審查他寫的每一行程式（**觀察員**）。

**觀察員**提供戰略方向，**駕駛員**專注執行戰術，透過即時的交流解決問題，並寫出更好的程式。

> 一個人寫程式容易有「盲區」，多一個人在旁邊可以有更廣闊的視野。

## 用 Pair Programming 讓新人成為即戰力

我們希望新人可以在入職後可以快速掌握專案，並對團隊做出貢獻；為了這個目標，每份專案的技術文件都非常重要，它可以大幅減少新人熟悉專案的時間。

但無論文件寫得多麼詳細，新人在開發時總是會遇到一些狀況，比如：

1. 因為對專案不熟悉，導致開發時有「重工」的現象（ex：沒使用既有函式，而是自己撰寫新的函式）。
2. 對功能的運算邏輯不夠瞭解，在「重構」的過程中，把原本的演算法改壞了。
3. 不熟悉專案現在使用的框架，導致「用很複雜的方式」去完成框架已經內建的功能。

上面所提到的這些問題，其實透過 Pair Programming 都能有效改善；在新人剛入職時，可以安排一個資深工程師透過 Pair Programming 了解新人寫程式時的想法，並對完成的部分做 Code Review，盡可能把問題扼殺的萌芽，並加速新人對環境的熟悉。

## 用 Pair Programming 培養全端

我有個朋友曾提出一個很棒的理念，他說：「在職位上區分前、後端，但在能力上希望每個人都是全端。」

其實不管前後端，在程式上面的邏輯都是通用的，只是應用的地方不同。

Pair Programming 亦可用於培養全端人才，在實際執行上，前端與後端為一組，輪流寫對方要完成的功能；因為遇到問題隨時有人可以詢問，因此可以快速了解新領域該注意的種種要點。

這麼做的目的並不是要讓你成為該領域的專家，而是培養工程師的「視野」，讓你更了解系統的整體架構。

## 按照上面的方法就能培養全端嗎？

團隊中每個成員的人格特質不同、工作目標不同，在推行前一定要先評估每個人的意願，否則強制推行只會造成反效果；建議先讓一部分有意願的人先執行看看，觀察成效。

即使團隊成員樂於參與，但每個人的資質與領悟力不同，對原本領域的鑽研深度也不一樣，因此推行的人要注意：「**不要用統一的標準來衡量每個人的進步。**」

> 文章僅是提出不同的觀點以及作法，是否適合自己的團隊、具體如何導入，筆者建議要謹慎評估。

## 想跟大家聊聊

不知道大家在工作中是否有用過 Pair Programming？在使用的過程中有遇過哪些阻礙與問題？可以在底下留言分享自己的感想喔！

如果你是第一次接觸 Pair Programing，在看完這篇文章後會想要在自己的團隊嘗試看看，或是推薦給主管嗎？

如果有自己的想法或不同的見解，歡迎留言一起討論喔！

---

關於作者：林鼎淵（Dean Lin），台灣的生成式 AI 企業內訓講師、外商資安公司軟體專家，也是生成式 AI 創新學院發起人。出版 7 本書（包含全台第一本 ChatGPT 應用專書），兩度獲得 iThome 鐵人賽佳作，累積上百場授課與顧問經驗。（https://deanlin.net/about/）
引用時請附上原文網址：https://deanlin.net/blog/202208/what-is-pair-programming/
