当开发说,这个功能实现不了,PM该怎么办?

13 评论 32695 浏览 201 收藏 7 分钟

产品设计结束之后,进入到如火如荼的研发阶段时,突然研发同学跑过来问你,“这个功能实现太麻烦了,这版肯定实现不了了”,可是这个功能缺又是不可或缺的,作为PM的你该怎么办呢?

这是一个及其常见的问题,很多PM会迎难而上,据理力争,天花乱坠地言称这个功能如何如何重要,一定要实现,甚至和研发同学撕逼起来,一封一封地邮件抄送一堆老大,天下大乱之势。

在这里,我分享几个我的经验,不能说屡试不爽,但是也能够极大地节省成本,快速推进产品研发。

首先,作为PM,你需要了解这个功能实现不了的原因是什么,如果你不懂技术也没有关系,但你起码需要知道一些基础的问题描述,比如是实现的算法要求太高,还是当前的系统体系不支持,还是纯粹时间来不及,还是对移动端性能要求太高优化难度太大,还是研发同学此前理解有误现在改已经来不及了,等等。根据这些,你大致能够判断这个问题的复杂度,这会对你接下来进行设计修改时提供依据。

然后,你要确定当前正在研发的版本的目标,这个目标的意思是,你正在研发的是一个v1.0基础版本,还是一个v5.0这样的体验和功能都进行了多重优化的版本。确定版本目标,对于你判断功能的重要性很重要。

其次,你需要对这个功能进行一个优先级判断,这个功能是否可以砍,没有这个功能会怎么样。如果这个功能没有直接影响这个产品的体验,那起码说明这个功能不能砍,如果只是一个体验上的问题,你需要结合当前版本的目标,你可以判断这个体验的问题是否很重要。

在这里举个例子。我的前同事,他们曾经在开发一个体感网球游戏时,挥拍击打球时,需要计算拍子的角度和挥拍的力度,从而计算球的飞行轨迹,继而表现在游戏界面上。可是这个过程是一个非常复杂的数学计算,对于他们当时的团队而言是非常困难的。他们当时正在研发v1.0版本,这个功能是当前版本的基础,对于基础而言,实现它是第一要务,优先级最高,但是体验不是第一要务,所以体验的优先级是可以调低的。后面我会说他们如何解决这个问题。

判断完优先级,你接下来要做的,是考虑是否可以简化这个功能的设计。对于PM而言,融会贯通是一项必备的技能,你是应该对需求负责,但你更需要对产品负责,产品的至善至美是所有人的美好期待,但是不代表你一开始就要吃成大胖子,你完全可以一步一步走到那个产品完美的巅峰。对于一个复杂的难题,在不同阶段解决的程度是不一样的,如果当前的优先级第一位是实现功能,搭建框架,那么你不必盯着体验不放,即使体验优先级很高,你也需要搞明白体验也是分级的,是否还有比体验更重要的东西,你需要做个判断。

在我看来,一个PM最重要的能力,首先是理解商业逻辑,然后是结合“需求-人群-场景”实现产品设计,最后才是考虑体验的优化。

回到我上面说的这个体感游戏的例子。他们当时很纠结,可是如果把时间都花在实现这个算法上,虽然可以解决问题,但是上线肯定来不及了。所以,我那个天才的同事,提出了一个策略,简化这个问题。既然这个版本里最重要的是实现“挥拍-球飞行-画面表现”,那么是否是依据复杂的数学公式实现就不是最重要的,体验是70%还是99%对用户而言不是最重要的,球能飞出去,并且能够表现在画面上才是最重要的。于是,他们的产品实现中,挥拍时,根据击球点和击球角度,在东南西北、东北、东南、西北、西南进行一个映射,然后随机出一个击球速度,这样便将问题简化成了一个一次数学函数,球依然会飞出去,表现在画面上的效果也不差,这个随机数只要给的不要太离谱,基本上体验上能够达到70-80%,问题迎刃而解。

很多时候,作为PM,不仅仅是坐在电脑前写写文档,你更需要快速决断一个功能如何满足你的商业目标,也就是你的产品迭代目标。揪着一个功能的实现不放,和研发同学撕逼是很不理智的。其实在产品的实现过程中,这样的case比比皆是,你需要对一些功能实现妥协,只要记得后面把坑填上。

这篇文章作为第一篇,后面我会慢慢介绍微软小冰在产品设计中的很多讨巧却效率百倍的功能设计,也会讨论优护家产品体系设计中的一些有趣的点。当然,我还会探讨,一个好的PM究竟需要拥有哪些技能。

本文由作者@帅帅的帅(优护家联合创始人,首席产品官; 前微软小冰高级产品经理)原创发布于人人都是产品经理,未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 请问如果是同质竞品呢,在第一版本可不可以把体验当成差异化优势?

    来自北京 回复
  2. 如果是给企业做项目,客户一直坚持需要这个需求呢?

    来自北京 回复
  3. 文章挺好的,总结一下就是挖掘原因——判断优先级和重要性——是否可以简化,照目前情况来看,我一般会采取简化设计,先实现该功能,后期再优化。我觉得这个问题不仅是PM和程序猿的问题,其中业务方也会一直扮演催促的角色,所以PM是在程序猿和业务人员之间起协调、润滑作用。

    来自北京 回复
  4. 前几天喜马拉雅笔试刚做的这个题,要是早几天看到您的文章就好了!

    回复
    1. 继续加油哈!

      回复
    2. 我也做到这个题了……

      回复
  5. 受教了~能否加您qq或微信,方便请教您问题。

    来自上海 回复
    1. 我的QQ:1010219043

      来自四川 回复
  6. 我是从技术转产品,产品与技术之间针对这种问题,我算是比较了解的。产品经理一定要有明确商业目标或者产品规划,之后主要的矛盾点就集中在两点:一是开发难度,二是开发时间及排期。产品经理最好有一定的技术储备,从前端到后台,前端对于安卓、iOS、h5都要有一定的了解,后台至少要对PHP与MySQL,Sqlserver要有一定的了解,移动端的话产品经理本人最好有独自编写和上架的应用。对于研发难度自己要有预判,实在拿捏不准之前最好与项目经理或者开发人员先沟通一下再做设计,一定要多听取技术人员的意见,当然如果自己对技术有所了解,沟通和计划起来会容易很多。

    来自四川 回复
    1. 赞!

      来自福建 回复
    2. 请问:您说的产品经理最好对i那些前端后台的语言要有一定的了解,要理解到什么程度,又有哪些渠道可以去了解学习的?

      来自上海 回复
    3. 我以前是从事iOS开发的,顺便写一点HTML的代码。对于sql和数据库也有所涉猎。从个人角度来看,现在学习和了解开发的渠道很多,w3cschool、极客学院,乃至淘宝都能找到你需要的资源。至于了解到哪一种程度的话,举一个例子,我们现在要做一个IM得项目,要实现查找附近的人的功能,对于技术这一块来说,我首先就会想到MongoDB自带的查附近的人的方法,虽然我不知道具体方法怎么写,但是我知道该功能实现起来很简单,并且有现成的方法可以用就行了。

      来自四川 回复
    4. 大概明白谢谢大牛

      来自上海 回复