Day8 【概念解析】 敏捷开发
目录 ▼
整理定义
敏捷开发定义
敏捷开发的总体目标标是通过 “尽可能早地、持续地对有价值的软件的交付” 使客户满意。通过在软件开发过程中加入灵活性, 敏捷方法使用户能够在开发周期的后期增加或改变需求。
敏捷开发的分类
敏捷过程的典型方法有很多,每一种方法基于一套原则,这些原则实现了敏捷方法所宣称的理念(敏捷宣言 ) 。
-
极限编程 ( XP ) XP 是一种轻量级 (敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为4 个部分组成,彼此相互依赖、关联,并通过行为费穿于整个生存周期。
-
水晶法(Crystal) 水品法认为每一个不同的项目都需要一套不同的策略、约定和方法论,认为人对软件质量 有重要的影响, 因此随着项目质量和开发人员素质的提高,项目和过程的质量也随之提高。通过更好地 交流和经常性的交付,软件生产力得到提高 。
-
并列争求法(Scrum) 并列争求法使用迭代的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品。多个自组织和自治的小组并行地递增实现产品。协调是通过简短的日常情况会议来进行 ,就像橄榄球中的“并列争球”。
-
自适应软件开发 ( ASD) ASD 有6个基本的原则:有一个使命作为指导;特征被视为客户价值的关键点:过程中的等待是很重要的,因此“重做”与“做” 同样关键;变化不被视为改正,而是被视为对软件开发实际情况的调整;确定的交付时间迫使开发人员认真考虑每 一个生产的版本的关键需求:风险也包含其中。
-
敏捷统一过程 ( AUP ) 敏捷统一过程(AgileUnifiedProcess,AUP)采用“在大型上连续”以及在“在小型上迭代”的原理来构建软件系统。采用经典的UP阶段性活动(初始、精化、构建和转换),提供了一系列活动,能够使团队为软件项目构想出一个全面的过程流。在每个活动里,一个团队迭代使用敏捷,并将有意义的软件增量尽可能快地交付给最终用户。 每个AUP迭代执行以下活动:
敏捷宣言:
敏捷宣言(Agile Manifesto)是在2001年由17位软件开发者共同提出的,他们在美国犹他州的一个滑雪度假村聚会,讨论了软件开发的最佳实践,最终形成了这个宣言。敏捷宣言主要包含四个核心价值观和十二条原则。
四个核心价值观如下:
-
个体和互动 高于 流程和工具
-
可工作的软件 高于 详尽的文档
-
客户合作 高于 合同谈判
-
响应变化 高于 遵循计划
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 项原则的一组框架和实践。当您以特定方式进行软件开发时,通常最好遵循这些价值观和原则,并使用它们来帮助找出适合您特定环境的正确事情。
参考文献:
-
Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., … & Kern, J. (2001). Manifesto for agile software development.
-
Highsmith, J., & Cockburn, A. (2001). Agile software development: The business of innovation. Computer, 34(9), 120-122.
-
Schwaber, K., & Beedle, M. (2002). Agile software development with Scrum. Prentice Hall.
-
Martin, R. C. (2003). Agile software development: principles, patterns, and practices. Prentice Hall.
-
Cockburn, A. (2006). Agile software development: the cooperative game. Addison-Wesley.