Agile 是什么?

简介:

也许你已经习惯了 “Agile” 这个词汇不断地在你耳边狂轰滥炸,诸如敏捷团队、敏捷UX、敏捷建模、敏捷需求管理、敏捷架构等等。而且,人们还在不断的将 “Agile” 和更多的词汇进行组合,比如,也曾有人开始质疑是否存在 “Can Project Management be Agile?” 这回事。

同时,伴随着各种敏捷软件开发技术的涌现,将各种概念和方法进行对比也成为了时常出现的行为。例如:XP 和 CMMI,XP 和 Scrum,Scrum 和 CMMI,Scrum 和 Lean,Scrum 和 Kanban 等等。

那么,理清这些概念的基础就是需要理解,Agile 是什么?

先看字面义,在韦氏词典上查了 “Agile” 的释义:

ag·ile
  adjective \ˈa-jəl, -ˌjī(-ə)l\
: able to move quickly and easily
: quick, smart, and clever

从释义来看,“Agile” 可以应用于各种广泛的领域,表示有能力通过适当的技能和控制来快速灵活的前进。

具体到软件开发领域,“Agile” 是什么?

“Agile” 指的就是敏捷软件开发宣言(Manifesto for Agile Software Development),“Be Agile” 指的就是要满足敏捷宣言的定义和所遵循的原则。

敏捷软件开发宣言(Agile Manifesto)

我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人。由此我们建立了如下价值观:

  • 个体和互动 高于 流程和工具
  • 工作的软件 高于 详尽的文档
  • 客户合作 高于 合同谈判
  • 响应变化 高于 遵循计划

也就是说,尽管右项有其价值,我们更重视左项的价值。

敏捷宣言遵循的 12 条原则

  1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
  2. 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
  3. 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
  4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
  5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
  6. 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
  7. 可工作的软件是进度的首要度量标准。
  8. 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
  9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
  10. 以简洁为本,它是极力减少不必要工作量的艺术。
  11. 最好的架构、需求和设计出自自组织团队。
  12. 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

Manifesto for Agile Software Development

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.

Principles behind the Agile Manifesto

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity--the art of maximizing the amount of work not done--is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

参考资料







本文转自匠心十年博客园博客,原文链接:http://www.cnblogs.com/gaochundong/p/what_is_agile.html,如需转载请自行联系原作者
目录
相关文章
|
NoSQL 前端开发 Java
基于ssm停车场管理系统(程序+文档+数据库)
基于ssm停车场管理系统(程序+文档+数据库)
|
存储 监控 安全
ONVIF协议介绍
ONVIF协议介绍
9513 0
|
安全 Java 关系型数据库
VOS3000 8.0安装命令
一、系统需求环境:     1.系统  :linux 64位系统     2.内核要求:内核2.6 以上     3.内存   :2G以上内存     4.系统要求:centos5.X 或者 redhat5.X (笔者用的centos5.6_64, 最好用centos5.6)     5.java环境:java version "1.5.0_08"     6.web环境 :apache-tomcat-5.5.15     7.数据库 :mysql
1668 0
|
9月前
|
缓存 网络协议 Linux
Linux系统下 nslookup命令的基本使用
Linux系统下 nslookup命令的基本使用
2218 3
Linux系统下 nslookup命令的基本使用
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
1070 1
微信小程序:轻松实现时间轴组件
|
关系型数据库 MySQL 数据库
mysql 里创建表并插入数据
【10月更文挑战第5天】
1105 1
|
人工智能 自然语言处理 算法
基于 3D+AI 的商场导航软件核心技术解决方案
本文通过解析商场室内导航系统 3D+AI 三大核心技术模块,提供可直接复用的工程解决方案
520 0
基于 3D+AI 的商场导航软件核心技术解决方案
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
传感器 人工智能 数据可视化
数字孪生在航空航天领域的应用
【10月更文挑战第31天】数字孪生技术通过创建物理实体的虚拟复制品,实现实时模拟、预测和优化,已在航空航天领域广泛应用。例如,NASA在阿波罗工程中使用地面飞船模拟实际飞行状态,中国嫦娥五号探测器利用数字孪生技术进行在轨运行评估。此外,C919客机研发中也应用了数字孪生系统,提高了设计和制造效率。未来,数字孪生将结合物联网、大数据等技术,进一步提升航空航天领域的智能化水平。
|
存储 人工智能 安全
物联网设备安全通信协议:现状、挑战与未来展望
【6月更文挑战第30天】物联网(IoT)技术快速发展带来设备安全通信挑战。现有协议如ZigBee、蓝牙在安全上分为公钥和对称密码体系。面临资源限制、安全威胁、隐私保护和互操作性问题。未来趋势聚焦轻量级协议、多层次安全、隐私技术与标准化,以增强物联网安全性,推动行业健康发展。