主流敏捷開發(fā):DSDM開發(fā)模型和核心概念

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

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

DSDM概述

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

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.

在傳統(tǒng)開發(fā)方法中,功能是固定的,時間和人力資源是可變的,而在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是一個有組織的,專注于快速,高效提供業(yè)務(wù)解決方案的常規(guī)過程。它在許多方面類似于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 重點(diǎn)是交付的業(yè)務(wù)解決方案,而不是只是團(tuán)隊(duì)活動。在它被創(chuàng)建之前會通過流程確保項(xiàng)目的可行性和業(yè)務(wù)邏輯。它強(qiáng)調(diào)合作的所有相關(guān)方面的協(xié)調(diào)。DSDM重在利用原型設(shè)計(jì),確保有關(guān)各方清楚地了解系統(tǒng)的所有方面。

總結(jié)

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

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.

項(xiàng)目前期階段沒有嚴(yán)格的界定。它發(fā)生在項(xiàng)目正式開始之前。在這一階段,構(gòu)思該項(xiàng)目,并決定啟動該項(xiàng)目。

可行性研究——考慮項(xiàng)目是否會被時間和資源限制?盡快完成這一階段,因?yàn)镈SDM的核心是快速交付。
業(yè)務(wù)研究——是否有良好的商業(yè)意識?參與者和相關(guān)人員是誰?最好的工作計(jì)劃是什么?我們將使用什么技術(shù)來完成它?

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.

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

Design And Build ?設(shè)計(jì)及建造

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.

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

Implement ?實(shí)施

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.

最后階段,打包產(chǎn)品,編寫文檔,審核起草的文件,比較產(chǎn)品與實(shí)際需求。培訓(xùn)用戶如何去使用該系統(tǒng),并給與相應(yīng)系統(tǒng)的權(quán)限。

總結(jié)

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.

在產(chǎn)品完成之后,維修是不可避免的。修改一般也是進(jìn)行一個循環(huán),如同開發(fā)產(chǎn)品一樣。

從上面的圖可以看出,整個流程就是一個個循環(huán)合成一個大循環(huán),將一個開發(fā)周期劃分為幾個小的周期,到每一塊大的流程時,都是幾個確保這個流程能有效實(shí)施的小流程,嚴(yán)謹(jǐn)規(guī)范。

DSDM核心概念

Active User Involvement

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

The Team Must Be Empowered to Make Decisions

團(tuán)隊(duì)具備決定權(quán):團(tuán)隊(duì)能夠快速做出決定和了解決定,無需通過繁瑣的手續(xù)才能獲得該決定的批準(zhǔn)。

Frequent Releases

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

Iterative Development, Driven by User Feedback

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

Requirements are Initially Defined at a High Level

在更高層次定義最初需求:高級別的需求需要在項(xiàng)目開始時定義,在任何的編程之前,更多的考慮開發(fā)的進(jìn)程而不是細(xì)節(jié)。

Fitness for Business Purpose is the Goal

符合商業(yè)業(yè)務(wù)需求才是目標(biāo):滿足業(yè)務(wù)需求比技術(shù)完美實(shí)現(xiàn)更為重要。

Integrated Testing

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

Collaboration and Cooperation are Essential

協(xié)作和合作是關(guān)鍵:所有相關(guān)方面的合作對項(xiàng)目的成功至關(guān)重要。所有有關(guān)各方(不只是核心團(tuán)隊(duì))需要共同努力,以滿足業(yè)務(wù)目標(biāo)。

20% / 80% Rule

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

總結(jié)

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

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

 

本文由 @Frayne 翻譯發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!