結對程式設計是軟體發展過程中所使用的一種技術, 兩名程式開發人員共用同一台工作站。 其中一個扮演駕駛者(Driver)的角色,
結對程式設計的概念已經存在很長一段時間, 已經有許多公司認同這種程式設計方式, 但也有許多公司表示他們不考慮採用。 結對程式設計需要花費的時間可能比個人程式設計更長, 但產生的 bug 比個人程式設計少;它需要公司付出多一倍的人力, 但程式設計的效率會比個人程式設計高。 這是一個比較有爭議的程式設計方式, 不同公司的需求不同, 對結對程式設計的看法就不一樣。
國外有位開發者 Sam Harris 對結對程式設計的利弊做出了客觀的總結分析,
結對程式設計的好處
1、互相鼓勵, 不容易沮喪:團隊工作能增加成員的工作積極性。 因為在面對問題的時候, 會有人一起分擔, 共同嘗試新的策略。
2、互相監督, 不容易偷懶:兩個人一起工作需要互相配合, 如果想偷懶去幹別的, 就會拖延工作進度。
3、互相學習程式設計技巧:在程式設計中, 相互討論, 可以更快更有效地解決問題, 互相請教對方, 可以得到能力上的互補。
4、可以培養和訓練新人:讓資深開發者和新手一起工作, 可以讓新人更快上手。
5、多雙眼睛, 少點 bug:兩人互相監督工作, 可以增強代碼和產品品質, 並有效的減少 BUG。
結對程式設計的壞處
1、與合不來的人一起程式設計容易發生爭執, 不利於團隊和諧。
2、經驗豐富的老手可能會對新手產生不滿的情緒。
3、一山不容二虎, 開發者之間可能就某一問題發生分歧, 產生矛盾, 造成不必要的內耗。
4、開發人員可能會在工作時交談一些與工作無關的事, 分散注意力, 造成效率低下。
等等......
因此, 是否採用結對程式設計需要根據公司的情況進行定奪。
編譯自:FreeCodeCamp