我们使用史诗,故事和功能的方式如下
在项目周期的早期,我们提出了Epics。这些是非常高级的功能,几乎都是以市场为中心的。您可以在执行摘要中使用的某种内容,例如,
我们的新网站将允许客户浏览产品,查看可用性和价格,下订单并查看他们过去的订单历史记录
这导致诸如
- 浏览产品目录
- 查看空房
- 查看定价
- 下订单
- 查看订单历史
这些都是作为用户故事写的(例如,作为客户,我想浏览产品目录,以便做出明智的购买决定),但只能作为十个入门书来实际开发和发布。
然后将这些史诗进一步细分为“ 用户故事”。这些是实际的端到端用户旅程,范围非常有限,并且以可以独立估计和计划,开发,测试和发布的方式定义。
用户故事是交付的单位。是完整的或未完成的,上线或下线的用户故事。
史诗可能会导致大量的用户故事,并非所有故事都会同时开发或发布。
例如,“浏览产品目录”史诗可能细分为
- 导航类别层次结构
- 按关键字搜索
- 按产品属性(例如价格范围,品牌,颜色,尺寸等)过滤
同样,每一个都将以这种格式写成,例如,作为客户,我想浏览类别层次结构,以便浏览产品并向下钻取最适合自己需求的产品。
通常,对于我们的大多数项目,我们都有几十个史诗和数百个故事。
现在,当我们经历故事的生命周期时,我们将这些故事标记为Feature。例如,所有浏览和搜索以及库存和定价故事都将标记为“产品目录”。与信用卡付款有关的下订单故事可能带有“信用卡”标签,而与PayPal付款有关的那些则带有“ paypal”标签。
这些标签用于将属于同一故事的故事组合在一起,这不是因为它们是执行同一活动的不同类型(例如,所有下订单的故事),而是因为它们应该一起发布。
例如,“通过信用卡下订单”故事与“通过PayPal下订单”故事属于同一史诗,但是它们不必一起发布。
而“下订单用信用卡付款”,“处理退货退款到信用卡上”的故事和“允许客户在其帐户上管理已保存的信用卡”的故事似乎确实是相互关联的。 。它们都将被标记为“信用卡”功能标签。即它们都属于“信用卡”功能。如果无法处理退货退款到PayPal,或者无法管理帐户中保存的信用卡,则释放信用卡下订单的功能不是很有帮助。
注意:通常,就是这样。最终,这是一个商业决策。如果上市时间很重要,则可能有正当理由选择其中之一而不是另一个。
因此,Epic可以分解为可以独立开发的(相关但独立的)故事,而Features可以将应该一起发布的故事分组在一起。
您可以说Epics分解为用户故事,而用户故事则组合为功能。属于某个功能的故事通常遍及史诗。因此,Epic和Feature是正交的,而不是严格的层次结构。
在我们的工作方式中,史诗一旦分解成故事,他们就会失去目标。我们不估计或计划史诗。我们不会跟踪Epics的进度。我们不发布史诗。我们估算,计划和跟踪用户故事。并且我们发布功能。