【产品】ToB产品需求分析
需求分析流程
合格产品经理
帮助用户、引导用户、分析需求、判断需求、设计方案
不能苛求用户提出合理、严谨的需求,这不是用户的责任和义务,而应该通过自己的专业能力来完成需求的采集工作
角色分析
收到需求的第一步就是分析相关角色,角色分析分为三部分:
提出人:需求的提出人,是指原始需求的提出人,而非需求的传递人员,需求的提出人,并不一定是产品功能的使用人,而需求背后要解决的痛点也并不一定是需求提出人的痛点!
使用人:最终使用产品功能的人,也就是需求的使用人,产品最终要解决使用人的痛点。
受影响人:最终受到产品功能影响的人,可能是多个角色多个人员。
场景分析
5W1H分析框架:即什么人(Who)在什么时间(When)在什么地方(Where)因为什么(Why)原因要做什么事情(What)以及希望如何实现(Hhw)这个目标,最后HOW既是对过去解决方式的描述,也是对未来解决方式的描述,在需求分析过程中,要注意甄别,分别弄清楚。
用户故事分析框架:时间+地点+任务+起因+经过+结果,通过这个框架可以较好还原用户产生需求的场景,讲好用户故事。
通过场景分析,了解需求描述背后的本质——用户的目标之后,还需要了解事件发生的频率。了解事件发生频率有助于排定需求优先级。
动机挖掘
5why分析法:洞察核心诉求的过程也是不断追问的过程,可以采用丰田公司的大野耐一提出的5Why分析法,层层递进,打破砂锅问到底,穷究问题的本质。当然5Why只是模型,现实中不一定是问5次。
多问几个为什么,才能击穿问题,直达本质。
需求强烈程度:挖掘出动机之后,还要判断动机的真实性,这时候要看看需求的强烈程度,如果需求不强烈,那需求很可能是伪需求,两个方法确认:
方法一:正反两问的方法,如果实现了该需求,对方的感受是什么?不实现又怎样?(类似KANO模型:基本/期望/兴奋/无差异/反向)
方法二:询问目前解决问题的方法/思路,如果目前没有方法解决,甚至都不想方法去解决,那这个需求很可能是个伪需求。
B端产品经理,如果对业务理解不够深刻,很难洞察需求本质。
场景发散
横向替代场景:围绕核心诉求可以找到所有可能得解决思路或场景,这些场景彼此之间在某种程度上存在可替代关系,通过解决替代场景达到解决问题的目的。
纵向互补场景:用户提交的需求往往是一个点上的需求,在需求点的上下游或整条用户操作动线上,可能存在的考虑不够全面的机会点和优化空间,通过优化这些点,达到解决问题的目的。(用户地图工具可帮助梳理用户在操作动线上的场景)
设计方案
解决业务问题才是核心目标,需要注意:
- 针对某些需求,不一定要开发新的功能,现有功能可以直接或间接满足该需求;
- 解决业务问题,软件只是手段之一,有的业务问题是软件不能解决的;
- 当研发资源有限的时候,采用其他方式来解决问题反而是更具性价比的方案;
- 在设计解决方案之前,不仅要关注功能需求,还要关注性能、并发、接口响应时间、安全等非功能层面的需求。
B端产品成功需求分析的前提永远是理解业务,如果自身业务知识底子不够厚实,学习再多的需求分析技巧也是枉然。
用户故事地图
用户故事地图是帮助产品经理进行分析的手段,横向表示时间线纵向表示用户故事分解,大级别的用户故事排在头排,根据时间顺序描述用户需求。对每个头排用户故事成纵向分解,通过地图方式可以让产品经理和同事能够有一个空间充分思考各类可行方案,从而找到一条可以最大化投入产出的路子。可以让各种干系人对功能需求有相对一致的理解和整体认识。
制作用户故事地图的4个步骤:
- 确定用户和业务目标
- 梳理用户完成业务目标的工作场景
- 纵向分解每个工作场景的业务路径
- 纵向分解用户故事的具体功能点
通过用户故事地图,产品经理可以更好地理解用户在每个环节的处境和想法,从而设计出既满足用户需求,又能给用户带来优质体验的产品。
示例
基础版本

功能优先级版本

用户体验版本

用户体验版本2

更多有趣示例详见:boardmix
相关文章:
【产品】ToB产品需求分析
需求分析流程 合格产品经理 帮助用户、引导用户、分析需求、判断需求、设计方案 不能苛求用户提出合理、严谨的需求,这不是用户的责任和义务,而应该通过自己的专业能力来完成需求的采集工作 #mermaid-svg-ASu8vocank48X6FI {font-family:"trebuche…...
驱动开发硬核特训 · Day 10 (理论上篇):设备模型 ≈ 运行时的适配器机制
🔍 B站相应的视屏教程: 📌 内核:博文视频 - 总线驱动模型实战全解析 敬请关注,记得标为原始粉丝。 在 Linux 驱动开发中,设备模型(Device Model)是理解驱动架构的核心。而从软件工程…...
AWS服务器 磁盘空间升级到100G后,怎么使其生效?
在AWS(Amazon Web Services)上扩展EBS(Elastic Block Store)卷的大小后,服务器操作系统并不会自动识别新增的空间。要使操作系统识别并使用新增的磁盘空间,您需要进行一些额外的步骤。以下是详细的指导和说…...
flutter 打包mac程序 dmg教程
✅ 前提条件 ✅ 你已经在 macOS 上安装了 Android Studio Flutter SDK。 ✅ Flutter 支持 macOS 构建。 运行下面命令确认是否支持: Plain Text bash 复制编辑 flutter doctor ---## 🧱 第一步:启用 macOS 支持如果是新项目,…...
【数据结构与算法】——堆(补充)
前言 上一篇文章讲解了堆的概念和堆排序,本文是对堆的内容补充 主要包括:堆排序的时间复杂度、TOP 这里写目录标题 前言正文堆排序的时间复杂度TOP-K 正文 堆排序的时间复杂度 前文提到,利用堆的思想完成的堆排序的代码如下(包…...
atypica.AI:用「语言模型」为「主观世界」建模
人们不是在处理概率,而是在处理故事。 —— 丹尼尔卡尼曼 People dont choose between things, they choose between descriptions of things. —— Daniel Kahneman 商业研究是一门理解人类决策的学问。人并不只是根据纯粹理性做决策,而是受到叙事、情…...
LLaMA-Factory双卡4090微调DeepSeek-R1-Distill-Qwen-14B医学领域
unsloth单卡4090微调DeepSeek-R1-Distill-Qwen-14B医学领域后,跑通一下多卡微调。 1,准备2卡RTX 4090 2,准备数据集 医学领域 pip install -U huggingface_hub export HF_ENDPOINThttps://hf-mirror.com huggingface-cli download --resum…...
【WPF】自定义控件:ShellEditControl-同列单元格编辑支持文本框、下拉框和弹窗
需要实现表格同一列,单元格可以使用文本框直接输入编辑、下拉框选择和弹窗,文本框只能输入数字,弹窗中的数据是若干位的二进制值。 本文提供了两种实现单元格编辑状态下,不同编辑控件的方法: 1、DataTrigger控制控件的…...
21天Python计划:零障碍学语法(更新完毕)
目录 序号标题链接day1Python下载和开发工具介绍https://blog.csdn.net/XiaoRungen/article/details/146583769?spm1001.2014.3001.5501day2数据类型、字符编码、文件处理https://blog.csdn.net/XiaoRungen/article/details/146603325?spm1011.2415.3001.5331day3基础语法与…...
深入剖析C++单例模式的八种实现演进与工程实践
深入剖析C单例模式的八种实现演进与工程实践 一、从基础到工业级:单例模式的演进图谱 1.1 基础实现的致命缺陷分析 // 初级版(非线程安全) class NaiveSingleton { public:static NaiveSingleton* getInstance() {if (!instance) {instanc…...
Seq2Seq - GRU补充讲解
nn.GRU 是 PyTorch 中实现门控循环单元(Gated Recurrent Unit, GRU)的模块。GRU 是一种循环神经网络(RNN)的变体,用于处理序列数据,能够更好地捕捉长距离依赖关系。 ⭐重点掌握输入输出部分输入张量&#…...
从零开始学Python游戏编程19-游戏循环模式1
在《从零开始学Python游戏编程18-函数3》中提到,可以对游戏代码进行重构,把某些代码写入函数中,主程序再调用这些函数,这样使得代码程序更容易理解和维护。游戏循环模式实际上也是把代码写入到若干个函数中,通过循环的…...
KWDB创作者计划—KWDB认知跃迁:多模架构与AI原生的数据库范式革命
引言:从存储到认知的范式迁移 在数字化转型进入深水区的2025年,全球每日新增数据量已突破3.5ZB,传统数据库的"存储-计算"二分法正面临根本性挑战。当AlphaFold4实现蛋白质全序列预测,工业数字孪生需处理百万级设备实时数…...
Java获取终端设备信息工具类
在很多场景中需要获取到终端设备的一些硬件信息等,获取的字段如下: 返回参数 参数含义备注systemName系统名称remoteIp公网iplocalIp本地ip取IPV4macmac地址去掉地址中的"-“或”:"进行记录cpuSerialcpu序列号hardSerial硬盘序列号drive盘符…...
【Linux网络与网络编程】08.传输层协议 UDP
传输层协议负责将数据从发送端传输到接收端。 一、再谈端口号 端口号标识了一个主机上进行通信的不同的应用程序。在 TCP/IP 协议中,用 "源IP","源端口号","目的 IP","目的端口号"&…...
没音响没耳机,把台式电脑声音播放到手机上
第一步,电脑端下载安装e2eSoft VSC虚拟声卡(安装完成后关闭,不要点击和设置) 第二步,电脑端下载安装(SoundWire Server)(安装完成后不要关闭,保持默认配置) 第…...
Dubbo(53)如何在Spring Boot中集成Dubbo?
在Spring Boot中集成Dubbo可以通过Spring Boot Starter来简化配置,以下是详细的步骤和相关代码示例。 1. 引入依赖 首先,在Spring Boot项目的 pom.xml 中添加Dubbo相关的依赖: <dependencies><!-- Spring Boot Starter --><…...
go学习记录(第一天)
%v,和%q是什么意思 %v —— 默认格式("value" 的缩写) 作用:按值的默认格式输出,适用于任何类型。 代码示例: fmt.Printf("%v\n", "Hello") // 输出: Hello fmt.Printf…...
XDocument和XmlDocument的区别及用法
因为这几天用到了不熟悉的xml统计数据,啃了网上的资料解决了问题,故总结下xml知识。 1.什么是XML?2.XDocument和XmlDocument的区别3.XDocument示例1示例2:示例3: 4.XmlDocument5.LINQ to XML6.XML序列化(Serialize)与反序列化(De…...
error: failed to run custom build command for `yeslogic-fontconfig-sys v6.0.0`
rust使用plotters时遇到编译错误。 一、错误 error: failed to run custom build command for yeslogic-fontconfig-sys v6.0.0 二、解决方法 我用的是opensuse,使用下面命令可以解决问题。 sudo zypper in fontconfig-devel...
Blender安装基础使用教程
本博客记录安装Blender和基础使用,可以按如下操作来绘制标靶场景、道路标识牌等。 目录 1.安装Blender 2.创建面板资源 步骤 1: 设置 Blender 场景 步骤 2: 创建一个平面 步骤 3: 将 PDF 转换为图像 步骤 4-方法1: 添加材质并贴图 步骤4-方法2:创…...
GPT-4、Grok 3与Gemini 2.0 Pro:三大AI模型的语气、风格与能力深度对比
更新后的完整CSDN博客文章 以下是基于您的要求,包含修正后的幻觉率部分并保留原始信息的完整CSDN博客风格文章。幻觉率已调整为更符合逻辑的描述,其他部分保持不变。 GPT-4、Grok 3与Gemini 2.0 Pro:三大AI模型的语气、风格与能力深度对比 …...
【Git】从零开始使用git --- git 的基本使用
哪怕是野火焚烧,哪怕是冰霜覆盖, 依然是志向不改,依然是信念不衰。 --- 《悟空传》--- 从零开始使用git 了解 Gitgit创建本地仓库初步理解git结构版本回退 了解 Git 开发场景中,文档可能会经历若干版本的迭代。假如我们不进行…...
spring mvc 中 RestTemplate 全面详解及示例
RestTemplate 全面详解及示例 1. RestTemplate 简介 定义:Spring 提供的同步 HTTP 客户端,支持多种 HTTP 方法(GET/POST/PUT/DELETE 等),用于调用 RESTful API。核心特性: 支持请求头、请求体、URI 参数的…...
智能指针之设计模式1
本文探讨一下智能指针和GOF设计模式的关系,如果按照设计模式的背后思想来分析,可以发现围绕智能指针的设计和实现有设计模式的一些思想体现。当然,它们也不是严格意义上面向对象的设计模式,毕竟它们没有那么分明的类层次体系&…...
Android 中支持旧版 API 的方法(API 30)
Android 中最新依赖库的版本支持 API 31 及以上版本,若要支持 API30,则对应的依赖库的版本就需要使用旧版本。 可通过修改模块级 build.gradle 文件来进行适配。 1、android 标签的 targetSdk 和 compileSdk 版本号 根据实际目标设备的 android 版本来…...
[特殊字符] Hyperlane:Rust 高性能 HTTP 服务器库,开启 Web 服务新纪元!
🚀 Hyperlane:Rust 高性能 HTTP 服务器库,开启 Web 服务新纪元! 🌟 什么是 Hyperlane? Hyperlane 是一个基于 Rust 语言开发的轻量级、高性能 HTTP 服务器库,专为简化网络服务开发而设计。它支…...
【深拷贝、浅拷贝】golang函数参数传递,变量复制后,操作变量参数,是否影响原有数据?全面解析
Golang中深拷贝与浅拷贝的详细解析,以及变量复制、函数参数传递等场景下对新旧变量影响的总结: 一拷贝与浅拷贝的核心区别 1. 浅拷贝(Shallow Copy) • 定义:仅复制数据的顶层结构,对引用类型字段&#x…...
RIP V2路由协议配置实验CISCO
1.RIP V2简介: RIP V2(Routing Information Protocol Version 2)是 RIP 路由协议的第二版,属于距离矢量路由协议,主要用于中小型网络环境。相较于 RIP V1,RIP V2 在功能和性能上进行了多项改进,…...
《LNMP架构+Nextcloud私有云超维部署:量子级安全与跨域穿透实战》
项目实战-使用LNMP搭建私有云存储 准备工作 恢复快照,关闭安全软件 [rootserver ~]# setenforce 0[rootserver ~]# systemctl stop firewalld搭建LNMP环境 [rootserver ~]# yum install nginx mariadb-server php* -y# 并开启nginx服务并设置开机自启 [r…...
