作者背景:大学主修人机交互设计,学过编程和设计理论,毕业后成为交互设计师,出于兴趣,自己写过代码,目前任产品经理。
记得刚当产品那会儿,每次有个新想法,总会跑去问一个技术前辈,这个可以实现吗?前辈的回答总是那么霸气:只要你能想的出来,需求够明确,都可以实现。然后会补一句,只是值不值得做而已。
从前辈的话,我学会了一个思维方式:真正决定一个需求轻重缓急的是”性价比“,而非单方面的时间成本、人力成本等。是你对该需求预估的性价比,也就是所付出的研发成本与预期产生价值的衡量,技术从来不是做不做某个需求的原因。
打个比喻,如果一个需要1个月研发,预估能覆盖90%用户,能直接产生收入的功能,和一个需要花一周,预估覆盖10%用户,盈利不清晰的功能,虽然在实现周期和难度上,前者难,且需要时间周期更长,但是综合评估,其性价比较高,所以,前者优先级应该定的更高。
所以,为什么需求那么难实现,甚至”不可能实现“,我们都还要去推动落地,就是因为,综合衡量之后,我们发现,这个需求的性价比很高,或者,我们可以换个实现方式,让需求性价比变高。以下从我个人经验总结,程序员一般说”无法实现“的原因,以及可能的解决方案:
原因一、新旧版本兼容问题。
1、在游戏中常见由于新旧版本用户匹配到一起玩,但是新版本用户具备新功能,而旧版本用户不具备该功能,甚至当新版本用户使用该功能时,旧版本无对应处理逻辑而造成BUG。而一次性将所有用户强制更新至最新版本的成本过高(ios用户需要卸载重装),因此,此类功能常被降低优先级,成为“目前无法实现”的功能。
解决方案:在上新功能之前,先上一个版本,解决旧版兼容问题,当旧版本对新版功能可进行识别并兼容之后,再将新版功能更新出去。
2、旧版无埋点,或预埋字段。造成新的数据无法统计,或无法分类展示。比如新的战绩想按玩法来分类展示,但原本的战绩记录并无记录玩法信息,当新功能上了之后,原有的战绩无法被分类,造成统计和展示错误。
解决方案:此类可从产品方案上做兼容,即将旧版无此字段的记录,此类情况,需先将所需的字段记录补齐,当数据基本上可支持筛选时,再讲筛选功能更新上线。
原因二、产品逻辑过于复杂,需求不明确,或实现成本过大。
在棋牌游戏中,陪打机器人是非常重要的功能,但对于一个新棋牌项目来说,如果从零开始做一个陪打机器人,其难度非常大。此时,若产品经理直接对研发说,需要一个陪打机器人,那么研发很可能直接回应,做不了。
解决方案:明确需求,拆分版本实现。我相信,如果产品经理给出的需求中,可以把机器人的细化逻辑梳理清楚,开发是可以实现的,最多只是时间问题。而当产品自己也无法描述逻辑时,研发无法实现,是正常不过的事情。所以,从核心逻辑开始,一个版本一个版本的进行迭代,从简单到复杂,是比较好的办法。
原因三、对数据实时性的过高要求,造成数据库访问压力问题。
例如:无需用户触发刷新,用户停留在某些页面时,均可实时获取全部最新数据。类似此类需求,当用户量一增大,非常容易造成服务器崩溃。且高频刷新大量数据,性价比其实不高。
解决方案:此类需求需注意控制实时数据的量级,或者停止实时刷新的时机。
原因四、第三方插件、无对应接口,无法调用
一个最简单的例子,微信中,任何web 页直接调起APP的接口,只对腾讯内部应用和游戏开放,其他厂商无法使用该接口。这就直接导致了,分享链接到微信中,无法点击直接打开APP。此类问题除非推动第三方支持开放对应接口,否则无法解决。
网友评论