首先,我是一名程序员,写了好些年的代码,也跟好些个产品经理打过交道。
一、先来回顾下,别人家的程序员与产品经理打架的过程。
产品经理:这有个需求,老板已经决定了,马上要做,就是APP的主题可以根据用户的手机壳颜色来改变。
程序员:可以啊,那你给我接口。
产品经理:什么接口?
程序员:你不给我接口,我怎么知道你现在是什么颜色手机壳。
产品经理:你不能自动识别?
程序员:怎么识别,你告诉我。
产品经理:那我怎么知道,这个是你们开发的事。
程序员:等一下,你说的手机壳是市面上随便都能买的手机壳,还是官方定制的?
产品经理:市面上随便能买的手机壳。
程序员:这个做不了,没办法识别手机壳的颜色,我连他有没装手机壳都无法识别。
产品经理:都说了,识别是你们开发的事,识别不了就开发一个让它识别。
程序员:md,你当app是狗啊,训练一段时间,就能让它识别红色蓝色。
产品经理:行了行了,都说是你的事了,我不管这些,我说这个功能,要上。
程序员:那你找别人吧。
产品经理:那行,那我找总监,说你完全不配合。
程序员:我配你ma!
干架中...
二、那么问题来了:产品经理又要加需求或改需求了,程序员该怎么办?
答:不答应也不拒绝,直接让他找你的领导,听领导的安排。
为什么要这么做呢?
答:首先,答应了,你自身有任务和工期,你做了这个事情,误了工期,功劳跟你有没关系不知道,但延误项目的锅肯定是你的。直接拒绝,则显得你不好相处。而推给领导,让领导去协调,如果领导接受,增加了相应的时间,则皆大欢喜;如果领导没增加时间,万一到时候真的误了工期,领导也知道缘由。
如果你自己就是决策者,马上面临决策,怎么办?
答:千万不要马上答应,也千万不要马上给出工期。 重要的事情 说300遍 都不算多。很多需求,当你直接想的时候,觉得不难,但是真正落实下来才发现,就会发现在项目中会相互牵扯。所谓牵一发而动全身,说的就是这个事。 你给自己留点时间,详细的考虑下,既是为你负责,也是对公司负责。
另外,要善于给对方制造沉没成本。
动嘴皮子的事最容易,有时候产品经理几句话,程序员就得干好几天,甚至好几十天。最终,如果做出来满足他的需求,那还好说。如果做出来不是他想要的,他再怼一句:我当时明明说的不是这样!
空口无凭,受伤的总是你。
因此,一定要善于给对方制作沉没成本。他提一个需求,你一定要他写需求文档。在写需求文档的过程中,产品经理也会梳理整个功能的逻辑,有助于你后续的开发。同时,有些功能是产品经理异想天开,自己要加上去的。你给他来这一手,他可能会觉得麻烦,就放弃这个需求了。
三、如何与不同类型的产品经理的打交道。
-
市场出身的产品经理,这类产品经理的思维主要是面向市场需要,会根据市场反馈的信息,提出需求,其出发点就是更好的服务市场,而较少考虑,这样做对程序的影响。这类的产品经理,由于缺少技术的思维,如果完全按照他的思路走,那么可能会被带到坑里。但是其实你只要了解到:他需要解决什么问题。并且提出你觉得较好的替代方案,通常能解决问题。
-
技术出身的产品经理,这类产品经理的思维会较为体贴程序员,会理解需求变更对程序的影响,甚至会帮你想好,应该如何实现这个功能。如果遇到这类型的产品经理,那么恭喜你。
-
如果你遇到的是,既不懂市场,又不懂技术的产品经理,还tm固执己见的,那么赶紧撤吧。
四、总结
程序员天天对着电脑码代码,所以很多人觉得善不善于沟通都不重要。但其实你看,与你关系密切的,你的同事、你的领导、你的老板、产品经理,他们都是人。尝试着,去理解你的同事、你的领导、你的老板,甚至产品经理,那么你的路才能越走越宽,而不是只是码代码的码农。