到底什么是敏捷(Agile)?
很多人以为 Agile 就是 Scrum 和 XP,这是错误的。的确,Scrum 和 XP 是迄今为止两种最著名的敏捷方法,但敏捷方法除了 Scrum 和 XP 之外还有许多种,敏捷方法是一个家族或生态系统,怎么能说个体就等同于全体呢?
其实,敏捷是一套与传统软件工程显著不同的价值观和原则,是包括 Scrum 和 XP 在内的所有敏捷过程或方法所共同具有的某些性质和特征,而不是某一个具体的过程、方法论或做法。
除了提出 4 条基本的敏捷价值观之外,敏捷大师们还总结出了 12 条敏捷原则。以下是 敏捷原则 的原文(附编号和我的翻译)。
Principles behind the Agile Manifesto
http://www.agilemanifesto.org/principles.html
《敏捷宣言》背后的原则
We follow these principles:
我们遵循以下原则:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
1、我们最优先的目标是:通过尽早地、持续地交付高价值的软件来满足客户。
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
2、我们欢迎需求的变化,甚至在开发的后期。敏捷过程通过驾驭变化来帮助客户取得竞争优势。
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
3、经常交付可用的软件,间隔从两周到两个月不等,优先采用较短的时间尺度。
Business people and developers must work together daily throughout the project.
4、整个项目自始至终,业务人员和开发人员都必须每天在一起工作。
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
5、以积极主动的员工为核心建立项目团队,给予他们所需的环境和支持,并且信任他们能够胜任工作。
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
6、在开发团队内外传递信息最有效率和效果的方法是:面对面的交流。
Working software is the primary measure of progress.
7、可用的软件是最主要的进展指标。
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
8、敏捷过程提倡可持续的开发。发起人、开发者和用户都应该始终保持稳定的工作步调。
Continuous attention to technical excellence and good design enhances agility.
9、持续关注技术上的精益求精和优良的设计以增强敏捷性。
Simplicity--the art of maximizing the amount of work not done--is essential.
10、简约 — 使必要的工作最小化的艺术 — 是成功的关键。
The best architectures, requirements, and designs emerge from self-organizing teams.
11、最优的架构、需求和设计浮现于自组织的团队。
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
12、团队定期不断地对如何更加有效地工作进行反思,并相应地调整、校正自己的行为。
这些原则有什么用?我想,至少有这么一些用途。
首先,这 12 条西式敏捷原则是“敏捷”这个抽象概念的细化和具体化,是可操作的。我们可以用这 12 条原则作为指导原则和评判标准,既可以用它们来指导我们进行敏捷过程改进,也可以用它们来判断一个团队或项目是否做到了真正的敏捷(参照《敏捷宣言》的标准)。显然,一个敏捷团队应该能符合以上 12 条原则中的所有或大部分要求。
其次,即便一时难以做到 Agile,我们也可以把自己企业和团队的管理、开发现状与敏捷原则进行比对,看看差距在哪里,哪些做得到,哪些目前还做不到,为什么难以做到,难点在哪里 ... 有了比较,才有进步。