如何在以用户为中心的软件开发中编写用户故事

内容贡献者凯特Eby

2018年7月17日,(2021年10月16日更新)

软件开发带来的一个风险是,最终用户在您开发的功能中发现的价值很小。但是,对于这种困境有一个简单的答案:在开始开发之前编写有效的用户故事。用户故事的实际应用提供了一个框架,通过在软件构建的整个生命周期中提示对话来识别用户价值。本文将探讨什么是用户故事,什么不是,如何写一个有效的故事,以及讨论任务列表的重要性。

同理心是用户故事开发过程的关键,虽然许多人认为开发需求列表更容易,但花时间了解用户的好处是交付真正价值的必要条件。

什么是用户故事,什么不是

用户故事的出现是由于极限编程(XP)看板,Scrum的需要将项目分解为更小的、增量的sprint和迭代段。它们与用例的不同之处在于,它们关注尽可能小的工作单元。最初由Ivar Jacobson介绍的用例可能由基于一个共同主题的几个故事组成。故事本身是简单的叙述,概述了单一的期望或用户目标。你可以将用户故事的创建分为三个阶段:

  1. 描述的需要。
  2. 迭代计划。
  3. 执行和测试故事的完成。

在每个阶段,用户故事都可以细化到完美。

用户描述不包含需求列表或编码说明,但将与验收标准或测试相关联。然而,用户故事的目标并不是关注如何构建。相反,重点是谁想要这个功能,它能做什么,为什么它很重要。故事为最终组成待办事项backlog活动待办事项列表的特性带来了人工元素。

为什么用户故事很重要?

故事不仅仅是功能的列表,它将用户带入到对话中。通过关注用户将体验到的价值,用户故事为软件开发提供了环境。这种以人为本的过程使语言变得无声敏捷,允许非开发人员进行协作和参与对话。

用户故事有助于在整个IT开发项目中促进持续的对话,从而在诸如迭代/sprint计划并为一个版本确定待办事项安排的优先级。相比之下,传统瀑布开发包括在开发过程的开始和结束时进行对话。

在他的书中应用于敏捷软件的用户故事, Mountain Goat Software的Mike Cohn说:“我们根据手头的信息做出决定,我们经常这样做。我们不是在项目一开始就做出一组无所不包的决策,而是将决策分散到项目的整个过程中。为了做到这一点,我们确保我们有一个流程,能够尽可能早、尽可能多地为我们提供信息。这就是用户故事的用武之地。”

谁撰写用户故事?

ob欧宝娱乐app手机下载产品所有者、涉众、产品经理和其他业务团队成员参与编写用户故事。然而,许多人会说,谁写的故事比谁参与的讨论和对话更重要,这些讨论和对话使故事生动起来。首先确定谁将使用该特性角色),可按需要详细填写。用户可以根据功能或工作描述来定义,例如学生、经常飞行者或营销经理。

对最终用户的深刻理解限制了开发人员的偏见或假设。如果用户可用,他们就可以参与,但团队通常有设计人员、管理人员、编写人员和其他充当客户代理的人员。根据用户描述的使用情况,参与者可能有所不同。例如:

  • 创建用户故事:参与者可能包括客户、产品管理、工程和其他涉众,如人力资源、财务和销售。ob欧宝娱乐app手机下载
  • 用户故事的维护:参与者包括产品管理人员或产品负责人。ob欧宝娱乐app手机下载
  • 用户故事应用和用法:参与者包括工程师/开发人员、技术作者和质量保证测试人员。

如何撰写有效的用户故事

用户描述是一个有价值功能的简单的、一行的好处说明。在编写用户故事之前,进行用户调查和访问,以查询用户所需的功能。首先,在3x5英寸的卡片或便利贴上,以循序渐进的方式描述客户之旅。这些卡片可以立即投入生产或为积压提供上下文。ob欧宝娱乐app手机下载

用户故事映射在美国,你可以在会议室的墙上贴便利贴,这样整个团队都可以看到它,并进行长期规划。

有一些技巧可以帮助你写出你需要的故事。一个常见的技巧是角色-特征-原因或利益(RGB)结构,你可以通过填充以下句子的空白来构建:

  • 作为一个(用户/人物/顾客),我想(做某事)以便(得到好处)。

在RGB问题上,还有一个由Ron Jeffries开创的方法,它强调了他的“3c方法”:

  • 名片:把答案写在卡片上(如上所述)。
  • 谈话:卡片上有限的细节是第二个c实现承诺的基础。在这个阶段,团队讨论细节并建立“完成”的定义。
  • 确认:这是决定测试或验收标准的反馈的结果。这个验收标准通常写在卡片的背面,在以后的会议中用作初步核对表,以确定是否完成。

2003年,比尔·威克在一篇文章中首次提出,迈克·科恩在他的书中普及开来,应用于敏捷软件开发的用户故事,简称INVEST是一种评估用户描述的方法。INVEST准则如下:

  • 独立发展:以任何顺序发展
  • 能力谈判故事发展的程度。
  • 提供了价值对用户或业务。
  • 可以估计完成。
  • 足以在一次迭代中进行设计、编码和测试。
  • 最后,可以测试

按照RGB和3c方法编写用户故事是很好的起点。对INVEST目标的有效性进行评估可以保持故事的小型、功能性和可测试性。

班尼特到来

班尼特·劳伯,首席体验官可用性人员有限责任公司他对准备撰写第一个用户故事的人提出了以下建议:“确保你对用户做了一些研究,并创建人物角色。这将帮助开发团队与用户产生共鸣。”

敏捷用户故事模板

准备好编写用户故事了吗?下载一个免费的模板,以帮助您从最终用户的角度清楚地定义特性。该模板包括用户类型、他们想要什么以及他们为什么想要它的空间。通过创建这些简短的、一句话的用户故事,开发团队可以开发出满足用户故事需求的代码。你可以下载其他有用的敏捷模板在这里

敏捷用户故事模板

下载敏捷用户故事模板

Excel|内容

如何从用户故事中编写测试用例

用户故事为开发测试或验收标准提供了指导。这个清单可以帮助开发人员确定特性何时完成。与用户故事的所有元素一样,接受标准也是从用户的角度编写的。测试或验收标准概述了成功执行所需功能所需的元素。

这一标准应包括下列各项:

  • 预期的功能性和非功能性需求
  • 功能的负面情况
  • 性能指南
  • 适当的用户工作流程
  • 对其他特性的影响
  • 用户体验

托马斯Stiehm

Thomas Stiehm,首席技术官Coveros,使用小黄瓜语言编写测试用例。他说:“这是既定的、到那时、然后(GWT)格式。”“我在Cucumber中使用测试自动化,它消耗Gherkin进行自动化测试。此外,让有经验的测试人员参与有助于创建更好的故事。他们可以在开发故事时提出重要的功能问题,这反过来又会产生更可用的功能。”

让我们使用会议注册作为一个示例测试用例:用户提交一个表单,其中包括他们的联系信息,他们选择一个支付选项,确认信息显示在屏幕上,并通过电子邮件发送。这些成为接受列表的一部分。测试用例还考虑了用户体验(UX)的易用性和流性。就像用户故事本身一样,测试的细节数量只反映了确保特性交付价值所必需的东西。

赫尔南Santiesteban

赫尔南Santiesteban,大湖网络,分享了他的建议。“编写测试用例的最佳方法之一是使用给定的、何时、然后的模板,它建立了测试条件、用户操作和预期结果。例如:如果一个管理员用户成功登录,当管理员打开用户仪表板时,管理员将看到用户管理功能。”

编写强大用户故事的好处

对于一些产品经理ob欧宝娱乐app手机下载和开发团队成员来说,编写用户故事而不是需求列表可能会让他们觉得在整个敏捷过程中增加了更多的步骤。然而,用户描述的一个关键好处是,它们是依赖于协作的,可以让每个人都了解情况并保持在同一页面上。在开发过程中,通过发现和涉众反馈,事情可以发生变化——因此,用户故事可以根据这些环境进行更改或适应。

一些最常见的好处包括:

  • 通过将大局分解成小项目来快速展示进展。
  • 激励团队,保持项目快速前进,取得成功。
  • 把最终用户放在首位,从而提高用户的接受度和满意度。
  • 优先考虑高价值功能。
  • 提供进行协作对话的平台,允许进行创造性的解决方案规划。
  • 鼓励高水平的合作,使团队专注于结果,进而创造更好的整体产品。ob欧宝娱乐app手机下载

如何写一个好的用户故事

大型软件项目的开发通过走老路来获得成功和效率,这似乎是违反直觉的。不同颜色的简单3x5卡片和永久标记为创建用户故事提供了简单的基础,为敏捷开发过程带来了环境。小卡片鼓励通过团队合作发现的基本利益驱动的描述。

所有的用户故事都是独一无二的,它们应该由故事地图、图表、故事板和模型来补充,但以下是一些可以帮助您编写有效用户故事的最佳实践:

  • 了解你的用户:定义和理解您的用户角色。
  • 包括所有的利益相关者:确保所有相关利益相关者都参与到用户故事的编写过程中。测试团队甚至可以完善这个故事。
  • 关注用户:从用户的角度进行的讨论和对话提供了构成“完成”的内容和定义。
  • 保持简短和简单:在每个用户故事中只描述一个功能部分。如果一个故事太大,无法在短时间内开发,可以将其分解为更小的增量,或者创建可以限制功能的特定条件。一个好的经验法则是,用户故事应该足够小,以便开发团队可以在一次迭代中完成它。
  • 讨论和协作:关于项目规模、最小可行产品(MVP)、谁将使用它、它将做什么以及为什么它会带来价值的讨论ob欧宝娱乐app手机下载,都有助于决定包含和范围。
  • 避免技术细节:不要在用户故事中写入技术任务或“如何构建”语句,因为它们可能会阻碍创造性和协作。技术细节将在后面的过程中出现,并由开发人员、测试人员和系统架构师集成。模板可以帮助我们避开技术细节。
  • 关注3w:谁会使用它,它是什么,为什么它很重要。
  • 鼓励可视化:使用任何合适的方法(绘图、故事和影响映射、故事板、模型或原型)来可视化成品。ob欧宝娱乐app手机下载
  • 明确价值和效益:确保故事的目的是明确的,注意到紧迫性,并且故事是完整的。

编写用户故事的挑战和常见陷阱

用户故事回答了诸如谁将使用该特性、该特性将做什么以及该特性为什么重要等问题。故事的细节提供业务上下文、用户价值,并推动团队讨论。在编写用户故事时,一个常见的挑战是确保故事足够全面,能够表达价值,但又足够简单,能够在短时间内交付,比如一个sprint(通常在1到4周之间)。故事不应该包含如何构建的技术细节或编码指令。在开发的这个阶段,不需要这些细节。

如果一个故事太大或太宽泛,它就会被分解成小部分。

下面是一个很好的例子:

  • 作为银行客户,我希望能够看到我的余额,这样我就可以计划账单支付。

添加更多细节或其他功能可能是诱人的,但这将创建一个笨拙的叙述。这类故事应该是这样的:

  • 作为一个销售经理,我想要得到我的预测、销售和人事报告,这样我就可以制定我全年的预算。

这个示例有多个组件(生成单独的报告:预测、销售和人员),这些组件应该被分解成几个更小的用户故事。

另外,一定要包括验收标准,确定什么构成了“完成”。如前所述,验收标准通常以清单的形式写在用户故事卡的背面。

编写接受标准时的其他挑战包括:

  • 专注于如何建造的自然倾向。然而,将这些技术细节排除在对话之外可以推动更有意义的对话,从而产生创造性的解决方案,还允许用户和非技术团队成员参与讨论。
  • 对话和对话可能是耗时的,而且经常被遗忘,这限制了用户故事的积极影响。
  • 缺乏数据或对用户或角色的真正理解会危及将功能交到最终用户手中时的接受度。
  • 将用户故事限制到最小增量并不容易,但是过多的细节会使用户故事变得笨拙。
  • 遗漏必要的信息,例如验收标准或客户利益,可能会在开发过程中留下未回答的问题。

Mike Cohn的书应用于敏捷软件的用户故事用这个简单的观察来确定软件开发中的核心问题:“软件需求是一个沟通问题。”

与软件开发和敏捷方法相关的技术语言可能会成为许多人的障碍。在整个开发过程中,编写用户故事要包含开放的对话和对话,分解任务以保持势头,并提供完成的强大定义。构建软件是一个大规模的、耗时的过程,有许多涉众和很高的期望。然而,通过遵循一些简单的指导方针和一些过时的技术,构建软件的复杂性对整个团队来说变得更加可见,并且最终更加可行。

熟练使用Smartsheet软件开发编写用户故事

通过设计一个灵活的平台来满足团队的需求,并根据这些需求的变化进行调整,使你的员工能够超越这些需求。

Smartsheet平台可以方便地在任何地方计划、捕获、管理和报告工作,帮助您的团队更有效地完成更多工作。报告关键指标,并在工作发生时通过滚动报告、仪表板和自动工作流来获得实时可视性,以保持团队的联系和消息灵通。

当团队清楚要完成的工作时,没有人知道在同样的时间内他们能多完成多少。今天就可以免费试用Smartsheet。

了解为什么超过90%的财富100强公司信任Smartsheet来完成工作。

免费试用Smartsheet 获得一个免费的Smartsheet演示