SAP項目中的結對編程(Pair Programming)

1. 背景

結對編程(Pair Programming)是一種敏捷軟件開發(Agile Software Engineering)的方法,兩個程序員在一個計算機上共同工作。

很多人會問,爲啥要進行pair?爲啥本來一個人的工作要兩個人去完成?

其實這是一個“短期最優”VS.“長期最優”的問題。

短期來看,一個程序員完成編碼確實會速度最快,效率最高;但隨着需求的增加,代碼複雜度也會越來越高,運維的cost會慢慢超過開發新功能的cost。這時pair的優勢就顯現出來了,通過pair的方式,可以在項目初期就更好控制代碼質量,降低項目風險,保證項目長期、穩定的運行。

SAP的實施項目中,通常面臨需求複雜、人員變動頻繁的問題,有效的使用pair的方式進行項目實施,則能有效地提升項目的進度和穩定性。


2. Pair的要點

  • 兩個role - 駕駛員“Driver” + 領航員“Navigator”;
  • 要經常進行角色互換;

 

3. Pair的優勢:

  1. 分工明確:Driver進行代碼的實現,Navigator在Dirver編碼過程中,一起review代碼,並做代碼的全局性考慮。通常senior的程序員更多的時間會擔任Navigator的role,較junior的程序員進行編碼的driver;
  2. 保證質量:研究表明,程序員實現代碼和運維代碼的時間比例大概是1:10,通過結伴編程的方式,可以讓程序要有花費更多的時間用於代碼設計,儘可能地減少bug, 從而更好地保證代碼質量,降低在代碼運維過程中的花費;
  3. 傳遞經驗:結伴編程可以快速提升程序員的編程能力,新老搭配pair,快速地幫助新人更快地成長和融入項目團隊;
  4. 減低風險:在項目中,往往會出現“沒有人能讀懂的代碼”,通過結伴編程的方式能保證對於一段代碼至少有2個人負責,從而降低由於人員變動引發的項目風險;
  5. 團隊合作:兩個人一起編程往往較一個人solo編程更加有趣,通過這種方式也有助於促進團隊成員間的溝通和了解。

4. 要點

結伴編程的兩個人難免會出現“想法不一致”的情形,記住下面的幾點有助於解決結伴編程過程中遇到的問題:

  1. 作爲driver,要意識到“自己是可能犯錯的”,不要礙於面子,不好意思面對自己的錯誤,犯錯是成長的必經途徑;
  2. 尊重你的同伴,分清代碼和同伴,你們只是意見不同,討論要對事不對人。

Pair Programming好比汽車拉力賽中的co-driver,比賽的成功需要pair間的緊密協同,SAP項目的成功也是靠着每一組pair的共同努力。

發佈了68 篇原創文章 · 獲贊 52 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章