Day8 【概念解析】 敏捷开发
行业概念

Day8 【概念解析】 敏捷开发

· 约 2,500 字 · 阅读约 13 分钟
目录

整理定义

敏捷开发定义

敏捷开发的总体目标标是通过 “尽可能早地、持续地对有价值的软件的交付” 使客户满意。通过在软件开发过程中加入灵活性, 敏捷方法使用户能够在开发周期的后期增加或改变需求。

敏捷开发的分类

敏捷过程的典型方法有很多,每一种方法基于一套原则,这些原则实现了敏捷方法所宣称的理念(敏捷宣言 ) 。

  1. 极限编程 ( XP ) XP 是一种轻量级 (敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4 个部分组成,彼此相互依赖、关联,并通过行为费穿于整个生存周期。

  2. 水晶法(Crystal) 水品法认为每一个不同的项目都需要一套不同的策略、约定和方法论,认为人对软件质量 有重要的影响, 因此随着项目质量和开发人员素质的提高,项目和过程的质量也随之提高。通过更好地 交流和经常性的交付,软件生产力得到提高 。

  3. 并列争求法(Scrum) 并列争求法使用迭代的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品。多个自组织和自治的小组并行地递增实现产品。协调是通过简短的日常情况会议来进行 ,就像橄榄球中的“并列争球”。

  4. 自适应软件开发 ( ASD) ASD 有6个基本的原则:有一个使命作为指导;特征被视为客户价值的关键点:过程中的等待是很重要的,因此“重做”与“做” 同样关键;变化不被视为改正,而是被视为对软件开发实际情况的调整;确定的交付时间迫使开发人员认真考虑每 一个生产的版本的关键需求:风险也包含其中。

  5. 敏捷统一过程 ( AUP ) 敏捷统一过程(AgileUnifiedProcess,AUP)采用“在大型上连续”以及在“在小型上迭代”的原理来构建软件系统。采用经典的UP阶段性活动(初始、精化、构建和转换),提供了一系列活动,能够使团队为软件项目构想出一个全面的过程流。在每个活动里,一个团队迭代使用敏捷,并将有意义的软件增量尽可能快地交付给最终用户。 每个AUP迭代执行以下活动:

敏捷宣言:

敏捷宣言(Agile Manifesto)是在2001年由17位软件开发者共同提出的,他们在美国犹他州的一个滑雪度假村聚会,讨论了软件开发的最佳实践,最终形成了这个宣言。敏捷宣言主要包含四个核心价值观和十二条原则。

四个核心价值观如下:

  1. 个体和互动 高于 流程和工具

  2. 可工作的软件 高于 详尽的文档

  3. 客户合作 高于 合同谈判

  4. 响应变化 高于 遵循计划

The Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right,
we value the items on the left more.

复述展开

敏捷开发是一种以人为中心、迭代、快速反馈的开发方法。它鼓励团队在不确定和复杂的环境中适应变化。这种方法强调的是团队协作、客户参与、以及对变化的快速响应。

在我看来,敏捷开发的核心是“人”。它强调团队成员之间的交流和协作,而不是过度依赖工具或者过程。这种方法鼓励团队成员直接交流,以提高效率和效果。

敏捷开发也强调迭代开发和持续改进。每个迭代周期结束时,团队会进行反馈和调整,以便在下一个迭代周期中改进。这种方法可以帮助团队快速发现和解决问题,以及适应需求的变化。

此外,敏捷开发还强调客户的参与。在开发过程中,团队会频繁地与客户交流,以了解他们的需求和反馈。这种方法可以帮助团队更好地满足客户的需求,提高产品的质量和客户满意度。

理解体会

敏捷软件开发是一个总称,指的是基于敏捷软件开发宣言中表达的价值观和原则及其背后的 12 项原则的一组框架和实践。当您以特定方式进行软件开发时,通常最好遵循这些价值观和原则,并使用它们来帮助找出适合您特定环境的正确事情。

参考文献:

  1. Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., … & Kern, J. (2001). Manifesto for agile software development.

  2. Highsmith, J., & Cockburn, A. (2001). Agile software development: The business of innovation. Computer, 34(9), 120-122.

  3. Schwaber, K., & Beedle, M. (2002). Agile software development with Scrum. Prentice Hall.

  4. Martin, R. C. (2003). Agile software development: principles, patterns, and practices. Prentice Hall.

  5. Cockburn, A. (2006). Agile software development: the cooperative game. Addison-Wesley.

相关文章