【问题标题】:How to write User Stories for technical implementation details? [closed]如何为技术实现细节编写用户故事? [关闭]
【发布时间】:2013-12-14 08:26:56
【问题描述】:

我正在尝试以更有条理的方式工作并开始采用用户故事。

我认为我对如何将用户故事用于技术内容存在误解。

假设我正在编写一个应用程序,它可以为我的网站在 Google 中的某个关键字提供排名。

用户故事是这样的:

作为互联网营销人员
我想了解我的网站在某个关键字中的排名
所以我会知道我的 SEO 工作是否有效

现在这很简单并且以用户为中心......但是,如果我需要将代理引入循环会发生什么。

一方面,代理是技术实现细节,另一方面,代理是 Internet 营销人员领域的一部分。

我应该如何制作这样的故事?

作为互联网营销人员
我想在 Google 中搜索时使用代理
这样我们就可以在不被 Google 屏蔽的情况下检查很多关键字

上面的场景听起来不适合我……也许我可以把它改写成这样:

作为互联网营销人员
我希望能够一次检查很多关键字
这样可以节省我的时间

这听起来更正确,但是我可以给出什么验收标准?尝试在一分钟内抓取 google 100 次?这不是浪费时间吗?

这是另一种情况。当我要实现的功能是代理可以在 30 秒内使用一次时,我应该如何制作用户故事?我不知道如何从以用户为中心的角度来解决这个问题......

我想做的另一件事是展示另一个Role。我可以说我们有一个名为Google Scraper 的角色,而不是以Internet Marketer 为中心。我可以说Internet MarketerGoogle Scraper 有关。

现在我可以编写如下用户故事:

作为谷歌抓取工具
我想在每次搜索时更改代理
所以谷歌不会禁止我

您对处理上述技术实施细节有何看法?它还可以帮助将系统分解为模块...

【问题讨论】:

标签: tdd bdd agile user-stories agile-project-management


【解决方案1】:

你不写技术故事。用户故事应符合INVEST criteria

代理听起来像是一个实现细节,应该避免。你不应该在你的故事中提到代理服务器。即使它们是域的一部分,也可能有其他方法可以达到相同的效果。

不要写“我想使用代理,以免被阻止”,而应写成“我想伪装自己的身份,以免被阻止”。如果我是你的客户,我不知道你为什么要代理?它是正向、开放还是反向代理?有很多uses for a proxy server。您应该选择要利用的功能。

但是,您不应该过于沉迷于完美的故事。敏捷宣言说:“个人和交互优于流程和工具”。

在编写用户故事时,您还应该考虑 3 C:Card, Conversation, Confirmation。客户和您都理解这个故事的含义吗?

该卡是否符合 INVEST 标准?如果你对这两个问题的回答都是肯定的,那么故事就很好了。

【讨论】:

  • 故事应该绝对不提及代理。如果没有代理也可以实现相同的目标,有人会关心吗?如果代理被证明不是一种可行的方法,那么这个故事的价值会降低吗?当然不是。
  • 好答案。尝试将用户故事视为“敏捷用户故事是对话的占位符”。不要被“as a...”语法所束缚——它不是核心概念的一部分,只是有助于获得一个好的表述。
【解决方案2】:

用户故事不应包含技术细节。在 Sprint 计划期间,技术细节应作为嵌套在用户故事下方的交付团队任务添加。这些任务应该通过交付团队的讨论来创建。您不应该尝试在阳光下记录每个实施细节,因为您将达到收益递减点。目标是每个用户故事的实现细节(任务)覆盖率达到 60-75%,因为随着编码的开始,细节可能会发生变化。开发人员在编码过程中发现的任何其他细节都可以在每日站立期间简要分享和记录。用户故事应该是简单且非技术性的,而交付/开发团队会将故事细节充实为嵌套任务。 开发人员应该可以通过他们的集成开发环境 (IDE) 看到这些任务。当开发人员完成任务时,他们可以将他们签入的代码与您的工作项跟踪工具(Jira、Team Foundation Server、On-Time)中的任务相关联

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多