敏捷软件开发
敏捷软件开发是一系列迭代的、增量的开发方法,它优先考虑可工作的软件、客户协作和快速响应变化,而非全面的前期规划和文档。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
敏捷软件开发是一种方法,其中需求和解决方案通过跨职能团队的短时、固定周期的迭代演进,这些团队交付可工作的增量并持续整合利益相关者的反馈。
Scope
本主题涵盖敏捷宣言的价值观和原则;具体的框架,如Scrum、极限编程(XP)和看板(Kanban);实践,包括短迭代、持续反馈、测试驱动开发、结对编程、重构和频繁发布;以及构成敏捷团队的角色、仪式和工件。
Core questions
- 敏捷方法与计划驱动的开发有何区别?
- Scrum和XP等框架如何组织迭代、角色和反馈?
- 哪些工程实践使得频繁、可靠的交付成为可能?
- 敏捷方法何时以及如何有效地扩展到大型或分布式组织?
Key theories
- 敏捷宣言价值观
- 四项价值观声明优先考虑个体和互动、可工作的软件、客户协作以及响应变化,并有十二项支持原则强调早期和持续交付以及欢迎不断变化的需求。
- Scrum框架
- Scrum将工作组织成固定长度的冲刺,具有明确的角色(产品负责人、Scrum主管、开发人员)、工件(产品和冲刺待办事项列表、增量)和事件(冲刺规划、每日Scrum、评审、回顾),以增量方式交付价值。
- 极限编程实践
- XP将短迭代与严格的工程实践相结合,例如测试驱动开发、结对编程、持续集成、集体所有权和重构,以保持变更成本低廉。
Clinical relevance
敏捷方法现在是商业软件领域的主导方法,提高了对市场变化的响应能力,并实现了频繁的价值交付;其有效性取决于工程纪律、团队赋权和反馈文化,而不仅仅是仪式本身。
Evidence & guidelines
《Scrum指南》提供了Scrum框架的广泛采用定义,而《敏捷宣言》仍然是敏捷价值观的基础声明;SAFe和LeSS等规模化框架将敏捷实践扩展到大型组织。
History
Scrum和XP等轻量级方法在20世纪90年代出现,以应对重量级、文档驱动的流程。2001年,十七位实践者发布了《敏捷宣言》,将这些方法统一在共同的价值观之下;敏捷随后成为主流,并在2010年代催生了规模化框架。
Debates
- 敏捷在大型组织中的规模化应用
- 敏捷原则在通过SAFe等框架进行规模化时是否能保持其优势存在争议;批评者认为重量级规模化会重新引入官僚主义,而支持者则认为结构化协调对于大型企业是必要的。
Key figures
- Kent Beck
- Ken Schwaber
- Jeff Sutherland
- Martin Fowler
- Alistair Cockburn
Related topics
Seminal works
- beck2001
- beck2004
- schwaber2020
Frequently asked questions
- 敏捷是否与严格的工程实践相对立?
- 不是。有效的敏捷严重依赖于工程纪律,例如自动化测试、持续集成和重构;敏捷的重点是快速适应变化,而不是放弃严谨性。
- Scrum和敏捷有什么区别?
- 敏捷是一套广泛的价值观和原则;Scrum是实现这些价值观和原则的特定框架,具有特定的角色、事件和工件。XP和看板是其他具有不同侧重点的敏捷框架。