敏捷是一个术语,用于描述软件开发的方法,强调增量交付,团队协作,持续计划和持续学习,而不是试图在接近结束时立即交付。

敏捷专注于保持流程的精益,并创建最小的可行产品(MVP),在最终结果出现之前经历多次迭代。不断收集和实施反馈,总而言之,这是一个更加动态的过程,每个人都在朝着一个目标努力。

Scrum和其他领先的敏捷方法

敏捷是一种思维方式,它是一套价值观和原则。敏捷是一种思考和行动的方式。敏捷就是短周期,迭代和增量交付,快速失败,获得反馈,及早向客户提供商业价值,关于人员,协作和互动。敏捷是一种关于透明度,检查和适应的心态。但是,敏捷不包含任何角色,事件或工件。这是一种心态。例如,Scrum是敏捷伞下广泛使用的框架之一,它可以帮助你变得更敏捷,但敏捷运动中有更多的框架,如看板,XP,Crystal等等,如图所示下面:

Scrum

Scrum是一个框架,人们可以在其中解决复杂的自适应问题,同时高效且创造性地提供具有最高价值的产品。它用于管理软件项目和产品或应用程序开发。它的重点是适应性产品开发战略,其中跨职能团队作为一个单元在2-4周内达成共同目标(Sprint)。它由一系列价值,文物,角色,仪式,规则和最佳实践组成。

Lean (精益)

精益起源于丰田生产系统(TPS),它在20世纪50年代,60年代及以后彻底改变了实物商品的生产。精益保持其在制造业中的地位,但也在知识工作中找到了新的应用,帮助所有行业的企业消除浪费,改进流程并促进创新。软件开发是精益方法的自然应用,因为与制造业一样,它通常遵循一个确定的过程,具有一定的接受条件,并导致有形价值的传递。指导精益方法所有实践的关键概念,我们称之为精益支柱。他们是:

  • 连续的提高
  • 尊重人
  • 轻量级领导

看板 (Kanban)

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

看板基于3个基本原则:

  • 可视化您今天要做的事情(工作流程):查看彼此上下文中的所有项目可以提供非常丰富的信息
  • 限制正在进行的工作量(WIP):这有助于平衡基于流的方法,因此团队无法启动并立即承诺过多的工作
  • 增强流程:当某些内容完成后,积压中的下一个最高优先级项目将被激活

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

动态系统开发方法(DSDM)

DSDM是一个由八个原则组成的框架,包括生命周期和产品,角色和职责以及几种最佳实践技术。这些支撑和支持的理念是尽早提供具有战略意义的商业利益,从而为组织提供最佳的投资回报率(ROI)。

DSDM是一种优先考虑计划和质量而非功能的方法,它在一开始就修复了成本,质量和时间,并使用MoSCoW优先级排序方法,将项目分解为四种不同类型的要求:

  • 必须有(Must have)
  • 应该有(Should have)
  • 可以有(Could have)
  • 不会有(Won't have)

支持DSDM Atern的原则有八个[13]。这些原则指导团队必须采取的态度和他们必须采取的思维方式,以始终如一地提供。

  1. 专注于业务需求
  2. 按时交货
  3. 合作
  4. 绝不妥协质量
  5. 从坚实的基础逐步建立起来
  6. 迭代开发
  7. 持续清晰地沟通
  8. 表现出控制力

极限编程

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

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

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

它还有12个支持实践:

  • 规划游戏 (Planning Game)
  • 小版本 (Small Releases)
  • 客户验收测试 (Customer Acceptance Tests)
  • 简单的设计 (Simple Design)
  • 配对编程 (Pair Programming)
  • 测试驱动开发 (Test-Driven Development
  • 重构 (Refactoring)
  • 持续集成 (Continuous Integration)
  • 集体代码所有权 (Collective Code Ownership)
  • 编码标准 (Coding Standard)
  • 隐喻 (Metaphor)
  • 可持续发展 (Sustainable Pace)

特征驱动开发(FDD)

功能驱动开发(FDD)由Jeff De Luca于1997年在一家大型新加坡银行的软件开发项目中开展。它是一个迭代和增量的软件开发过程,是一种开发软件的敏捷方法。FDD将许多业界公认的最佳实践融合为一个有凝聚力的整体。这些实践是从客户端值的功能(特性)角度推动的。其主要目的是及时反复提供有形的,有效的软件。使用FDD的优势在于,由于“初期设计足够”(JEDI)的概念,它甚至可以扩展到大型团队。由于其以功能为中心的流程,它是一个很好的解决方案,可以保持对敏捷,增量和固有复杂项目的控制。它由五个基本活动组成:

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

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

水晶 (Crystal)

水晶方法是由Alistair Cockburn在20世纪90年代中期开发的一系列方法(Crystal系列)。这些方法来自Cockburn多年的学习和团队采访。Cockburn的研究表明,他采访过的团队并没有遵循正式的方法,但他们仍然提供了成功的项目。Crystal家族是Cockburn对他们所做的事情进行编目的方式,这些项目使项目成功。水晶方法主要关注:

  • 人 (people)
  • 相互作用 (Interaction)
  • 社区 (Community)
  • 技能 (Skills)
  • 人才 (Talents)
  • 通讯 (Communications)

敏捷宣言

“敏捷”一词是在2001年的敏捷宣言中创造的。该宣言旨在建立指导更好的软件开发方法的原则。敏捷宣言由4个重要的价值观组成。阅读敏捷宣言的方式并不是右侧的物品不再具有价值,而是敏捷运动更重视左侧的物品。

那么让我们来看看敏捷宣言的第一行。这条线表明,我们重视人,他们的互动,沟通和协作,而不是拥有各种广泛的流程和工具。当然,流程和工具很有价值,但是,如果它们真正支持人们一起工作并提供优质产品,那么它们就更有价值。我们现在在很多组织中看到的是,流程和工具本身就是目标。从敏捷的角度来看,我们对此有不同的看法。流程和工具应该支持人们共同合作并为客户创造价值。

敏捷宣言原则

作为敏捷宣言的补充,敏捷联盟还定义了一套12项基本原则,除了敏捷宣言之外,还提供了指导和更详细的解释:

  1. 我们的首要任务是通过早期和持续交付有价值的软件来满足客户。
  2. 欢迎不断变化的要求,甚至是开发后期。敏捷流程利用变化来实现客户的竞争优势。
  3. 经常提供工作软件,从几周到几个月,优先考虑更短的时间尺度。
  4. 业务人员和开发人员必须在整个项目中每天一起工作。
  5. 围绕有动力的个人建立项目。为他们提供所需的环境和支持,并相信他们能够完成工作。
  6. 向开发团队内部和内部传达信息的最有效和最有效的方法是面对面交谈。
  7. 工作软件是进步的主要衡量标准。
  8. 敏捷过程促进可持续发展。
  9. 赞助商,开发者和用户应该能够无限期地保持稳定的步伐。
  10. 持续关注技术卓越和良好的设计可提高灵活性。
  11. 简单性 - 最大化未完成工作量的艺术 - 至关重要。
  12. 最好的架构,要求和设计来自自组织团队。团队定期反思如何变得更有效,然后相应地调整和调整其行为。

摘要

敏捷开发是软件开发行业的一个流行词,它是管理软件开发项目的另一种方式。它不是特定的软件开发方法,而是基于敏捷宣言中表达的价值观和原则的一套方法和实践的总称。解决方案通过自组织,跨职能团队之间的协作发展,利用适合其背景的实践。

基本的Scrum閱讀

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分钟内完成

Scrum工件

  • 什么是Scrum工件?
  • 完成与接受标准的定义
  • Scrum中Ready的定义是什么?
  • 如何写短距离目标?
  • 如何使用MoSCoW方法确定产品积压的优先级
  • 如何使用100点方法确定产品待办事项的优先级?

什么是敏捷软件开发?相关推荐

  1. 敏捷软件开发的12个原则

    作为一个软件工程师,软件设计和开发是最重要的技能,但是,从整个产品的角度上讲,项目管理能力比开发能力更重要,本文摘自Robert大叔的<敏捷软件开发>,粗体是Robert大叔的话,细体是我 ...

  2. 敏捷软件开发实践——估算与计划02

    目录 一.使用故事点估算大小 1.故事点是相对的 2.速度 3.小结 二.使用理想人天进行估算 1.理想时间和软件开发 2.以理想人天作为对大小的度量 3.给出一个而不是多个估算值 4.小结 三.估算 ...

  3. 敏捷软件开发实践——估算与计划(01)

    目录 一.计划的目的 1.为什么要进行估算和计划 2.优秀的计划是什么 3.敏捷计划是什么 4.小结 二.计划失败的原因 1.基于活动而不是基于特性进行计划 1.1.活动不会提前完成 1.2.延误沿着 ...

  4. 敏捷软件开发之何为敏捷开发

    敏捷开发,Agile Development,就是指能够在需求迅速变化的情况下快速开发软件.我们接触最多敏捷实践方式有:极限编程(XP).结对编程.测试驱动开发(TDD)等. 追究敏捷的历史,就必须要 ...

  5. [团队公告]博客园的敏捷软件开发团队成立了

    今天,博客园的又一个团队成立,它就是敏捷软件开发组织.http://www.cnblogs.com/team/Agile.html    近一年来,对敏捷软件开发非常感兴趣,加之最近对现在的项目的反省 ...

  6. 《敏捷软件开发:原则、模式与实践(C#版.修订版)》—第1章1.4节参考文献

    本节书摘来自异步社区<敏捷软件开发:原则.模式与实践(C#版.修订版)>一书中的第1章1.4节参考文献,作者[美]Robert C. Martin , Micah Martin,更多章节内 ...

  7. 软件开发计划_敏捷软件开发实践:估算与计划读书笔记113第11章 确定渴望度优先级...

    <敏捷软件开发实践:估算与计划>第11章 确定渴望度优先级,重点和要点的思维导图及文字内容. 第11章 确定渴望度优先级 If you have a choice of two thing ...

  8. [翻译]敏捷软件开发 一 之简要介绍

    敏捷软件开发一之简要介绍       原则.模式与实践是重要的,但是这三个要素都要由人来使得它们协同工作.正如Alistair Cockburn所说:"一个成功的项目,过程与技术永远都是排第 ...

  9. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 文章汇总及学习指南...

    一.AgileEAS.NET平台简介 AgileEAS.NET平台是一套应用系统快速开发平台,用于帮助中小软件开发商快速构建自己的企业信息管理类开发团队,以达到节省开发成本.缩短开发时间,快速适应市场 ...

  10. 敏捷软件开发(Agile Software Development)简介之:什么是敏捷软件开发?

    http://www.ruby-lang.org.cn/read--tid-604.html 敏捷软件开发(Agile Software Development)简介之:什么是敏捷软件开发? 本文部分 ...

最新文章

  1. Boolean值判断2个条件之后选择一个条件
  2. 安防工程商必须知道的PoE供电真相
  3. springmvc 传参Required String parameter 'xxxx' is not present
  4. 做Web前端开发的你必须会这几点!
  5. 本地配置_Hadoop本地模式的安装配置
  6. Underscore.js Version (1.2.3) 中文文档
  7. WIn7虚拟机下运行H3CCloud出错问题
  8. cas云计算机管理平台添加加密锁,CAS云计算管理平台安装手册.docx
  9. win10关机后cpu风扇还在转_win10电脑关机后cpu风扇还在转动_网站服务器运行维护...
  10. Coins(HDU2844)
  11. dedecms采集织梦免写规则登陆模块软件
  12. 【基金量化研究系列】大类资产配置研究(四)——基于马科维茨模型的资产配置研究
  13. 创新产业发展战略:大前研一
  14. python面向对象编程指南 豆瓣_Python面向对象编程
  15. 优化你简历的8个技巧
  16. 计算机网络技术基础竞赛题,网络技术基础知识竞赛试题
  17. 年面向大学生的 9 个最佳 Chrome 扩展程序
  18. yed工具的使用(画流程图)及流程图的简单介绍
  19. 米兔机器人魔方_米兔指尖积木?就要盘它
  20. webrtc 之 sip trickle ice

热门文章

  1. 新东方 计算机英语,计算机应用常用英语: Internet 术语表
  2. Python实现全角与半角相互转换
  3. 【智慧养殖】畜禽养殖环境智能监控系统
  4. Threat Intelligence videos
  5. 数字信号处理之快速傅里叶变换 2021-10-24
  6. 五种常用排序算法总结
  7. 17%的恶意邮件攻击和金融交易有关
  8. word文本框线形怎么设置_Word2010怎么设置文本框样式和颜色
  9. 梦幻鸿蒙市质检,《梦幻西游》手游第十七届武神坛开辟鸿蒙VS斜月三星_《梦幻西游》手游官网-人人都玩,无处不在...
  10. 获取手机电池的剩余电量