硬件产品需求文档的编写思路与方向
在工作中我们需要通过文档与团队进行交流记录,包括设计团队、研发团队、销售团队、技术支持与客服团队等。每个团队需要的文档是不同的,因此在产品的生命周期中产品经理需要编写各种文档用于和团队进行协同工作,使团队对于产品的认知和理解处于相同的位置。本文作者介绍了硬件产品需求文档的编写思路。
产品需求文档是一个最全的文档,主要的目的是向团队进行详细讲解要做的是什么样的产品?为什么要做这个产品?产品的设计理念、产品目标和产品要求是什么?以及如何来做这个产品等问题。
设计团队、研发团队和测试团队是需求文档的主要阅读对象,但不同的岗位所关注的内容是不同的,并且在实际工作中很多角色都是合作公司的,所以为了某些隐私的问题有些内容就不能全部公开出来。
因此在给不同的合作公司需求文档时会根据情况去筛选出对他们有用的内容,其他无用的内容就无需给他们看了,这样同时也能避免浪费他们时间。
如图所示的是需求文档所要包含的主要内容,不同的产品类型其内容也存在差异,所以在写文档时需要灵活增减。
这里关于软件(服务器、APP)的需求文档我没有提起,网上有很多文章和课程都有讲如何写软件需求文档的。
产品需求文档
一、项目简介
简介的作用是帮助团队对项目先建立一个框架性的认识,让团队能先大概理解这个产品是什么?
避免直接上来讲需求细节,而导致团体成员无法理解需求之间的关系。
简介的内容可以给团队讲清楚做这个产品的原因、这是一个什么样的产品、产品的作用是什么、产品的特点有哪些等问题,并通过产品的功能框架图给团队进行简单介绍各个模块的作用(如下图所示,包含软硬件等所有版块)。
项目业务流程图
二、使用场景
任何的需求和产品都是基于某种场景下才产生的,并且场景中的因素对产品的设计有着很大的影响,因此需要给团队讲解产品的使用场景是什么?在这个场景下要完成什么任务?然后才能有助于大家统一到相同的场景下来分析产品的相关问题。
场景包括硬环境因素(看得见摸得着的环境元素,例如放置地点)、软环境因素(看不见摸不着的环境元素,例如温湿度)、时间因素以及参与对象(人或设备)。
三、产品原则
是指对产品原则性的要求,在产品设计开发的过程中我们会遇到很多的选择,产品原则就是我们在做选择时的参考依据和边界。
原则很多时候就是产品的特点:小巧轻便、经济实惠、性能强大、最大功耗等。
四、硬件组成及关系
在整个产品的硬件部分中主要有哪些部件?以及对各部件之间的关系进行说明。
这里可以配上硬件组成的框架图来帮助理解(如下图所示)。
硬件框架图
五、功能性需求
这里则是描述产品关于硬件的功能性需求,例如产品采用什么方式供电?用什么技术进行通讯?用什么传感器采集什么数据?用什么执行器执行什么指令?用什么处理器处理哪些任务?人机交互中展示信息用什么元器件?人机交互中接收信息的元器件是什么?等有关产品功能性需求和实现需求的元器件信息。
六、性能需求
性能需求是指为满足产品需求所需要设备具备的性能,例如产品的待机时长、工作/待机的功耗、数据采集的精度/灵敏度、指令执行的及时性/精准性、通讯速率/功耗、处理器的处理速度/数量、产品的使用寿命、环境的适应性等要求。这里的性能需要根据相应的元器件和功能的要求来定标,不同的产品性能指标也是千差万别。
七、接口需求
是指产品内部、外部的接口需求,例如产品内部元器件之间采用的接口和通讯协议、产品对外的接口和通讯协议。
这些接口的确定,需要根据元器件之间支持的接口类型以及对产品外部接口的需求来制定,同时需要考虑接口和协议的兼容性、可替代性、性能等指标。
八、存储需求
指对产品各种储存元器件的性能要求,例如空间大小、读写速度、擦写次数、尺寸、接口等。
九、安全需求
指对于产品以及用户的安全保障需求,对于产品的安全需求主要包括防止自我带来的损坏、环境带来的损坏、人为带来的损坏等,对于用户的安全需求则是指产品在各种状态下为了防止给用户带来伤害所需要的保护需求。关于安全需求一方面可以根据产品本身的因素考虑(例如,用户因素、产品因素),另一方面也可以参考各种认证中的安全性要求。
十、机械、电子设计需求
针对机械部分的要求,例如使用寿命、灵活性、部件强度、最大阻力、运动力矩、PCB板大小与尺寸、装配要求、抗震要求、通风散热等要求。
十一、环境要求
是指产品需要满足的使用环境要求,例如抗腐蚀性气体/液体的侵害、抗虫蛀鼠咬的损坏、抗电击的损害、可适应的海拔高度、温湿度、电磁环境等要求。不同的产品类型其要求性能也不同,军工、工业、商业、个人这几种类型的性能指标基本是递减的。
十二、设计约束条件
和产品原则的作用相似,区别是产品原则是概念性的,而设计约束条件则是具体的。在设计产品时会根据产品的目标和特点制定设计的约束条件,例如产品的最高成本限制、产品的最高功耗限制、产品效果性能的最低指标等,通过这些限制来具象产品的形态和性能指标。
十三、可生产性需求
是指产品设计中不仅要满足功能和性能的需求,同时也要考虑研发生产时的合理性、高效性、经济性,也就是产品的可生产性;在设计时需要考虑产品在生产装配过程中部件之间的配合、定位、装配等方面的问题,保证产品可以快速的、高效的且以最低的成本进行装配生产。产品的部件数量越少、产品结构越简洁、部件安装越方便就越能提高产品的可生产性。
十四、可测试性需求
为了保证产品的质量和可靠性在研发生产过程中需要对产品进行详尽的、可量化的测试。可测试性是指产品的各项功能、性能都可以被便捷的、全面的测试到位。并在测试中能够迅速真实的获取到产品的各项状态和相关信息,从而确保产品测试的可行性、完整性和效率。
十五、外购元器件
对于已经确定的核心元器件与团队进行介绍,提供元器件的型号、元器件功能、技术指标、性能指标等信息,帮助团队快速了解相关元器件的特性和作用。
十六、内外部技术合作
对项目中需要合作的公司内部团队以及公司外部团队进行介绍,帮助大家理清团队之间的合作关系和职责划分,同时介绍相关部门的负责人和对接人,提高团队之间的沟通效率。
十七、嵌入式固件要求
对于嵌入式固件的功能和性能的说明,包括业务逻辑方面的处理、远程的配置控制、安全方面的保证机制、设备的OTA升级、设备的状态监控、设备的远程代理以及设备出现问题后可以自动恢复的看门狗程序等。不同的产品在嵌入式方面的功能也是千差万别的,实际产品中大部分要复杂很多。
作者:贾明华 微信公众号:智能硬件产件产品汪
本文由 @贾明华 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
看完这一篇感觉有点劝退搞硬件了,硬件好多接口协议都不懂,只知道蓝牙、电池的一些通信方式,再往其他sensor的就不太清楚了。
楼主您写的非常棒,有没有关于上述的实际文档,供我们这些小白参考学习学习,不胜感激啊~我们会一直支持的
写的真好,学习了。