|
結對編程(Pair-Programming)可能是近年來最為流行的編程方式。所謂結對編程,也就是兩個人寫一個程序,其中,一個人叫Driver,另一個人叫Observer,Driver在編程代碼,而Observer在旁邊實時查看Driver的代碼,并幫助Driver編程。并且,Driver和Observer在一起時可以相互討論,有效地避免了閉門造車,并可以減少后期的code review時間,以及代碼的學習成本。
有實驗證明,平均下來,結對編程時間花銷比單人編程增加10%的時間,但也會比單人編程減少15%的代碼BUG。如果再算上后期代碼的維護和學習成本,結對編程比單人編程更有效率,還更為節(jié)省成本。無論是對開發(fā)團隊還是對于Business,結對編程都會是非常不錯的Programming Practice。
下面是一些結對編程的優(yōu)點:
- 程序員互相幫助,互相教對方,可以得到能力上的互補。
- 可以讓編程環(huán)境有效地貫徹Design。
- 增強代碼和產品質量,并有效的減少BUG。
- 降低學習成本。一邊編程,一邊共享知識和經驗,有效地在實踐中進行學習。
- 在編程中,相互討論,可能更快更有效地解決問題。
當然,結隊編程也會有一些不好的地方:
- 對于有不同習慣的編程人員,可以在起工作會產生麻煩,甚至矛盾。
- 有時候,程序員們會對一個問題各執(zhí)己見(代碼風格可能會是引發(fā)技術人員口水戰(zhàn)的地方),爭吵不休,反而產生重大內耗。
- 兩個人在一起工作可能會出現工作精力不能集中的情況。程序員可能會交談一些與工作無關的事情,反而分散注意力,導致效率比單人更為低下。
- 結對編程可能讓程序員們相互學習得更快。有些時候,學習對方的長外,可能會和程序員們在起滋生不良氣氛一樣快。比如,合伙應付工作,敷衍項目。
- 面對新手,有經驗的老手可能會覺得非常的煩躁。不合適的溝通會導到團隊的不和諧。
- 新手在面對有經驗的老手時會顯得非常的緊張和不安,甚至出現害怕焦慮的的精神狀態(tài),從而總是出現低級錯誤,而老手站在他們后面不停地指責他們導致他們更加緊張,出現惡性循環(huán)。最終導致項目進展效率低下,并且團隊貌合神離。
- 有經驗的人更喜歡單兵作戰(zhàn),找個人來站在他背后看著他可能會讓他感到非常的不爽,最終導致編程時受到情緒影響,反而出現反作用。
是否使用結對編程,需要具體問題具體分析,不可盲目。任何事手都有他的好與壞,結對編程也不例外,只有知道了好與壞,你才能更好的利用它。
最后,需要我們記住的是,人是一種非常復雜的動物,他們的缺點和內心的陰暗面可能會比你想像得還要糟糕,而這些東西是可以讓一切事物失敗的。所以,正如《人件》所說,人才是軟件開發(fā)中最核心,也是最需要花時間去關注的事情。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。