實中,經常是一個有經驗的人坐在旁邊,另一個經驗不太豐富的人進行程式設計,還會有一個老手輪詢多個新手進行開發的方式,在國內公司尤其普遍。因為大多數耗費時間的程式設計部分是靠輸入來完成的,這樣就更難做到1+1》2。”
第11章 你開車,我導航(7)
“通常支援結對程式設計的人認為,當兩個人合作三個月以後,效率才有可能超過兩個人單獨程式設計的效率!這裡有一個時間前提——三個月以後。三個月這個時間未必是真實確鑿的時間分界線,它只是一個模糊的、大概的時間範疇,如果兩個人配合得好,也許只需要兩個多月,如果配合不好,也許需要四五個月或者更長的時間,不確定性很大。”
“許多時候,如果僅僅只是想減少defects的數量,我認為還是設計結對、評審結對、單元測試結對這三種方式更為有效一些。此外,結對程式設計始終是兩個人的合作行為,其效果會受到多種因素影響。譬如,兩個人的性格、個人關係、溝通能力、技術是否互補等都會影響最終的結果。究竟1+1大於2還是小於2真的是一個很難說的事情。只能靠團隊自己不斷地組合,找出合適的配對個人。”
大家紛紛點頭,覺得大民說得很有道理!
“那我們就不實踐程式設計結對了?”阿捷問道。
“其實不僅僅程式設計結對,其他結對實踐,也要視人、視專案、視環境而定。至少兩個極端情形下; 結對毫無益處:1。需要靜心思考的問題。這時完全可以分頭行動,等各自有了理解或解決方案再來討論。言語在思考的過程中也會幫忙,但有時候,言語只會打擾思路。 2。瑣碎毫無技術含量的工作,不得不手工完成的。這種工作考驗的只是耐心,不妨分頭行動,效率肯定比結對要高。”
“在有些時候還是可以採用的,也是有好處的,特別是對於新加入一個團隊的成員而言,可以讓他迅速成長,融入團隊!因為結對程式設計的內涵是一種技術、經驗、知識的共享。透過共同商討、解決問題,來提高溝通、交流,來降低誤解和疏遠。但即使是這樣