結對程式設計的利與弊

來源:互聯網
上載者:User

本文同時也發表於:酷殼(http://www.cocre.com/?p=77 )

 

結對程式設計的利與弊 

 

陳皓

http://blog.csdn.net/haoel

 

結對程式設計(Pair-Programming)可能是近年來最為流行的編程方式。所謂結對程式設計,也就是兩個人寫一個程式,其中,一個人叫Driver,另一個人叫Observer,Driver在編程代碼,而Observer在旁邊即時查看Driver的代碼,並協助Driver編程。並且,Driver和Observer在一起時可以相互討論,有效地避免了閉門造車,並可以減少後期的code review時間,以及代碼的學習成本。

 

有實驗證明,平均下來,結對程式設計時間花銷比單人編程增加10%的時間,但也會比單人編程減少15%的代碼BUG。如果再算上後期代碼的維護和學習成本,結對程式設計比單人編程更有效率,還更為節省成本。無論是對Team Dev還是對於Business,結對程式設計都會是非常不錯的Programming Practice。

下面是一些結對程式設計的優點:

  1. 程式員互相協助,互相教對方,可以得到能力上的互補。
  2. 可以讓編程環境有效地貫徹Design。
  3. 增強代碼和產品品質,並有效減少BUG。
  4. 降低學習成本。一邊編程,一邊共用知識和經驗,有效地在實踐中進行學習。
  5. 在編程中,相互討論,可能更快更有效地解決問題。

 

 

當然,結隊編程也會有一些不好的地方:

  1. 對於有不同習慣的編程人員,可以在起工作會產生麻煩,甚至矛盾。
  2. 有時候,程式員們會對一個問題各執己見(代碼風格可能會是引發技術人員口水戰的地方),爭吵不休,反而產生重大內耗。
  3. 兩個人在一起工作可能會出現工作精力不能集中的情況。程式員可能會交談一些與工作無關的事情,反而分散注意力,導致效率比單人更為低下。
  4. 結對程式設計可能讓程式員們相互學習得更快。有些時候,學習對方的長外,可能會和程式員們在起滋生不良氣氛一樣快。比如,合夥應付工作,敷衍項目。
  5. 面對新手,有經驗的老手可能會覺得非常的煩躁。不合適的溝通會導到團隊的不和諧。
  6. 新手在面對有經驗的老手時會顯得非常的緊張和不安,甚至出現害怕焦慮的的精神狀態,從而總是出現低級錯誤,而老手站在他們後面不停地指責他們導致他們更加緊張,出現惡性迴圈。最終導致項目進展效率低下,並且團隊貌合神離。
  7. 有經驗的人更喜歡單兵作戰,找個人來站在他背後看著他可能會讓他感到非常的不爽,最終導致編程時受到情緒影響,反而出現反作用。

是否使用結對程式設計,需要具體問題具體分析,不可盲目。任何事手都有他的好與壞,結對程式設計也不例外,只有知道了好與壞,你才能更好的利用它。

 

最後,需要我們記住的是,人是一種非常複雜的動物,他們的缺點和內心的陰暗面可能會比你想像得還要糟糕,而這些東西是可以讓一切事物失敗的。所以,正如《人件》所說,人才是軟體開發中最核心,也是最需要花時間去關注的事情。

 

 

 

(轉載時請註明作者和出處。未經許可,請勿用於商業用途)

 

更多文章請訪問我的Blog: http://blog.csdn.net/haoel

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.