美文网首页
描述Scrum之外至少两个精益/敏捷开发框架-水晶方法、动态系统

描述Scrum之外至少两个精益/敏捷开发框架-水晶方法、动态系统

作者: 舞蕙 | 来源:发表于2021-08-19 15:24 被阅读0次

借鉴文章:https://www.minjiekaifa.com/agilearticles/dynamic-systems-development-method-80195.html

常见的敏捷开发方法:

    软件开发节奏,Software Development Rhythms

    敏捷数据库技术,AD/Agile Database Techniques

    敏捷建模,AM/Agile Modeling

    自适应软件开发,ASD/Adaptive Software Development

    水晶方法,Crystal

    特性驱动开发,FDD/Feature Driven Development

    动态系统开发方法,DSDM/Dynamic Systems Development Method

    精益软件开发,Lean Software Development

    AUP(Agile Unified Process)

    Scrum

    XBreed

    极限编程,XP Extreme Programming

    探索性测试

几种不同敏捷开发的比较

极限编程以客户的需求变化为重点,同时强调团队合作。 XP更为注重开发过程中,团队(包括客户、管理人员、开发人员)不约而同地聚在一起讨论方案,解决难题;

Scrum的开发模式称为 “橄榄球”式方法 :团队成员都对产品开发的整个过程保留自己的看法,实现自治。产品开发方式由线性方法转向集成方法,这种转变刺激团队内部各层次间的交叉学习、交流以及思维发散。

功能驱动开发模式主要针对中小型软件开发项目,“是一个以Architecture为中心的,采用短迭代期、目期驱动的开发过程。它首先对整个项目建立起一个整体的模型,然后通过两周一次‘设计功能——实现功能’的迭代完成项目开发。”

水晶方法:强调每个项目都有其独特的特点。因此,团队需要量身定制出适应这些特性的策略和实践。与其他敏捷方法一样, Crystal 方法通过促进按时和频繁的工作软件交付,激发了用户的参与度、适应性,并排除干扰、消除浪费。

一、水晶方法——Crystal Methods

    提出:

    20世纪 90年代末, AlistairCockburn提出水晶方法论。

    水晶方法细化为透明水晶方法论( Crystal Clear)、黄色水晶方法论( Crystal Yellow)、橙色水晶方法论( Crystal Orange)以及红色水晶方法论( Crystal Red)。这几种水晶方法论按照项目重要程度以及参加人员规模进行划分,一般来讲,透明水晶方法,适用于一个小团队来进行敏捷开发,人数在 6人以下为宜。相比于同样适用于小规模团队的 XP,水晶方法的纪律性较弱,但其管理运作与团队产出相协调。

水晶方法有七大体系特征

经常交付

通过经常交付以及时获得客户、产品经理的反馈,从而提升客户价值,使产品价值最大化。

反思改进

对于在迭代开发过程中出现的问题和在交付成果中发现的问题,团队要进行及时的反思。把握住问题的关键,快速地找到解决方案。当问题发现不及时,或者团队并未 进行反思改进时,常常会导致问题的叠加,最终影响可用产品的交付。

渗透式交流

在两个或多个成员进行交流的时候,与他们同处于一个空间范围内的其他人员会或多或少地获取他们的对话信息。因此,这种接收并非有意创造的信息来源的方式称为 渗透式交流,成员根据自己的当前工作可以选择忽略,也可以选择接收。——个人感受:类似于统一站会,团队能统一进度

个人安全

个人安全类似于极限编程强调的“勇气”,当个人产生问题困惑的时候,选择指出问题而不是隐瞒问题,且自己的人身安全受到保障。首先,只有坦然面对不足,才能及 时改正,促使自身与团队不断得到提升。其次,人身安全又是团队中互相信任的表现,只有相互信任,才能更好地完成团队协作。——个人感受:营造一个可信任的团队氛围,培养团队成员的相互信任,才能做到更好。

焦点

焦点就是首要计划。团队制定出要完成的计划,然后安排时间

所谓“焦点”,就是确定首先要做什么,然后安排时间,以平和的心态开展工作。确保团队成员清楚的了解他们自己最重要的任务是什么,确保他们能够有充分的时间去 完成这些任务。——个人感受:类似于Scrum中的产品代办列表,做优先级高的高价值需求

与专家和用户建立方便的联系

建立方便的联系是保证专家、用户、团队能够形成一个短周期反应链,对于小批次交付成果的、用户需求变动建立一个快速反馈机制,提高团队工作效率。——个人感受:Scrum中需求澄清、迭代评审,鼓励客户参与到验收评审当中。

配有自动化、配置管理和经常集成功能的技术环境——Scrum框架中暂时还没有涉及,但是很有必要性

自动化测试可以对代码进行自动测试,减少了人工成本,是工作变得高效、快捷;

配置管理简单来说,就是可以返回上一步,可以通过撤销新操作出现的失误来解决问题;

经常集成功能使团队对系统快速集成,以及时发现错误、纠正错误。

水晶方法保证了产品开发的进度,较好的满足了客户的需求,使开发过程顺利实施

水晶方法的优缺点

1.优点

首先,水晶方法是灵活的,可以根据项目类型、团队规模和项目需求进行调整;

其次,它是优先交付项目的关键;

然后,该项目最多可以有10个团队成员;

此外,这种方法促进了有效的团队沟通,有助于团队成员相互学习;

最后,通常会准备一个价格固定的合同,这有助于根据预算确定团队规模和计划。

2.劣势

首先,遵循的原则可能因团队和项目规模的不同而不同,理解起来会很困难;

其次,它需要持续沟通,这就是为什么它可能不适用于有多个工作区域的项目的原因;

此外,由于规划和开发并不依赖需求,因此在项目中期,从一种方法转换为另一种方法就会变得非常困难。

——个人感受:其优缺点都是相对而言的,有点事比较灵活,也正是因为过于灵活,理解起来就会比较困难。

二、动态系统开发方法,DSDM/Dynamic Systems Development Method

    DSDM方法倡导以业务为核心,进行快速、有效的系统开发,不仅适用于敏捷开发模式,也同样适用于传统的开发模式。它既能满足单个团队同一地点的简单产品开发,还能满足多个团队不同地点、不同时区的复杂项目开发。

DSDM依赖于严格的时间控制

DSDM强调 项目的时间是固定的, 功能和资源是可变的。也就是说,项目功能和资源的规划需要配合实际开发效果进行规划:如果在一周的时间内,功能太多无法交付,那么就要去掉部分功能,以顺利结束这一迭代。其基本观点是,任何事情都不可能一次性完成,应该用20%的时间来完成80%的有用功能,以适应商业目的为准。因此,对项目任务的优先级排序是十分重要的,DSDM应用 MosCow优先级排序方法,将项目任务分解为四种不同类型的要求:

Must:必须做的;

Should:应该做的;

Could:可以做的;

Would not:不要做的。

那么,为了顺利完成“80%”的有用功能,可以首要完成Must、Should项,或者说在完成Must、Should项的基础上酌情考虑完成Could项。

——个人感受:与Scrum的容量及产品代办列表优先级的原则类似。只是强调的点不同。

DSDM的角色:

任何敏捷开发方法论都有注明他们所构建的系统中应具备的角色,DSDM也不例外:

项目负责人——该职位上的人员由用户或客户方面推出,他们代表用户或客户行使决策权,并能够根据需要分配资金及资源。

项目指导——项目指导者需要深入了解用户业务、具备敏锐性,并有远见卓识,能够尽快锁定最高优先级要求,并基于此指导团队来初始化项目。

用户代表——一个理想的“测试用户”,可以将用户社群的观点带入到整个项目中。他们是整个开发过程中重要的反馈来源。

用户顾问——另一种类型的用户,应对手中的项目提出新颖或十分重要的观点,因此,用户顾问需要有资深的专业知识或其他独特的专业能力。

项目经理——项目经理是管理整个项目的人。

团队负责人——负责协调和促进团队之间的协作。

解决方案开发人员——浏览系统要求,进行系统建模,开发可交付的代码并创建原型。

解决方案测试器——测试产品,并在出现错误时提供注释和文档。在实施更正后,它们还能够重新测试。

抄录员——记录项目进度的要求、协议、决定和其他有用信息。

主持人——他们负责激励和准备研讨会,以保持进度的持续稳定。他们必须是使每个人都步入正轨的协调者。

专家角色——这些角色由各自领域或行业的专家担任,根据项目需求提供额外的支持。他们可能因项目而异,也因团队而异。这样的角色包括业务架构师、质量经理、系统集成商等等。

DSDM的基本原则:

用户必须持续参与:

    用户不仅提出产品需求,还要参与到开发过程中,及时给出反馈。

授予DSDM团队决策权:

    DSDM团队成员被授予能够在出现问题后直接做出决定的权力。——个人感受:相当于Scrum自组织,但是没有自组织的权限高

强调产品的经常交付:

    产品的经常交付能够让开发团队得到快速的反馈,并及时处理交付中发现的问题。——个人感受:Scrum更详细,具有可操作性

满足业务需求:

    不要做过多无意义的功能增加,交付完成的标准就是实现产品的业务需求。——个人感受:完成的定义,不作精上添花

迭代开发:

    迭代开发能够不断完善业务解决方案,满足业务需求。——个人感受:增量式开发

开发过程中的所有变化可逆:

    开发过程要适应变化。——个人感受:敏捷原则的体现

在高层次上制定需求的基线:

    要先达成高层次的目标,再进行需求细化。——个人感受:愿景

测试自始自终贯穿于开发周期之中:

    开发人员完成一个模块的开发后,自己会进行单元测试。当模块集成到现有系统后,测试人员需要执行集成测试。另外,回归测试在DSDM中占有很重要的地位。——个人感受:强调自动化测试,测试先行

所有利益相关者之间的通力合作是不可或缺的:

    产品的交付需要各方的参与、努力,单靠开发团队是无法成功交付的。——个人感受:这个Scrum没有强调,但是现实过程中是需要通力合作的。但是存在困难。

DSDM的优势

    DSDM中既有传统开发的优势,又有先进的敏捷思维及理念,因此有效实施DSDM能够帮助团队得到切实有效的提高:

开发过程及结果能够清晰、明确地展现出来;

用户积极参与开发过程,更能满足他们的需求;

有效的沟通能够打破中间各环节的交流壁垒;

DSDM更易于与其他敏捷方法论结合,因地制宜发展适合自己组织的开发方法;

DSDM不局限于IT领域,在非IT领域也有着广泛的应用。

个人感受:

    水晶方法类似,只是着重点不同,都是很灵活的狂减。水晶方式增加了持续集成,动态系统开发方法更强调实践及用测试驱动开发。但个人认为,Scrum方法比其他敏捷方法更详细,它提供了一个框架,团队起初转型的时候,需要一个可操作的框架来让团队先从“形式”上敏捷起来,然后根据团队实际情况,通过不断的调整适应来找到适合团队自身的敏捷方式。Scrum是一个基础,随着团队的成熟发展可以融合其他敏捷方法到迭代当中来,先规范再适应。

相关文章

网友评论

      本文标题:描述Scrum之外至少两个精益/敏捷开发框架-水晶方法、动态系统

      本文链接:https://www.haomeiwen.com/subject/xrqabltx.html