XP 實際上是一種經歷過很多實踐考驗的一種軟件開發的方法,它誕生了大概有5 年,它已經被成功的應用在許多大型的公司,如:Bayeris che Landesbank,Credit Swis s Life,DaimlerChrysler,First Union National Bank Ford Motor Company and UBS.XP 的成功得益于它對客戶滿意度的特別強調,XP 是以開發符合客戶需要的軟件為目標而產生的一種方法論,XP 使開發者能夠更有效的響應客戶的需求變化,哪怕在軟件生命周期的后期。
同時,XP 也很強調團隊合作。團隊包括:項目經理,客戶,開發者。他們團結在一起來保證高質量的軟件。XP 其實是一種保證成功的團隊開發的簡單而有效的方法。
XP 強調四種價值:交流,簡易,回饋,勇氣。XP 程序員之間緊密的相互交流,XP 程序員也和客戶緊密的交流。他們總是保持他們的設計簡單明了。項目一開始,XP 就強調通過對軟件的不斷測試來獲得反饋,程序員盡可能早的把軟件交給客戶,并實現客戶對軟件需求提出的變化,有了這些基礎,XP 程序員就可以自信的面對需求和軟件技術的變化。
XP 是與眾不同的,它有點象快步的舞蹈。XP 開發過程包括許多的小卡片,獨立的看,這些小卡片沒有什么意義,但是當它們組合在一起,一幅完整的美麗的圖片就可以看見,XP方法有別于傳統軟件開發,它是軟件開發的一種新的重要的發展。它改變了我們開發程序的傳統思維方式。下面我們將介紹它帶給我們那些改變。
第二問題:XP 帶給我們的變化
通過軟件工程設計的簡單而優美的軟件并不比那些設計復雜而難以維護的軟件有價值。這是真的嗎?XP認為事實并非如此。
一個典型的項目花在人力上的金錢是花在硬件上的時間的20 倍,這意味著一個項目每年要花200 萬美元在程序員身上,而僅僅花10 萬美元在電腦設備上。很多聰明的程序員說:“我們如此聰明,發現一種方法可以節省20%的硬件開銷”,然后他們使得源程序大而且難懂和難以維護,他們會說:“但是我們節省了20%或者2 萬美元每年,很大的節省”。反之,如果我們寫我們的程序簡單而且容易擴展,我們將至少節省10%的人力開銷,一筆更大的節省,這是你客戶一定會注意到的一些事情。
另外一個對客戶來說很重要的問題就是程序的BUGS 。XP 不只是強調測試,而且要求正確的測試。測試必須是能自動進行的,以便為程序和客戶提供一個安全的環境。在編碼的所有階段,我們不斷增加測試用例。當找到bug 時,我們就添加新的測試,一個緊密的安全網就這樣產生了。同一個BUG 不出現兩次,這些一定會引起用戶的注意。你的客戶必須注意的另外一件事情:XP 開發者擁抱需求變化。XP 使我們能夠接受需求的變化。
一般情況下,客戶只有在系統被開發完成以后能真正去體會它。XP 卻不一樣,它通過加強客戶的反饋來縮短開發的周期,同時獲得足夠的時間來改變功能和獲得用戶的認同。在XP 中,你的客戶應該明確的知道這一點。
XP開發過程的大多的革命是在軟件開發的方法上,代碼質量的重要程度超出人們一般所認為的。僅僅因為我們的客戶不能明白我們的源代碼并不意味著我們可以不努力去管理代碼的質量。
第三個問題:我們什么時候用XP
XP方法的產生是因為難以管理的需求變化,從一開始你的客戶并不是很完全的知道他們要的系統是怎么樣的,你可能面對的系統的功能一個月變化多次。在大多數軟件開發環境中不斷變化的需求是唯一的不變,這個時候應用XP 就可以取得別的方法不可能取得的成功。XP 方法的建立同時也是為了解決軟件開發項目中的風險問題。假如你的客戶在特定的時間內,需要一個相當難開發的系統,而且對于你的項目組來說,這個系統是一個新的挑戰(從來沒有做過),那風險就更大了,如果這個系統對于整個軟件行業來說都是新的挑戰,那么它的風險就更大了,采用XP 將可以減少風險,增加成功的可能。
XP方法是為小團體開發建立的,在2-10 個人之間。假如你的團體恰好合適,你就不需要用其他的軟件工程方法了,就用XP ,但是要注意你不能將XP 方法應用于大團體的開發項目中。我們應該注意,在需求一慣呈動態變化或者高具有高風險的項目中,你就會發現XP 方法在小團體的開發中的作用要遠遠高于在大團體的開發。
XP方法需要一個擴展的開發團體,XP 團體不僅僅包括開發者,經理、客戶也是其中的一員,所有的工作一環扣一環,問問題,商討方法和日程,增加功能測試,這些問題的解決不僅僅涉及到軟件的開發者。
另一個需要是可測試性,你必須能增加自動的單元測試和功能測試,然而在你進行這個需求的時候,你會發現有許多的問題很難測試,這需要充分發揮你的測試的經驗和智慧,而且你有時還要改變你的設計以便它可以更容易的進行測試。記。耗莾河行枨,那兒就應該有測試的方法。
在XP方法的好處的清單上,最后一條是生產力。在同樣的合作環境下,XP 項目都一致的表現出比使用其他方法高的多的生產力。但這從來不是XP 方法學的真正目標。XP 真實追求的目標是:在規定的時間生產出滿足客戶需要的軟件。假如對于你的開發來說,這是很重要的方面,你就可以選擇XP 了。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/