主流敏捷開發:DSDM開發模型和核心概念

0 評論 26442 瀏覽 48 收藏 10 分鐘

在國內基本上很難找到DSDM的一些有用的資料或者博客,這篇文章整理和英譯了來著國外的一些資料和博客,其中大部分出自What Is DSDM?(Marc Clifton,J.Dunlap)這篇文章。

DSDM概述

Dynamic Systems Development Method (動態系統開發方法) 是一個敏捷項目開發交付框架,主要作為一種軟件開發方法使用。這個框架包含了許多當前有關項目管理的主要知識。DSDM是基于軟件開發團體,軟件開發和工程進度相交的,因此商業開發項目讓DSDM成為了一種解決復雜問題的常見解決方案。DSDM框架能夠同時實現敏捷和傳統開發過程。

new_page_1

Whereas in traditional development methodologies, functionality is fixed, and time and resources are variable, in DSDM, time is fixed, resource and functionality are variable.

在傳統開發方法中,功能是固定的,時間和人力資源是可變的,而在DSDM中,時間是固定的,功能和資源是可變的。

Dynamic Systems Development Method (DSDM) is an organized, common-sense process focused on delivering business solutions quickly and efficiently. It is similar in many ways to SCRUM and XP, but it has its best uses where the time requirement is fixed.

DSDM是一個有組織的,專注于快速,高效提供業務解決方案的常規過程。它在許多方面類似于SCRUM和XP,但它的最佳用途在于固定的時間要求。

DSDM focuses on delivery of the business solution, rather than just team activity. It makes steps to ensure the feasibility and business sense of a project before it is created. It stresses cooperation and collaboration between all interested parties. DSDM makes heavy use of prototyping to make sure interested parties have a clear picture of all aspects of the system.

DSDM 重點是交付的業務解決方案,而不是只是團隊活動。在它被創建之前會通過流程確保項目的可行性和業務邏輯。它強調合作的所有相關方面的協調。DSDM重在利用原型設計,確保有關各方清楚地了解系統的所有方面。

總結

這里的核心思想在于:DSDM開發的時間是固定的,功能的劃定和資源的配置得配合著實際開發效果進行規劃。也就是如果兩周為一個周期迭代,那么這個規定就得定死,如果是人員不夠,影響了開發時間,就增加人員;如果是功能太多影響了開發時間,就得砍掉部分功能,保留到下一版;而不是將計劃時間一拖再拖,不斷延期。下不定決心砍需求,最終就變成了幾個月,或者半年開發一版的傳統開發。

DSDM模型

new_page_2

Pre-Project ?前期階段

The pre-project phase is not strictly defined. It occurs before the project officially begins. In this stage, the project is conceptualized, and the decision is made to start the project.

項目前期階段沒有嚴格的界定。它發生在項目正式開始之前。在這一階段,構思該項目,并決定啟動該項目。

可行性研究——考慮項目是否會被時間和資源限制?盡快完成這一階段,因為DSDM的核心是快速交付。
業務研究——是否有良好的商業意識?參與者和相關人員是誰?最好的工作計劃是什么?我們將使用什么技術來完成它?

Functional Model ?功能模型

In this stage, functional prototypes of the system are made and reviewed. A functional prototype is a prototype of the functions the system should perform and how it should perform them.

在這一階段制作和回顧功能原型。功能原型用來說明功能應執行的職能和它應該如何執行它們。

Design And Build ?設計及建造

In this stage, the product is designed and developed in iterations. In each iteration a design model is made of the area being developed, and then that area is coded and reviewed.

這一階段是產品的設計和開發的迭代。每一次迭代的設計模型是由開發組成,開發包括編程和回顧。
這里的設計和建造包括界面設計,框架設計以及開發等這一系列付諸行動的過程。

Implement ?實施

In the last phase, the product is wrapped up, documentation is written, and a review document is drawn up, comparing the requirements with their fulfillments in the product. The users are trained in how to use the system, and the users give approval to the system.

最后階段,打包產品,編寫文檔,審核起草的文件,比較產品與實際需求。培訓用戶如何去使用該系統,并給與相應系統的權限。

總結

After the product is created, maintenance will inevitably need to be performed. This maintenance is generally done in a cycle similar to the one used to develop the product.

在產品完成之后,維修是不可避免的。修改一般也是進行一個循環,如同開發產品一樣。

從上面的圖可以看出,整個流程就是一個個循環合成一個大循環,將一個開發周期劃分為幾個小的周期,到每一塊大的流程時,都是幾個確保這個流程能有效實施的小流程,嚴謹規范。

DSDM核心概念

Active User Involvement

活動用戶參與:讓使用產品的人積極參與其發展,這是令產品最終對用戶有用的一個重要舉措。

The Team Must Be Empowered to Make Decisions

團隊具備決定權:團隊能夠快速做出決定和了解決定,無需通過繁瑣的手續才能獲得該決定的批準。

Frequent Releases

頻繁發布:DSDM側重于頻繁的發布版本,頻繁的發布能夠使用戶在開發的關鍵階段介入。他們還確保產品能夠在任何時候很快的釋放。

Iterative Development, Driven by User Feedback

迭代開發,驅使用戶反饋:在迭代中開發產品,能夠頻繁的接收用戶反饋和部分要及時解決的需求,而更多的功能將被添加到后期的迭代中。

Requirements are Initially Defined at a High Level

在更高層次定義最初需求:高級別的需求需要在項目開始時定義,在任何的編程之前,更多的考慮開發的進程而不是細節。

Fitness for Business Purpose is the Goal

符合商業業務需求才是目標:滿足業務需求比技術完美實現更為重要。

Integrated Testing

集成測試:在開發的每一步完成測試,確保正在開發的產品技術上是健全的,沒有發展出其他缺陷,它最大程度是使用在用戶的反饋上。

Collaboration and Cooperation are Essential

協作和合作是關鍵:所有相關方面的合作對項目的成功至關重要。所有有關各方(不只是核心團隊)需要共同努力,以滿足業務目標。

20% / 80% Rule

20/80原則:DSDM認為,項目80%的解決方案將是用項目20%的時間形成的,DSDM會側重于這80%,將剩余20%的解決方案保留到下一版本。這是因為DSDM認為不是所有要求對最終的解決方案都是已知的,最后20%的非必要功能反正可能存在缺陷。

總結

DSDM其實也是比較冷門而且晦澀的,只能在起到一些指導性作用,不像Scrum或者XP那樣,比較熱門且有成熟的開發流程模型。但它的一些核心思想,理論等,都是很有指導性,能有效的規范開發過程,起碼能為對這方面感興趣的讀者起到借鑒和啟發的作用,這也是我整理介紹DSDM的原因。

另外,英譯水平有限,比較粗糙,請見諒。

 

本文由 @Frayne 翻譯發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!