如何思考需求的优先级?

简介: 如何思考需求的优先级?

有一道很经典的关于需求优先级的面试题:


1998年,QQ开始规划,99年2月Beta1,99年5月Beta2,99年8月Beta3。 请问Beta1,只能实现3个特性你会选择?


  1. 卡通头像
  2. 不可窃听安全通讯
  3. 聊天室
  4. 很小的.exe文件
  5. 皮肤skin
  6. 速度超快0.5秒反应
  7. 聊天记录管理器
  8. 语音
  9. 视频
  10. 看谁在线上
  11. 传文件
  12. QQ表情


如果是你,你会怎么选?我以前写过文章讲做需求优先级排序的时候,要先在团队里达成一个共识:什么是用户价值,什么是商业价值,然后我们现在的目的是侧重做哪一项?然后再根据重要紧急程度来排序。


重要紧急筛选


而这个题目,12个需求在当时都是基于用户价值设计的。所以我们先按照重要紧急程度做一下筛选:


  • 重要紧急:聊天室(3)、看谁在线上(10)
  • 重要不紧急:卡通头像(1)、不可窃听安全通讯(2)、皮肤skin(5)、速度超过0.5秒反应(6)、聊天记录管理器(7)、QQ表情(12)
  • 不重要不紧急:很小的.exe文件(4)、语音(8)、视频(9)、传文件(11)


思考逻辑


说说我为什么这么排序。首先当时用户注册了QQ,但加好友是个麻烦,而聊天室就是为了解决这个问题,先让大家在陌生的聊天室里聊,然后有好感的各自加好友。那么加了好友后,下次你想找人聊,是不是知道对方在线会更好一点?否则很可能你找了10个人聊天,没人回复的尴尬场景。所以这两个需求是重要且紧急的。


至于我为什么把4、8、9、11放到不重要不紧急,我是这样考虑的。在当时QQ的安装包并不大,本身功能就不多,所以没必要去优化。而语音、视频、文件,基于当时的网络宽带,没办法做到很好的体验,所以我认为是可以放到后面的。


1、5、12三个需求都是娱乐功能,让用户能”玩“起来的。但如果是说哪个功能用户”见“得最多,可能就是头像了,毕竟上线找人聊天第一眼看的就是对方头像。


需求2是非常重要的一个功能,但说实话不了解在当时做起来的难度,加上这个阶段腾讯还处于初期,所以这个功能我会放后一点做。


需求6,是提升用户体验的。但这个提升价值多大?如果不做优化,用户就没办法使用,或者说有部分低端用户就没办法使用。那这个需求就非常重要。反之,那就没必要太急着去优化了。


需求7,在当时大家都在网吧上网,就算做了记录管理器,大家也看不到记录。因为网吧每次重启都会清除数据。而如果做线上保存,那成本会很大。所以这个需求我会放后。


所以,总的来说,选3个优先级最高的,我会选3、10、1或3、10、6


辅助排序策略


最后补充两种辅助需求排序的策略:


  1. 是否影响正常使用。如果这个功能不做,产品还能不能用?如果不能用,就优先做。如果能用,在资源不足的时候可以延后做。
  2. 根据使用的用户基数、使用次数来判断。尤其是核心用户的使用基数和次数。(已经上线的功能有数据,没上线的功能要自己做预测)


以上纯属个人思考,欢迎大家留言讨论。

目录
相关文章
|
8月前
|
JavaScript 算法
v-if和v-for的优先级是什么?
v-if和v-for的优先级是什么?
92 0
|
8月前
|
Java 调度
Java线程的优先级
Java线程的优先级
57 0
|
6月前
Thymelead属性优先级
Thymelead属性优先级
|
6月前
|
Linux C++
Linux进程的优先级
Linux进程的优先级
|
JavaScript 前端开发
运算符的优先级
运算符的优先级
运算符的优先级
|
算法 Unix Linux
进程的优先级
进程的优先级
84 0
|
Linux
12.7 Linux进程优先级
Linux 是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程。但是 CPU 在一个时钟周期内只能运算一条指令(现在的 CPU 采用了多线程、多核心技术,所以在一个时钟周期内可以运算多条指令。 但是同时运算的指令数也远远小于系统中的进程总数),那问题来了:谁应该先运算,谁应该后运算呢?这就需要由进程的优先级来决定了。
54 0
12.7 Linux进程优先级