結對程式設計的利與弊
結對程式設計(Pair-Programming)可能是近年來最為流行的程式設計方式。所謂結對程式設計,也就是兩個人寫一個程式,其中,一個人叫Driver,另一個人叫Observer,Driver在程式設計程式碼,而Observer在旁邊實時檢視Driver的程式碼,並幫助Driver程式設計。並且,Driver和Observer在一起時可以相互討論,有效地避免了閉門造車,並可以減少後期的code review時間,以及程式碼的學習成本。
有實驗證明,平均下來,結對程式設計所花費的時候比單人程式設計增加了10%,但也會比單人程式設計減少15%的程式碼BUG。如果再算上後期程式碼的維護和學習成本,結對程式設計比單人程式設計更有效率,還更為節省成本。無論是對開發團隊還是對於Business,結對程式設計都會是非常不錯的Programming Practice。
下面是一些結對程式設計的優點:
程式設計師互相幫助,互相教對方,可能得到能力上的互補。
可以讓程式設計環境有效地貫徹Design。
增強程式碼和產品質量,並有效的減少BUG。
降低學習成本。一邊程式設計,一邊共享知識和經驗,有效地在實踐中進行學習。
在程式設計中,相互討論,可能更快更有效地解決問題。
當然,結隊程式設計也會有一些不好的地方:
對於有不同習慣的程式設計人員,可以在起工作會產生麻煩,甚至矛盾。
有時候,程式設計師們會對一個問題各執己見(程式碼風格可能會是引發技術人員口水戰的地方),爭吵不休,反而產生重大內耗。
兩個人在一起工作可能會出現工作精力不能集中的情況。程式設計師可能會交談一些與工作無關的事情,反而分散注意力,導致效率比單人更為低下。
結對程式設計可能讓程式設計師們相互學習得更快。有些時候,學習對方的長處,可能會和程式設計師們在起滋生不良氣氛一樣快。比如,合夥應付工作,敷衍專案。
面對新手,有經驗的老手可能會覺得非常的煩躁。不合適的溝通會導到團隊的不和諧。
新手在面對有經驗的老手時會顯得非常的緊張和不安,甚至出現害怕焦慮的的精神狀態,從而總是出現低階錯誤,而老手站在他們後面不停地指責他們導致他們更加緊張,出現惡性迴圈。最終導致專案進展效率低下,並且團隊貌合神離。
有經驗的人更喜歡單兵作戰,找個人來站在他背後看著他可能會讓他感到非常的不爽,最終導致程式設計時受到情緒影響,反而出現反作用。
是否使用結對程式設計,需要具體問題具體分析,不可盲目。任何事物都有他的好與壞,結對程式設計也不例外,只有知道了好與壞,你才能更好的利用它。
最後,請記住,人是一種非常複雜的動物,他們的缺點和內心的陰暗面可能會比你想像得還要糟糕,而這些東西是可以讓一切事物失敗的。所以,正如《人件》所說,人才是軟體開發中最核心,也是最需要花時間去關注的事情。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31365439/viewspace-2677455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式設計師入門選擇書籍學習的利與弊程式設計師
- War Robots首席設計師:遊戲內活動的利與弊遊戲
- Go語言程式設計有哪些利與弊?程式設計時如何判斷是否應該用Go?Go程式設計
- MySQL開啟SSL的利與弊MySql
- 【TUNE_ORACLE】索引定期重建的利與弊Oracle索引
- 如何看待電話機器人的利與弊?機器人
- 在Steam商店,“搶先體驗”模式的利與弊模式
- 理解結對程式設計程式設計
- 【虹科乾貨】無模式資料庫的利與弊模式資料庫
- 軟體創新與開發——結對程式設計程式設計
- 結對程式設計大法好程式設計
- 結對程式設計(c語言)程式設計C語言
- 一次與陌生男子結對程式設計3天的經歷程式設計
- Python淺析:Python變數作為配置檔案格式的利與弊Python變數
- 28萬的特斯拉修20萬!一體壓鑄工藝的“利”與“弊”
- 結對程式設計-四則運算程式設計
- 我的 2023 總結,一個程式設計師與物業的對抗之路程式設計師
- 程式設計提高之路的反思與總結感悟程式設計
- Java非同步程式設計:CompletableFuture與Future的對比Java非同步程式設計
- 結對程式設計 小學四則運算程式設計
- 程式設計師與測試員的立場對立程式設計師
- MetaWork:拜託,這樣遠端結對程式設計超酷的!程式設計
- 數學與程式設計:“機率論”總結程式設計
- 【程式設計素質】程式設計思想總結程式設計
- 好程式設計師前端教程css對齊方案總結程式設計師前端CSS
- 程式設計師程式設計時的簡單方法與技巧程式設計師
- 計算機基礎與程式設計第十週總結計算機程式設計
- 結對程式設計——小學四則運算練習題小程式程式設計
- Rust程式設計與專案實戰-結構體Rust程式設計結構體
- HBase的表結構你設計得不對!
- 如何順利通過程式設計面試程式設計面試
- 談談對程式設計師的管理程式設計師
- java面對物件程式設計的概念Java物件程式設計
- 如何在新時代下的結對程式設計中將程式碼玩出花來程式設計
- 如何從初級程式設計師順利晉升到高階程式設計師?程式設計師
- 好程式設計師web前端分享絕對路徑與相對路徑的引用程式設計師Web前端
- 結對程式設計--自動生成小學四則運算程式設計
- 對java面向程式設計的pta 4,5,6次作業的總結Java程式設計