敏捷開發 | DSDM 在非 IT 領域也同樣適用?
- 2020 年 12 月 11 日
- 筆記
動態系統開發方法(Dynamic Systems Development Method:DSDM)是在快速應用程序開發(RAD)方法的基礎上改進的。作為敏捷方法論的一種,DSDM方法倡導以業務為核心,進行快速、有效的系統開發,不僅適用于敏捷開發模式,也同樣適用於傳統的開發模式。它既能滿足單個團隊同一地點的簡單產品開發,還能滿足多個團隊不同地點、不同時區的複雜項目開發。
一、DSDM依賴於嚴格的時間控制
與傳統開發方法不同的是,DSDM強調項目的時間是固定的,功能和資源是可變的。也就是說,項目功能和資源的規劃需要配合實際開發效果進行規劃:如果在一周的時間內,功能太多無法交付,那麼就要去掉部分功能,以順利結束這一迭代。其基本觀點是,任何事情都不可能一次性完成,應該用20%的時間來完成80%的有用功能,以適應商業目的為準。因此,對項目任務的優先級排序是十分重要的,DSDM應用MosCow優先級排序方法,將項目任務分解為四種不同類型的要求:
- Must:必須做的;
- Should:應該做的;
- Could:可以做的;
- Would not:不要做的。
那麼,為了順利完成「80%」的有用功能,可以首要完成Must、Should項,或者說在完成Must、Should項的基礎上酌情考慮完成Could項。
二、DSDM的角色
任何敏捷開發方法論都有註明他們所構建的系統中應具備的角色,DSDM也不例外:
- 項目負責人——該職位上的人員由用戶或客戶方面推出,他們代表用戶或客戶行使決策權,並能夠根據需要分配資金及資源。
- 項目指導——項目指導者需要深入了解用戶業務、具備敏銳性,並有遠見卓識,能夠儘快鎖定最高優先級要求,並基於此指導團隊來初始化項目。
- 用戶代表——一個理想的「測試用戶」,可以將用戶社群的觀點帶入到整個項目中。他們是整個開發過程中重要的反饋來源。
- 用戶顧問——另一種類型的用戶,應對手中的項目提出新穎或十分重要的觀點,因此,用戶顧問需要有資深的專業知識或其他獨特的專業能力。
- 項目經理——項目經理是管理整個項目的人。
- 團隊負責人——負責協調和促進團隊之間的協作。
- 解決方案開發人員——瀏覽系統要求,進行系統建模,開發可交付的代碼並創建原型。
- 解決方案測試器——測試產品,並在出現錯誤時提供注釋和文檔。在實施更正後,它們還能夠重新測試。
- 抄錄員——記錄項目進度的要求、協議、決定和其他有用信息。
- 主持人——他們負責激勵和準備研討會,以保持進度的持續穩定。他們必須是使每個人都步入正軌的協調者。
- 專家角色——這些角色由各自領域或行業的專家擔任,根據項目需求提供額外的支持。他們可能因項目而異,也因團隊而異。這樣的角色包括業務架構師、質量經理、系統集成商等等。
三、DSDM的基本原則
- 用戶必須持續參與
用戶不僅提出產品需求,還要參與到開發過程中,及時給出反饋。
- 授予DSDM團隊決策權
DSDM團隊成員被授予能夠在出現問題後直接做出決定的權力。
- 強調產品的經常交付
產品的經常交付能夠讓開發團隊得到快速的反饋,並及時處理交付中發現的問題。
- 滿足業務需求
不要做過多無意義的功能增加,交付完成的標準就是實現產品的業務需求。
- 迭代開發
迭代開發能夠不斷完善業務解決方案,滿足業務需求。
- 開發過程中的所有變化可逆
開發過程要適應變化。
- 在高層次上制定需求的基線
要先達成高層次的目標,再進行需求細化。
- 測試自始自終貫穿於開發周期之中
開發人員完成一個模塊的開發後,自己會進行單元測試。當模塊集成到現有系統後,測試人員需要執行集成測試。另外,回歸測試在DSDM中佔有很重要的地位。
- 所有利益相關者之間的通力合作是不可或缺的
產品的交付需要各方的參與、努力,單靠開發團隊是無法成功交付的。
四、DSDM的優勢
DSDM中既有傳統開發的優勢,又有先進的敏捷思維及理念,因此有效實施DSDM能夠幫助團隊得到切實有效的提高:
- 開發過程及結果能夠清晰、明確地展現出來;
- 用戶積极參与開發過程,更能滿足他們的需求;
- 有效的溝通能夠打破中間各環節的交流壁壘;
- DSDM更易於與其他敏捷方法論結合,因地制宜發展適合自己組織的開發方法;
- DSDM不局限於IT領域,在非IT領域也有着廣泛的應用。