敏捷开发是一种以人为中心的、迭代的、渐进的开发方法。在敏捷开发中,将一个软件项目的建设分为多个子项目,每个子项目的成果都经过测试,具有集成和可操作的特点。
换句话说,一个大项目被分成多个小项目,这些小项目相互关联,但也可以独立运行,分别完成。在此过程中,软件始终处于可用状态。
敏捷开发模型的分类
敏捷是一种心态,它是一套价值观和原则。敏捷是一种思考和行动的方式。敏捷是关于短周期、迭代和增量交付、快速失败、获得反馈、及早向客户交付业务价值以及人员、协作和交互。敏捷是一种关于透明度、检查和适应的心态。然而,敏捷不包含任何 角色、事件或 工件。这是一种心态。例如, Scrum 是敏捷保护伞下广泛使用的框架之一,它可以帮助您变得更加敏捷,但是在敏捷运动中还有更多框架,如看板、XP、Crystal 等等,如图所示以下:
- XP 极限编程(eXtreme Programming)
- SCRUM
- 看板
- 倾斜
- 水晶法
- 动态系统开发方法
其中,XP 和 SCRUM 最为流行。
Scrum
Scrum 是一个框架,人们可以在其中解决复杂的适应性问题,同时富有成效和创造性地交付具有最高价值的产品。它用于管理软件项目和产品或应用程序开发。它的重点是适应性产品开发战略,跨职能团队作为一个单元在 2-4 周内实现共同目标(Sprint)。它由一系列价值观、工件、角色、仪式、规则和最佳实践组成。
倾斜
精益起源于丰田生产系统或 TPS,它在 1950 年代、60 年代及以后彻底改变了实物产品的制造。精益在制造业中占有一席之地,但也在知识工作中找到了新的应用,帮助各行各业的企业 消除浪费、改进流程并促进创新。软件开发是精益方法的自然应用,因为与制造非常相似,它通常遵循定义的过程,具有一些定义的接受条件,并导致交付有形价值。指导所有精益方法实践的关键概念,我们称之为精益支柱。他们是:
- 连续的提高
- 尊重人
- 轻量级领导
看板
看板是一种高度可视化的工作流管理方法,在精益团队中很流行。事实上,83% 的精益实践团队使用看板来可视化和积极管理产品的创建,重点是持续交付,同时不会给开发团队增加负担。与 Scrum 一样,看板是一个旨在帮助团队更有效地合作的过程。
看板基于 3 个基本原则:
- 可视化您今天要做的事情(工作流程):查看彼此上下文中的所有项目可能会提供非常丰富的信息
- 限制进行中的工作量 (WIP):这有助于平衡基于流程的方法,因此团队不会立即开始并承诺过多的工作
- 增强流程:当某事完成时,从积压的下一个最高优先级项目开始发挥作用
看板通过定义最佳团队工作流程来促进持续协作并鼓励积极、持续的学习和改进。
动态系统开发方法 (DSDM)
DSDM 是一个由八项原则、生命周期和产品、角色和职责以及几种最佳实践技术组成的框架。这些支持并支持尽早提供战略上一致的业务利益的理念,从而为组织提供最佳的投资回报 (ROI)。
DSDM 是一种将进度和质量优先于功能的方法,它从一开始就固定成本、质量和时间,并使用 MoSCoW 的优先级方法,将项目分解为四种不同类型的需求:
- 必须有 (M)
- 应该有 (S)
- 本来可以©
- 不会有 (W)
DSDM Atern 有八项原则。这些原则指导团队采取他们必须采取的态度和他们必须采用的心态来始终如一地交付。
- 专注于业务需求
- 准时交货
- 合作
- 绝不妥协质量
- 从坚实的基础逐步建立
- 迭代开发
- 持续清晰的沟通
- 展示控制
极限编程
最初由 Kent Beck 描述的极限编程 (XP) 已成为最流行和最有争议的敏捷方法之一。XP 是一种快速、持续地交付高质量软件的规范方法。它旨在提高软件质量和面对不断变化的客户需求的响应能力。它促进了高度的客户参与、快速的反馈循环、持续的测试、持续的计划和紧密的团队合作,以非常频繁的间隔交付工作软件,通常每 1-3 周一次。
敏捷方法的关键价值是什么?
“敏捷”一词是 2001 年在敏捷宣言中创造的。该宣言旨在建立指导更好的软件开发方法的原则。敏捷宣言包含 4 个重要的价值观。阅读敏捷宣言的方式不是右侧的项目不再具有价值,而是敏捷运动更重视左侧的项目。
有四个关键值是敏捷方法中每个组件的构建块。他们强调将重点从实践和流程转移到人员和协作。
这四个价值观为敏捷最佳实践提供了参考,重点关注灵活性,以便团队可以最好地合作完成任务。敏捷实践在整个过程中提升了最终目标的重要性。如果人们能够很好地合作,适应新的变化并进行生产,那么他们如何做到这一点并不重要。
12 个最佳实践
作为敏捷宣言的补充,敏捷联盟还定义了一套 12 条基本原则,除了敏捷宣言之外,它们还提供了指导和更详细的解释:
- 我们的首要任务是通过早期和持续交付有价值的软件来满足客户。
- 欢迎不断变化的需求,即使是在开发的后期。敏捷流程利用变化来获得客户的竞争优势。
- 频繁地交付工作软件,从几周到几个月不等,优先考虑更短的时间范围。
- 业务人员和开发人员必须在整个项目中每天一起工作。
- 围绕有动力的个人建立项目。为他们提供所需的环境和支持,并相信他们能够完成工作。
- 向开发团队和在开发团队内部传达信息的最有效和最有效的方法是面对面交谈。
- 工作软件是进度的主要衡量标准。
- 敏捷流程促进可持续发展。
- 赞助商、开发人员和用户应该能够无限期地保持恒定的步伐。
- 对卓越技术和良好设计的持续关注提高了敏捷性。
- 简单——最大化未完成工作量的艺术——是必不可少的。
- 最好的架构、需求和设计来自自组织团队。团队定期反思如何变得更有效,然后相应地调整和调整其行为。
概括
敏捷开发是软件开发行业的热门词汇之一,它是一种管理软件开发项目的不同方式。它不是一种特定的软件开发方法,而是基于敏捷宣言中表达的价值观和原则的一组方法和实践的总称。解决方案通过自组织、跨职能团队之间的协作而发展,利用针对他们的上下文的适当实践。
Ищите в гугле