「这个数据我们不落库的」「这个需求你要给数仓再提一个接口需求」「这个数据我们怎么拿到?」「这个你让后端新加一个接口吧,前端不可能分别调用那么多接口的」「什么时机触发呢?写个task我们不太愿意的」……
如果你知道产品经理的实际工作中经常会遇到以上对话,你就会有这个问题的答案了:
第一个问题,产品经理是否需要懂技术:需要,需要,需要!
如果一个产品毫无技术思维,那就不仅是和开发的沟通成本增加的问题了,更会导致你对很多需求的思考都是肤浅的,或者不知道需求提给前端还是后端,或者根本无法把一个需求推进下去。我是电商行业的pm,举个例子大家就清楚了:
收藏商品降价提醒短信。如果完全没有技术思维,你可能会这样给开发提需求:
“若用户在某时间段内收藏了某店铺的商品,当商品发生了降价的时候,那该店铺就自动给该用户发一条降价提醒短信,促其购买”
提完需求你甚至有一丝嘚瑟:恩,功能逻辑提炼的很清楚。谁知道开发反问你:“我们怎么知道哪些用户收藏了什么商品?又怎么知道商品什么时候降价?是轮询某个业务方的接口吗?还是谁把相关数据推送给我们?”
你满脸问号:啥?你是开发啊你问我数据从哪来?当然从数据库里来了啊!轮询啥意思?接口又是啥?推送还是轮询我怎么知道啊?我要找谁?
产品的职责是把需求逻辑从业务层面阐述清楚,但是很多时候也同样需要深入到技术层面,对大体的实现逻辑,数据交互方式有一定「感觉」。这就涉及到第二个问题:
懂技术要懂到什么程度?在我看来,如果目标是:1.不提无法实现的需求;2.不严重妨碍需求的推进;3.和开发能正常沟通不被鄙视,那以下技术概念和基本原理是必须要了解的:
1.接口
可以说是产品在日常工作中接触最多的技术概念了。通俗来讲,接口就是前端和后端,后端和后端之间进行数据交互的传输口,一个接口往往代表一个功能单元。例如,页面上需展示某用户所有的「任务状态」是已完成还是待完成,后端开发就有需要提供一个「所有任务状态的查询接口」供前端调用,前端将「用户ID」传给后端(即入参),后端拿到这个用户ID去数据库对应的数据表中查询这个用户所有任务的状态,并将任务状态返回给前端(即出参),前端将该状态展示在页面上,这就是你看到的「页面展示任务状态」这个功能的前后端交互,是通过接口来实现数据传输的。
关于接口还有一些延伸概念:HTTP接口,rpc接口,接口文档,接口的字段,接口地址等,这里就不再赘述,想了解可以自行查阅。这些概念都是一个合格的产品经理需要搞懂的。
2.MVC模式
非!常!重!要!目前的软件架构都是基于mvc模式的,了解了mvc模式也就了解了系统是如何交互的。m即model(数据层),v即view(表现层),c即controller(控制器即逻辑层),你可以理解为一个程序就是把数据按照一定的数据结构存储在「数据库」中,并通过一系列「逻辑」完成数据的传输,最终「展现」在页面上的过程。我在这里同样只是拎一下重点,具体的内容还是得看更专业更精准的信息。
3.数据库
数据库也属于整个后端的一部分,它运行在服务器上,每个业务都会有自己的MySQL数据库,里面存放着各种各样的业务数据表,后端开发就是通过服务端程序处理业务逻辑,并调用数据库进行各项数据的增删改查。关于这块知识,建议大家没事多看看公司内部的数据表系统,看看各张业务报表的表结构是怎样的,体会这些数据表分别承担着怎样的作用,最好可以学学SQL语句,加深对数据表的理解。
其他相对常见的技术概念:消息队列、日志、SDK、cookie、session、token、hive表、定时任务、HTTP和HTTPS等,也是很有必要去了解一下。
如何学习技术?
大家也看到了,我上面罗列的产品经理必备的最基本的技术常识,并不需要你会亲手写代码。所以那些一上来就买一本「21天上手Java」来啃的产品经理,基本都越学越糊涂,最终因为在工作中用不上而放弃治疗。产品经理在工作中一定需要有「目标导向」的意识,你要清清楚楚想明白你要打成什么目标,再去拆解目标,最终定下方案,否则就很容易走偏。学习也同样如此,产品经理学技术的首要目标是为了工作的顺利进行。基于这一点,一上来就咔咔学编程显然是不明智的打鸡血行为。我本人非技术背景,也是在实践中一步一步摸索从而加深对技术的理解的。我亲身体会的比较有效的学技术的路径是:
1.听一听类似于「给产品经理讲技术」的课程/知乎live,对产品经理需要了解的技术体系有整体的了解。这里我想推荐一下 @唐韧 老师的课,深入浅出而且比较全面;
2.知乎/百度/人人都是产品经理/简书等平台搜一下本文以上技术概念的文章,进一步理解其内涵;
3.工作中留意所负责的每个需求,每个功能在技术上的实现逻辑。只有案例才能真正的把你所学到的理论内化,加深对理论的理解。这个过程中可以多向开发们请教请教,一般而言,开发还是很乐意给对技术有求知欲的产品适当讲解的。
4.到这里可以学一些编程语言,例如JS,Python等等,尝试自己写代码,对加深对技术的理解一定是有帮助的。但我理解这一步是可选项(加分项),产品经理还是要把最主要的精力花在产品力的提升上。
本人某电商公司两岁PM,努力成长中,有任何疑问和建议,欢迎交流~