敏捷是一个术语,用于描述软件开发的方法,强调增量交付,团队协做,持续计划和持续学习,而不是试图在接近结束时当即交付。编程
敏捷专一于保持流程的精益,并建立最小的可行产品(MVP),在最终结果出现以前经历屡次迭代。不断收集和实施反馈,总而言之,这是一个更加动态的过程,每一个人都在朝着一个目标努力。架构
敏捷是一种思惟方式,它是一套价值观和原则。敏捷是一种思考和行动的方式。敏捷就是短周期,迭代和增量交付,快速失败,得到反馈,及早向客户提供商业价值,关于人员,协做和互动。敏捷是一种关于透明度,检查和适应的心态。可是,敏捷不包含任何角色,事件或工件。这是一种心态。例如,Scrum是敏捷伞下普遍使用的框架之一,它能够帮助你变得更敏捷,但敏捷运动中有更多的框架,如看板,XP,Crystal等等,如图所示下面:框架
Scrum是一个框架,人们能够在其中解决复杂的自适应问题,同时高效且创造性地提供具备最高价值的产品。它用于管理软件项目和产品或应用程序开发。它的重点是适应性产品开发战略,其中跨职能团队做为一个单元在2-4周内达成共同目标(Sprint)。它由一系列价值,文物,角色,仪式,规则和最佳实践组成。ide
精益起源于丰田生产系统(TPS),它在20世纪50年代,60年代及之后完全改变了实物商品的生产。精益保持其在制造业中的地位,但也在知识工做中找到了新的应用,帮助全部行业的企业消除浪费,改进流程并促进创新。软件开发是精益方法的天然应用,由于与制造业同样,它一般遵循一个肯定的过程,具备必定的接受条件,并致使有形价值的传递。指导精益方法全部实践的关键概念,咱们称之为精益支柱。他们是:工具
看板是一种高度可视化的工做流管理方法,在精益团队中很受欢迎。事实上,83%的精益生产团队使用看板来可视化并积极管理产品的建立,重点是持续交付,同时不会使开发团队负担太重。与Scrum同样,看板是一个旨在帮助团队更有效地协同工做的流程。post
看板基于3个基本原则:学习
看板经过定义最佳的团队工做流程,促进持续协做并鼓励积极,持续的学习和改进。测试
DSDM是一个由八个原则组成的框架,包括生命周期和产品,角色和职责以及几种最佳实践技术。这些支撑和支持的理念是尽早提供具备战略意义的商业利益,从而为组织提供最佳的投资回报率(ROI)。ui
DSDM是一种优先考虑计划和质量而非功能的方法,它在一开始就修复了成本,质量和时间,并使用MoSCoW优先级排序方法,将项目分解为四种不一样类型的要求:编码
支持DSDM Atern的原则有八个[13]。这些原则指导团队必须采起的态度和他们必须采起的思惟方式,以始终如一地提供。
最初由Kent Beck描述的极限编程(XP)已经成为最受欢迎和最有争议的敏捷方法之一。XP是一种快速,持续地提供高质量软件的规范方法。它旨在提升面对不断变化的客户需求的软件质量和响应能力。它促进了高客户参与度,快速反馈循环,持续测试,持续规划以及密切的团队合做,以很是频繁的间隔(一般每1-3周)提供工做软件。
该方法的名称来源于传统软件工程实践的有益元素被带到“极端”水平的想法。例如,代码审查被认为是一种有益的作法。极端状况下,能够经过结对编程的实践不断检查代码。
最初的XP方法基于四个简单的价值观 - 简单,沟通,反馈和勇气。
它还有12个支持实践:
功能驱动开发(FDD)由Jeff De Luca于1997年在一家大型新加坡银行的软件开发项目中开展。它是一个迭代和增量的软件开发过程,是一种开发软件的敏捷方法。FDD将许多业界公认的最佳实践融合为一个有凝聚力的总体。这些实践是从客户端值的功能(特性)角度推进的。其主要目的是及时反复提供有形的,有效的软件。使用FDD的优点在于,因为“初期设计足够”(JEDI)的概念,它甚至能够扩展到大型团队。因为其以功能为中心的流程,它是一个很好的解决方案,能够保持对敏捷,增量和固有复杂项目的控制。它由五个基本活动组成:
每一个项目都有本身独特的模型,这将产生一个功能列表。最后三个活动是短迭代过程,其构建时间不超过两周。若是它须要两周以上,那么它将被分解为更小的功能。
水晶方法是由Alistair Cockburn在20世纪90年代中期开发的一系列方法(Crystal系列)。这些方法来自Cockburn多年的学习和团队采访。Cockburn的研究代表,他采访过的团队并无遵循正式的方法,但他们仍然提供了成功的项目。Crystal家族是Cockburn对他们所作的事情进行编目的方式,这些项目使项目成功。水晶方法主要关注:
“敏捷”一词是在2001年的敏捷宣言中创造的。该宣言旨在创建指导更好的软件开发方法的原则。敏捷宣言由4个重要的价值观组成。阅读敏捷宣言的方式并非右侧的物品再也不具备价值,而是敏捷运动更重视左侧的物品。
那么让咱们来看看敏捷宣言的第一行。这条线代表,咱们重视人,他们的互动,沟通和协做,而不是拥有各类普遍的流程和工具。固然,流程和工具颇有价值,可是,若是它们真正支持人们一块儿工做并提供优质产品,那么它们就更有价值。咱们如今在不少组织中看到的是,流程和工具自己就是目标。从敏捷的角度来看,咱们对此有不一样的见解。流程和工具应该支持人们共同合做并为客户创造价值。
做为敏捷宣言的补充,敏捷联盟还定义了一套12项基本原则,除了敏捷宣言以外,还提供了指导和更详细的解释:
敏捷开发是软件开发行业的一个流行词,它是管理软件开发项目的另外一种方式。它不是特定的软件开发方法,而是基于敏捷宣言中表达的价值观和原则的一套方法和实践的总称。解决方案经过自组织,跨职能团队之间的协做发展,利用适合其背景的实践。
Scrum和自组织团队 (Scrum and Self-Organizing Team)
敏捷和Scrum - 有什么区别?
在Scrum Sprint中发布的频率是如何肯定的?
经过3个步骤创建自组织团队
The Best Free Scrum Learning Resources, Guides and Articles
为何敏捷开发是您项目的更好选择?
为何Scrum是 - 快速失败技术?
8常常被误解的Scrum Master角色
Scrum Events - 初学者阅读文章
Scrum在3分钟内完成