况下谁来执行操作并不那么重要。
三、何时使用工作故事
在决定何时使用工作故事时,我认为重要的是要承认用户故事和工作故事都具有独特的优势。
我仍然坚持认为用户故事对于产品用户差异很大且需要深刻理解这些用户的场景是非常重要的。这就是为什么用户故事以As a…作为开头的原因。我们以这种方式开始用户故事的原因是,这样可以使用户前置,用户故事可以描述一类人共同的需求。
相反,在工作故事中,谁在执行这个故事并不一定很重要。当产品有明确的用户,但他们的需求不会有明显差异时,工作故事会是更好的选择。
如果你曾经写过冗长的用户故事集,并且每个故事都以“作为用户…”开头,那你就遇到了这个问题。当大量用户故事都以“作为用户…”开始时,你会获得一组对于这个用户而言不是很重要的故事。
将这些内容写为工作故事而不是用户故事会大有帮助。这样做可以使故事包含执行故事的其他上下文。在某些情况下,知道故事何时可能发生比知道谁来执行故事更为重要。
四、结合工作故事和用户故事的优势
因此,虽然工作故事和用户故事都有自己的优势,但可以通过将它们合并在一个故事中获得两种好处。让我们重温一下邮政编码故事,看看如何做到这一点。首先,我们有工作故事:
工作故事:
当按邮政编码搜索时,我想要输入一个有效的代码,这样我就不会浪费时间搜索明显无效的邮政编码。
目前尚不清楚谁来执行这个故事。是普通用户吗?网站管理员?还是其他人?我们未被告知。如果我们认为知道谁在进行此操作很重要,则可以通过在故事中添加角色来代替“我”来优化工作故事。我们的故事可以修改为以下内容:
工作故事:
当按邮政编码搜索时,买家想要被要求输入有效的代码,以使买家不会浪费时间搜索明显无效的邮政编码。
更改以粗体显示。你可以看到我刚刚从“我想要…”更改为“买家想要…”,然后在故事的后面进行了相应的更改。
我们可以对用户故事做类似的事情,上述未修改的故事是:
用户故事:
作为用户,我希望被要求输入有效的邮政编码,这样我就不会浪费时间搜索明显无效的邮政编码。
为了提供其他上下文,我们添加了一个短语来说明用户何时进行此操作。我们修改后的用户故事将变为:
用户故事:
作为要按邮政编码搜索的用户,我希望被要求输入有效的邮政编码,这样我就不会浪费时间搜索明显无效的邮政编码。
修改后的用户故事和工作故事在语义上是相同的,要选择哪种表达方式完全取决于你。我个人更喜欢修改后的用户故事而不是修改后的工作故事,因为它可以使故事保持第一人称。我在“为何三段式用户故事模板如此有效”一文中写过用第一人称写故事的好处。
五、何时使用工作故事
那么,用户故事或工作故事都要在什么时候使用呢?
首先,每种故事都很好,都有自己的优势。在每周的工作中,我都会写一些用户故事和一些工作故事。两种技术完全兼容,没有理由将它们视为是互斥的。
如果你的产品有用户,并且这些用户的需求有很大的不同,我建议使用用户故事。用户故事着重强调了执行该操作的人,这可能会引出对用户行为的更多见解。
但是,如果你的产品的用户没有明显不同,则工作故事可能会是更好的方法。
一