Pair Programming 是什麼?對工作有什麼幫助?|專家論點【林鼎淵】
今天想跟大家聊聊 Pair Programming 的話題。
▋什麼是 Pair Programming?
通俗的定義就是雙方看同一個電腦(或是螢幕分享),一個人寫程式(駕駛員),另一個人審查他寫的每一行程式(觀察員)。
觀察員提供戰略方向,駕駛員專注執行戰術,透過即時的交流解決問題,並寫出更好的程式。
一個人寫程式容易有「盲區」,多一個人在旁邊可以有更廣闊的視野。
▋用 Pair Programming 讓新人成為即戰力
我們希望新人可以在入職後可以快速掌握專案,並對團隊做出貢獻;為了這個目標,每份專案的技術文件都非常重要,它可以大幅減少新人熟悉專案的時間。
但無論文件寫得多麼詳細,新人在開發時總是會遇到一些狀況,比如:
- 因為對專案不熟悉,導致開發時有「重工」的現象(ex:沒使用既有函式,而是自己撰寫新的函式)。
- 對功能的運算邏輯不夠瞭解,在「重構」的過程中,把原本的演算法改壞了。
- 不熟悉專案現在使用的框架,導致「用很複雜的方式」去完成框架已經內建的功能。
上面所提到的這些問題,其實透過 Pair Programming 都能有效改善;在新人剛入職時,可以安排一個資深工程師透過 Pair Programming 了解新人寫程式時的想法,並對完成的部分做 Code Review,盡可能把問題扼殺的萌芽,並加速新人對環境的熟悉。
▋用 Pair Programming 培養全端
我有個朋友曾提出一個很棒的理念,他說:「在職位上區分前、後端,但在能力上希望每個人都是全端。」
其實不管前後端,在程式上面的邏輯都是通用的,只是應用的地方不同。
Pair Programming 亦可用於培養全端人才,在實際執行上,前端與後端為一組,輪流寫對方要完成的功能;因為遇到問題隨時有人可以詢問,因此可以快速了解新領域該注意的種種要點。
這麼做的目的並不是要讓你成為該領域的專家,而是培養工程師的「視野」,讓你更了解系統的整體架構。
▋按照上面的方法就能培養全端嗎?
團隊中每個成員的人格特質不同、工作目標不同,在推行前一定要先評估每個人的意願,否則強制推行只會造成反效果;建議先讓一部分有意願的人先執行看看,觀察成效。
即使團隊成員樂於參與,但每個人的資質與領悟力不同,對原本領域的鑽研深度也不一樣,因此推行的人要注意:「不要用統一的標準來衡量每個人的進步。」
文章僅是提出不同的觀點以及作法,是否適合自己的團隊、具體如何導入,筆者建議要謹慎評估。
▋想跟大家聊聊
不知道大家在工作中是否有用過 Pair Programming?在使用的過程中有遇過哪些阻礙與問題?可以在底下留言分享自己的感想喔!
如果你是第一次接觸 Pair Programing,在看完這篇文章後會想要在自己的團隊嘗試看看,或是推薦給主管嗎?
如果有自己的想法或不同的見解,歡迎留言一起討論喔!
☛ 如果想更深入認識我,可以 Follow 筆者的技術部落格 。
☛ 如果對工程師的職涯感到迷茫,筆者最近出版的新書 也許能給你帶來不同的觀點。
瀏覽 1,691 次