产品经理怎么和程序员打交道

作者: 伊缘 分类: ||产品经理|| 发布时间: 2013-05-16 14:45

经常有人问我:“嗨,费杰你好!请问阿里巴巴的需求文档怎么写?“,但很少听到人谈:“嗨,哥们你好!请问产品经理怎么和程序员打交道?”你回去稍微琢磨了一下,心里就会得到下面三种情况:

1) 很多产品经理之前就是程序员,所以非常了解程序员是什么样的一个状态;

2) 很多产品经理还停留在关注自己产品规划、设计本身,缺乏对团队配合的思考;

3) 很多产品经理,其实是有和程序员打交道的实践技巧、心得的,但没有重视和分享。

事实上在很多产品研发体系下,产品经理和程序员因为思考方式、关注范围、职能职责的差异,导致了沟通上的困难。如何更好的与程序员建立起一座畅通的桥梁也是每位产品经理需要思考的问题。

一般情况下,产品经理和程序员沟通困难大概的原因:

1、得到信息不对称;

产品经理得到的信息一般集中在:商业需求、商业策略、战略方向、产品规划、运营数据、整体营收、目标任务等方面。产品经理往往在根据公司现阶段的情况,以及市场的竞争情况,做一些产品策略或者一些产品的方案的策划、发起、实施。

所以这个过程中,产品经理扮演的角色是翻译:“市场需求、商业需求”,成为:“产品需求”,所有的信息全部围绕需求本身。为什么要做需求?怎么做需求?先做什么需求、后做什么?基于怎么样一个思路去推送产品进行实施、从一个利益平衡获得空间增长指标后达到另外一个利益平衡。

程序员不一样,很多时候程序员得到的信息是:有一个需求,可能是小需求、产品需求、或大到项目需求,然后得到一系列需求列表,然后产品经理会让程序员看:“需求”哪些通过code改改就可以实现,哪些是需要开发可以实现,哪些是技术或构架或因为成本的原因不能实现。

所以在这个过程中,程序员扮演的角色是翻译:“产品需求”,成为:“技术语言”的评估,所有的信息全部围绕开发需求本身。如何开发这些需求?是沟通数据库增加字段?调用接口?开发新的接口?需要开发组件?重新构架引擎?来实现满足或支撑这些需求?

那这个时候问题来了,很多情况下我们只是把我们当做一个写代码,通过编程语言来操作计算机完成需求的工具了。

2、沟通语言不对称;

说到两者沟通的语言,这肯定是困扰产品经理本身的。产品经理的语言是:“描述“、”形容“,我也见过很多产品经理,很多人的需求文档就是漫天飞舞的文字,一整段的描述+描述,不要说程序员看不清,可能过段时间练自己都看不清楚。除了书面语言,产品经理的沟通语言也是含糊的,没有太多的逻辑去组织,很多时候总是试图去述说一个需求,被程序员的一个计算机术语而打断。

程序员的语言,更偏向于技术化。很多产品经理做过技术,有技术背景,但是还有很多产品经理不懂得技术。所以在这个时候,程序员在解说或回答一个需求的时候,会把自己习以为常的变量、函数、实现方式说出来。于是很多产品经理听到:“Sdk、webshell、select、api、组件、插件、控件“等等的时候会云里雾里,

那这个时候问题来了,很多情况下我们总站在自己的立场上、自己的世界里认为别人也懂自己在说什么?实际呢?大家都是听得一半一半,沟通没有彻底到位。

3、思考角度不对称

产品经理思考的角度在于产品本身,对技术的细节、技术的性能没有太多的发言权。很多产品经理要是的实现的业务逻辑,不管程序员是采用:c++ 、java、php、Python、找开源代码改的,还是自己写的都没有关系。程序员只要在约定的时间里,把约定的业务逻辑开发出来就可以,产品经理不去会考虑目前服务器的配置、程序员手上任务的配置、技术能力的情况,要的是结果。而且很情愿的认为团队中的工程师都是世界上最好的工程师,想做什么都可以做,对因为技术原因而不能支持实现需求不能接受。

程序员思考的角度有点区别,我也看到不到程序员本身对产品追求完美对需求的背景、意义去研究了解;但很多程序员还是停留在自己接单子任务一样来一个做一个的境界,做好了自己玩自己的。程序员考虑程序实现的方式同样的一个请求是get还是post,程序员考虑代码的性能,从而采取不一样的方案去实现需求,考虑并发的量力和安全性。但是很多情况下,程序员对技术的理解会导致有一些业务需求满足不了,不是因为不能实现,是因为实现了觉得是废代码,或者构架不完美了。

那这个时候问题来了,很多情况下到底倾斜谁的立场上思考问题?我之前也会碰到很多情况程序员就程序的角度说业务需求不合理,产品经理说程序员消极罢工、霸得蛮。

4、考核标准不对称;

谁也不尿谁,哼!你能把我怎么样。产品经理和程序员有为完全沟通或误会的时候,极端情况下,有一方会罢工。这个时候主要是2个角色的各个考核标准不一样,所以在很多情况下显得非常的无奈。

产品经理很可能考核的是方案和上线的时间、产品上线后的数据;而工程师考核的是程序的性能、很多时候产品经理催的急要的急,但程序员每天的时间有限,还是得慢慢构架慢慢开发,程序员开发时间少了,未知的执行BUG没考虑过是要负责的。

这个时候问题又来了,产品经理天天干着急!咋办?

以上是我结合几年来的工作经验总结出来的,当然这4大因素把很多共性的因素概况进来了。当然过程中还是会因为很多产品经理或程序员本身(个性)的沟通技巧、态度、情商等因素导致的沟通不倡,影响了彼此之间的默契。

其实仔细的分析一下,产品经理和程序员打交道的过程中不管是共性的因素还是个性的因素,也不是想象中那么困难。通过一些努力之后,我们总是会找到一些快速和程序员建立沟通桥梁的办法。我个观点如下:

1、 要看到项目层面,不要只看需求本身。

上面说到的几点不管是:“信息不对称“、”沟通的语言不对称“、”思考角度不对称“还是”考核的标准不对称“是我们常见的几个客观隐私。把几个因素抽取出来剖析,发现还是由于我们站问题的视角的高度不一致造成的。

产品经理只是看到自己得到了商业的需求,策划了产品的需求,接下来会把很多事情抛给程序员做了,那还是站在需求方的角色中。那如果真正的是站在意识层面的项目经理的角度,这个时候看待问题的思维会广很多。

这个时候你就想着为了做这个项目这个需求,程序员是不是明白了为什么要做?是不是对这哪些需求的优先级有了重要的认识?作为产品经理我用怎么样一种表达方式程序员更明白?是不是需要把时间点等划定?目前程序员的资源和服务器情况允许他们能做的空间是多大?怎么样才能拉动他们的积极性更好的完成这个项目?

对产品经理来说,同样张罗一件事情,同样会了得到一个结果,但是中间的过程很可能是完全不一样的。所以因为思考角度仅仅从做完一个需求死磨硬泡上升到,站在项目的角度去考虑各个关节的风险点、时间点,得到的效果是完全不一样的。

2、从理解程序员开始,换位思考会更好。

一直在问一个问题:“程序员是什么一群人?“就和问自己:”产品经理是什么一群人?“一样,有点好笑、有点幼稚。从小工到专家,从CSDN到走出软件作坊,发现很多很多非常优秀的程序员的心声。

程序员是什么样一群人?像切西瓜一样一刀一刀切:

写php的

写Java的

写windows C的

写liunx C的

写C++的

编程水平一般的

编程水平还行的

编程水平牛逼的

编程水平大师级的

构架牛的

数据库牛的

勤奋的

懒于思考的

不会JavaScript的

积极的

喜欢钻研的……

好像都不太合适,因为你找不到解决和工程师沟通的好的办法。而且这些很多是外在的条件,随随都在改变。看到很多朋友一年之间经历几个大项目水平突然猛进,态度、一些特点也变得完全不一样。这个时候你需要的是了解和掌握程序员,作为职场的人,和我们一样的人共同需要的一些特点。

如:

1) 是不是特别想被人技术肯定、获得尊重;

2) 是不是想给产品提供自己的建议,而不是仅仅做一个编程的机器;

3) 是不是不仅仅和人任务指派,需求更多的和谐的人与人之间的沟通建立。

4) 是是是需要别人的帮助,让他在非技术领域获得真知。

看到很多产品经理朋友和程序员打成一片,和程序员一天聊天、抽烟、一起下班打游戏、打球,甚至有些时候产品头脑风暴的时候要去几个有产品情节的工程师参与前期的讨论,效果都不错。可能这些现象从另外一个层面来解决我们上面的一些疑惑。

3、产品经理要改善心智,不断自我学习。

最近突然觉得说得想的,有点像哲学。群里的一个朋友说了, 其实哲学就是我们生活一些事情表现出来的道路。产品经理跟程序员打交道也好,对待生活也好。我个人认为是产品经理对哲学的认识、理解、应用。

产品经理越往老练,越往下走,抛开产品技能本身,沉淀商业&人脉资源都需要以一种良好、可靠的思维方式去支撑,也就是所说的心智模型。不断的学习,起码在这篇《产品经理怎么样和程序员打交道》中,程序员常用的一些技术原理、技术术语得去学习一下、研究一下。是不是?OK!本篇到此!