软件开发方法在过去几十年中迅速演变,从繁重的前期瀑布式文档转向轻量级、迭代式的敏捷实践。长期以来,传统的“用例”——面向对象软件工程中的核心要素——被认为与现代敏捷框架如 Scrum 和 Kanban 不兼容。它常因过于注重文档且效率低下而受到批评。
进入Use-Case 2.0。由 Ivar Jacobson、Ian Spence 和 Brian Kerr 提出,这一现代框架重新定义了经典用例,使其轻量、可扩展且多功能。它旨在弥合用例的结构性优势与敏捷开发灵活性之间的差距。
Use-Case 2.0 是用例方法的现代演进,专为解决传统需求收集的局限性而设计。与以往需要在编码前投入大量细节的做法不同,Use-Case 2.0 专注于核心要素、迭代交付和垂直切片。
该框架的核心创新在于能够将用例分解为更小、更易管理的部分,称为用例切片。这使得团队能够在保持系统架构整体视图的同时,以小规模、符合冲刺周期的增量方式持续交付价值,兼容 Scrum、SAFe 和纪律化敏捷。
Use-Case 2.0 基于六大指导原则,确保流程保持精简且以价值为导向:
要理解用例2.0如何融入敏捷开发,就必须理解其产物。该框架将过去繁重的文档简化为三个主要组成部分。
用例仍然描述了参与者(用户)与系统之间的目标导向交互。然而,在2.0版本中,它不会一开始就完全详细化。它从名称、简要描述以及主要成功场景关于备选流程和异常的细节会在开发优先级确定后“及时”添加。
该用例切片是该框架中最重要的创新。切片是贯穿用例的垂直切割,构成一个完整的价值流。它包含部分叙事(故事)、相关的测试用例以及实现它所需的代码。
切片使得单个用例(例如“处理订单”)可以拆分到多个迭代中:
每个切片都作为一个待办事项——它可估算、可测试,并可在一次迭代内交付。
尽管切片在日常工作中处理,但用例模型仍然作为地图存在。它是所有用例的集合,提供了个人用户故事常常缺乏的上下文和架构概览。这解决了敏捷开发中常见的问题:团队完成了数百个故事,却失去了对整体系统行为的把握。
许多团队难以在用户故事和用例之间做出选择用例2.0认为你不必非得二选一;它提供了用例的结构,同时具备故事的敏捷性。
| 方面 | 经典用例(2.0之前) | 用户故事 | 用例2.0 |
|---|---|---|---|
| 前期投入 | 高(详细规格) | 非常低 | 低 → 逐步增加 |
| 整体视角 | 是 | 经常丢失 | 是(通过用例模型) |
| 迭代能力 | 差 | 优秀 | 优秀(通过模块化实现) |
| 可追溯性 | 强 | 弱 | 强(可流向测试) |
| 测试重点 | 手动 / 晚期阶段 | 验收标准 | 每个模块内嵌(TDD) |
| 最佳环境 | 瀑布式 / 结构化 | 简单敏捷项目 | 复杂 / 企业级敏捷 |
采用此方法涉及一个循环式流程,可完美融入标准敏捷冲刺中:
Use-Case 2.0 在企业系统、受监管行业或复杂领域中尤为有效,这些领域中简单的用户故事往往不足以满足需求。
它提供了可扩展性,允许团队轻量启动,并仅在必要时增加正式性。它确保了价值聚焦,迫使团队从端到端的用户旅程角度思考,而非孤立的技术任务。最后,它解决了文档债务问题;因为用例模型是迭代更新的,文档会随着代码同步演进,成为一种“活”的需求集合,而非陈旧的档案。