交換編程技術
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
交換編程技術實際上是對結對編程技術的一種擴展和延續,在這種技術中,由兩位或者多位程式員輪流開發同一個軟體系統中同一個模塊不同階段的任務。
和結對編程技術一樣,在交換編程技術中仍然需要多位程式員進行交流,共同完成某個項目階段的任務,但是不需要兩人公用一臺電腦,而是採用一人一機的工作形式,由兩位程式員輪流負責同一個模塊中不同階段的設計、編碼和測試過程,這樣就減少了時間的浪費:另外在任務分工方面,程式員分別負責不同階段任務的完整開發,每一個階段的設計、編碼和測試過程,都是由一位程式員去執行,但是在每個項目的開發階段或者迭代階段,需要進行多人任務的輪流交換或者兩人任務的兩兩交換,這樣既保證了代碼的質量,又提高了工作效益。
1.實施環境
交換編程技術的適應性比較強,在項目的規模上沒有要求,特別是對項目規模大,人員臨時調動頻繁的情況同樣可以適用;另外。在項目開發團隊的規模方面,由於在交換編程技術中,進行一次任務交換至少需要兩個以上的開發人員,因此交換編程技術適用於那些人數超過兩個以上的開發團隊,而且在團隊成員中,要求有一兩個具有兩三年以上開發經驗的技術人員,這是對一般項目最基本的要求。
2.實施方法
在軟體開發過程中應用交換編程技術,需要重點考慮交換周期的設置。交換周期一般需要根據實際項目的開發過程來設置,即根據項目迭代階段或者開發階段進行劃分,階段劃分確定後,在一個階段內至少進行一次任務交換。對於一般規模的項目,建議在軟體工程實施的各個迭代階段按照如下的方式進行交換編程:
1)在軟體定義過程中,市場調研和需求分析可以進行輪流交換(至少是三個以上的程式員之間相互交換所開發的內容,如:程式員A的開發內容交給程式員B,程式員B的交給程式員C,程式員C的交給程式員A)。
2)在概要設計開發中。需求分析到概要設計進行輪流交換。
3)在詳細設計開發中,概要設計到詳細設計進行一次輪流交換。
4)編碼實施啟動後,詳細設計到編碼的交換採用兩兩交換(兩個程式員之間相互交換所開發的內容,僅限於兩人之間),註意這個時候不再採用輪流交換。
這裡在編碼以前全部採用輪流交換的目的是為了讓更多的人瞭解項目進展的全部內容,有利於增加團隊內的交流,使更多的人對項目所開發的內容熟悉,並能讓他們提出自己的觀點,也有利於使更多的人從更多的角度來研究某個系統模塊所需要實現的功能和用戶需要解決的實際問題,不會因為某個人的定式思維而出現理解偏差,從而造成對需求的理解不到位。
詳細設計到編碼的測試採用兩兩交換,這是因為前期需求已經基本上都穩定下來了,這時候不需要對用戶需求進行更多方面的理解,只需要進行實施併進行純粹的編碼工作即可。此時輪流交換就不存在任何意義,相反只會影響開發進度。
以上交換編程的方法,是按照迭代階段設置交換周期的方法,另外,如果以項目開發階段設置交換周期的話,我們可以將軟體生存周期的每個階段再細分為幾個小階段,根據細分的階段數量確定進行交換編程的人數(階段數量的劃分可
以根據階段任務的規模和階段的重要性確定,如:對於一個普通項目的需求分析階段,我們可以將其細分為三個階段,分別由三個程式員輪流開發)。和按照迭代階段設置交換周期的原因一樣,在編碼以前的每個階段,儘量全部採用至少三個以上程式員輪流交換編程的方式,而在編碼以後的每個階段,包括編碼階段,只需要採用兩兩交換的方式就可以了。
在軟體開發過程中應用交換編程技術,不僅可以節約各種資源,提高工作效率,而且也能增強代碼的可讀性和可維護性,保證代碼的質量。具體體現如下:
1)避免人力資源的浪費
交換編程技術採用由兩位以上程式員輪流負責某個階段的任務,不會讓他們在同一時間內去做同一件工作,這就節約了人力資源;而且也不用擔心在軟體開發過程中出現的設計或代碼問題被隱藏,因為兩位程式員在進行任務交換時需要交流,這樣不但第二個程式員會發現第一個程式員設計所存在的問題,第一個程式員也會主動地對自己的開發過程和思路進行一次完整的重新評價,從而及時解決問題。
2)加強團隊內部交流
在交換編程技術中,允許有較多的人參與某個模塊的前後期分析、設計和開發過程,在項目開發的每一個階段都可以找到兩個以上的人來進行討論,加強了團隊內部的交流。
3)減少時間的浪費
在交換編程技術的任務交換過程中,時間的浪費主要體現在第二位程式員理解前一位程式員的設計思路上,但是在一般情況下,出於對項目統一規劃的考慮,團隊中所有成員都需要對項目的整體開發和各個階段的任務有所熟悉,在這種情況下時間的總體耗費相對較短。
4)提高項目組穩定性
在交換編程技術中,由於一個模塊需要按照階段數量進行分工,這樣就保證了一個模塊至少有兩個人對其十分熟悉,在後面的開發過程中,無論哪個人發生變動,隨時都可以有其它人來接替工作,而不會對團隊和開發進度產生較大影響,所有的任務都能夠很好的延續下來另外,允許有較多的人參與到這個模塊的前後期開發中來,系統的架構設計可以由很多人一同討論出來,所以交換編程技術適合於沒有絕對高手的團隊。
- 田源.交換編程技術在軟體開發中的應用[J].電腦知識與技術:學術交流.2008,8
項目開發的每一個階段都可以找到兩個以上的人來進行討論,加強了團隊內部的交流。