为更好的软件开发构建有价值的软件需求规范

内容贡献者凯特Eby

2017年7月21日

在开发软件时,在开始开发之前定义需求可以节省时间和金钱。软件需求文档清楚地定义了软件必须完成的所有工作,并且是定义产品的其他元素(如成本和时间表)的基础。ob欧宝娱乐app手机下载好的需求是不可替代的,但是每个开发组织将根据他们的需求对过程采取独特的方法。

在项目管理领域,缩写SRS有两种用法。一个代表系统需求规范——这是一个大规模的、多管齐下的项目系列,其中软件需求规范(此处的主题)可以发挥重要作用(当项目与软件开发相关时)。本文解释了软件需求的重要性,如何编写有效的软件需求,并包含了用于指导的示例软件需求规范(SRS)文档。


什么是软件需求规格说明?

软件需求规范(SRS)以书面形式阐明了软件开发项目所需的能力、功能、创新和约束。SRS是一份考虑了涉众愿望、所有元素(功能和非功能领域)、软件如何工作和与用户交互以及软件将解决什么问题的文档。然后,该文档充当支持设计和开发过程的“父”文档。然后使用软件需求规范文档为设计、测试、验证和交付构建时间表和成本估计。文档还指定了在验证和测试期间要验证的内容,以及如何对功能元素进行排序。
在准备设计、开发和部署新软件时,长期以来一直使用研究和编写SRS。在来自各种技术和非技术成分的广泛输入之后,编写文档是为了提供一个全面的、叙述驱动的视图,说明软件将完成什么以及它将如何运行。它的主要目标之一是在实际的设计、开发和编码开始之前,就新产品需要什么达成共识。ob欧宝娱乐app手机下载

巩固工作。同步冲刺。管理资源。欧宝体育app官方888

敏捷项目管理仪表板

Smartsheet是一个基于云的平台,允许团队和组织计划项目,简化操作和扩展软件开发工作。查看Smartsheet的操作。

观看演示


为什么软件需求很重要?

SRS的重要性首先体现在它能够向利益相关者提供关于正在开发的内容及其如何发挥作用的清晰沟通。在开发人员编写一行代码之前,产品的所有元素都已经通过叙述、规格说明、图形和表格等视觉效果,以及用例和真实世界的场景来指定和表ob欧宝娱乐app手机下载达。当用于内部开发新软件时,开发SRS与将软件开发外包给外部开发资源时提供清晰的规范文档一样有价值。欧宝体育app官方888软件需求规范的一些目标包括:

  • 对待完成工作范围的准确描述
  • 为软件设计人员和开发人员提供清晰、易于管理的细节
  • 测试团队的用例场景
  • 客户需求与特性的一致性
  • 软件开发中可更新的单一事实来源
  • 包括各种利益相关者的意见

大软件需求的好处

强大的SRS文档可以节省多层沟通的时间,包括用户/客户输入和反馈、设计、验证、测试和整体用户接受。由于主要涉众可以访问文档的内容,并且知道商定的能力和功能,因此SRS还可以帮助消除重复的工作,并简化设计和开发过程。当这种严格的调查被写在纸上,并且涉及的各方就范围和功能达成一致时,对昂贵的重新设计或项目中期更改的需求就最小化了。SRS还可以在整个开发和构建过程中,或者在向团队添加新玩家时,节省宝贵的沟通时间。此外,全面的SRS将:

  • 提高成本和时间估算的准确性
  • 简化软件从开发到生产的过渡ob欧宝娱乐app手机下载
  • 作为关于软件解决方案中包含的内容的单一事实来源
  • 通过共享部分规范来改善与涉众和客户的沟通
  • 减少代价高昂的后期变更
  • 记录详细信息以备将来参考
  • 为用户提供文档化的需求列表
  • 减少开发工作和任务重复


谁使用软件需求规格说明?

SRS文档包含叙述元素以及详细的规范元素。因此,即使是由一个技术人员编写文档,在规划SRS时也要让许多组成部分参与进来。SRS的开发可以包括来自市场营销和项目管理、支持人员、产品管理、客户以及设计和开发工程师的人员。ob欧宝娱乐app手机下载开发人员,无论是全职还是承包商,以及测试人员都使用SRS来确保他们正在根据需求开发软件解决方案。
从利益相关者那里获得所需信息的方法包括问卷调查、访谈、研究、会议和焦点小组。事实发现和调查始于确定要包含的内容和软件的总体目标。定义软件不能做什么以及是否存在任何行业、公司政策或硬件限制也是有益的。我们应该注意的是,您没有在文档中制作任何真正的设计元素。相反,最终版本将包括适当的叙述和描述、图表和其他视觉效果、技术规范、定义、优先级和评级协议、参考材料、验证和测试,以及构建解决方案的用户场景。您可以将有关功能的任何问题与当前功能、限制、业务关注点和成本集成在一起。
丰富的坟墓的产品管理主管ob欧宝娱乐app手机下载ServiceAide,紧跟着敏捷框架用于软件开发。他发现,“按部就班”的思维方式有助于他和他的团队打造更好的产品。ob欧宝娱乐app手机下载格雷夫斯说:“‘待完成工作’是一种以客户为中心的思维方式。“它迫使我们思考用户和他们的最终目标。如果我们能认同用户并理解他们的问题,我们就能写出需求并构建出真正具有创新性的产品。ob欧宝娱乐app手机下载需求收集对我们来说不是猜测工作,因为我们关注的是目标用户、他们的现实问题,以及我们如何比其他人更好地解决这些问题。”


编写软件需求规格说明的最佳实践

2011年,长期使用的IEEE 29148:1998标准和模板进行了更新和增强,现在被称为ISO/IEC/IEEE 29148。本指导指南提供了开发强大的SRS文档所需的信息,该文档在五个模块中指定了最佳实践。前三个领域描述了侧重于定义范围的过程、使用适当的引用和设置定义的元素。
第4个模块是最长的,涉及制定良好的SRS文件和计划的性质,主要环境和一般特征的确定方法。掌握这些特征的衔接可以导致高质量和可用的SRS。
该文件应:

  • 正确的:一种确保软件满足已确定需求的分析方法。
  • 明确:对于软件的用途只有一种解释,并且用一种共同的语言进行交流。
  • 完成:对于功能、性能、设计约束、属性或外部接口的所有需求都有一个表示。
  • 一致:必须与其他文件一致,包括系统需求规范和其他文件。
  • 重要性和/或稳定性排名:由于并非所有需求的权重都是相等的,因此您应该采用一种方法对需求进行适当的排序。
  • 可核查:使用可测量的元素和定义的术语,以避免歧义。
  • 修改:定义良好的、避免冗余的SRS文档组织结构可以方便地进行调整。
  • 可追踪性:能够追溯开发的起源,并向前推进到SRS产生的文件。

根据邦德思科高级产品经理,ob欧宝娱乐app手机下载“需求是任何新开发项目的核心。了解到底需要什么既是一门科学也是一门艺术。无论您的开发方法、文化或交付类型如何,编写清晰且可理解的需求在很多时候都是项目成功的关键因素。当它们如此简单时,你知道自己做得很好,你会奇怪为什么要花这么多的客户互动、市场分析、设计会议等等来写它们。”
Bond为撰写SRS提供了以下建议:

  • 需求越简单,您就越不会约束您的团队以特定的方式做事。在确保团队有足够的背景来做正确的事情和通过过于具体的需求规定需要什么之间总是存在平衡的。安东尼·德·圣埃克苏姆萨伊(Antoine de saint - exupsamry)的这句话让我想起了一些要求:似乎达到完美不是因为没有什么可以增加的,而是因为没有什么可以删除的“完美并不是真正的目标,而是一种从你想要的开始,然后把它与最基本的结合起来的精神。”
  • 需求还需要清楚地与您正在解决的问题联系起来——谁需要这个,他们为什么需要这个,等等。了解一组需求背后的上下文确实有助于团队在过程中做出更好的决策。
  • 聪明的标准可以帮助您确保您没有遗漏关键元素,您在这方面走得多远取决于您正在构建的内容的大小。一些非常小的事情可以用最少的需求来完成,中型到大型的战略性项目需要更彻底的需求。


如何构建软件需求规格说明

自1998年以来,用于编写软件规范需求的IEEE模板已在许多行业中使用。目前一些最常见的模板使用ISO/IEC/IEEE 29148模块5中的标准语言和增量设置,其中包括:
我的介绍。
该区域包括范围、目的、定义、参考和概述。
2总体描述
记录产品视角和功能、用户特征、约束元素(如假ob欧宝娱乐app手机下载设和依赖)以及本部分中的需求分配。
3具体需求(最大和最重要的领域)
包括所有需求、功能、接口、性能和数据需求、设计约束、安全性、站点实现所需的调整、维护、功能和系统属性、优先级和发布计划。
iv.支持信息
包括本节未涉及的任何索引、图表、附录和特殊说明。
尽管SRS的所有领域都具有相同的价值,但在实际的大纲中,估计您应该将大约四分之一的时间用于Specific Requirements部分,重点是如何对功能和需求、验证和发布测试进行优先级划分。


构建软件需求规范的步骤

在构建软件需求规范时,您可以遵循以下步骤:

  • 从一个示例模板开始:如果您在过去构建过软件需求,那么利用一个预先存在的模板是一个很好的开始。如果这是第一次开发软件需求,有许多例子和模板可以在网上找到,或者通过其他技术作家或产品经理找到,以促进任何行业的强大和可操作文档的开发。ob欧宝娱乐app手机下载
  • 确定SRS的作者:尽管您将有几个涉众提供输入,但最好有一个技术作者将需求翻译成将使用SRS的技术人员能够理解的语言。
  • 收集利益相关者的需求:收集所有利益相关者的需求,包括业务和客户。您可以通过与客户和业务用户的会议、访谈、调查和问卷收集信息。您也可以选择执行市场分析,包括竞争分析来收集需求。此时,您还可以协商需求并确定需求的优先级。

收集需求时用来激发对话的示例问题

下载示例问题,以在收集需求时激发对话

  • 编写文档:将所有涉众需求翻译并记录为技术开发团队可以使用的语言。
  • 验证要求:您可以将需求与软件的目的结合起来,验证它们的实用性、完整性和清晰度。

文字和技术规范可能不足以提供清晰度。可测量的图形、图表和其他视觉效果的添加可以帮助涉众理解和接受。编写SRS文档是一个特定的功能,所以最好有一个专门的作者来准备它(而不是直接参与并负责软件的设计或开发的人)。由于通常认为文档的作者应该是一个熟练的沟通者,所以请专门的技术作者来起草最终文档。作家,尤其是技术作家,在研究和清晰的沟通方面受过训练,以一种结合叙述和技术写作的形式。指定的作者应该能够将几种不同的风格、受众输入和目标合并成一个可消化的整体,以便不同的涉众对软件、其功能和使用有深刻的理解。写SRS的几个好建议包括:

  • 保留适合手头任务的文档
  • 文档的总长度应该与工作范围、产品寿命和涉及的用户数量相匹配ob欧宝娱乐app手机下载
  • 仔细考虑要集成或调整的任何软件或系统
  • 花额外的时间关注软件功能最复杂的方面

因为在最终的设计和开发中,并不是所有的软件功能都具有相同的权重,所以应该有一个公认的排序方法,其中包含了所有功能的值,包括更模糊的“最好有”。通过确定优先级和协商,您可以用技术和非技术术语交流最终产品的功能和描述。ob欧宝娱乐app手机下载然后,所有组成部分都可以根据最终产品中包含的内容(更重要的是,不包含的内容)参与验收。ob欧宝娱乐app手机下载
与所有的软件开发一样,构建一个好的软件规范需求文档的过程依赖于提供适应机会的概念。据估计,大约5%的开发过程将用于进行所需的更改。通过在规范中包含一个可靠的适应计划,可以更容易地识别和修复经常调用的内容要求的气味。需求的气味,更像是普遍的代码味道,用于识别软件中的设计或功能质量弱点。通过启发式和主观的方法,可以更早地识别和处理潜伏的问题,比如反应缓慢或出现bug,而不是等到这些问题变得更严重、成本更高时才发现。在某些情况下,检测过程可能不准确,可疑的问题并不是真正的缺陷。


编写软件需求的十大技巧

编写软件需求需要时间,但如果做得正确,回报是巨大的。下面是帮助你写出有效的SRS的10个技巧:

  • 花时间准确而彻底地编写需求,特别是如果它是一个大型的、健壮的、长期的软件解决方案
  • 作者不应该是开发人员,而应该是了解涉众需求和开发语言的个人
  • 确保写信人有很强的沟通技巧
  • 包括图像、图形、图表和图表来阐明需求
  • 在进行更改或重新确定需求优先级时更新SRS
  • 将SRS维护在一个易于团队访问的在线或共享位置
  • 使用需求进行测试和验证
  • 为您的目标受众编写SRS
  • 确保SRS包含开发团队构建产品所需的所有内容ob欧宝娱乐app手机下载
  • 链接到相关的内容和文档

人们常说,如果没有一个伟大的计划,就不可能创造出伟大的产品。ob欧宝娱乐app手机下载这个“伟大的计划”文档为设计和构建或购买新软件提供了重要的保护、交流机会以及节省成本和时间的好处。通过将客户、用户、技术团队、管理层和其他利益相关者引入流程,在开始设计流程之前进行沟通、预算、时间表和必要的支持,可以在最终部署软件时决定成功与否。


使用Smartsheet将您的软件需求文档转换为管理开发的工作清单

通过设计一个灵活的平台来满足你的团队的需求,并随着需求的变化而适应,从而使你的员工能够超越自己。

Smartsheet平台可以轻松地从任何地方计划、捕获、管理和报告工作,帮助您的团队更有效地完成更多工作。报告关键指标,并通过汇总报告、仪表板和自动工作流实时了解工作情况,以保持团队的联系和信息。

当团队对要完成的工作有了清晰的认识时,就不知道他们在同样的时间内能完成多少工作。今天就免费试用Smartsheet吧。

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

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