为什么写要求?那么,让我们想象你想制作一个移动应用程序,但你没有编程技巧。所以,你找到一个可以为你构建应用程序的开发人员,并且向他描述这个想法。令人惊讶的是,当他第一次展示应用程序时,您会发现这不是你想要的。为什么?因为在描述这个想法时没有提供足够的细节。
为了防止这种情况发生,您需要将这个想法正式化,将其塑造成不那么含糊的东西。最好的方式是编写需求文档并与开发人员共享。需求文档描述了您如何看到开发过程的结果,从而确保您和开发人员位于同一页面上。
在本文中,我们将概述编写需求文档的最常用方法。您将学习编写移动应用程序需求的基本步骤以及良好的需求文档。
如何接近写作
精心制作的要求文档消除了歧义,从而确保开发人员完成所需要的工作。此外,该文件清楚地描述了工作的范围,使开发人员能够更好地评估所需的时间和精力。但是我们如何创建一个好的文档?下面是一些我们的移动团队的技巧鼬各具特色的需求时,如下。
1.描述一般链接中的想法
我们认为对这个想法的适当描述应该适合一句话。该句子可能包括应用程序的核心功能,以便读者立即了解应用程序的内容。对于卡路里跟踪移动应用,可能是“追踪卡路里消费的应用程序来帮助那些关心体重的人”。
提示: Gua Tabidze分享了其他用于描述想法的几个模型。
2.考虑序列链接
研究基本的导航模式,并按照用户在探索时遇到的顺序来描述您的应用程序。一旦想法部分完成,请描述应用程序的第一步,例如入职屏幕和用户注册。
然后,继续下一步,如应用程序的主屏幕。这种方法将使读者了解用户的旅程将如何。
最后,不要忘记基本功能和屏幕,如隐私政策和“忘记密码”功能。
3.查看商店链接中的现有应用程序
查看Apple App Store和Google Play中的现有应用程序,并在描述您的应用程序时参考它们。如果您喜欢“忘记密码”功能在应用程序A和B中的工作,请放在需求文档中。
摘要远离细节
专注于应用程序的功能,并跳过诸如按钮颜色的细节。大多数应用用户不关心这些细节。他们关心的是您的应用程序是否有助于解决他们的问题。因此,在编写要求时,请注意用户应该在应用程序中执行的操作。
5.优先级功能
传达哪些功能比其他功能更重要,以便开发人员首先了解要关注的内容。我们通常遵循MoSCoW方法,标记“必须”,“应该”,“可能”和“不会”等级的项目。
6.使用线框链接补充文本
创建应用程序屏幕的线框以伴随其文本描述。如果您有四个以上的线框画面,则绘制屏幕贴图是有意义的。本文稍后将介绍一个屏幕贴图。
要求格式
现在您已经知道如何编写要求,您需要为文档选择适当的格式。编写移动应用程序需求的几种基本格式,如功能规范文档(FSD),用户故事和线框。
功能规格文件
一个FSD可能是在软件开发行业的默认格式。它包括一个标准的项目清单,涵盖了产品应该做什么以及应该如何做的。
让我们来一个简单的计算器应用程序,并将其功能描述为FSD:
- 应用程序屏幕显示带有附加按钮的数字键盘,用于基本算术运算(加法,减法,乘法,除法)和结果按钮(标有“=”)。
- 点击数字按钮将其添加到屏幕的显示部分。每个新的数字都被添加到号码的右侧。
- 点击操作按钮可使显示部分中显示的当前数字被添加到存储器中。它也会清除下一个数字的显示部分。
- 按照显示结果按钮,根据先前要求的操作,将内存中的数字与显示部分中的数字相结合。结果的数字显示在屏幕的显示部分。
如您所见,此格式需要对产品进行相当详细的描述,因为该描述将被业务和开发人员使用。它确保所有参与者在同一页面上。
组成消防处的人员应在软件开发方面有丰富的经验,并应了解您正在建设的移动设备或其他平台的具体情况。此外,由于需要高水平的细节,创建和抛光这样的文档通常需要相当长的时间。
用户故事
一个用户故事是不是FSD不太正式的,但仍然非常强大。它列出了用户在应用程序中可以做的事情,并从用户的角度进行了描述。该文件也可以简要解释为什么用户想要这样做,如果这不明显。
我们来看我们的计算器示例,并添加一些其他功能,将其描述为用户故事:
- 作为用户,我想要将数字符号从十进制改为指数(反之亦然),以便我可以使用非常小或非常大的数字。
- 作为用户,我希望能够将计算历史导出为PDF文件,以与我的同事分享。
由于这样的解释,这种格式不仅提供了对要求的技术概述,而且还为他们提供了一个很好的商业案例。因此,如果识别出对业务不重要的功能,则可以决定将其完全从范围中删除或将其推迟到将来的版本。
使用这种格式,您可以轻松地将一个故事分成多个子故事,以提供更多的细节。例如,我们可以将PDF导出的故事分为以下子故事:
- 作为用户,我想要能够点击共享按钮(屏幕右上方)来查看我的选项(以PDF,文本,图像的形式共享)。
- 选择一个共享选项后,我想使用iOS的日期选择器选择要共享的计算时间范围。
由于用户故事的简单性和非技术性,在大多数情况下,经理不能简单地要求开发人员实施特定的用户故事。将故事变成可以添加到任务跟踪器的任务,需要经理和技术负责人之间的进一步讨论和细节。
由于用户故事的简单性和灵活性,用户故事已成为最方便和流行的格式之一。
草图和线框链接
概述应用程序要求的另一种方法是通过草图或线框可视化它们。随着iOS开发,大约70%的开发时间花费在接口实现上,所以让你面前的所有屏幕都能让您了解需要做什么和工作范围。
为移动应用程序创建一组相关的线框需要您了解用户体验的基础知识:如何将屏幕相互联系起来,哪些状态可以显示每个屏幕,以及应用程序在何时从推送状态打开时的行为通知。
混合格式
不要害怕混合格式。通过这样做,您可以利用每种格式的优势。根据我们的经验,混合用户故事和线框是最有意义的。虽然用户故事描述了应用程序的功能,并为他们提供了一个商业案例,但线框显示了这些功能将如何在应用程序的屏幕上显示。此外,将用户故事和线框放在一起会比编写消防处的时间少一些,并附带所有相关的细节和交互说明。
首先绘制应用程序的线框。线框完成后,为每个屏幕添加两个或更多个用户故事,描述用户在该屏幕上可以执行的操作。我们发现这种方法是最适合移动应用开发的,所以我们使用它很多。
让我们练习
我将以“我的食物”应用程序为例。我将撰写需求文档,就像我们从头开始开发应用程序一样。
首先,我们使用Steve Blank的XYZ模式来形式化这个想法: “我们通过Z来帮助X做Y”。应用的前提是使用户能够控制白天吃的东西以及卡路里摄入量。根据XYZ方法:“我所吃的东西帮助那些关心体重的人通过提供简单膳食日志的功能来跟踪卡路里消耗。
如上所述,混合用户故事和线框对我们来说最适合,所以为什么不在这里使用它们?
下一步是将“我吃什么”应用程序描述为用户故事,屏幕显示。我们将从应用程序的开始和主屏幕开始:
- 作为用户,我想打开应用程序,立即看到今天的膳食日志和消耗的卡路里。
- 我想能够快速添加刚刚消费的新餐和卡路里。
- 我也想要快速访问应用内的日历,查看我以前几天的用餐日志。
为了避免任何歧义,我们将为此屏幕创建一个线框。
如您所见,我们无法在主屏幕上添加“添加新餐”功能。相反,我们添加了一个按钮来导航到另一个显示此功能的屏幕。现在,我们需要整理这个新屏幕的用户故事:
- 我想输入我刚刚吃过的饭菜的名字。
- 随着餐的名称,我想输入卡路里的数量。
主屏幕上有一个打开日历的按钮。因为有很多其他的日历应用程序,检查他们的设计首先是有道理的。我们喜欢iPhone的默认日历应用程序,所以我们将使用它作为参考。
- 作为用户,我希望能够在当前月份快速选择一个日期。
- 选择日期时,我想在下面的日期查看一份餐点,就像iPhone的日历应用程序一样。
- 我想要切换到下个月或上个月。
我们还将一块iPhone日历的用户界面放在线框中。
最后,我们需要为应用程序添加一些设置。
- 我想能够为我的用餐记录启用和禁用iCloud备份。
- 我想要启用和禁用每日推送通知,提醒我跟踪我的卡路里摄入量。
唷!几乎完成了 最后一步是将线框和用户故事放在一个文档中,每个线框及其相应的故事都在自己的页面上。
此外,我们可以绘制一个地图,以便可视化屏幕如何相互连接。我们将使用RealtimeBoard。
在做屏幕地图时,我们意识到没有按钮可以进入设置屏幕,所以我们将其添加到主屏幕。
结论
我们创建了两个文档:带有用户故事和线框的PDF,以及与PDF补充的屏幕图。他们一起详细描述了应用程序应具有哪些功能。我们可以继续发送给我们的开发人员。这一次,他提供的应用程序将与您的愿景相关。
一般来说,编写要求文件主要是将您的愿景传达给团队的其他成员。不要将自己限于上述方法。随时尝试并找到最适合您的解决方案。