《規範敏捷交付:企業級敏捷軟體交付的方法與實踐》——1.6 混合型過程框架

華章計算機發表於2017-08-01

1.6 混合型過程框架

DAD所包含的許多策略和實踐方法都來自於主流敏捷方法以及其他方法。DAD過程框架把Scrum的構造生命週期擴充套件為完整的交付生命週期,其採用的策略來自於多種敏捷方法和精益方法。DAD所建議的許多實踐,例如,持續整合(CI)、每日協調會議以及重構,通常都在敏捷社群中進行過廣泛的討論。另外,還有些“高階”實踐已廣泛應用,但由於某種原因,它們在人們中間並沒有被經常討論。這些“高階”實踐包括需求預想、架構預想以及生命週期結束時的測試等。
DAD過程框架是一個混合體,這意味著,它採用並裁剪了來源不同的各種方法、實踐和策略。我們在組織中一再看到這麼一種常見的模式,即在採用Scrum流程框架的同時,團隊會做大量的工作來定製和融合其他各種來源的各種想法。這聽起來像是一種很好的做法。然而,鑑於我們一再觀察到的情況,即新的組織總是重蹈他人覆轍,經常以同樣的方式來剪裁Scrum。那麼,為什麼不在一開始就採用一種健壯的、具有通用定製能力的過程框架呢?DAD過程框架正是為此而生。下面用於描述DAD策略的各種方法。
Scrum。Scrum為複雜專案提供了一種敏捷管理框架。DAD採用的許多想法都來自於Scrum,但對其進行了裁剪,例如,開發時按優先順序從工作項棧中提取專案,把產品負責人角色設定為利益相關者的代表,以及在每次迭代中生產出潛在可利用的解決方案。
極限程式設計。極限程式設計(XP)是DAD開發實踐的重要來源,包括但不限於持續整合(CI)、重構、測試驅動開發(TDD)以及集體負責制等。
敏捷建模。顧名思義,敏捷建模(AM)為DAD建模和文件編寫工作提供了實用的方法。它包括需求預想、架構預想、迭代建模、持續文件和即時(JIT)模型風暴(model storming)。
統一過程。DAD中的許多治理策略都來自於對統一過程(Unified Process,UP),包括OpenUP和敏捷統一過程(Agile Unified Process,AUP)的敏捷例項化。特別是,這些策略包括輕量級的里程碑和明確的階段。我們也吸取了統一過程所認識到的兩個重要方面:第一,在早期的迭代中保證架構的正確性;第二,在專案生命週期早期,處理儘可能多的高風險業務。
敏捷資料。顧名思義,敏捷資料(Agile Data,AD)是敏捷資料庫實踐的來源,這些實踐包括資料庫重構、資料庫測試和敏捷資料建模等。同時,敏捷資料還是敏捷企業策略的另一個重要來源,例如,敏捷團隊與企業架構師和企業資料管理員如何有效協作。
看板。DAD採用了精益框架中看板(Kanban)方法的兩個關鍵概念:限制正在進行的工作量(work in progress),以及使工作內容視覺化。這些概念超出了精益軟體開發七原則,會在第2章中進行討論。
DAD的概念是幾個現有敏捷方法的混合體,更詳細的內容,請參見第3章。
我們的歉意
本書通篇會使用敏捷方法中的一些粗話,如階段、順序式甚至“G詞”:治理(Governance)。許多主流敏捷開發人員不喜歡這些詞兒,並不遺餘力地為它們找些委婉的替代用語。例如,在Scrum中,他們把專案開始稱作“Sprint 0”(DAD的先啟階段),接著開始“Sprint構造”(DAD的構造階段),最後進行一次或多次“Sprint釋出”(DAD移交階段)。在這裡,儘管這些Sprint是一個接一個地進行的,但顯然並不是按順序式開發,並且Scrum專案團隊顯然也不是按階段前進的。所以就把它們當做一些術語而已,唉,誰不喜歡平直明白的語言。


相關文章