天天看點

靈活方法

靈活方法是從20世紀90年代開始逐漸引起廣泛關注的一些新型軟體開發方法,以應對快速變化的需求。雖然它們的具體名稱、理念、過程、術語都不盡相同,但相對于“非靈活”而言,它們更強調開發團隊與使用者之間的緊密協作、面對面的溝通、頻繁傳遞新的軟體版本、緊湊而自我組織型的團隊等,也更注重人的作用。

1、靈活宣言

2001年,Kent Beck等人組織了靈活聯盟,闡述了靈活開發的原則,試圖強調靈活性在快速且有效地開發軟體中所發揮的作用,他們共同簽署了靈活軟體開發宣言,該宣言認為,個體和互動勝過過程和工具;可工作的軟體勝過大量的文檔;客戶合作勝過合同談判;響應變化勝過遵循計劃。

靈活方法強調,讓客戶滿意和軟體盡早增量釋出;小而高度自主的項目團隊;非正式的方法;最小化軟體工程工作産品以及整體精簡開發。産生這種情況的原因是,在絕大多數軟體開發過程中,提前預測哪些需求是穩定的和哪些需求會變化非常困難;對于軟體項目建構來說,設計和實作是交錯的;從指定計劃的角度來看,分析、設計、實作和測試并不容易預測;可執行原型和部分實作的可運作系統是了解使用者需求和回報的有效媒介。

目前,主要的靈活方法有極限程式設計、自适應軟體開發、水晶方法、特性驅動開發、動态系統開發方法、測試驅動開發、靈活資料庫技術和精益軟體開發等。雖然這些過程模型在實踐上有差異,但都是遵循了靈活宣言或者是靈活聯盟所定義的基本原則。這些原則包括客戶參與、增量式移交、簡單性、接受變更、強調開發人員的作用和及時回報等。

2、靈活方法的特點

靈活方法是一種以人為核心、疊代、循序漸進的開發方法。在靈活方法中,軟體項目的建構被切分成多個子項目,各個子項目成果都經過測試,具備內建和可運作的特征。在靈活方法中,從開發者的角度來看,主要的關注點有短平快的會議、小版本釋出、較少的文檔、合作為重、客戶直接參與、自動化測試、适應性計劃調整和結對程式設計;從管理者的角度來看,主要的關注點有測試驅動開發、持續內建和重構。

近年來,雖然靈活方法發展的較快,但在實施的過程中,也暴露出來很多問題,一些靈活方法的基本原則很難實施,主要展現在以下4個方面:

1)客戶參與往往依賴于客戶參與的意願和客戶自身的代表性。

2)團隊成員的性格可能不适合激烈的投入,可能無法做到與其它成員之間的良好溝通。

3)對系統的變更作出優先級排序可能是極端困難的。

4)維護系統的簡潔性往往需要額外的工作,但迫于時間表的壓力,可能沒有時間執行系統簡化過程。

與RUP相比,靈活方法的周期可能更短。靈活方法在幾周或幾個月的時間内完成相對較小的功能,強調的是能盡早将盡量小的可用的功能傳遞使用,并在整個項目周期中持續改善和增強,并且更加強調團隊中的高度協作。相對而言,靈活方法主要适用于以下場合:

1)項目團隊的人數不能太多,适合于規模較小的項目。

2)項目經常發生變更。靈活方法适用于需求萌動并且快速改變的情況,如果系統有比較高的關鍵性、可靠性、安全性方法要求,則可能不完全适合。

3)高風險項目的實施。

4)從組織結構的角度看,組織結構的文化、人員、溝通性決定了靈活方法是否适用。與這些相關聯的關鍵成功因素有組織文化必須支援談判、人員彼此信任、人少但是精幹、開發人員所作的決定得到認可、環境設施滿足團隊成員之間快速溝通的需要。

3、XP方法

靈活方法中最著名的就是XP,XP是一種輕量、高效、低風險、柔性、可預測、科學且充滿樂趣的軟體開發方式,适用于小型或中型軟體開發團隊,并且客戶的需求模糊或需求多變。與其它方法相比,其最大的不同如下:

1)在更短的周期内、更早地提供具體、持續的回報資訊。

2)疊代地進行計劃編制,首先在最開發迅速生成一個總體計劃,然後在整個項目開發過程中不斷地發展它。

3)依賴于自動測試程式來監控開發進度,并及早地捕獲缺陷。

4)依賴于口頭交流,測試盒源程式進行溝通。

5)倡導持續的演化式的設計。

6)依賴于開發團隊内部的緊密協作。

7)盡可能達到程式員短期利益和項目長期利益的平衡。

XP由價值觀、原則、實踐和行為4個部分組成,它們彼此互相依賴、關聯、并通過行為貫穿于整個生命周期。XP的核心是其總結的四大價值觀,即溝通、簡單、回報和勇氣。它們是XP的基礎,也是XP的靈魂。XP的5個原則是快速回報、簡單性假設、逐漸修改和優質工作。而在XP方法中,貫徹的是“小步快走”的開發原則,是以工作品質決不可打折扣,通常采用測試先行的編碼方式來提供支援。

在XP中,內建了12個最佳實踐,分别是計劃遊戲、小型釋出、隐喻、簡單設計、測試先行、重構、結對程式設計、集體代碼所有制、持續內建、每周工作40小時、現場客戶和編碼标準。當然,這些所謂的“最佳實踐”并非對每個項目都是最佳的,需要項目團隊根據實際情況決定。而且,XP方法的有些原則在應用中不一定能得到貫徹和執行。是以,在實際工作中,應該“取其精華,去其糟粕”,把XP方法和其它方法結合起來。

繼續閱讀