...
史诗(Epic)是指一个大型需求或功能集合,通常比较宏观和高层次。史诗是对一系列相关特性或用户故事的总称,代表了一个较大的目标或愿景。它们通常与项目的整体目标或战略相关联。史诗帮助团队更好地理解和规划需求,为项目提供整体的规划和方向。
二、用户故事
...
史诗是可以分解成许多小的特性和用户故事的大型需求,史诗通常涉及多个团队、多个项目,有时甚至会通过多个 看板项目 进行管理。
史诗几乎总是需要一组迭代才能完成交付。这个过程团队将随着开发工作的深入以及用户反馈,来更多地了解史诗的有效性,并根据需要添加和删除用户故事。这正是敏捷史诗的核心价值:基于客户反馈和团队节奏灵活调整。
假设现在是 2050 年,我们在做一个太空旅行项目,每年进行大约十二次火箭发射,每次发射都很重要,且都需要花费很多工时才能完成,这种规模得项目正好适合用史诗做拆解。
例如,创建一个史诗为“2050 年 3 月太空旅行者发射”,那么该史诗将包括从客户购买太空旅行票到火箭发射的全部故事,其中,既有日常工作项目,又有旨在改善航天飞机发射的关键工作。因此,团队需要处理大量的用户故事来完成这部史诗。
支撑 “ 购票系统 ” 的软件团队可能会这样构建他们的史诗:
同时,负责推进器的团队可能会通过这些故事为同一史诗做出贡献:
在创建新的史诗时,还需要将团队原有的规划和工具纳入考量范围,并围绕团队的季度目标或 OKR来创建。创建史诗时需要考虑以下几点:
- 汇报——为管理层高度关注的项目创建史诗;
- 故事描述——使用史诗以及其中的特性和用户故事作为描述如何实现功能或产品;
- 团队文化——根据团队文化来决定史诗的规模和粒度
- 预估时间——大多数开发团队依赖于估算框架而不是时间,但它很有必要多次估算以确保您的史诗能在截止日期前完成。史诗的时间不宜太长也不要太短。
将史诗分解成更落地的用户故事将有助于团队理解项目并保持工作动力,对于新手来说,这可能是一项艰巨的任务。从史诗中创作故事并没有万能的解决方案,但可以参考以下建议:
- 分角色——为每个角色创建特定故事,如“新访客快捷登录”,“老用户快捷登录”等
- 分步骤——分解过程并为每个步骤创建用户故事
- 讨论——让团队决定用户故事是一项可快速完成的任务还是一个为期一周的项目
- 时间——用户故事应该在一个迭代或更少的时间内完成
一般来说,团队估计需要“数周”而不是“数小时”“数天”才能完成的工作都应该被视为史诗。
二、故事
用户故事(User Story)是对用户需求的一种简洁描述。它们从最终用户的角度描述系统的功能或行为,并用简短的句子来表达用户的期望和价值,结构如下:
“作为一个[XX角色],我[想要什么],[以便达到什么目的]。”
结构分解如下:
- “作为[XX角色]”:我们是为谁实现这个需求?我们不仅要知道用户的职称,还要了解用户角色的特点。研发团队应该对用户角色有一个共同的理解。团队应该尽可能多地采访目标用户,了解他们的工作方式、想法和使用感受,对用户要有同理心。
- “想要什么”:这里我们描述的是用户的意图——而不是他们想使用的功能。用户本质上想达到什么目的?这个描述不用体现功能的实现——如果你描述的是软件功能而不是用户目标,就没有抓住重点了。
- “以便达到什么目的”:用户期望做的这件事符合他们的规划吗?他们想实现的整体效果是什么?需要解决的本质问题是什么?
例如,用户故事的结构可以参考下方:
作为用户,我想将信用卡链接到我的个人资料,以便我可以更快、更轻松且无需现金支付租金。
作为服务提供商,我想在应用程序中添加我的车辆照片,以便吸引更多用户。
作为用户,我希望显示几辆可用的车辆,以便我可以选择最适合我的选项。
这些表达不是固定的,但是有助于定义用户故事的完成标准。当用户可以精准表达他想要实现的价值时,一个用户故事就诞生了。鼓励研发团队根据自身情况规范用户故事的表达结构并在工作中坚持实践。
三、任务
任务(Task)是故事的进一步细分和具体化。任务是为了实现故事所需的具体行动或工作。任务通常由开发团队中的成员来完成,并包含具体的步骤、时间估计和负责人。任务的细分和分配有助于团队更好地协作和追踪工作进展。
在软件开发过程中,史诗、用户故事和任务相互关联,构成了需求管理的层次结构。史诗提供了高层次的目标和愿景,故事进一步描述了用户需求,而任务则是具体的行动和工作。通过这种分层的结构,团队能够更好地理解和管理需求,有序地推进软件开发过程。
四、看板
看板是一个可视化的工具,用于跟踪和管理用户故事。故事板通常由一个物理或电子板组成,其中包含不同的列,如待办事项、进行中、已完成等。用户故事可以根据优先级和状态进行排序和分类,这有助于开发团队更好地计划和实现开发工作。
三、任务
...
在软件开发过程中,史诗、用户故事和任务相互关联,构成了需求管理的层次结构。史诗提供了高层次的目标和愿景,用户故事进一步描述了用户需求,而任务则是具体的行动和工作。通过这种分层的结构,团队能够更好地理解和管理需求,有序地推进软件开发过程。
四、看板
看板是一个可视化的工具,用于跟踪和管理用户故事。故事板通常由一个物理或电子板组成,其中包含不同的列,如待办事项、进行中、已完成等。用户故事可以根据优先级和状态进行排序和分类,这有助于开发团队更好地计划和实现开发工作。
五、原型设计
...