专业资讯
金指南视野 行业洞见
ACP敏捷方法都有哪些?学PMP项目管理必了解
发布时间:2022-07-18   浏览次数:923
返回

ACP敏捷方法溯源,学PMP项目管理也必须了解的知识点!

20世纪90年代,传统软件开发方法陷入了“重型化危机”。一些有识之士开始改革。一时间,涌现出了很多轻量化软件开发方法,比如:

  • Scrum。
  • 特性驱动开发(Feature-driven Development,FDD)。
  • 极限编程(Extreme Programming,XP)。
  • 精益软件开发(Lean Software Development)。
  • 看板方法(Kanban)。
  • 水晶方法(Crystal)。
  • 动态系统开发方法(Dynamic Systems Development Method,DSDM)。
  • 敏捷统一过程(Agile Unified Process,AUP)

 

此外,还有一些敏捷方法:

  • 敏捷建模(Agile Modeling,AM)。
  • 测试驱动开发(Test-driven Development,TDD)。
  • 行为驱动开发(Behavior-driven Development,TDD)。
  • 敏捷数据库技术(Agile Database Techniques,AD)。
  • 自适应软件开发(Adaptive Software Development,ASD)

 

2001年2月,Martin Fowler、Robert C. Martin、Jeff Sutherland、Ken Schwaber 、Mike Beedle、Arie van Bennekum、Dave Thomas、Andy Hunt、Alistair Cockburn、John Kern、Steve Mellor、Ron Jeffries、Kent Beck、Jim Highsmith、James Greening、Brian Marick和Ward Cunningham等17位软件开发专家齐聚在美国犹他州“雪鸟”滑雪圣地,目标是归纳提炼出轻量化软件开发方法的规律。这17位软件开发专家各有建树,有些还是上述方法的创建者。最终,他们在“雪鸟”会议上共同提出了敏捷(Agile)这个概念,并共同签署了“敏捷宣言4个价值观”和“敏捷实践12条原则”。

因此,你可以看到,敏捷(Agile)方法是由各流派敏捷方法的创建者聚在一起,提炼出来并达成共识的一个总称。“敏捷(Agile)方法”是一个囊括了各种框架和方法的涵盖性术语,它指的是符合《敏捷宣言》价值观和原则的任何方法、技术、框架、手段或实践。常用的敏捷方法有:精益、看板、Scrum、XP极限编程、水晶、DSDM动态系统开发、FDD功能驱动开发、AUP敏捷统一过程。

《敏捷实践指南》将敏捷方法和看板方法视为精益方法的子集。这样做的原因是,它们都是精益思想的具体实例,都反映了诸如以下概念:“关注价值”、“小批量”和“消除浪费”。

 

 

1、 Scrum

Scrum 是用于管理产品开发的单个团队过程框架。该框架包含 Scrum 角色、事件、工件和规则,采用迭代方法来交付工作产品。Scrum 是运行在 1 个月或更少时间的时间盒上的,其中包含持续时间一致的多个冲刺,在这些冲刺中会产生潜在可发布的产品增量。表 A3-1 列出了项目执行中所利用的 Scrum 事件和工件。Scrum 团队包含产品负责人、开发团队和 Scrum 主管。产品负责人负责实现产品价值的最大化。

开发团队是一个跨职能自组织团队,其开发成员拥有所需的一切资源,可在不依赖团队外部其他资源的情况下交付工作产品。

Scrum 主管负责确保 Scrum 过程获得相应支持且 Scrum 团队遵从实践和规则,并指导团队消除障碍。

 

2、极限编程(XP)

极限编程 (XP) 是一种基于频繁交付周期的软件开发方法。该名称基于这样一个理念:将特定最佳实践提炼到最纯粹和最简单的形式,然后在整个项目周期内持续运用该实践。

XP 最受关注的地方在于推广旨在改进软件项目成果的整套实践。该方法最初包含十二种主要实践,随后逐渐演变,采用了一些其他推论实践。

该演变是通过筛选核心价值观(沟通、简洁、反馈、勇气、尊重)并根据主要原则(人性化、经济、互惠互利、自相似、改进、多样性、反思、流程、机会、冗余、失败、质量、循序渐进、承担的责任)信息来设计和采用技术的结果。

 

3、看板(Kanban)

看板在精益制造中是一种用于规划库存控制和补给的系统。这种“准时制”库存补给过程最初可在杂货店中看到,商店会根据货架不足情况而不是供应商库存来补给货架商品。受这种准时制库存系统的启发,大野耐一开发了看板,并在 1953年将其应用于丰田的主要制造厂。

“看板”一词按字面翻译为“视觉符号”或“卡”。带有卡片的物理看板面板能够推动和实现整个系统中工作流的可视化,让每个人都可以看到。该信息发射源(大型显示屏)包含许多列,表示需要完成的工作流的状态。最简单的面板可能包含三列(即,要完成的工作、进行中的工作和已完成工作),但可以调整为使用团队所需要的任何状态。

看板方法应用并适用于多种场合,可以确保工作流和价值交付的持续性。看板方法不如某些敏捷方法规范,因此开始实施时的破坏性也较小,原因在于它是原始的“原地出发”方法。在必要或适当的情况下,组织可以相对轻松地应用看板方法并通过完全实施该方法而向前发展。

与大多数敏捷方法不同,看板方法未规定使用时间盒迭代。在看板方法中可以使用迭代,但应始终遵循在整个过程中持续拉取单个条目并限制在制品以优化流程的原则。如果团队或组织有以下需要时,则看板方法最为适用:

  1. 灵活性。团队通常不受时间盒的限制,将执行待办事项列表中优先级最高的工作。
  2. 专注于持续交付。团队专注于完成整个系统工作流,直至在制品完成才会开始新工作。
  3. 提高工作效率和质量。通过限制在制品将可以提高工作效率和质量。
  4. 提高效率。检查每个任务,了解增值或非增值活动,然后清除非增值活动。
  5. 团队成员专注力。限制在制品(WIP),使团队能够专注于当前工作。
  6. 工作负载的可变性。如果即将开展的工作存在不可预测性,团队将无法做出可预测承诺,即使对于短期工作也不例外。
  7. 减少浪费。透明将会使浪费可视化,因而能够消除浪费。

看板方法是从精益思维原则衍生而来。看板方法是一种整体性组织增量演变过程和系统变更框架。该方法采用“拉式系统”来完成在制品。团队完成一个条目后,即可拉取另一个条目到该过程。

看板面板是一种技术含量低但接触广泛的技术,使用者在一开始时可能会认为其过于简单,但很快便会发现其强大的功能。看板面板利用列进入和退出策略以及限制在制品等制约因素,可提供一目了然的工作流、瓶颈、阻碍和整体状态信息。此外,面板可作为面向所有观众的信息发射源,提供团队工作状态的最新信息。

在看板方法中,完成工作比开始新工作更为重要。从未完成的工作中无法获得任何价值,因此团队将协作实施和遵从在制品 (WIP) 限制,让整个系统中的每份工作得以“完成”。

 

4、水晶(Crystal)

水晶是一种方法论家族。水晶方法论旨在根据项目规模(项目中涉及的人员数量)以及项目的关键性来量化并提供方法严格程度选择。 水晶方法认识到每个项目可能需要一系列轻量剪裁的策略、实践和过程,以匹配项目的独特特征。该方法论家族根据“重要性”使用不同的颜色来确定要使用的方法。“水晶”一词的使用源自宝石,它的不同面代表了根本的核心原则和价值观。不同面代表了技术、工具、标准和角色,

 

5、Scrumban

Scrumban 是一种敏捷方法,最初设计为 Scrum 到看板之间的过渡方法。它是通过其自身衍生演变而成的另一种混合敏捷框架和方法,其中团队将 Scrum 作为框架,而将看板作为过程改进方法。

Scrumban中,工作被分解到许多小的“冲刺”,并利用看板面板来可视化和监督工作。将故事列在看板面板上,团队通过使用在制品限制来管理其工作。通过召开每日例会来维持团队之间的协作并消除阻碍。团队通过设置规划触发因素来了解何时规划下一步工作,通常发生于在制品级别低于预设限制时。Scrumban看板中没有预定义角色 — 团队保留其当前角色。

 

6、特性驱动开发(Feature-driven development,FDD)

特性驱动开发(也译为功能驱动开发)的开发目的是满足大型软件开发项目的特定需求。小型商业价值功能重视能力。

功能驱动开发项目中有六个主要角色,每个人可以担任以下一个或多个角色:

  • 项目经理;
  • 首席架构师;
  • 开发经理;
  • 首席编程人员;
  • 类负责人;和/或
  • 领域专家。

功能驱动开发项目分为五个过程或活动,以迭代方式执行:

  • 开发整个模型;
  • 构建功能列表;
  • 依据功能规划;
  • 依据功能设计;以及
  • 依据功能构建。

功能驱动开发活动由一组核心软件工程最佳实践提供支持:

  • 领域对象建模;
  • 依据功能开发;
  • 个体代码所有制;
  • 功能团队;
  • 检查;
  • 配置管理;
  • 定期构建;以及
  • 进度和结果可视化

 

7、动态系统开发方法Dynamic Systems Development Method:DSDM)

动态系统开发方法是一种敏捷项目交付框架,最初的设计目的是提高20 世纪 90 年代普及的迭代方法的严格程度。该框架开发为行业领导者之间的非商业性协作方式。

DSDM 因强调制约因素驱动交付而著称。该框架从一开始便可设置成本、质量和时间,然后利用正式的范围优先级来满足这些制约因素的要求

可通过八个原则来指导 DSDM 框架的使用:

专注于业务需求;

准时交付;

协作;

在质量上永不妥协;

在坚实的基础上进行增量式构建;

迭代开发;

保持持续和明晰的沟通;

演示控制(使用适当的技术)。

 

8、敏捷统一过程

敏捷统一过程 (AgileUP) 是软件项目中统一过程 (UP) 的分支。与紧前统一过程相比,该过程具有加速周期和轻量级的过程。其目的在于在七个主要因素之间执行更多迭代的周期,并在正式交付之前纳入相关反馈。

 

9Scrum of Scrums

Scrum of Scrums (SoS) 也称为“meta Scrum”,是由两个或多个 Scrum 团队而不是一个大型 Scrum 团队所使用的一种技术,其中一个团队包含三到九名成员来协调其工作。每个团队的代表会与其他团队代表定期召开会议,可能是每日例会,但通常是一周两次或三次。每日例会的执行方式类似于 Scrum 的每日站会,其中代表将报告已完成的工作、下一步工作设置、任何当前障碍以及可能会阻碍其他团队的潜在未来障碍。其目标是确保团队协调工作并清除障碍,以优化所有团队的效率。

具有多个团队的大型团队可能要求执行 Scrum of Scrum of Scrums,其遵循的模式与 SoS 相同,每个 SoS 代表向更大组织的代表报告,

 

10大规模敏捷框架

大规模敏捷框架 (SAFe®) 专注于为所有级别企业的大规模开发工作提供模式知识库。SAFe® 专注于以下原则:

采用经济视角;

应用系统思维;

假设可变性;预留方案;

以快速整合的学习周期进行增量式构建;

根据对工作系统的客观评估设定里程碑;

直观显示并限制在制品,减小批次规模并管理队列长度;

应用节奏;与跨域规划同步;

解锁知识员工的内在动力;

决策分散化。

SAFe® 专注于在项目组合、项目集和团队层详细设定实践、角色和活动,强调围绕专注于向客户提供持续价值的价值流来组织企业。

 

11大规模敏捷开发 (LeSS)

大规模敏捷开发 (LeSS) 是一种以扩展 Scrum 方法为共同目标来组织多个开发团队的框架,如图 A3-6 所示。其核心组织原则是尽可能保留传统单个团队Scrum 模型的元素。这将有助于减少任何模型扩展,避免造成不必要的混乱或复杂性。

为扩展 Scrum 而不丢失其精髓,LeSS 鼓励使用某些独特的原则,如系统思维、整体产品专注、透明等。

 

12企业级Scrum

企业 Scrum 是一种旨在通过更整体性组织层而不是单个产品开发层来应用Scrum 方法的框架。该框架尤其建议组织领导:

将所有 Scrum 应用扩展到所有组织方面;普及 Scrum 技术以便在这些不同的方面轻松应用;以及根据需要使用补充技术扩展 Scrum 方法。其目的在于通过实现颠覆性创新将敏捷方法扩展到项目执行范围以外。

 

13规范敏捷(DA)

规范敏捷 (DA) 是一种在综合模型中整合多种敏捷最佳实践的过程决策框架。

DA 旨在平衡专注范围过于狭窄(如 Scrum)或细节过于规范(如 AgileUP)的流行方法。为实现这种平衡,该方法根据以下原则混合了多种敏捷技术:

以人为先。枚举不同层级的角色和组织元素。

面向学习。鼓励协作改进。

完全交付生命周期。提倡多个符合目的的生命周期。

目标驱动。定制过程以实现特定结果。

企业意识。提供跨部门治理方面的指导。

可扩展。涵盖多种项目复杂性维度。

内容主要源自《敏捷实践指南》(PMI著)和《产品经理知识体系学习与实践指南》第2版(楼政等著)