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

聊聊精益需求的产生过程

这是鼎叔的第七十八篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。

欢迎关注本公众号《敏捷测试转型》,星标收藏,大量原创思考文章陆续推出。本人新书《无测试组织-测试团队的敏捷转型》​​​​​​​​​​​​​​已出版(机械工业出版社),各大电商平台热销中,30万字350页。

本篇开启第六个专辑《测试左移与右看》的领域主题分享,中间也穿插其他原创的知识思考内容。

对产品研发而言,最大的风险在于用户需求没有挖掘清楚,而且产品的需求描述和传递过程失真,最终导致生产出来的产品不是用户真正想要的。精益需求生产过程,就是希望尽可能地降低这种极大的生产浪费。这套互联网行业的生产过程,也适用于任何行业的产品精益生产。

在互联网行业中,业务需求变化很多,很快,业务人员,产品人员和技术人员经常对要交付需求的上线优先级无法达成一致,产生推诿和争吵。那么,完整的精益需求产生过程应该是怎样的?它如何尽可能提高产品成功的概率,并降低研发过程中的偏差和耗费?

用户需求的本质

业务团队的需求是从愿景出发,围绕商业方向确定目标用户群。

用户的需求是从自己的问题和痛点出发,希望有产品功能能够解决它们。

产品功能方案如果成功解决用户问题,就能积少成多,一步步实现商业价值。

图片

用户需求的本质特征是隐形的,只有对市场和用户有深入洞察力的产品经理,才能将其挖掘出来。因为:

用户嘴里说的,不等于用户实际做的,也不等于用户心里想的。

用户需求往往是动态变化的,不是确定不变的。

用户需求是多层次的,产品经理需要一定的创造力才能找出最契合的定义。

需求往往在社会化协作中产生,产品经理需要使用一致的高效的描述语言。

什么是精益产品思维

精益需求的核心设计思维及实践,就是要持续洞察用户和市场,开放探索。精益产品的成功也来自于整个过程中更强的应对不确定性的能力。

图片

作为拥抱敏捷的团队,产品的成功来自快速试错,Fail Fast。快速的价值反馈闭环,即“Build-Measure-Learning”,能够降低试错成本,让团队学习到宝贵知识,并更快地走向成功。

产品设计思维,精益思想,敏捷研发,三者互相成就一款成功的产品。设计思维的目标是“挖掘问题”,精益的目标是“做正确的事”,敏捷的目标是“正确地做事”。

图片

三者合一的详细指导方法过程如下:一个产品的产生有探索,定义,设计和交付四个主要阶段,精益原则贯彻整个需求生命周期的始终。这个周期中的具体活动包括:定义业务愿景,梳理产品战略,筛选业务重大举措,提炼需求定义,进行实验验证解决方案和确认需求优先级,再通过多个迭代构建产品并运行,交付给用户,同时获得持续改进的知识。

图片

精益产品的全生命周期管理

下面我们从一个基本流程开始详细介绍。

精益需求的全流程,大概可以分为十个步骤。前五个步骤是从原始需求到问题定义的推导,后五个步骤是从问题定义到待开发的产品需求确认。

图片

在需求产生过程,需要理解并实践的核心问题有:

一 如何定义产品需求?产品的定位和目标是什么?

根据KANO模型,本需求是哪个类型?必备型(基础能力),期望型,还是魅力型?参考:聊聊竞品体验对比评测(上)。

本需求处于什么周期中,是引入期,成长期,还是成熟期?

确定产品的定位和目标,这个过程容易么?如果困难,难在什么地方?

有信息输入不够的地方么,具体是哪些?哪些信息还不太确认,需要做进一步的验证?

产品经理如何让开发、设计、测试和管理者对产品的目标和定位达成一致?

产品的定位和目标可以用下列信息要素来梳理:

  • 目标用户:核心用户群体的关键特征是什么?早期用户群体的关键特征呢?

  • 客户需求:关键用户的问题和期待是什么?

  • 解决方案:提供怎么样的产品或服务?

  • 业务价值:业务的定位,贡献的目标和价值。

  • 独特卖点:相对于现有方案和竞品,优势和卖点是什么?

  • 产品愿景:一句话描述。

当面对新的需求时,如果想不通该不该做,就重新思考产品定位和目标。

二,如何挖掘用户的问题和目标?

注意用户的表达,要求不等于需求,请求不等于需求,反馈也不等于需求!我们给出的解决方案,也不等于需求本身。

需求的第一条原则,还是要从用户的问题出发来推导。

三,产品的用户和干系人是谁?

按用户距离,可以分为直接用户,间接用户或关联用户。

从其他维度,还可以区分为内部用户和外部用户,生产者和消费者,B端用户和C端用户。

针对用户如何建立更细致的类型区分?基于什么属性进行进一步的区分?下面是一个简单的属性分类示范。

图片

下一步,如何找出本产品最核心的用户类型?

我们可以通过象限法来绘制不同用户类型所在的地方。横轴是用户数量或规模,纵轴是用户的需求,或用户影响力,或用户贡献。

也可以通过矩阵法,针对当前的价值贡献,潜在的价值贡献和流失风险,定出该类型用户的优先级。

图片

四,用户画像如何绘制?

前面说过,内部用户和外部用户的画像可能完全不同,需要区分绘制。

我们可以给典型用户绘制一个卡片,让团队成员觉得真实可信,我们充分想象,人物就在我们眼前,用户形象如何,叫什么,她有什么基本信息,特征描述,他/她的痛点/期待是什么,目标是什么。

图片

对于内部用户,我们可以把卡片信息聚焦在内部协作场景,职责,痛点和期待。

比如内部负责监控的IT工程师客户,他的痛点描述语言会更加技术化,痛点场景也以内部典型的跨部门协作场景为主。我们绘制的用户画像会把他的职责和期待目标也定义得非常具体,使用的专业术语比外部用户多出很多。

最后,我们对用户特征梳理进行复盘:

我们的用户特征情报从何而来?如何确认信息靠谱?哪些信息输入还不够?

一定是直接用户的问题才需要关注么?关联用户/间接用户,他们的问题有什么启发?

五,产品电梯演讲

电梯演讲,就是在电梯的一分钟时间里,以XX为对手,用一段话说服老板接受一个产品方案。

图片

我们上面的用户对象分析,对标产品电梯演讲的目标用户群,有什么差异?

六 接下来,从用户出发,发现场景

这一块就要利用之前介绍的用户故事知识了。聊聊用户故事与测试启发

一个用户故事发生的场景,包括这些要素:时间(WHEN),地点(WHERE),和谁(WHO),前情(BEFORE),后果(AFTER)等。

利用用户故事挖掘场景,我们要特别关注逻辑合理性,多问自己这些问题:

  • 核心用户、问题(痛点)和场景的逻辑合理么?

  • 可以用什么手段去验证这个场景是真实存在的?

  • 用户为什么会遇到这样的问题?

  • 其内心深处的目标和动机是什么?这个目标是真正的目标么?

  • 真正的目标和当初的问题有怎样的关联?

  • 当前哪些信息输入还不够?可以通过哪些手段获得这些信息?

七 洞察用户目标

通过上面的过程,用户清楚了,目标清楚了,那准确的问题定义应该是什么?

我们想给用户的可能是一个很复杂的产品,用户想要的东西可能非常简单。

图片

为了洞察出用户真正的目标,我们可以不断追问问题的本质,如下:

  • 从问题的描述,发生的场景要素,我们判断是哪一类用户的问题?

  • 问题的根本原因是什么?

  • 问题发生后对用户造成的影响是什么?

  • 问题发生后对业务的影响是什么?

明确了用户真正的目标,精益需求的前半部分才算是真正完成,后面的环节就依次是:针对痛点的创意发散,端到端设计用户体验路线,原型设计,最后进入技术评估方案。这些本文就暂不展开了。

相关文章:

聊聊精益需求的产生过程

这是鼎叔的第七十八篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》,星标收藏,大量原创思考文章陆续推出。本人新书《无测试组织-测试团队的敏捷转型》​​​​​​​​​​​​​​已出版&#xff…...

Linux - 还不懂 gdb 调试器?(调试软件)

前言 当前,我们可以使用 make/makefile 来程序化执行代码文件;可以使用 gcc/g 等编译器来编译代码;可以使用 vim 编辑器来编写代码;其实在 Linux 当中还有一个工具,可以实现调试工作,这个工具就是 -- gdb。…...

Linux:程序地址空间/虚拟地址等相关概念理解

文章目录 程序地址空间虚拟地址和物理地址地址的转换地址空间是什么? 程序地址空间 在C和C程序中,一直有一个观点是,程序中的各个变量等都会有一定的地址空间,因此才会有诸如取地址,通过地址访问等操作,那…...

Python之爬虫

目录 HTTP请求HTTP响应获得页面响应伪装用户访问打包数据爬取豆瓣top250 HTTP请求 HTTP:HypertextTransferProtcol 超文本传输协议 1、请求行 POST/user/info?new_usertrue HTTP/1.1#资源了路径user/info 查询参数new_usertrue 协议版本HTTP/1.1 2、请求头 Ho…...

打造自己的前端组件库(奶妈版,超详细)

打造自己的前端组件库 demo是开源的,自己上npm 或者 github 上都能搜到 新建vue项目(sass js vue2) vue create yt-ui 修改文件目录(如下) 修改: 1.src 更名 examples; 2. src/components移动到项目最外层;3.vue.config.js更改入口文件 /…...

6.调制阶数相关

1、调制阶数与峰均比的关系 调制阶数(modulation order)对峰均比(有一定的影响。 峰均比是用于衡量调制信号或波形在幅度上的动态范围的指标。它表示信号的最大峰值与平均功率之间的比值。较高的峰均比可能导致信号在传输或放大过程中出现过…...

Maven多模块管理(转载)

注意:父模块需设定打包方式为pom https://cloud.tencent.com/developer/article/1667275 dependencyManagement 统一管理子类依赖版本 在父类maven中加入,不会继承给子类,只能规定子类的依赖版本,子类加入dependence后无需写入 …...

运维学习CentOS 7进行Nightingale二进制部署

.因为Nightingale需要MySQL保存一些数据,所以可以参考《CentOS 7.6使用mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar安装Mysql 8.0》部署MySQL。 https://github.com/ccfos/nightingale/releases是可以github上下载Nightingale二进制安装包。 https://n9e.github.io/…...

安装Docker

本安装教程参考Docker官方文档,地址如下:https://docs.docker.com/engine/install/centos/ 卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \ docker-client \ docker-client-latest \ docker-common…...

【uniapp/uView】解决消息提示框悬浮在下拉框之上

需要实现这样的效果&#xff0c;即 toast 消息提示框在 popup 下拉框之上&#xff1a; 解决方法&#xff0c;把 <u-toast ref"uToast" /> 放在 u-popup 里面即可&#xff0c;这样就可以提升 toast 的优先级&#xff1a; <!-- 弹出下拉框 --><u-popu…...

有效管理token,充分发挥ChatGPT的能力

目录 给提供了 Token 的计算工具,来理解一下Token的计算方式,网址如下: 窗口如下: 实际消耗 Token 数量为 59个,换算之后为2.1-2.2的比例,即一个汉字消耗2.12.2个Token, 再测一下英文的Token消耗,包含空格在内,一共52个英文字母,消耗Token 13个,正好对应13个单词,…...

Python —— 验证码的处理执行JavaScript语句

1、验证码的处理 1、概述&绕过验证码的方案 很多的网站都在登录页面加入了识别文字&#xff0c;识别图片&#xff0c;拖动拼图的验证码方式来防止爬虫、恶意注册 等&#xff0c;如果是做自动化&#xff0c;需要绕过验证码才能进入下一步操作&#xff0c;那么有4种方案可以…...

MS12_020 3389远程溢出漏洞

1.search ms12_020 搜索ms12_020 2.use auxiliary/scanner/rdp/ms12_020_check 检查是否存在ms12_020漏洞 show options 查看所需参数 set RHOSTS x.x.x.x 设置目标IP地址 run 执行 检测出来有Ms12_020漏洞 3.use auxiliary/dos/windows/rdp/ms12_020_maxchannelids 选择…...

Pytorch ddp切换forward函数 验证ddp是否生效

DDP及其在pytorch中应用 ddp默认调用forward函数&#xff0c;有些模型无法使用forward函数&#xff0c;可以对模型包装一下。 class modelWraper(nn.Module):def __init__(self, model):super().__init__()self.model modeldef forward(self, *args, **kwargs):return self.…...

C++中按引用向函数传递参数

C中按引用向函数传递参数 在参数传递过程中&#xff0c;如果实参与引用参数不匹配&#xff0c;C将生成临时变量。当前&#xff0c;仅当参数为 const 引用时&#xff0c;C才允许这么做&#xff0c;但以前不 是这样。如果引用参数是 const&#xff0c;则编译器将在下面两种情况…...

【Asp.net】Asp.net core中IIS配置注意事项

1、应用地址池设为无托管代码 一、提示&#xff1a;关于IIS上运行ASP.NET Core 站点的“HTTP 500.19”错误 安装dotnet-hosting-3.1.2-win.exe ASP.NET Core 3.1 Runtime (v3.1.2)下载地址&#xff1a; https://download.visualstudio.microsoft.com/download/pr/dd119832-dc4…...

Redis实现附近商户

GEO数据结构的基本用法 GEO就是Geolocation的简写形式&#xff0c;代表地理坐标。Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;帮助我们根据经纬度来检索数据。常见的命令有&#xff1a; GEOADD&#xff1a;添加一个地理空间信息&#xf…...

【COMP305 LEC 3 LEC 4】

LEC 3 A basic abstract model for a biological neuron 1. Weights of connections Neuron gets fired if it has received from the presynaptic neurons 突触前神经元 a summary impulse 脉冲, which is above a certain threshold. Signal from a single synapse突触 ma…...

国密https访问

前言 现在的SSL的加密算法实际上主要是国际算法&#xff0c;包括JDK&#xff0c;Go等语言也仅支持国际算法加密&#xff08;毕竟是国外开源项目&#xff09;&#xff0c;hash。随着国密算法的普及&#xff0c;比如openssl就支持国密了&#xff0c;还要新版本的Linux内核也开始…...

31二叉树-递归遍历二叉树

目录 LeetCode之路——145. 二叉树的后序遍历 分析 LeetCode之路——94. 二叉树的中序遍历 分析 LeetCode之路——145. 二叉树的后序遍历 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法&#xff0c;以下是几种常见的治理方式&#xff1a; 1. 数据质量管理 核心方法&#xff1a; 数据校验&#xff1a;建立数据校验规则&#xff08;格式、范围、一致性等&#xff09;数据清洗&…...

JS红宝书笔记 - 3.3 变量

要定义变量&#xff0c;可以使用var操作符&#xff0c;后跟变量名 ES实现变量初始化&#xff0c;因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符&#xff0c;可以创建一个全局变量 如果需要定义…...