敏捷开发 | DSDM 在非 IT 领域也同样适用?
动态系统开发方法(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领域也有着广泛的应用。
敏捷开发 | DSDM 在非 IT 领域也同样适用?的更多相关文章
- 关于敏捷开发方法(Agile Software Development)的阅读笔记
对“敏捷开发”(Agile Software Development)这个词,我是在这学期邹欣老师<现代程序设计>课上第一次听到的,刚听到时并不知道其具体指什么,只是从字面上直觉其意思应该 ...
- 敏捷开发 与 Scrum
敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...
- 敏捷开发— —Scrum 学习笔记
敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷" ...
- 敏捷开发与Scrum
敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...
- MARTIN FOWLER谈敏捷开发
转自:http://www.scrumcn.com/agile/scrum-knowledge-library/agile-development.html#tab-id-9 每个人都在谈论敏捷开发( ...
- 微服务与敏捷开发(Scrum/Kanban)的核心思想之我见
微服务与敏捷开发(Scrum/Kanban)的核心思想之我见 关于"微服务"和"敏捷开发"的文章网络上有很多,所以这里不再重复叙述这些概念的解释和特点,而是 ...
- DevOps之敏捷开发
初步了解一下敏捷开发及其流程 1 为什么要敏捷开发? 敏捷开发描述了一套软件开发的价值和原则,在这些开发中,需求和解决方案皆通过自组织跨功能团队达成. 1.1 背景与动机 当需求的不明确性和工程实现的 ...
- 20145205 《Java程序设计》实验报告三:敏捷开发与XP实践
开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领域:软 ...
- 传统开发模型vs敏捷开发模型——过程模型的变革
一.概念框架 在了解一个新概念的时候,最好的方法就是把它插入到原有的概念体系中.在不仅有助于对概念的记忆,更利于深刻地认识概念的本质.精髓.下图说明了"敏捷开发"在软件工程理论体系 ...
随机推荐
- 使用qmake编译时拷贝文件
使用qmake构建项目时,需要在make时拷贝一些文件到指定位置,非执行make install,下面总结列举一下我了解的方式 COPIES 示例pro 1 COPY_DIR = $$PWD/copy ...
- conda / cuda / screen 常用命令总结
记录一些常用的 conda / cuda / screen 相关的命令,这些在跑深度学习代码时经常用到. conda 下面的命令在 Ubuntu 下的 4.8.3 版本 conda 均正确工作. 查看 ...
- pikachs 渗透测试2-XSS漏洞及利用
一.概述 XSS(跨站脚本)概述 Cross-Site Scripting 简称为"CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XS ...
- 上周我面了个三年 Javaer,这几个问题都没答出来
身为 Java Web 开发我发现很多人一些 Web 基础问题都答不上来. 上周我面试了一个三年经验的小伙子,一开始我问他 HTTP/1.HTTP/2相关的他到是能答点东西出来. 后来我问他:你知道 ...
- 面试阿里,字节,美团必看的Spring的Bean管理详解
IOC容器 工厂只负责创建对象,而Spring当然不仅仅是一个对象工厂,其核心是一个对象容器,其具备控制反转的能力,所以也称为IOC容器. 帮助我们存放对象,并且管理对象,包括:创建.销毁.装配,这样 ...
- 文档丢失不用怕,EasyRecovery帮你一键恢复
我们在使用电脑的过程中,有时会因为各种原因,导致我们所写的文档丢失了.遇到这种情况,该怎么办呢? 下面,就给大家分享一下用EasyRecovery如何恢复被丢失的文档. 1.双击进入EasyRecov ...
- laravel 返回SQL
默认情况下,toSql 获取到的 sql 里面的参数使用 "?" 代替的,如下: 1 DB::table('user')->where('id', 1)->toSql( ...
- ERP制造模块操作与设计--开源软件诞生30
赤龙ERP制造模块讲解--第30篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...
- 学Python,只有不到15%的同学会成功
我给大家唱首歌:<坚持的意义> 你看过了许多书籍 你看过了许多视频 你迷失在屏幕上每一道短暂的光阴 你品尝了代码的糟心 你踏过算法的荆棘 你熟记书本里每一段你最爱的公式 却说不出你爱Pyt ...
- Lsi卡和IB卡在CentOS中升级
LSI 9271 步骤1:准备升级工具和固件包 rpm -ivh MegaCli-8.07.14-1.noarch.rpm [root@phegdata01 ~]# unzip 23-34-0-000 ...