快好知 kuaihz

主流敏捷开发:DSDM开发模型和核心概念

在国内基本上很难找到DSDM的一些有用的资料或者博客,这篇文章整理和英译了来着国外的一些资料和博客,其中大部分出自What Is DSDM?(Marc Clifton,J.Dunlap)这篇文章。

DSDM概述

Dynamic Systems Development Method (动态系统开发方法) 是一个敏捷项目开发交付框架,主要作为一种软件开发方法使用。这个框架包含了许多当前有关项目管理的主要知识。DSDM是基于软件开发团体,软件开发和工程进度相交的,因此商业开发项目让DSDM成为了一种解决复杂问题的常见解决方案。DSDM框架能够同时实现敏捷和传统开发过程。

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模型

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的原因。

另外,英译水平有限,比较粗糙,请见谅。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:开发  开发词条  敏捷  敏捷词条  模型  模型词条  主流  主流词条  核心  核心词条  
产品

 什么是敏捷开发Scrum及其适用...

笔者根据自己对敏捷开发Scrum的理解,总结了敏捷开发从开始到结束的流程以及其适用的场景。一、敏捷开发到底是什么很难用一两句话说清楚敏捷到底是什么,也许因为它只...(展开)