42

我们应该如何给需求排序?

 5 years ago
source link: https://blog.fundebug.com/2019/03/05/how-to-sort-requirements/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

摘要:需求管理是一门艺术。

eimQnun.jpg!web

开发产品的时候,我们每天都会面对各种各样、没完没了的需求,有的来自外部用户的反馈,有的来自内部团队的 idea,有的是产品的 BUG,有的是新的功能…

看起来只要实现所有需求,产品就可以变得更好,然后吸引更多的用户,接着赚更多的钱,之后招更多的人,再完成更多的需求…

问题是,需求会源源不断地进来,我们永远也不可能清空所有需求,996 也做不完,这辈子都不可能。

我们能做的,是不断将需求排序,实现优先级最高的需求。那么问题来了, 我们应该如何给需求排序?

以用户为核心确定优先级

乔布斯曾经说过:

People don’t know what they want until you show it to them.

用户真的不知道他们想要什么吗?很多时候并非如此。

我负责产品, 每天都会和用户交流 ,他们知道自己想要什么功能,有时会做好简单的交互设计、帮忙想想算法、甚至给我开源代码。

问题在于,用户只是产品的使用者,他们对于产品的理解没有我们那么深刻,所以他们提出的需求有时会偏离问题的本质,需要我们进一步分析与挖掘。

我们不是乔布斯,没有能力创造需求;我们也不是张小龙,没有 1 亿人教我们做产品。因此,我们应该多与用户交流,以用户需求为核心确定优先级:

  • 用户反馈或者吐槽的时候,耐心一些,聊得更深入一些,同时做好记录
  • 修复 BUG,优化功能或者新增功能时,与感兴趣的用户主动联系,他们会给你更多的反馈
  • 定期做用户调研,听听沉默的大多数是怎么说的
  • 对于用户所提的需求,根据反馈用户多少、影响范围、难易程度进行排序

当我们做产品的时候,创造的欲望是非常惊人的,总会有一些新的 idea 让我们激动不已,恨不得明天就能上线。但是,我们应该克制自己的创造欲,尊重用户的意见。我们的产品是给客户用的,不是给自己玩的。

流量红利已经枯竭的时代,获取一个新用户比留住一个老用户难太多了,因此提高留存率显得非常重要。重视每一个用户反馈,及时修复他们发现的 BUG,优先实现他们想要的功能,是提高留存率最有效的方式,没有之一。

BUG 的优先级高于新功能

墨菲定律是这样的:

Anything that can go wrong will go wrong.

程序员应该都知道, 代码怎么可能没有 BUG 呢? 很多时候只是我们没有发现,或者是知道了却没有及时修复。

然而,对于当前产品的 BUG,我们往往容易忽视。可能是 BUG 隐藏的太深,我们和用户都没有发现;可能是用户发现 BUG,但是没有反馈;也可能是我们选择性失明,觉得问题不大。

事实上,用户对产品质量的要求非常严格,再小的问题他们也会发现,也会吐槽。用户反馈的话我们还能知道,否则我们可能很晚才发现 BUG,如果没有监控的话。

还有一种微妙的情况,当用户反馈貌似不可能出现的 BUG 时,我们会本能的觉得产品应该没有问题,问题应该出在用户那里,大概是他的浏览器或者网络,或者某种无法解释的原因导致的。其实,这只是我们在逃避问题,代码的运行方式是确定的,没有什么不能解释的地方,如果什么地方不太对劲了,那基本上是 BUG。这里分享一个我们的经历:

某个用户反馈,他在邀请成员加入团队的时候发现,偶尔会有那么一次邀请失败。

我们检查了一下监控数据,发现确实有失败过,影响的用户不止一个,但是很少。

然后,我们检查了一下前后端代码,发现没有问题。

既然业务代码没有问题,那应该没有 BUG,这事大概是什么奇怪的原因导致的,我们什么也不用做吧…

后来,又有几个用户反馈同一个问题,报错也越来来越多,我们不可能再骗自己了!

再次检查,业务代码确实没有问题,但是报错的代码位置的行号和列号都偏移了,这么诡异?

不难猜测,生产环境运行的是旧代码!检查一下果然是这样。

接着,不难发现部署的 Docker 配置文件有问题,导致某个节点部署的后端代码是旧的…

我们总是这样,不停地向前走,不断地追求新的成就,逃避当下的问题。 听着是不是很像我们的生活?

对于产品 BUG,我们应该第一时间修复,或者设置一个 Deadline,新的功能可以稍微延后。

如果我们不停地开发新功能,那当初开发这个有 BUG 的旧功能究竟是为了什么?如果我们忽略当前用户反馈的问题,那我们费这么大劲拉新是为了什么?

结论

需求管理是一门艺术,需要考虑和权衡的东西很多,暂时给大家一个简单的优先级排序,仅供参考:

  • 用户反馈的 BUG
  • 自己发现的 BUG
  • 用户反馈的需求
  • 自己想出的需求

严格按照这个顺序操作是不可能的,这是给大家提供 2 个思考维度。实际工作中,每个需求的影响范围、紧急程度、难易程度也需要考虑。

你有什么更好的想法吗?欢迎留言讨论!本文作者为 Fundebug 的技术总监,欢迎添加微信交流:KiwenLau。

参考

关于Fundebug

Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用!

22EFryE.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK