一文读懂: 什么是用户故事?What is User Stories?

在软件开发和产品管理中,用户故事是对软件系统的一个或多个特征的非正式的自然语言描述。用户故事是敏捷软件开发中使用的工具,用于从最终用户的角度捕获软件功能的描述。用户故事描述了用户的类型,他们想要什么以及为什么。用户故事有助于创建需求的简化描述。

用户故事通常记录在索引卡,便利贴或项目管理软件中。根据项目,用户故事可能由各种利益相关者(如客户,用户,经理或开发团队成员)编写。

一文读懂: 什么是用户故事?What is User Stories?_第1张图片

“ 用户故事是敏捷方法的一部分,有助于将重点从撰写需求转移到谈论它们。所有敏捷用户故事都包括一两句话,更重要的是,关于所需功能的一系列对话” - Mike Cohn,是Scrum软件开发方法发明的主要贡献者

Scrum团队的敏捷软件

需要灵活的软件解决方案来进行产品积压管理吗?Visual Paradigm支持强大的敏捷工具集,涵盖用户故事映射,亲和力估计,冲刺管理等。它功能强大但易于使用,直观且最重要的是AGILE。

免费下载

为什么用户的故事?

随着项目的进展,团队和客户会更多地了解系统,因此需求总会发生变化。期望项目团队处理静态需求列表,然后在几个月后交付功能软件,这是不现实的。

通过用户故事方法,我们用“足够”的方法取代大型前期设计。用户故事通过强调以客户为中心的对话来减少编写详尽文档所花费的时间。因此,用户故事允许团队更快地交付高质量的软件,这是客户的喜好。在敏捷开发中采用用户故事方法有很多好处,例如:

  • 简单一致的格式可以节省捕获和确定需求优先级的时间,同时保持通用性,足以用于大型和小型功能。
  • 通过提供客户真正需要的产品,让自己表达商业价值
  • 避免过早引入细节以防止设计选项并不恰当地将开发人员锁定在一个解决方案中。
  • 避免出现虚假的完整性和清晰度
  • 获得足够小的块,以便在积压中进行协商和移动
  • 将技术功能留给架构师,开发人员,测试人员等

用户故事的基本概念

用户故事是一种轻量级方法,用于快速捕获产品需求的“谁”,“什么”和“为什么”。简单来说,用户故事是表达用户需要的需求概念。用户故事很简短,每个元素通常包含少于10或15个单词。用户故事是“待办事项”列表,可帮助您确定项目路径中的步骤。它们有助于确保您的流程以及最终产品满足您的要求。

用户故事以增量方式定义,分为三个阶段:

  • 需要的简要说明
  • 在积压修饰和迭代计划期间发生的对话以巩固细节
  • 确认故事圆满完成的测试

而这些,虽然被称为3C的 - 卡,对话和确认。我们稍后将在此用户故事指南中详细讨论此问题。

用户故事 - 投资

缩写INVEST有助于记住一组广泛接受的标准或清单,以评估用户故事的质量。如果故事不符合这些标准之一,团队可能想要重新编写,或者甚至考虑重写(这通常会转化为实际撕毁旧故事卡并编写新故事卡)。

一个好的用户故事应该是 - INVEST

  • I ndependent:应该是自包含的方式,允许在不依赖于彼此释放。
  • N egotiable:只捕捉用户需求的本质,为谈话留出空间。用户故事不应该像合同一样写。
  • V aluable:为最终用户提供价值。
  • E stimable:用户故事必须能够被估计,以便可以正确地确定优先级并适合短跑。
  • S mall:用户故事是一小部分工作,可以在大约3到4天内完成。
  • T estable:必须通过预先编写的验收标准确认用户故事。

用户故事的起源

  • 在肯特贝克的书“极限编程解释”中首次提到。它是非结构化文本,与大小限制的用例非常相似。
  • Ron Jeffries在2001年介绍了3C的概念:卡片,对话,确认
  • 2003年:用于快速评估用户故事的INVEST清单源于Bill Wake撰写的一篇文章,该文章还重写了用户故事技术分解产生的任务的首字母缩略词SMART(具体,可衡量,可实现,相关,时间框)。
  • 2004年:INVEST首字母缩略词是Mike Cohn的“用户故事应用”中推荐的技术之一。

如何写用户故事?

在开始编写用户故事时,模板可以帮助确保您不会无意中开始编写技术任务:

用户故事模板

用户故事仅捕获需求的基本要素:

  • 它是谁的?
  • 它对系统的期望是什么?
  • 为什么重要(可选?)?

以下是70%的从业者使用的简单用户故事格式:

一文读懂: 什么是用户故事?What is User Stories?_第2张图片

角色 - 用户应该是与系统交互的真实人。

  • 要尽可能具体
  • 开发团队不是用户

操作 - 系统的行为应该写为操作。

  • 通常每个用户故事都是唯一的
  • “系统”是暗示的,不会写在故事中
  • 主动语音,而不是被动语态(“我可以得到通知”)

好处 - 好处应该是真实的结果,它是非功能性的或系统外部的。

  • 许多故事可能共享相同的利益声明。
  • 优点可能是其他用户或客户,而不仅仅是故事中的用户。

一文读懂: 什么是用户故事?What is User Stories?_第3张图片

笔记:

用户故事是用日常语言编写的,并从个人(谁)的角度以及他/她想要的原因(为什么)描述特定的目标(什么)。

在软件开发中,目标通常是新产品功能,个人是某种类型的最终用户,原因是用户在目标产品功能中看到的好处。

用户故事示例:

  • 作为[ 客户 ],我想要[ 购物车功能 ],以便[ 我可以轻松地在线购买物品 ]。
  • 作为[ 经理 ],我想[ 生成报告 ]以便[ 我可以理解哪些部门需要更多资源 ]。
  • 作为[ 客户 ],我想[ 在物品到达时收到短信 ]以便[ 我可以马上去接你 ]

在上面的例子中:

  • 角色表示将与要实现的系统进行交互以实现目标的个人,系统,子系统或任何其他实体。他或她将通过与系统交互获得价值。
  • Action表示用户可以通过与系统交互来实现的期望。
  • 优势代表与系统交互背后的价值。

这不是一个规则,而是一个通过考虑以下因素来帮助您思考用户故事的指南:

  • 用户故事将为某人或某一方(例如客户)带来价值。
  • 用户故事满足了用户的需求(例如,当物品到达时接收短信)
  • 有理由支持实现这个用户故事(例如,客户可以去拿她购买的物品)

使用3C详细说明用户故事(卡片,对话和确认)

另一位XP的创造者Ron Jeffries描述了我们最喜欢的用户故事思考方式。用户故事有三个主要组件,每个组件以字母“C”开头:卡片,对话和确认,用于描述用户故事的三个元素。哪里:

卡片代表2-3个用于描述故事意图的句子,可以被视为对话邀请。该卡作为令人难忘的令牌,其总结意图并代表更详细的要求,其细节仍有待确定。

在将它们带到团队之前,您不必将所有产品Backlog项目完全“预先”写出来。它承认客户和团队将在他们开展工作时发现所需的基础业务/系统。这一发现通过围绕用户故事的对话和协作来实现。卡通常遵循类似下面的格式:

作为产品的(角色),我可以(做行动)以便我可以获得(一些好处 /价值)

注意:

  • 书面文本,即对话的邀请,必须解决故事的“ 谁(角色) ”,“ 什么(行动) ”和“ 为什么(好处) ”。

一文读懂: 什么是用户故事?What is User Stories?_第4张图片

会话

会话代表目标用户,团队,产品所有者和其他利益相关者之间的讨论,这是确定实现意图所需的更详细行为所必需的。换句话说,该卡还代表关于意图的“对话的承诺”。

  • 由产品负责人促成的协作对话涉及所有利益相关者和团队。
  • 对话是故事的真正价值所在,并且应该调整书面卡片以反映当前对该对话的共同理解。
  • 这种对话大多是口头的,但最常见的是文档和理想的各种自动测试(例如验收测试)。

一文读懂: 什么是用户故事?What is User Stories?_第5张图片

确认

确认代表验收测试,即客户或产品所有者将如何确认故事已经实现满意。换句话说,确认表示满足的条件,将用于确定故事是否满足意图以及更详细的要求。

  • 产品负责人必须确认故事已完成才能被视为“完成”
  • 团队和产品负责人根据团队目前对“完成”的定义检查每个故事的“完成度”
  • 可以为个别故事确定与当前“完成”定义不同的具体接受标准,但是团队必须很好地理解并同意当前的标准。所有相关的验收测试应处于通过状态。

一文读懂: 什么是用户故事?What is User Stories?_第6张图片

如何识别用户故事?

用户故事应与利益相关者一起确定,最好通过面对面的会议。用户故事是需求发现过程,而不是前期需求分析过程。

在传统的需求捕获方法中,系统分析员试图了解客户的需求,然后详细准备系统的需求规范。这不是用户故事方法的工作方式。用户故事的识别更像是记笔记过程,而不是文档处理。我们列出了识别用户故事的主要步骤,如下所示:

  1. 通过与用户的讨论,我们倾听并了解他们的问题和需求
  2. 然后,同时记录他们作为用户故事的需求。
  3. 这些用户故事将成为需求的来源。
  4. 随后可以及时填写详细信息,为整个项目开发过程中的团队提供“足够”的需求参考。

用户故事的生命周期

从广义上讲,整个软件项目中每个用户故事有六种主要状态:

有待

通过用户和项目团队之间的沟通,可以找到用户故事。在这种状态下,用户故事只不过是对用户需求的简短描述。没有详细讨论要求,没有系统逻辑,也没有屏幕设计。实际上,目前用户故事的唯一目的仅仅是提醒所有各方今后讨论用户故事(卡片)中写入的用户请求。用户故事有可能在将来被丢弃。

去做

通过不同利益相关者之间的讨论,确定将在未来几周内处理的用户故事,并将其放入称为冲刺的时间框中。据说这样的用户故事处于待办事项状态。在这个州还没有进行详细的讨论。

当用户故事处于讨论状态时,最终用户将与开发团队通信以确认要求以及定义验收标准。开发团队会将要求或任何决定写下来作为会话记录。UX专家可以创建线框或故事板,让用户在视觉模型中预览建议的功能,并感受它。此过程称为用户体验设计(UX设计)。

发展

在明确要求之后,开发团队将设计和实现这些功能以满足用户的要求。

确认

在开发团队实现用户故事后,最终用户将确认用户故事。他/她将被允许访问测试环境或半完整的软件产品(有时称为alpha版本)以确认该功能。确认将基于详细描述用户故事时所写的确认项目来执行。在确认完成之前,用户故事被称为处于确认状态。

成品

最后,确认该功能已完成,用户故事被视为已完成状态。通常,这是用户故事的结束。如果用户有新要求,要么是新功能,要么是对完成的用户故事的增强,团队将为下一次迭代创建新的用户故事。

使用故事地图组织用户故事

用户故事是构建更好的产品待办事项的有用方式,以用户为中心,以实用,可操作的方式描述软件需求。但是,用户故事本身并没有透露整个图片,可以让您了解用户从加载应用程序到达到最终目标的那一刻所经历的更大旅程。

用户故事地图可以帮助我们将用户故事安排到可管理的模型中,以便系统地计划,理解和组织系统的功能。通过操纵地图的结构,我们可以识别积压中的漏洞和遗漏,并在意义结构中将用户故事相互关联; 帮助有效规划整体发布,为每个版本的用户和业务创造价值。用户故事地图允许您向待办事项添加第二个维度。以下是您应该考虑使用此技术的几个原因:

  • 它允许您查看待办事项中的大图。
  • 它为您提供了一个更好的工具来决定整理和优先处理积压工作。
  • 它促进了无声的头脑风暴和协作方法来生成您的用户故事。
  • 它鼓励采用迭代开发方法,您的早期交付可以验证您的架构和解决方案。
  • 它是传统项目计划的绝佳视觉替代品。
  • 它是讨论和管理范围的有用模型。
  • 允许您可视化项目/产品的维度规划和实际选项。

用户故事地图模板

故事映射是一种自上而下的需求收集方法,表示为树。故事映射从用户活动开始。用户活动应达到特定目标。要完成活动,用户需要执行相关任务。这些任务可以转化为用于软件开发的史诗和用户故事。通常,用户故事地图由3个级别组成:用户活动/用户任务/用户故事。对于企业规模项目,通过在第三级引入Epics,可能更适合4级结构。

用户活动 - 它们在第二列中列出。这是系统必须支持的主要目标,具有切实的业务成果。整行构成了主干。

用户任务 - 每个用户活动都分解为一组称为叙述流的相关用户任务。整行形成行走骨架)

Epics /用户故事 - 每个用户任务都直接分解为功能实现的用户任务下面的Epics / User Stories。根据项目的复杂程度,您的团队可以选择3或4级故事地图,如上所述,它更适合您。

Visual Paradigm Story Map支持3级和4级复杂性,可以应对各种类型的项目。

3级故事地图(用户激活>用户任务>用户故事)

一文读懂: 什么是用户故事?What is User Stories?_第7张图片

4级故事地图(用户激活>用户任务>史诗>用户故事)

一文读懂: 什么是用户故事?What is User Stories?_第8张图片

规划发布

使用分隔符来标识用户可能使用您的软件实现目标的任务切片。允许特定目标用户实现其目标的最少数量的任务构成了可行的产品版本,如下图所示:

一文读懂: 什么是用户故事?What is User Stories?_第9张图片

如果你想开发这样的故事地图,请查看Visual Paradigm的故事映射工具。

如何有效地使用用户故事?

与许多其他软件开发方法一样,如果您在软件项目中正确应用用户故事,您将能够生成高质量的软件系统,以赢得客户的信任和满意。以下是使用用户故事时需要记住的一些要点:

  • 保持用户故事的描述简短。
  • 在编写用户故事时从最终用户的角度思考。
  • 必须在开始开发之前定义确认项
  • 在实施之前估算用户故事,以确保您团队的工作量得到控制。
  • 最终用户可以找到需求,而不是最终用户或开发团队。与最终用户保持良好关系对双方来说都是双赢的局面。
  • 沟通对于了解最终用户的需求始终非常重要。

准备好敏捷?

想要一个能够很好地管理Scrum项目的敏捷工具吗?Visual Paradigm具有用户故事映射工具,Affinity Estimation工具,sprint管理工具和任务管理。

免费尝试

相关链接

 

  1. 专业的敏捷软件工具,具有故事映射,亲和力估计等功能

你可能感兴趣的:(Agile)