APICloud进阶|什么是敏捷软件开发?

敏捷开发是软件开发行业的热门词汇之一,它是管理软件开发项目的另外一种方式。它不是一种特定的软件开发方法,而是一组基于敏捷方法中所表达的价值观和原则的方法和实践的统称,解决方案是经过自组织,跨职能的团队之间的协做来发展的。编程

敏捷是一个用来描述强调增量交付、团队协做、持续规划和持续学习的软件开发方法的术语,而不是试图在项目接近尾声时一次性交付全部内容。

敏捷侧重于保持过程精益,并建立在最终实现以前通过屡次迭代的最小可行产品(MVPs)。反馈被不断地收集和执行,总的来讲,这是一个更加动态的过程,每一个人都朝着一个目标共同努力
-------------------------------------------------------------------------------------**架构

敏捷开发


Scrum和其余领先的敏捷方法框架

  • 敏捷是一种思惟方式,是一套价值观和原则。

  • 敏捷是一种思考和行动的方式。

  • 敏捷是涉及短周期、迭代和增量交付、快速失败得到反馈、尽早向客户交付业务价值以及有关人员协做、交互的一种开发方式。

  • 敏捷是一种关于透明度、检查和适应的思惟方式。


然而,敏捷并不包含任何角色、事件或工件。例如,Scrum是敏捷保护伞下被普遍使用的框架之一,它能够帮助你变得更加敏捷,然而在敏捷运动中还有更多的框架,如看板、XP、Crystal等,以下图所示:工具


Scrum敏捷伞学习

Scrum测试

Scrum是一个框架,在这个框架中,人们能够解决复杂的适应性问题,同时高效、创造性地交付最高价值的产品。它用于管理软件项目、产品或应用程序开发。它的重点是自适应产品开发策略,其中跨职能团队做为一个单位,在2-4周内(Sprint)达到一个共同的目标。它由价值、工件、角色、仪式、规则和最佳实践组成。spa

Lean设计

精益源自丰田生产系统(TPS),该系统在20世纪50年代、60年代及之后掀起了制造行业的革命。精益技术在制造业中占有一席之地,帮助各行各业消除浪费、改进流程并促进了创新。软件开发是精益方法的天然应用,由于它与制造很是类似,一般遵循一个已定义的过程,有一些已定义的验收条件,并致使有形价值的交付。指导精益方法的全部实践的关键概念,咱们称为精益支柱。他们是:代码规范

  • 持续改进
  • 尊重员工
  • 轻量级的领导

看板blog

看板是一种高度可视化的工做流管理方法,在精益团队中很流行。实际上,83%的实践精益的团队使用看板来可视化和积极地管理产品的建立,强调持续的交付,而不是给开发团队增长过多的负担。与Scrum同样,看板是一个旨在帮助团队更有效地协做的过程。

看板基于如下三个基本原则:

  • 可视化你今天要作什么(工做流程):在彼此的上下文中查看全部项目是很是有用的
  • 限制进行中的工做量(WIP):这有助于平衡基于流程的方法,这样团队就不会一次开始和提交过多的工做
  • 加强流程:当某件事完成时,待办事项列表中优先级第二高的项就会被拉进来发挥做用

看板经过定义最好的团队工做流程,促进持续的协做,鼓励积极的、持续的学习和改进。

动态系统开发方法(DSDM)

DSDM是一个由8个原则、一个生命周期和产品、角色和职责以及一些最佳实践技术组成的框架。这些支持尽早交付战略上一致的业务利益理念,从而为组织提供最佳的投资回报(ROI)。

DSDM是一种将进度和质量优先级置于功能之上的方法,它在一开始就肯定了成本、质量和时间,并使用MoSCoW方法肯定了优先级,该方法将项目分解为四种不一样类型的需求:

  • 必须(M)
  • 应该(S)
  • 可能(C)
  • 没有(W)

有八个原则支持DSDM Atern。这些原则指导团队必须采起的一致的态度和思惟方式,以便尽快交付。

  • 专一于业务需求
  • 及时交付
  • 协做
  • 永不妥协的品质
  • 从稳固的基础上逐步构建
  • 迭代式开发
  • 持续而清晰地沟通
  • 展现控制力

极限编程

最初由Kent Beck描述的极限编程(XP)已经成为最流行、最具争议的敏捷方法之一。XP是一种纪律严明的快速、持续地交付高质量软件的方法。它的目的是在面对客户需求变化时提升软件质量和响应能力。它促进了客户的高度参与,快速的反馈循环,持续的测试,持续的计划,以及紧密的团队合做,以很是频繁的间隔交付工做软件,一般是每1-3周。

该方法的名字来源于将传统软件工程实践的有益元素带到“极端”水平的想法。例如,代码审查被认为是有益的作法。更极端的是,能够经过结对编程的实践来连续检查代码。

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

它还有12个配套实践:

  • 计划项目
  • 短时发布
  • 客户验收测试
  • 简化设计
  • 结对编程
  • 测试驱动开发
  • 代码重构
  • 持续集成
  • 程式码共有
  • 代码规范
  • 隐喻
  • 可持续的开发节奏

极限编程

功能驱动开发(FDD)

功能驱动开发(FDD)是杰夫·德卢卡(Jeff De Luca)1997年为一家大型新加坡银行进行软件开发项目时引入的。它是一种迭代的、增量的软件开发过程,是一种敏捷的软件开发方法。FDD将许多业界公认的最佳实践融合在一块儿。这些实践是从客户重视的价值功能(特性)的角度出发的。它的主要目的是及时地重复交付有形的、可工做的软件。使用FDD的优点在于,它甚至能够扩展到大型团队,由于它的概念是“刚开始就足够的设计”(JEDI)。因为它以功能为中心,所以它是保持对敏捷,增量和固有复杂项目的控制的绝佳解决方案。它包含五个基本活动:

  •  开发总体模型
  •  构建功能列表
  •   按功能规划
  •  按功能设计
  •  按功能构建

功能驱动开发(FDD)

每一个项目都有本身独特的模型,这将产生一个独特的功能列表。最后三个活动是简短的迭代过程,其特性的构建时间不会超过两周。若是要花费两周以上的时间,则必须将其分解为较小的功能。

Crystal

Crystal方法是由Alistair Cockburn在90年代中期开发的一个方法论系列Crystal系列)。这些方法来自于Cockburn多年的研究和对团队的访谈。Cockburn的研究代表,他采访的团队没有遵循正式的方法论,可是他们仍然交付了成功的项目。Crystal系列是Cockburn对他们所作的使项目成功的事情进行分类的方式。方法论重点包括:

  • 交互做用
  • 社区
  • 技能专长
  • 人才专长
  • 通信技术

敏捷方法

“敏捷”一词是2001年在《敏捷宣言》中提出的。宣言旨在创建指导更好的软件开发方法的原则。敏捷宣言由4个重要的价值观组成。阅读敏捷宣言的方式并非说右边的项目已经没有价值了,而是敏捷运动更加剧视左边的项目。

敏捷方法

让咱们看一下敏捷方法的第一行。这句话代表,咱们重视人员的互动,沟通和协做,而不是拥有各类各样的普遍的流程和工具。固然,程和工具颇有价值,可是,若是它们可以真正地支持人们一块儿工做并交付出色的产品,那么它们就更有价值。咱们如今在许多组织中看到的是,流程和工具自己就是目标。从敏捷的角度来看,咱们对它的指望是不一样的。过程和工具应该支持人们一块儿工做并向客户交付价值。

敏捷方法原则

做为敏捷方法的补充,敏捷联盟还定义了12条基本原则,除了敏捷方法以外,这些原则还提供了指导和更详细的解释。

敏捷方法原则

  • 咱们的首要任务是经过尽早并持续交付有价值的软件来知足客户。
  • 即便在开发后期,也欢迎不断变化的需求。敏捷流程利用变动来得到客户的竞争优点。
  • 频繁交付工做软件,从几周到几个月不等,优先选择较短的时间尺度。
  • 在整个项目中,业务人员和开发人员必须天天一块儿工做。
  • 围绕有积极性的我的构建项目。给他们须要的环境和支持,并信任他们能完成工做。
  • 在开发团队中传递信息的最有效的方法是面对面的对话。
  • 可工做的软件是进度的主要度量。
  • 敏捷过程促进可持续开发。
  • 发起人,开发者和用户应该可以无限期地保持一个恒定的步调。
  • 持续关注技术卓越和良好的设计可提升敏捷性。
  • 简洁性(最大化未完成工做量的艺术)相当重要。
  • 最好的架构、需求和设计来自自组织的团队。团队会按期思考如何提升效率,而后相应地调整其行为。
相关文章
相关标签/搜索