什麼是結對程式設計?簡單來說,結對程式設計技術是指兩位程式設計師坐在同一工作臺前(或者遠端)開發軟體;極限程式設計是由當時Smalltalk領域的大師級人物Kent Beck在1996年受聘領導克萊斯勒公司的一個綜合工資專案開發 C3(Chrysler Comprehensive Compensation)中首次採用, 並於1999年10月出版的《解析極限程式設計》一書中正式提出了這一軟體開發方法。
我們先說結對程式設計有啥好處:
第一:培養新人,促進溝通,提升團隊整體能力。
透過結對,年輕的團隊成員可以向其他小夥伴學習,包括快捷鍵、演算法、語法、SQL、設計、解決問題的思路、做事方式等等,1對1面對面師傅帶徒弟式的學習是新技能get最快的方式之一。
第二:更好的知識共享和資訊交流,促進團隊協作。
結對中可以互相分享程式碼的上下文,交換對程式碼的理解,促進質量改進和團隊協作,同時也使得程式碼集體所有制成為可能,減少團隊對某些成員的依賴,降低團隊風險。
第三:促進團隊成員的溝通,提升團隊凝聚力。
透過結對,成員間彼此熟悉,增深瞭解,從而能夠更好的協作完成任務。
有好處必然也有壞處:
按照目前軟體發展階段,軟體開發更加模組化,細分到服務甚至介面,可以說軟體開發過程的控制可以像控制流水線一樣作業,結對程式設計在某種意義上,特別是現在軟體開發節奏飛快的階段不太適合傳統企業公司來使用,網際網路公司更不用說,更是要求極限提現個人能力~
所以說,如果你是個新人,有結對程式設計的機會,那麼對你來說,是個千載難逢的好時機,可以跟著老鳥學知識;如果我是企業的決策者或者專案的管理人員,我是不會建議使用這種方式的,一是人員利用率不高,空耗成本;二是結對程式設計的人員之間難保出現不可調和的矛盾,作為管理者以控制風險,規避風險優先
什麼是結對程式設計?簡單來說,結對程式設計技術是指兩位程式設計師坐在同一工作臺前(或者遠端)開發軟體;極限程式設計是由當時Smalltalk領域的大師級人物Kent Beck在1996年受聘領導克萊斯勒公司的一個綜合工資專案開發 C3(Chrysler Comprehensive Compensation)中首次採用, 並於1999年10月出版的《解析極限程式設計》一書中正式提出了這一軟體開發方法。
我們先說結對程式設計有啥好處:
第一:培養新人,促進溝通,提升團隊整體能力。
透過結對,年輕的團隊成員可以向其他小夥伴學習,包括快捷鍵、演算法、語法、SQL、設計、解決問題的思路、做事方式等等,1對1面對面師傅帶徒弟式的學習是新技能get最快的方式之一。
第二:更好的知識共享和資訊交流,促進團隊協作。
結對中可以互相分享程式碼的上下文,交換對程式碼的理解,促進質量改進和團隊協作,同時也使得程式碼集體所有制成為可能,減少團隊對某些成員的依賴,降低團隊風險。
第三:促進團隊成員的溝通,提升團隊凝聚力。
透過結對,成員間彼此熟悉,增深瞭解,從而能夠更好的協作完成任務。
有好處必然也有壞處:
對於有不同習慣的程式設計人員,可以在起工作會產生麻煩,甚至矛盾。有時候,程式設計師們會對一個問題各執己見(程式碼風格可能會是引發技術人員口水戰的地方),爭吵不休,反而產生重大內耗。兩個人在一起工作可能會出現工作精力不能集中的情況。程式設計師可能會交談一些與工作無關的事情,反而分散注意力,導致效率比單人更為低下。結對程式設計可能讓程式設計師們相互學習得更快。有些時候,學習對方的長外,可能會和程式設計師們在起滋生不良氣氛一樣快。比如,合夥應付工作,敷衍專案。面對新手,有經驗的老手可能會覺得非常的煩躁。不合適的溝通會導到團隊的不和諧。新手在面對有經驗的老手時會顯得非常的緊張和不安,甚至出現害怕焦慮的的精神狀態,從而總是出現低階錯誤,而老手站在他們後面不停地指責他們導致他們更加緊張,出現惡性迴圈。最終導致專案進展效率低下,並且團隊貌合神離。有經驗的人更喜歡單兵作戰,找個人來站在他背後看著他可能會讓他感到非常的不爽,最終導致程式設計時受到情緒影響,反而出現反作用。按照目前軟體發展階段,軟體開發更加模組化,細分到服務甚至介面,可以說軟體開發過程的控制可以像控制流水線一樣作業,結對程式設計在某種意義上,特別是現在軟體開發節奏飛快的階段不太適合傳統企業公司來使用,網際網路公司更不用說,更是要求極限提現個人能力~
所以說,如果你是個新人,有結對程式設計的機會,那麼對你來說,是個千載難逢的好時機,可以跟著老鳥學知識;如果我是企業的決策者或者專案的管理人員,我是不會建議使用這種方式的,一是人員利用率不高,空耗成本;二是結對程式設計的人員之間難保出現不可調和的矛盾,作為管理者以控制風險,規避風險優先