博客 / 詳情

返回

極限編程要完全遵守的12個實踐

極限編程的12個實踐是極限編程者總結的實踐經典,是體現極限編程管理的原則,對極限編程具有指導性的意義,但並非一定要完全遵守12個實踐,主要看它給軟件過程管理帶來的價值。

1、小版本
為了高度迭代,與客户展現開發的進展,小版本發佈是一個可交流的好辦法,客户可以針對性提出反饋。但小版本把模塊縮得很小,會影響軟件的整體思路連貫,所以小版本也需要總體合理的規劃。

2、規劃遊戲
就是客户需求,以客户故事的形式,由客户負責編寫。極限編程不講求統一的客户需求收集,也不是由開發人員整理,而是採取讓客户編寫,開發人員進行分析,設定優先級別,並進行技術實現。當然遊戲規則可進行多次,每次迭代完畢後再行修改。客户故事是開發人員與客户溝通的焦點,也是版本設計的依據,所以其管理一定是有效的、溝通順暢的。

3、現場客户
極限編程要求客户參與開發工作,客户需求就是客户負責編寫的,所以要求客户在開發現場一起工作,併為每次迭代提供反饋。

4、隱喻
隱喻是讓項目參與人員都必須對一些抽象的概念理解一致,也就是我們常説的行業術語,因為業務本身的術語開發人員不熟悉,軟件開發的術語客户不理解,因此開始要先明確雙方使用的隱喻,避免歧異。

5、簡單設計
極限編程體現跟蹤客户的需求變化,既然需求是變化的,所以對於目前的需求就不必過多地考慮擴展性的開發,講求簡單設計,實現目前需求即可。簡單設計的本身也為短期迭代提供了方便,若開發者考慮“通用”因素較多,增加了軟件的複雜度,開發的迭代週期就會加長。簡單設計包括四方面含義:(1)通過測試。(2)避免重複代碼。(3)明確表達每步編碼的目的,代碼可讀性強。(4)儘可能少的對象類和方法。由於採用簡單設計,所以極限編程沒有複雜的設計文檔要求。

6、重構
重構是極限編程先測試後編碼的必然需求,為了整體軟件可以先進行測試,對於一些軟件要開發的模塊先簡單模擬,讓編譯通過,到達測試的目的。然後再對模塊具體“優化”,所以重構包括模塊代碼的優化與具體代碼的開發。重構是使用了“物理學”的一個概念,是在不影響物體外部特性的前提下,重新優化其內部的機構。這裏的外部特性就是保證測試的通過。

7、測試驅動開發
極限編程是以測試開始的,為了可以展示客户需求的實現,測試程序優先設計,測試是從客户實用的角度出發,客户實際使用的軟件界面着想,測試是客户需求的直接表現,是客户對軟件過程的理解。測試驅動開發,也就是客户的需求驅動軟件的開發。

8、持續集成
集成的理解就是提交軟件的展現,由於採用測試驅動開發、小版本的方式,所以不斷集成(整體測試)是與客户溝通的依據,也是讓客户提出反饋意見的參照。持續集成也是完成階段開發任務的標誌。

9、結對編程
這是極限編程最有爭議的實踐。就是兩個程序員合用一台計算機編程,一個編碼,一個檢查,增加專人審計是為了提供軟件編碼的質量。兩個人的角色經常變換,保持開發者的工作熱情。這種編程方式對培養新人或開發難度較大的軟件都有非常好的效果。

10、代碼共有
在極限編程裏沒有嚴格文檔管理,代碼為開發團隊共有,這樣有利於開發人員的流動管理,因為所有的人都熟悉所有的編碼。

11、編碼標準
編碼是開發團隊裏每個人的工作,又沒有詳細的文檔,代碼的可讀性是很重要的,所以規定統一的標準和習慣是必要的,有些象編碼人員的隱喻。

12、每週40小時工作
極限編程認為編程是愉快的工作,不輕易加班,今天的工作今天做,小版本的設計也為了單位時間可以完成的工作安排。

user avatar congfeng 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.