如果您可以在几周内开发出一个完整的系统并且可靠地完成,那么没有人会担心“用户故事”。他们只会让您开发系统,与您坐在一起,并随时对其进行调整。
用户故事的存在只是为了从无法一直与您在一起的人那里获得反馈,并帮助您了解您的用户(和其他利益相关者)真正想要什么.
我是这样处理列表的:
In order to get help
As a StackOverflow user
I want to add post
with name and content
and add tags to it
and format the content
and the information about my post edits to be stored in the system
您想寻求帮助。其中哪些实际上增加了您获得帮助的能力?是你想要帮助,还是你想帮助别人?您希望对您为他人提供的帮助获得认可吗?上面的部分似乎是错误的(这就是为什么用虚假需求进行这些对话真的很困难)。
我认为这里有多个需求,而且远远超出了一个用户故事的范围。戴上分析师的帽子,我可以这样分解:
In order to award great content with appropriate recognition,
as Stack Exchange,
we want people's usernames to appear with their content.
当然,用户也想要这个,但他们没有为此付费(通过广告除外)。所以要弄清楚谁为此买单,为什么买单。
In order to get more page impressions and keep people on the site for longer,
as Stack Exchange,
we want users to be able to find similar content really easily.
嗯。这个有点棘手。看,用户真的想要在 StackOverflow 上度过他们的一生。只是如果我们给予他们适当的认可,让其他人更容易找到他们的内容,他们可能会这样做。并非所有的“用户故事”实际上都使用户受益。找出谁在为他们付费,以及为什么;然后你找到你真正的利益相关者。一个故事也可以使多个利益相关者受益,而且从用户的角度也很容易理解如何重新表述这一点。
format the content
老实说,不确定这个。这可能是关于能够强调重点等。有大量的美学理想不适合 BDD 和自动化场景。有时,做到这一点的唯一方法就是尝试并获得反馈。
In order to avoid retyping my request every time
As the user
I want the information about my post edits to be stored in the system
嗯,是的,那太好了。
问题是这些中的每一个都可以独立开发。如果您能想到任何功能,任何您可以摆脱但仍然具有发布价值的项目,请将其放在单独的故事中。
如果您可以将“我想...”替换为“我希望能够...”,那么您所拥有的可能不是故事,而是完整的能力。大多数人本能地这样做。很多人称这些为“史诗”。
我刚刚向您展示了我是如何分解它们的。这是一个非常简单的过程。
首先,看看您的要求。如果有什么你可以说,“我希望能够......”或“有人希望能够......”那么你知道这是一种完全不同的能力,这意味着它将是一个单独的故事.
然后您可以将它们分成上下文。所以你可能会有这样的故事:
In order to free up our junior traders
We want them to be able to generate contracts automatically
So that they can help with the trade analysis instead of typing.
如果这对于反馈周期(通常是两周的冲刺)来说似乎太大了,您可以进一步划分。
In order to free up our junior traders
We want them to be able to generate *orange juice* contracts automatically
So that they can help with the trade analysis instead of typing.
在这里,我们的重点是能够交易橙汁,但我们同样可以将故事范围缩小到 FTSE、美国或纽约证券交易所。这就是我们如何将精力集中在能够实现的事情上:保护收入、降低成本或创造价值。
为了将这些转化为情景,我问:“您能给我举一个在纽约证券交易所进行 OJ 交易的例子吗?”如果我看到任何我不理解的通用内容,我会问:“你能给我举个例子吗?”
这个例子成为我的第一个场景。上下文(给定的)由故事的限制来定义。事件(何时)是能力的表现。结果(然后)是结果值。
回答您的问题 - 是的,我认为创建精确的用户故事很重要。这意味着知道它为什么有价值,定义你将要涵盖的背景,并提出一个结果可能是什么的例子。
不过,您提供的示例不仅仅是一个故事。它不够精确。希望这里的建议可以帮助您将故事范围缩小到有用的范围内。一两天对于一个故事来说是一个不错的长度,但如果你从这条路开始,发现它们有点长,那没关系。
您的更改也是故事。