如何编写功能要求

哈Ha!

今天,我们想谈谈我们的产品团队在创建新产品和功能时如何处理开发人员的功能要求。

在开发阶段,可能会出现许多意外情况,尤其是如果任务没有明确描述的话。 不同的团队成员可以以不同的方式理解同一功能的开发和功能,因此产品经理负责创建从概念开发到最终发布的产品。 这个过程的重要部分是功能需求的准备。



如何管理者学习为开发人员设置任务中已经谈到了为开发人员描述任务的问题,但是其中我们讨论了更多的管理问题,今天我们将讨论技术问题。 对于通过互联网进行销售的任何企业来说,这都是极其重要的组成部分。 实际上,每个在Internet环境中积极发展的公司都变成了软件业务。 但是尽管如此,需求管理领域的能力往往会非常缓慢地增长。

结果,我们经常看到相同的图景:来自不同部门的任务不断落入开发部门,这些任务中的要求被模糊地描述,一旦付诸行动,它立即返回以进行修订(因为主管没有完全描述我想要的东西,然后开发人员按照他认为合适的方式做了)。 结果是显而易见的:可能需要数月才能完成的任务的最终期限,团队动力不足,团队内部的紧张局势,客户不满意,落后于竞争对手等等。

本文希望给出一个简单的方法,为解决此类问题奠定基础。 可以安全地将其推荐给所有设定任务的人学习(此外,采取行动)。

不同的公司有不同的方法来编写功能需求,但是在Retail Rocket,我们选择了此选项,到目前为止,我们并不后悔。

功能要求:这是什么,为什么需要它们


首先,让我们看看什么是功能需求。

功能要求-这是对开发人员的问题陈述。 需求中未指定的所有内容都是由开发人员决定的,这通常与产品经理关于预期结果的介绍有所不同。 因此,要求应包含对任务中所有可能问题的答案。

功能需求通常包括:

  • 用户故事-显示您对开发团队的期望
  • 用例-显示使用场景
  • 线框-您创意的可视化工具

今天,我们将专注于用户案例和用例。

用户故事


用户故事描述了用户在实现结果中所扮演的特定角色,以及开发人员将这项任务付诸实践所需做的事情。

通常,使用模板:

作为一个// <角色名称>,我想<目的,操作>,以便<预期结果>,做<开发者应该做什么>

有许多使用这种方法的例子。 例如,这是在Trello中的工作方式:



在Retail Rocket中,我们使用表格在Google文档中创建用户故事。 由于每个人都可以发表评论并提供反馈,因此这有助于简化不同团队之间的沟通过程。

例如,在线商店的NPS跟踪任务如下所示:



由于这种可视化的交互作用,用户的任务可以顺畅且逻辑地传递给开发人员。 然后是用例的转变。

用例


用例逐步描述了与开发产品交互时的用户行为。

用户的任务是用户为实现短期目标所做的事情。

如果用户以多种方式解决了开发页面上的问题,则每个解决方案都应编写自己的用例。 例如,如果对受影响的功能的访问位于多个页面上,则需要针对用户切换到该功能的每种方式编写一个单独的用例。

让我们看一下我们最近发布的功能的一个示例-用于大量邮件的图像和字体库

用户的目标是将图像存储在我们的平台中,并使用它们来创建电子邮件活动。

用户任务

  • 上传图片
  • 将图像嵌入信函模板
  • 删除图片

对于每个任务,您需要编写自己的用例-用户与界面交互方式的描述。

用例示例:

图片上传:

  • 电子邮件营销人员登录到您的个人零售Rocket帐户
  • 电子邮件营销人员开设图库部分
  • 电子邮件营销人员通过拖放或单击“选择文件”按钮来上传图像
  • 图片已上传
  • 用户看到成功上传图像的通知

删除图片:

  • 用户点击图片
  • 图片突出
  • 单击所选图像之外的区域可以删除选择。
  • 用户单击三个点图标
  • 出现一个上下文菜单。
  • 用户在其中选择“删除文件”链接。 如果选择了多个图像,则所有图像将被删除。
  • 图片已删除

所有使用场景都以相同的方式绘制,这使开发人员可以清楚地了解用户与产品或功能的交互外观以及为此需要执行的操作。

为什么功能要求如此重要


使用这种功能需求格式,您可以为开发团队提供清晰的说明。 另外,您可以显示该接口在客户端的外观以及如何解决其任务。 这种方法有助于表达您的想法,避免团队中的误解。

通常,向开发人员提出问题会引起很多问题,其答案取决于实现的复杂性和时机。 为了弄清细节,他们必须花时间在沟通上,而不是直接工作-创建很酷的功能并改进产品。 甚至在沟通过程中,如果任务主管仅回答所出现的问题,但用户并没有自己解决问题,则所有的细微之处也不会总是得到澄清。

以我们的画廊为例。 如果产品经理刚刚提出创建图库的任务,那么在有关文件删除的某一点上,开发人员必须澄清:

  • 我是否需要删除所有文件?
  • 如果超过了存储限制,是手动删除还是下载新文件时最旧的文件自动删除?
  • 是从文件列表中删除还是您需要打开文件?
  • 文件是否被永久删除,或者是否有存储文件一段时间的文件篮? 如果您需要一个篮子,则可以存储多少个文件?
  • 应该删除批处理文件还是只能删除一个?
  • 使用单独的图标(该图标的外观是什么?)或通过菜单项(它将被称为什么?在操作列表中的何处?)删除该文件。

毕竟,这只是任务的重点之一,还有很多问题。 找出每个问题都需要双方的时间和精力。

功能需求可帮助产品经理从任务中的界面仔细考虑并明确制定用户交互的所有方案。

任务执行得越精确,开发人员在开始工作之前拥有的细节越多,工作效率就越高。 漫长而有时无意义的交流不会浪费时间。 在这种情况下,各方都将从中受益:开发人员清楚地了解如何做以及如何做,任务提供者完全按照他想象的形式完成了工作。

您如何处理开发人员的任务制定工作?

产品总监Gulfiya Kurmangaleeva

Source: https://habr.com/ru/post/zh-CN431572/


All Articles