敏捷软件开发方法

206 阅读4分钟

还有人在问什么是敏捷软件开发。
敏捷是一个术语,用于描述强调增量交付、团队协作、持续规划和持续学习的软件开发方法,而不是试图在接近尾声时一次性交付。

敏捷专注于保持流程精益并创建最小可行产品,这些产品在最终确定之前经过多次迭代。反馈会不断收集和实施,总的来说,这是一个更加动态的过程,每个人都朝着一个目标努力。 敏捷软件开发

Scrum 和其他领先的敏捷方法

敏捷是一种心态,它是一套价值观和原则。敏捷是一种思考和行动的方式。敏捷是关于短周期、迭代和增量交付、快速失败、获得反馈、尽早向客户交付业务价值以及人员、协作和交互。敏捷是一种关于透明度、检查和适应的思维方式。然而,敏捷并不包含任何角色、事件或[工件]。

这是一种心态。例如,Scrum是敏捷保护伞下广泛使用的框架之一,它可以帮助您变得更加敏捷,但是敏捷运动中还有更多框架,例如看板、XP、Crystal 等等,如图所示以下:

Scrum 敏捷伞

Scrum

Scrum是一个框架,人们可以在其中解决复杂的适应性问题,同时富有成效和创造性地交付具有最高价值的产品。通常Scrum用于软件开发和产品或应用程序开发。它的重点是适应性产品开发策略,其中跨职能团队作为一个单元在2-4周内实现共同目标。它由一系列价值、工件、角色、仪式、规则和最佳实践组成。

看板

看板是一种高度可视化的工作流管理方法,在精益团队中很流行。事实上,83%的精益实践团队使用看板来可视化和积极管理产品的创建,重点是持续交付,同时不会使团队负担过重。与Scrum一样,看板是一个旨在帮助团队更有效地协作的过程。

看板基于3个基本原则:

想象你今天要做的事(工作流程):查看彼此上下文中的所有项目可以提供非常丰富的信息; 限制进行中的工作量(WIP):有助于平衡基于流程的方法,因此团队不会立即开始承诺过多的工作; 增强流程:当某件事完成时,积压中的下一个优先级最高的项目被拉入迭代;

看板通过定义最佳的团队工作流程来促进持续协作并鼓励积极、持续的学习和改进。

极限编程

极限编程(XP)最初由Kent Beck描述,目前已成为最受欢迎和最具争议的敏捷方法之一,XP是一一种快速、持续交付高质量软件的规范方法。它旨在面对不断变化的客户需求时提高软件质量和响应能力。它促进了客户的高度参与、快速反馈循环、持续测试、持续规划和紧密的团队合作,以非常频繁的实践间隔(通常每1~3周)交付工作软件。

该方法论的名称来源于将传统软件工程实践的有益元素带到“极端”水平的想法。例如,代码审查被认为时一种有益的做法,更极端的是,通过结对编程的实践,可以不断地审查代码。

最初XP方法基于四个简单的价值观——简单、沟通、反馈和勇气。

它还有十二辅助实践:####

  • 增量和反复式的开发----一次小的改进跟着一个小的改进。
  • 反复性,通常是自动重复的单元测试,回归测试。参见JUnit。
  • 结对程序设计
  • 在程序设计团队中的用户交互(在场的客户)
  • 软件重构
  • 共享的代码所有权
  • 简单
  • 反馈
  • 用隐喻来组织系统
  • 可以忍受的速度

功能驱动开发(FDD)

功能驱动开发(FDD)由Jeff De Luca于1997年引入。它是一个迭代和增量的软件开发过程,是一种敏捷软件的开发方法。FDD将许多行业公认的最佳实践融合成一个有凝聚力的整体。这些实践是从重视客户的功能(特性)的角度驱动的。它的主要目的是及时地重复交付切实可行的软件。使用FDD的优势在于可以扩展到大型团队,由于其以功能为中心的流程,它是保持对敏捷、增量和固有复杂项目的控制的绝佳解决方案。它包括五个基本活动:

  1. 整体模型的开发;
  2. 功能列表的构建;
  3. 按功能规划;
  4. 按功能设计;
  5. 按功能构建;

每个项目都有自己独特的模型,这将产生一个功能列表。最后三个活动是短迭代过程,构建一个功能不超过两周。如果需要两周以上的时间,则必须将其分解为更小的功能。