以敏捷的方式实现用户故事

时间:2010-09-09 19:26:54

标签: tdd agile extreme-programming user-stories

我是敏捷/ TDD世界的新手,并试图了解一些基础知识。 这与我应该如何实现用户故事有关。

例如假设我有一个假设的内容管理系统,我有2个以下的用户故事:

故事1:
作为内容作者
我需要能够创建新闻文章
这样可以用来吸引用户访问网站

故事2:
作为编辑器 我需要能够查看现有文章
以便我可以查看它们以提高质量

我接近这个的方式是,

  • 我会抓住其中一个用户故事
  • 我需要部分用户故事分解为更小的任务
  • 逐一抓取这些任务,并提出测试以涵盖特定任务
  • 以TDD方式实施任务

我的困境是关于作为用户故事的一部分。
特别是在这些示例中,他们间接暗示了一些身份验证,授权相关的要求,因为用户故事提到了两个用户类别。

所以我的问题是,我是否应该有任何控制身份验证/授权的任务/测试来完成这些用户故事 或者我应该只关注尝试实现功能的用户故事的我需要部分,并等待任何明确提及身份验证,授权<的用户故事/ strong>相关要求?

我们非常感谢您的所有投入。

干杯。

6 个答案:

答案 0 :(得分:7)

不要担心现阶段的影响。

用户故事应为:

  • 独立用户故事应该是自包含的,方式是 没有固有的依赖于另一个用户故事。
  • N 面议:用户 故事,直到它们是迭代的一部分,总是可以改变 重写。
  • V 有价值的:用户故事必须为最终用户提供价值。
  • E 估计:您必须始终能够 估计用户故事的大小。
  • S 正确选择:用户 故事不应该大到不可能 计划/任务/具有一定确定性的优先级。
  • T 可测试:用户素材或其相关说明 必须提供必要的信息来测试开发 可能的。

[Source, Wikipedia]

如果尚未完成,您可以将授权故事添加到产品待办事项中,以便产品所有者确定优先级。授权故事可能由其他团队(例如您的网络管理部门或类似团队)接收,因此请专注于提供您正在处理的故事所要求的功能。

答案 1 :(得分:6)

你一定要专注于我需要部分,并将作为视为作为某种上下文。

你的故事中有很多漏洞。基础授权/识别部分是一个,另一个我看到以便我吸引更多访问者到我的网站是你无法真正测试的东西,所以你应该再考虑一下,找到另一个(可能是一些简单而且与不太相似的东西,以便我可以将它们放在我的网站上以吸引更多访问者)。我相信,使用这种格式以便部分应该包含一些关于如何测试故事的粗略概念。

我真的在故事中使用了一些不太正式的东西:标题,简短描述以及如何演示的一些解释。我还添加了一些优先级值(对产品所有者很重要)和粗略估算的工作量。最有用的部分可能是如何演示,因为它有助于编写测试(如果有必要,在打破故事后,我也更喜欢,如果可能的话,保持故事短片以避免需要打破它们) 。此外,我尽量不将故事分解为任务,而是将故事分解为小故事。任务往往过于关注你将如何做某事,你应该专注于你想要的结果。

在你的情况下,肯定会有其他故事,其中一个将是关于某天的身份验证,但这不应该阻止你现在编写代码页。继续一步一步,让你的故事变得简单(你有测试,稍后重构很容易),你会很快感受到什么对你有用。

你应该看一下优秀的书Scrum and XP from Trenches并看看他们是如何做到的。

答案 2 :(得分:4)

短语

  

作为内容作者   我需要能够创建新闻文章   这样可以用来吸引用户访问网站“

不是故事。它是适用于卡片或电子表格列中的故事摘要,代表故事,因此您可以记住您正在谈论的是哪一个。整个故事由三部分组成 - Card, Conversation and Confirmation - 你需要的部分就是对话。

与团队中的用户或用户代表交谈,了解其真正含义。

答案 3 :(得分:3)

作为一部分并不意味着身份验证或授权。以同样的方式,您可以将用户故事编写为:

  • 作为新访客......
  • 作为回访者......

这是否意味着访问者必须经过身份验证?授权vistor有什么?用户故事不应包含“隐藏要求”。如果您需要身份验证和授权,只需为此创建用户故事。

作为部件指定应用程序中用户角色的类型。每个角色都有一些特殊需求和要求,并从不同的原因使用应用程序。在开始编写用户故事之前,您应该尝试收集角色。

用户素材不仅包含说明。它应包含在流程的不同阶段添加的其他信息。

  • 以定义的格式描述。你不必使用作为......我需要......所以...如果你认为它不符合你的需要,你应该对所有故事使用相同的格式。
  • DoD - 完成的定义也称为验收标准。这应该与描述一起收集。没有DoD的用户故事毫无用处。 DoD说开发者有关用户故事的更多信息。用户故事只有在满足国防部时才会完成。您还可以根据这些标准创建自动验收测试。
  • 客户设定的优先级 - 这将帮助您按重要性对用户故事进行排序
  • 估计 - 由团队制作。估计不准确应该基于用户故事之间的比较。通常的估计单位是抽象故事点或T恤尺寸。

另请注意,并非每个用户故事都会直接分解为任务。您可以拥有大型高级用户故事,这些故事将首先分解为较小的用户故事。我们称之为用户故事史诗。

答案 4 :(得分:1)

您最初可以假设用户有权进行更改,然后将授权作为单独的故事处理(当它们成为您的待办事项中最重要的项目时)。

这样做的好处是可以将故事的范围保持在较小的范围内,以便更容易使用,并且可以在之前的可部署状态下获取初始故事。

答案 5 :(得分:1)

至少我会为生成故事:

  1. 验证用户
  2. 注册作者/编辑...或注册用户,分配权限
  3. 如果没有人知道如何处理故事级别的人,我会与/抓住电话/启动即时消息并与他们核实。您可以在较低级别使用TDD来实现您不想实现的功能,但端到端故事中的任何测试自动化都应该通过用户所做的事情。

    这些故事的一个原因是你可能正在考虑基础任务,但从用户的角度来看,你最终可能会发现客户想要更多的具有openid / login和现有帐户感觉的博客。 它的敏捷性毕竟是滚动/完全沟通的方式,而不是在大型分析+设计阶段定义的全部

    在与项目甚至无关的用户名/密码/哈希/等的时候,没有必要专心致志。

    无论你做什么,都要保持简单。

    <强> PS。它只是故事中不可或缺的一部分,恰好依赖于其他故事。