讓結對編程更有效的十種方法

wnbx 8年前發布 | 14K 次閱讀 結對編程

如果你回憶一下自己結對編程(pair programming) 的經歷,有多少次你能感覺到自己效率和能力的提升呢?又有多少次你為不愉快的經歷而煩惱?

結對編程為軟件開發團隊(不管他們是否采用敏捷過程)帶來的好處已經廣為人知,但是要有效的實施結對編程,不僅需要團隊的成員相信結對編程的益處,更重要的是,他們要全身心的投入。

怎樣才能讓結對編程更有效呢?僅僅是兩個人共同完成一個任務并不意味著那是一次有效的結對經歷。除了完成任務,結對編程也是增進你和其他團隊成員之間關系的好機會。你們可以互相學習,不僅僅是技術,也可以多了解一下彼此國家和民族的文化。你也可以了解一下他們的追求,他們為什么充滿斗志,又為什么垂頭喪氣。

Marcos Brizeno,一個在巴西的ThoughtWorker,  在他的一篇博文中提到了結對編程中會碰到的挑戰:

  • 編程環境:結對編程中要使用相同的硬件和軟件
  • 疲勞:結對編程中每個人都要保持高度的注意力
  • 自尊心:當你的想法不被接受時,需要保持虛心,避免不必要的爭吵

好吧,我也沒有什么靈丹妙藥能讓結對成為更加神奇的體驗,不過在這里我還是有幾點建議,讓大家可以更好的面對Marcos提到的那些挑戰:

#1 -不要讓一個人霸占鍵盤

結對編程中,對開發環境更熟悉的那個人經常會長時間掌控著鍵盤。另一方也覺得如果他寫代碼的話會拖慢進度。這樣做的壞處就是,任務結束的時候,對開發環境不熟悉的那個人沒有多少進步,他依舊不熟悉這個開發環境。對此,我們的解決辦法是設定鬧鐘,時間到了就互換,雙方輪流寫代碼。

#2 -要共同管理注意力

出于多種原因,結對中的一個人可能會比另一個人更能集中注意力。當這種情況發生時,如果你是能集中注意力的一方,你要停下來和另一方討論這個問題。讓你的另一半自己恢復他/她的注意力可能要花很久的時間,你自己也可能因此喪失注意力。 番茄工作法 之類的竅門可以幫忙提升注意力,但你最好還是和對方共同討論來找到最佳解決辦法。

#3 -不要一個人干活

有時你的另一半需要離開一會。這時,你要停下手頭的活,盡量等她/他/它回來。在等待時,你可以做點其他有益于項目或公司的事情,也可以處理一下自己的雜事。當然,有時也要看具體情況。如果情況緊急,你不能停下來,那當你的另一半回來時,你要把自己單獨做的那一部分解釋清楚。

#4 -要有勞有逸

干活的時候集中注意力很重要,但是過度集中注意力是有害的。畢竟我們都不是機器人,誰也不能連干八個小時不帶休息。所以我們還是需要間斷的休息時間。休息的時候完全不要想工作的事情,也盡量保持兩個人在一起,比如討論個大家都關心的話題,一起打打游戲,一起喝杯咖啡之類的。

#5 -要慶祝你們的成就!

在任務每一階段結束的時候,或者每次結對結束的時候,你們要好好回顧一下自己的成就,要給自己一點激勵。好好慶祝吧!跟其他同事分享一下你們的成果也不錯。

#6 -要和你的同伴保持同步

很自然的,有時一個人比另一個人對任務了解的更深入。這有可能造成兩個人的節奏不同步,以至不愉快的經歷。如果你了解的更多,你要及時意識到這一點,控制你的節奏,讓你的同伴跟上。必要時,停下你手頭的工作,好好解釋一下。同樣,如果你是跟不上趟的那個人,要及時提出來。讓你的同伴慢下來,好好跟你解釋他/她到底在做什么,以及為什么這么做。記住,溝通是必須的。

#7 -要使用合適的交流方式

在交流時,要使用結對編程的兩個人都能理解的語言。很難想象你能準確的理解一個句子,如果你連句子里的單詞都不認識。所以,請盡量用簡單直白的描述。如果有幫助的話,不妨在紙上把自己的想法畫出來。你也可以找別人幫忙,如果他能把問題解釋得更清楚。

#8-要學會處理分歧

在結對編程的過程中,分歧是經常會有的。面對分歧時,雙方都應該先仔細聽取對方的觀點,然后用平靜和尊重對方的語氣闡述自己的觀點。這時侯,最忌諱的就是盲目自信。你要試著從對方的角度看待問題,這會讓你發現自己遺漏了的地方。不要把這變成一場誰對誰錯的爭斗,你也沒必要在每次辯論時都成為獲勝的那一方。如果雙方實在沒有辦法達成一致的觀點,那就試著找別的同事幫忙做個選擇。

#9 -既要作學生,也要作老師

就算你才剛剛加入一個新的項目,所知不多,你也能立刻作出自己的貢獻。同樣的,如果你和一個剛剛加入項目的新手結對,你也要留給他/她發揮自己能力的空間。多問些啟發式的問題,逐步的解釋你們的任務,在潛移默化中讓你的同伴自己找到解決方案。此時你需要扮演的是一個良師益友的角色。

#10 -要及時提供和接受反饋

在結對結束的時候,要抓緊機會給對方一些意見和建議,再拖一陣,你的印象就模糊了。不用搞得太正式,15到30分鐘足夠了。你可以評價一下和他/她結對的感覺如何,他/她有什么需要繼續保持或改進的地方。如果你趕時間,至少也要把自己的想法記錄下來,然后等有合適的機會轉達給你的同伴。

最后,值得一提的是,我在這里提供的竅門都是我以前和其他結對編程時收到的建議。這些不是什么金科玉律,你就當作我給你的建議好了。

那么,現在輪到你給我提建議了。你有什么更好的辦法來應付結對編程中的各種挑戰嗎?歡迎拍磚。

 

來自:http://www.techug.com/10-ways-improve-your-pairing-experience

 

 本文由用戶 wnbx 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!