【产品经理修炼之道】- 将用户需求转化为研发需求

每当接到一个用户需求,产品经理头疼的事情之一,可能就是如何把用户需求转化成研发需求。怎么理解二者的区别,并成功地将需求转化呢?这篇文章里,作者做了分享与总结,一起来看一下。

产品经理与研发人员的博弈是产品界永恒的话题,产品经理说研发人员不懂业务,研发人员说产品经理不懂技术,但矛盾的是,每一次接到一个用户需求的时候,产品经理都需要绞尽脑汁把它转成研发需求,以便于研发人员能够知道如何将该需求正确实现出来。

一、用户需求和研发需求的区别

用户需求是研发需求的结果,研发需求是用户需求的过程;用户需求的本质是“做什么”,研发需求的本质是“怎么做”。然而有时候“做什么”和“怎么做”之间是没有必然联系的。

比如,用户需求是:设计一个功能,使用户可以将当前账号绑定的手机号更换成新的手机号。

在未经过细致分析的情况下,我们大致可以将该需求转化为以下研发需求:

  1. 对旧手机号通过验证码形式进行验证,验证通过后输入新手机号
  2. 验证新手机号与旧手机号不同且未被其他账号绑定后,向新手机号发送验证码
  3. 对新手机号通过验证码形式进行验证,验证通过后将账号绑定的旧手机号更改为新手机号

在以上研发需求中可以发现,如果你不看到最后一步,根本不知道这些需求是为了实现什么功能,而这只是一个很简单的功能,对于复杂的业务功能,尤其是多人分工研发的功能,很多研发人员做完了也不知道这个功能是干什么用的,因为在研发需求中,有时会牵涉一些功能需求;

比如上文提到的对新旧手机号进行验证,或者涉及一些设计约束,比如上文提到的判断新手机号是否绑定其他账号,防止重复绑定,而这些功能需求和设计约束,都是为了最终能够正确实现“更换手机号”的用户需求,但其本质跟用户需求是没有直接关系的。

关于功能需求和设计约束的定义,感兴趣的读者可参考之前的文章《从10大管理看产品经理的日常工作——产品整体管理》。

二、为什么需要转化需求

之所以需要将用户需求转化成研发需求,是因为产品经理和研发人员的思维有着相当大的差别。

产品经理由于经常接触业务,因此在产品经理脑海中,每次想到的都是需求的解决方案;而研发人员,在日常研发工作中,很多只是负责某几个接口或某几个页面的编写,大多数的研发人员对业务形态没有一个完整的概念,所以他们更关注的是需要他们做什么东西,只要研发需求写得足够详细,他们就能在不完全清楚业务形态的情况下将功能开发出来。

还是以上文“变更手机号”的需求为例,如果产品经理给开发的需求这样描述:由于在实际业务中,用户有可能需要更换绑定的手机号,因此需要开发一个这样的功能。那么从开发的角度,他会认为这个功能是这样实现的:给已登陆的用户提供一个页面,用户输入手机号,点击确定后,将该用户账号绑定的手机号修改为新手机号。

如果你问他,为什么不做手机号验证,为什么没有判断手机号重复绑定,他们会说:“产品就是这么设计的。”

这就是产品思维和研发思维的区别,经过多年与研发打交道,我对他们的工作方式总结了一句话,就是:尽量不少做,绝对不多做,不保证不做错,出错就是产品经理的锅。

之所以会形成这样的工作方式,是因为有可能产品经理需求描述中简单的一句话,研发就需要好几个人干好几天才能做完,在这样的工作环境中,他们没有太多的时间去考虑业务层面的东西,因此要求产品经理将需要做的事情写得非常详细,以减少研发人员在研发过程中的思考时间。

三、如何转化需求

将一个用户需求拆解成多个研发需求时,每个需求都可以从用户、权限、验证中的一个或多个维度去考虑,接下来我还是以上文的“变更手机号”需求为例,简单分析一下如何将这个用户需求转化为研发需求。

所谓“用户”,即是“人”,我们可以分析一下什么人有变更手机号的诉求以及原因:

  1. 账号所有人,变更原因:更换手机号
  2. 非账号所有人,如盗号的人,变更原因:通过变更手机号,将账号据为己有

从以上分析可以看到,这个需求的真正的用户应该是前者,而非后者,因此这里就涉及到“权限”的问题,如果不做权限的限制,让后者可以很轻松地变更手机号,那么将可能对前者造成不可估量的损失,关键的问题是,如何明确用户有权限进行手机号变更呢,这就需要通过“验证”来确认权限,我们可以再来分析一下,哪些验证可以用来明确用户的权限:

  1. 账号密码验证
  2. 手机号验证
  3. 人脸识别验证

以上3种验证方式都可以在某种程度上验证用户的身份,在这样的情况下,应该选择哪一种验证方式呢,这就需要做取舍了,我们可以这样分析:

通过以上对比表格,我们可以发现,“账号密码验证”是最先排除掉的,剩下的两种验证方式中,我们可以发现“人脸识别验证”的结果是最准确的,造假成本也是最高的,但同时操作门槛也是最高的,且只能在手机上操作,而相对而言,手机号更加方便快捷,因此大多数的产品会选择通过手机号来进行验证。

但我们会发现,无论是哪一种验证方式,都存在造假的可能,没法百分百保证验证结果的准确性,因此在这个需求中,也可以考虑双重验证,比如通过手机号+人脸识别来验证用户身份,但这未免太过繁琐,那么就可以考虑用户进行手机号验证时,判断用户当前的 IP 属地与经常登录的 IP 属地是否一致,如果不一致,再考虑让用户进行人脸识别,如果属地一致,则验证手机号即可。

当然,无论怎么防范,无非是提高了造假的成本,并不能完全杜绝作假的行为,因此,针对一些安全性更高的信息和操作,应该再上一把“锁”,比如支付应用会要求用户单独设置一个支付密码,用来区分登录操作和支付操作,以此来增加安全性。

除了对“权限”的验证,即将绑定的新手机号也需要“验证”,主要验证几点:

  1. 新手机号与旧手机号不同
  2. 新手机号未被其他账号绑定
  3. 新手机号是正确的

因此,通过以上分析,我们可以尝试将这个用户需求转换成以下研发需求:

  1. 用户点击“修改手机号”时,进入“验证旧手机号”页面,用户发送验证码并进行验证码验证
  2. 旧手机号验证不通过时,通过系统向用户展示错误提示;验证通过时,判断当前操作的 IP 属地与用户经常登录的 IP 属地是否相同,如果相同,则进入“验证新手机号”页面;如果不相同,需判断用户当前访问页面的设备,如为 PC 设备,则展示二维码,用户通过手机扫码进入“人脸识别页面”,如为移动设备,则直接进入“人脸识别页面”
  3. 如需进行人脸识别,在人脸识别验证通过后,进入“验证新手机号”页面
  4. 用户在“验证新手机号”页面输入新手机号,验证新手机号与旧手机号不同且新手机号未绑定其他账号后,向新手机号发送验证码
  5. 用户输入新手机号验证码点击提交,同时验证新旧手机号不同、新手机号未绑定其他账号、新手机号验证码正确通过后,将该账号的绑定手机号更新为新手机号

第5个需求你可能会觉得很奇怪,为什么第4个需求已经验证过一次,还要再验证一次,因为用户可能发送了验证码之后,又将手机号改了,因此绑定前,一定要再次验证新手机号的合格性再绑定上去。

写在最后

讲到这里,本文的核心内容已经讲完了,最后我想讲的是,很多时候产品经理志得意满,觉得自己已经把一个用户需求的研发需求梳理得清清楚楚,但是到了评审的时候还是容易挨怼,一方面,太多的文字容易让人觉得找不到重点,另外,中国文化博大精深,同一时间不同的人对同一句话可能有不同的理解,甚至同一个人在不同时间对同一句话都有可能产生不同的理解。

在这样的情况下,除了尽可能精简一些不必要的文字之外,有时候一个简单的流程图就能够把一个看似复杂的逻辑讲清楚,比如你不妨试试把上面的研发需求换成一个流程图,你会发现比上面那堆文字直观得多,对于研发而言,他们希望产品经理能够直击重点,而不是把需求写得跟小说一样。

如果你对绘制流程图的要点感兴趣,可参考之前的文章《为什么你画的流程图开发总说看不懂?》

以上便是本文的全部内容,感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/572321.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【图像分割】光流生成标签(matlab)

文章目录 1. 框架2. opticalFlow_label3. 光流 1. 框架 2. opticalFlow_label close all; clear; clc; % 使用光流进行标签的生成 %% 视频帧的读取 npy_data readNPY(train.npy);%% 提取标签的坐标 first_label squeeze(npy_data(2,1,:,:)); h fspecial("gaussian&quo…

C语言自定义类型【结构体】

结构体的概念 结构是一些值的集合,这些值被称为成员变量。结构的每个成员可以是不同类型的变量。 1.结构体的声明 1.1普通声明 我们假设要创建一本书的类型,那我们需要书名,作者,价格,书的ID 代码如下:…

第十五届蓝桥杯省赛第二场C/C++B组A题【进制】题解(AC)

解题思路 按照题意进行模拟&#xff0c;计算 x x x 的 b b b 进制过程中&#xff0c;若出现余数大于 9 9 9&#xff0c;则说明 x x x 的 b b b 进制一定要用字母进行表示。 #include <iostream> #include <cstring> #include <algorithm> #include &l…

vue3推荐算法

Vue 3 推荐算法主要指的是在 Vue 3 框架中实现的或者适用于 Vue 3 的算法库或组件库。Vue 3 由于其优秀的设计和性能&#xff0c;被广泛应用于构建各种类型的应用程序&#xff0c;包括需要复杂算法支持的项目。以下是一些在 Vue 3 中可能会用到的推荐算法资源&#xff1a; Vue-…

啊? 又要洗数据啦!! 还是两个key决定一个表! 二维Map学习,基于guava的HashBasedTable

一个洗数据的需求&#xff0c;表设计的外建不能判断某一个数据源&#xff0c;还要根据tyoe来进行判断才可以。 那此时呆逼的查发能实现但不够优雅&#xff0c;于是乎想到了二维数组&#xff0c;查了下资料有相关的实现给大家分享下&#xff01;&#xff01; 背景 表设计如下&a…

美易官方:AI热潮“熄火”了?Meta Q1财报较差

近期&#xff0c;随着Meta&#xff08;前Facebook&#xff09;发布了其2023年第一季度的财报&#xff0c;一场科技股的震荡在美股市场上演。曾经风光无限的AI热潮似乎出现了“熄火”的迹象&#xff0c;引发了市场的广泛关注和讨论。 Cresset Wealth Advisors首席投资官Jack Abl…

libVLC 专栏介绍

本专栏主要界面libVLC的使用&#xff0c;详细介绍了相关用法&#xff0c;使用Qt作为显示界面&#xff0c;不仅可以了解Qt的使用&#xff0c;QSS的美化&#xff0c;更能够熟悉libVLC核心接口的使用&#xff0c;最后打造一款属于自己的精美播放器。 每一节都有单独的源码供查看。…

CSS @media 媒体查询全解:打造极致跨平台页面的动态户体体验

随着互联网设备的多样化和用户浏览习惯的变化&#xff0c;现代网页设计越来越注重提供跨平台、跨设备的无缝用户体验。CSS媒体查询media在此背景下扮演着至关重要的角色&#xff0c;它赋予网页设计者精准控制网页样式的能力&#xff0c;使之能随设备环境变化而动态调整&#xf…

内存管理下及模板初阶

嗨喽&#xff0c;今天阿鑫给大家带来内存管理下以及模板初阶的博客&#xff0c;下面让我们开始今天的学习吧&#xff01; 内存管理下及模板初阶 new和delete的实现原理定位new表达式(placement-new)常见面试题泛型编程函数模板类模板 1. new和delete的实现原理 1.1 内置类型…

短链接推荐:一个可以监测用户行为的“营销神器”

客户对我的推广有兴趣吗&#xff1f;他喜欢我的产品吗&#xff1f;他打开了我的营销信息吗&#xff1f;这三个问题相信每一位推广者都遇到过。接下来&#xff0c;就将给大家介绍一位大聪明——它能帮你监测每一位用户的行为&#xff0c;让你分分秒秒掌握用户的心理&#xff01;…

consul服务注册与发现、服务配置与刷新

为什么要用服务注册&#xff1f;为什么要用consul不用eureka&#xff1f; 举个栗子&#xff1a; 微服务当中存在多个服务模块&#xff0c;每个服务模块的ip端口在每套环境是不一致的&#xff0c;开发切换环境部署时&#xff0c;如果漏了一个配置忘记改动&#xff0c;将是一个很…

黑龙江—等保测评三级安全设计思路

需求分析 6.1、 系统现状 6.2、 现有措施 目前&#xff0c;信息系统已经采取了下述的安全措施&#xff1a; 1、在物理层面上&#xff0c; 2、在网络层面上&#xff0c; 3、在系统层面上&#xff0c; 4、在应用层面上&#xff0c; 5、在管理层面上&#xff0c; 6.…

数码摄影色彩构成,数码相机色彩管理

一、资料描述 本套摄影色彩资料&#xff0c;大小58.54M&#xff0c;共有6个文件。 二、资料目录 《抽象彩色摄影集》.阿瑟.pdf 《色彩构成》.pdf 《色彩学》.星云.扫描版.pdf 《摄影色彩构成》.pdf 《数码相机色彩管理》.pdf 数码摄影进阶之4《色彩篇》.pdf 三、资料下…

【PCL】教程narf_feature_extraction 如何从深度图像中提取 NARF 特征

如何从范围图像中提取 NARF 特征  本教程演示如何从深度图像中在 NARF 关键点位置提取 NARF 描述符。该可执行文件使我们能够从磁盘加载点云&#xff08;或创建它&#xff0c;如果没有提供&#xff09;&#xff0c;在其上提取兴趣点&#xff0c;然后在这些位置计算描述符。然…

spring @value @configurationProperties比较

今天项目中需要使用数组的方式 来加载一批 配置 yml: xxxx: - xxxxx - xsssss javaBean Value("${xxxxx.xxxxx}") private List<String> xxxs; 启动时候报错&#xff0c;无法加载&#xff0c;TM试验了1个小时&#xff0c;我一开始想到是格式的问题&#x…

Android 10.0 Launcher3替换桌面app图标后大小和其他app图标不一样的问题解决方案

1.前言 在10.0的系统ROM产品定制化开发中,在关于launcher3的产品定制化开发中,在有些时候需要对一些第三方的app图标做 替换或者是做一些动态图标的替换,发现在替换以后图标大小和其他app的图标大小不一样,所以就需要看是具体哪里 对app的图标做了缩放功能,接下来就需要去…

【注解和反射】类加载器

继上一篇博客【注解和反射】什么时候类会和不会被初始化&#xff1f;-CSDN博客 目录 六、类加载器 测试&#xff1a;获得类加载器 &#xff08;1&#xff09;如何获取Java中的类加载器及其父类加载器 &#xff08;2&#xff09;测试当前类是哪个类加载器 &#xff08;3&am…

【C++】STL-vector模拟实现

目录 1、vactor的模拟实现 1.1 成员变量 1.2 size、capacity 1.3 迭代器 1.4 构造、析构、拷贝构造、operator 1.5 push_back、pop_back、reserve 1.6 operator[] 1.7 insert、erase 1.8 resize 2、使用memcpy拷贝问题 1、vactor的模拟实现 1.1 成员变量 vector是顺…

时尚新选择,小塔RFID技术重塑样衣管理

在时尚领域&#xff0c;样衣是创意与工艺的完美结合&#xff0c;每一件都承载着设计师的心血与期待。然而&#xff0c;当这些珍贵的样版在传统的管理体系下流转时&#xff0c;样版管理成为一个令人头疼的问题。手动记录、盘点和样板追溯成为常态&#xff0c;但这种方式容易出错…

机器学习(二)之监督学习

前言&#xff1a; 上一节大概讲解了几种学习方式&#xff0c;下面几张就具体来讲讲监督学习的几种算法。 以下示例中和都是权重的意思&#xff01;&#xff01;&#xff01; 注&#xff1a;本文如有错误之处&#xff0c;还请读者指出&#xff0c;欢迎评论区探讨&#xff01; 1…