image.png
颗粒度从大至小:Epic > Feature > Theme > User Story > Task > Sub-task

史诗 Epic:又称为【能力 Capability】

  • 一个史诗可以是一个跨越多个迭代的大型用户故事(也可以包括多个用户故事)。这样的史诗将具有最粗颗粒度的估算(本身就很大,不能轻易分解成短篇故事的故事,较低的估算准确性),但是对于发布计划是有用的。为了完成迭代计划的目的,史诗将要被分解成颗粒度更小的故事。

范例:

  • 史诗#1:作为一个图书馆用户,我应该能够搜索和借书。
  • 史诗#2:作为一名图书馆管理员,我应该能够创建关于图书、借阅人和待处理请求的报告。

特征 Feature:

  • 代表业务所需的高级功能。与史诗相似,特性也需要被分解成更易于管理的故事,比如可以跨越多个迭代交付的故事。有时,以产品为基础的公司可以查看功能或这些功能的集合,这些功能可以单独捆绑、运输和销售给客户

范例:

  • 特征#1:允许一个用户一次借阅不超过两本书,最多保留3周。
  • 特征#2:如果书没有在到期日归还,将被罚款。
  • 在层次结构方面,没有规定史诗或特征是否存在父子级别,所以这两种变体都是常见的。

主题 Theme:

  • 一组相关的用户故事,它们被组合在一起以评估迭代计划或发布计划,或者财务预算。主题可以基于虚拟角色(用户类型)或一些非功能性需求,如可用性、移动性、性能和可扩展性。

用户故事 User Story:

  • 在迭代计划中,用户故事被用作估算、计划和实现的最小单元。
  • 注意:故事只能属于一个主题
  • 注意:没有所谓:“子故事”,只有“子任务”

范例:

  • 故事#1:作为一个图书馆用户,我应该能够通过书的名字或它的作者搜索书籍。
  • 故事#2:作为一个图书馆用户,我应该能够浏览搜索结果中的图书列表,并能够通过点击它们找到更多的细节。
  • 故事#3:因为我的名下里只有不到两本书,当我点击“借”按钮时,我应该能够预订这本书并通过电子邮件得到确认。
  • 故事#4:因为我借了一本书,两周过去了,当我希望在到期前3天收到图书馆的提醒,这样我就可以还书或申请续借延期。

任务 Task:

为了实现故事,开发人员必须做的所有事情都被称为任务。任务可以是一些技术性的工作,比如在数据库上创建表、构建小部件或菜单项、解析传入的XML文件、在按下一个按钮时添加业务逻辑或通过消息队列连接两个系统。