当前位置: 首页 > news >正文

如何做好需求收集?方法和步骤

需求收集是理解你想要构建什么以及为什么要构建它的过程。需求收集通常被视为开发软件应用,或开发硬件产品的一部分。其重要性不言而喻。据调查显示50%以上产品在市场上失败的原因,是由于忽视了用户需求。

一、需求收集为什么会困难?

困扰项目组需求收集活动的原因可能如下:

1.遗漏了正确的利益相关者:在项目中,常常存在一些“隐藏”的利益相关者。除了明显的决策人员,也应包括那些与客户直接交互的角色,例如客户服务代表和维护工程师,他们实际上也是产品的使用者。除此以外,在需求收集过程中,我们可能会遗漏掉需要提问的问题,或者有些信息利益相关者忘记告诉我们。这就导致需求的优先级可能会发生变化。

2.用户往往不清楚自己的真实需求是什么:利益相关者可能并不了解自己的需求。他们可能无法将自己的需求完全表述出来,还有一些需求有待我们发掘。我们要尽可能提出更多试探性的问题,并对不同的回答进行对比。往往需要通过多轮“迭代”,才能最终达成共识。

3.需求记录不规范:收集的需求没有规范记录下来,造成原始信息丢失或失真,且无法回溯等等。

除此以外,还有比如:需求收集人员只关注用户反映的表面问题;需求收集人员考虑的问题时“以产品为中心”,而不是“以客户为中心”等等

二、一个好的需求收集的重要性

完善的需求收集流程除了可以明确我们的开发目标,其重要性还包括:大大提高客户和用户能得到他们想要的东西的可能性。因为利益相关者通常很难用言辞准确地描述他们需要的东西。通过需求收集过程,我们可以帮助他们更深入地挖掘和理解自身的需求。减小了项目失败的风险。在许多项目失败的案例中,一个常见的问题就是”需求定义模糊”。在开发前期发现并解决需求问题,可以降低整个项目的成本。需求表述模糊或者定义错误往往会导致返工问题。许多研究都表明,随着开发过程的推进,修正需求错误的成本会呈指数式增长。

三、做好需求收集的六个步骤

需求收集过程中的关键部分可以分为三个交叠的子过程:需求获取、需求文档编写和需求确认。

需求获取:这是需求收集过程的首要步骤,通过与利益相关者进行沟通,了解他们对于产品或服务的需求和预期,形式包括:会议、访谈、问卷调查等。你应尽力考虑客户、他们的用户、你自己公司内部的利益相关者以及你的关键供应商的需求。

需求文档编写:将需求收集过程的输入内容组织成适合你的组织的任何格式。这种格式可能包括:

  •  用户故事 
  • 功能分解
  • 功能说明

这些将被收集在一个需求规范中,比如产品需求文档(PRD)或系统规范。这个规范的目的是让项目团队的所有成员都能查阅到这些故事和描述。

需求确认:是确认所记录的需求如实反映了利益相关者的需求和预期的过程。通常要从利益相关者那里得到反馈,以确保团队正确理解了他们的需求。

需求收集六个步骤往往包含上面三个子过程,并且在实际操作中,可能需要重复或者反复“迭代”。因此,最好将其视为子流程而非严格的线性步骤。

完整需求收集六个步骤包括:

1.确定相关利益相关者

根据项目的不同,我们需要在每个利益相关者群体中寻找合适的代表,可能包括如下群体:

  • 客户利益相关者
  • 决策者
  • 用户
  • 系统管理员
  • 其他相关的客户部门
  • 内部利益相关者
  • 行政人员
  • 工程团队
  • 营销团队
  • 销售团队
  • 客户支持团队(可包括现场维护团队)
  • 主要供应商
  • 分销商和其他合作伙伴

也要寻找那些“隐形”的利益相关者。在正式开始需求收集之前,团队也可在早期会议中提出探索性问题。确保所有利益相关者群体都参与其中。理想情况下,要给每一个参与方提出自己观点、表达自己需求的机会。

2.明确项目目标

你希望通过这个新产品或项目达到什么目标?你的客户希望从产品中获得什么总体结果?你公司的业务目标是什么?为了实现这些目标和结果,你需要实现哪些可行的、可衡量的目标?

把它们写下来。清楚地陈述它们,并让你所有的利益相关者对它们签字。你的目标和目的将作为你决策的框架。

你写的每个需求都应该帮助满足项目目标并达成目标。如果没有,你应该放弃它,或者将它作为未来发布的候选者。

3.从利益相关者那里获取需求

需求获取是需求收集子流程的第一个,在实际操作中会有重叠且需要不断迭代。即使在 敏捷开发 中,在项目开发之前可能也需要经历几轮的需求收集、文档记录以及审查和确认。

需求收集的方式有很多种,可行的方法包括调查、问卷调查以及访谈。在后续的迭代中需要经常组织访谈和跟进会议。

在访谈中要积极倾听受访者。提出探索性问题,并做好笔记。访谈结束后,要整理笔记,并在需要时进一步跟进。

4.记录需求

我们需要将收集到的需求记录下来。可采用任何已经协商达成一致的格式,它们可以是产品需求文档(PRD), 需求管理 工具,电子表格、数据库或其他方便团队成员查看的数据存储形式。

比如我们是在PingCode进行需求的记录和梳理、建立需求池等工作。

重点是需求文档,它需要以下要求:

  • 易于理解和浏览
  • 所有的利益相关者都可以随时访问和查看
  • 提供了对其他文档的可追溯性
  • 使用标准化的格式和模版

5.确认需求

与所有利益相关者一起审查需求,确保需求准确地反映了预期的目标,并确保所有利益相关者对每一个需求都理解一致。如果发现表述模糊的地方,应及时调整。

如果条件允许,可以利用原型设计和测试来验证需求。使用原型制作工具,能够简单快速地制作出原型,我们利用这个模型来进行可行性、可用性和产品概念的测试。

让利益相关者对需求进行签字确认。在最后的审查阶段,整个规范说明也要签字确认。

6.需求优先级排序

大多数开发项目在途中都会遇到意想不到的挑战,会遇到意想不到的障碍。时间表可能会变化,优先级可能会改变。每个需求将影响你的版本的目标,所以进行优先处理非常关键。比如我们自己借助PingCode的产品管理构建标准的优先级框架,通过需求价值、工作量、客户权重、竞品、团队目标支持度维度衡量需求的优先级。

许多 产品经理 通过给功能打上“必须有”、“迫切想要”和“有也很好”等标签来确定其优先级。这样做主要基于以下两个原因:

  • 首先,项目时间有限。如果团队优先实现相对简单的需求,最后发现没有足够的时间来完成关键需求,就会影响产品的发布时间。
  • 其次,需求在变化。随着项目开展,可能会出现新需求。这些新需求可能非常关键,需要优先处理。我们要权衡新需求在优先级顺序中的位置。否则,我们可能会优先处理相对不太重要的需求。

以上只是需求收集流程的6个核心步骤,很多细节受限于篇幅并不能提及。并且到这里也并不是需求收集机制建设的终点,你需要将不断重复以上步骤,并不断的根据自身业务的特点,迭代需求收集的机制。

五、需求收集过程中常见的问题

1.想当然的去理解我们听到的内容

有时候,有些需求简单且宽泛,面对这些需求你需要警惕,不要想当然的以为自己已经完全理解利益相关者所要表达的意思,也不要以为所有利益相关者的表述方式都一样。

例如,像”网站应有博客”这样的需求陈述可能隐藏了很多潜在的假设。应仔细思考这样的需求陈述,并提出相应问题,例如:帖子将以何种方式展示?谁管理这些帖子?是否需要评论功能?是否需要对帖子进行分类或打上标签?等等。

通过提出这些问题并对收到的答案进行交叉核查,我们就可以得出一组更具体,并且可被验证的需求。

2.关注 HOW 而不是WHAT

需求可以分为两大类:一类是产品需要实现的功能需求,即产品需要做什么;另一类是对产品实现功能的方式和形式的约束,即非功能性需求。

在需求管理阶段,我们的重点应该更多地放在产品需要做什么,而不是如何去实现。换句话说,需求描述尽可能不要涉及其实现方式,例如应该使用哪一项新技术,偏好哪种工具,以及对产品的一些个人预设期待。总之,我们需要专注于利益相关者需要什么这个问题。

首先,我们要认真听取利益相关者的意见,然后收集、审查这些意见并提炼出需求。在完成这些步骤之后,再去分析使用哪些技术手段可以满足客户和利益相关者的真正需求。

3.未能充分与利益相关者沟通

在需求收集过程中,充分与利益相关者沟通至关重要。

首先,对每个利益相关者群体的需求都要深入了解。忽视这一点是需求管理失败的主要原因之一。

其次,保持项目透明度。每次访谈、开会或调查后,都要整理并共享笔记。现代需求管理工具,如PingCode,可将注释附加到需求上,保证需求的可追溯性。可帮助我们大幅提高工作效率,同时减轻审核工作量。

第三,给利益相关者充足的时间去审查需求。给他们提供反馈、表达异议,甚至捍卫自己的观点的空间。讨论越深入就越能帮助我们发现并修正需求中存在的问题,同时也有助于所有利益相关者就需求达成一致意见。

最后,确保所有利益相关者确认需求并签字,当然也要让利益相关者清楚签字确认意味着什么。

推荐阅读:

 做好需求分析的4大关键认知  |  盘点国内9款热门需求管理系统  |  构建产品路线图的方法与工具  |  做好需求优先级判断的7种主流模型  |  采用敏捷方法进行需求管理  | 更多

相关文章:

如何做好需求收集?方法和步骤

需求收集是理解你想要构建什么以及为什么要构建它的过程。需求收集通常被视为开发软件应用,或开发硬件产品的一部分。其重要性不言而喻。据调查显示50%以上产品在市场上失败的原因,是由于忽视了用户需求。 一、需求收集为什么会困难? 困扰项…...

SpringBoo整合WebSocket实战演练——Java入职十三天

前言 本文将介绍如何在Spring Boot应用程序中使用WebSocket实现服务端向客户端推送消息。Spring Boot和WebSocket的整合实现服务端向客户端推送消息,使得客户端能够实时接收并处理服务器发来的信息。WebSocket协议是一种双向通信的网络协议,使得客户端和服务器能够建立持久连…...

众佰诚:抖音小店的体验分什么时候更新

随着移动互联网的发展,越来越多的电商平台开始涌现,其中抖音小店作为一种新型的电商模式,受到了许多用户的欢迎。然而,对于抖音小店的体验分更新时间,很多用户并不是很清楚。本文将对此进行详细的解答。 首先&#xff…...

详解cv2.addWeighted函数【使用 OpenCV 添加(混合)两个图像-Python版本】

文章目录 简介函数原型代码示例参考资料 简介 有的时候我们需要将两张图片在alpha通道进行混合,比如深度学习数据集增强方式MixUp。OpenCV的addWeighted提供了相关操作,此篇博客将详细介绍这个函数,并给出代码示例。🚀&#x1f6…...

单链表经典OJ题:反转链表

题目: 给你单链表的头节点 head ,i请你反转链表,并返回反转后的链表。 图例: 分析: 根据链表的特征,反转链表的本质便是改变节点内部的指针方向。 将原先指向下一个节点的指针进行修改,将其的…...

软考高级信息系统项目管理师系列论文六:论信息系统项目的人力资源管理

软考高级信息系统项目管理师系列论文六:论信息系统项目的人力资源管理 一、人力资源管理相关知识二、摘要三、正文四、总结一、人力资源管理相关知识 软考高级信息系统项目管理师系列之十七:项目人力资源管理二、摘要 2021年7 月,我参加了╳╳市物价局发起的“智慧物价”信息…...

Kubeadm部署k8s集群

目录 主机准备 主机配置 修改主机名(三个节点分别执行) 配置hosts(所有节点) 关闭防火墙、selinux、swap、dnsmasq(所有节点) 安装依赖包(所有节点) 系统参数设置(所有节点) 时间同步(所有节点) 配…...

YOLOv7改进:新机制,扩展DCNv3,基于DCNv2优化 | CVPR2023 InternImage

💡💡💡本文属于原创独家改进:DCNv3优势:1) 共享投射权重;2) 引入多组机制;3)采样点调制标量归一化; DCNv3 | 亲测在多个数据集实现暴力涨点; 收录: YOLOv7高阶自研专栏介绍: http://t.csdnimg.cn/tYI0c ✨✨✨前沿最新计算机顶会复现 🚀🚀🚀YOL…...

SMAP(Soil Moisture Active and Passive)数据下载

SMAP(Soil Moisture Active and Passive)数据下载 打开网站先注册登录用户 然后打开SMAP下载的网站 点击HTTPS File System进入下载页面 然后点击HDF文件下载 下载之后在HDF View里面预览...

【Huawei S5700交换机】产品介绍

产品特点 S5700系列以太网交换机,是华为公司为满足大带宽接入和以太多业务汇聚而推出的新一代绿色节能的全千兆高性能以太交换机。它基于新一代高性能硬件和华为公司统一的VRP(Versatile Routing Platform)平台,具备大容量、高可…...

华为Atlas 200I DK A2开发者套件--基础使用配置

文章目录 前言一、快速开始二、通过路由器联网三、USB相机总结 前言 Atlas 200I DK A2基础使用配置方法。准备好键鼠、显示器、网线、USB拓展器。 一、快速开始 下载最新官方Windows版本昇腾开发者套件一键制卡工具: https://ascend-repo.obs.cn-east-2.myhuaweic…...

C++DAY47

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> #include <QLabel> #include <QLineEdit> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public…...

四边形不等式

区间dp问题&#xff0c;状态转移方程&#xff1a; dp[i][j] min( dp[i][k] dp[k1][j] w[i][j] ) //w[i][j]是从i到j的&#xff0c;一个定值 不随k改变&#xff0c;而且w的值只和i j有关&#xff0c;是它们的二元函数。 其中i<k<j ,初始值dp[i][i]已知。 含义&#x…...

Jmeter(四):请求默认值元件应用,正则表达式提取器元件讲解

Jmeter请求默认值元件应用 HTTP请求默认值 在公司内部进行测试的时候&#xff0c;一般测试环境访问的接口地址&#xff08;服务器名称 或IP&#xff09;、端口、协议一般都是不变的&#xff0c;但http请求取样器每个请求都要求写一遍 这些信息&#xff0c;在实际HTTP请求取样…...

LCR 001. 两数相除

剑指Offer通关 力扣搜索LCR即为剑指Offer的所有题目。 LCR 001. 两数相除 快速乘 解析&#xff1a; 题目规定只能用32位整数&#xff0c;所以取值范围在-2^31 ~ 2^31 - 1 之间。这里的特殊情况为什么不考虑被除数和除数为最大值&#xff1f;因为后面会将所有的数都转为负数…...

LeCun和Bengio“吵”起来了,人工智能是“潘多拉魔盒”吗?

作者 | 谢年年 上周末&#xff0c;深度学习领域最有影响力的三巨头之二Yann LeCun和Yoshua Bengio就AI的潜在风险和安全问题引发了一场激烈辩论&#xff0c;人工智能是“潘多拉魔盒”吗&#xff1f;这场辩论引来众多AI知名人士围观。 LeCun在Facebook上发起了这场辩论&#xff…...

电子期刊制作宝典,让你成为专业行家

电子期刊作为一种新兴的媒体形式&#xff0c;越来越受到人们的喜爱。它不仅方便快捷&#xff0c;而且可以随时随地阅读&#xff0c;不受时间和空间的限制。那么&#xff0c;如何制作一份高质量的电子期刊呢&#xff1f; 1.首先打开FLBOOK电子杂志平台 2.然后点击模板选择电子期…...

ESP32网络开发实例-Web显示传感器实时数据

Web显示传感器实时数据 文章目录 Web显示传感器实时数据1、软件准备2、硬件准备3、代码实现3.1 Web页面代码实现4.2 Web服务器代码实现本文将详细介绍如何使用ESP32在 Web 服务器上绘制传感器读数(温度、湿度和压力)。 ESP32 将托管一个网页,其中包含三个实时图表,每 30 秒…...

ARM Cortex-A9:裸机开发,点亮LED3

1.看原理图 外设板原理图 核心板原理图 2.在芯片手册中找到控制硬件的有效的特殊功能寄存器 选择0x1输出 GPX1DAT[0]->GPX1_0 0->1/0 3.编程 start.s Makefile复制到桌面 使用超级终端&#xff0c;连接串口 随便写一个 选择串口 配置串口 板子上电马上按enter…...

QT学习day2

一、思维导图 作业&#xff1a; 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admi…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...