XP方法論非常強調營造一種輕松的開發氛圍,重視人的價值勝于重視過程。溝通是XP的一大價值觀。XP中大量的實踐是圍繞溝通這個價值觀設計的。例如,用戶故事,現場客戶,代碼集體所有權等等,但是我們這里要強調的,是結對編程這一實踐。本文中不對結對編程做介紹,這方面的資料有很多,沒有必要在這里浪費筆墨。本文要討論的,是我們如何在項目的角度上考慮結對編程。
結對編程是一種非常有效的改善溝通的方法。一對編程人員是協作過程中最基本的溝通單元。在經典的XP方法中,結對編程指的是兩個程序員在同一時間、同一機器前,主動的共同的解決統一問題。也許經理們聽到這句話的第一個反應就是:"這不可能,我花了兩倍的錢,卻只做一個人的事情!"事實上,結對編程運用得當的話,是能夠提高工作效率的,不但體現在進度上,還體現在代碼質量、以及項目風險上。
個人編程
個人編程往往會遇到各種各樣的問題。在軟件開發中,編寫代碼往往只占構建過程中很小一部分的時間,很多的時間花在調試代碼、改進代碼結構,以及針對需求或是設計的變更修改代碼。想必很多人都有這樣的經歷,在一些關鍵的技術問題上卡殼,而單人進行研究不但費時費力,而且很容易導致士氣的低落。
在另一些時候,程序員往往需要在不同的設計選擇之間進行權衡,而一個人做出技術決策往往造成內心的不安,這時候就希望能夠有另一個同伴支持你做出決定。
說代碼是最嚴謹的工件是一點錯也沒有,任何一個微小的錯誤,例如缺少分號,都會造成程序運行的錯誤。雖然編譯器能夠檢查大部分的錯誤,可是仍然會有一些深藏其中的,時不時出來搗亂的小錯誤。一個人的眼睛往往容易錯過一些錯誤,但是兩個人同時進行編碼,這種出錯的概率將會大幅度的下降。
為了修正代碼缺陷而進行的調試工作往往會占用大量的人月,如果代碼缺陷到了測試團隊的手中才被發現,修改缺陷的代價會很高,而如果代碼缺陷一直持續到客戶手中才被發現,這個代價更是驚人。而通過對開發人員配對,可以減少缺陷的數量。根據一些數據顯示,結對編程可以讓缺陷的數量減少15%。相對于在軟件過程后期改正缺陷所付出的高昂代價,采用結對編程還是值得的。
以上討論的是個人編程中遇到的一些問題,這些是很小的問題,但是都會對開發人員的情緒、進度產生影響。而在一個團隊環境中,這些問題還會擴大,升級為團隊問題。
團隊編程
雖然軟件組織規定了軟件編碼規范,但是編碼規范不可能約定的過細,過細的編碼規范不具備可操作性。因此不同人寫出的代碼仍然相差很大,優秀的代碼和拙劣的代碼同時存在,每個人都熟悉各自的代碼,但卻不愿意碰別人的代碼。各種各樣風格的代碼逐漸產生的代碼的混亂。這會產生很多問題。首先,軟件組織內部復用的目標難以實現,如果人人都不愿意看別人的代碼,你又如何建立一個內部復用的框架呢?現存的代碼無法進行控制,舊項目的維護成本不斷上升,團隊積累也成為一句空話,
文章來源于領測軟件測試網 http://www.kjueaiud.com/