Hi!请登陆

产品经理与程序员之间的孽缘发展历程,原来从那个时候就开始了

2021-2-24 39 2/24

在互联网的时代,产品经理和程序员无疑是这个时代里出镜率最高的两个两个职业,这两个职业之间的互怼,扯皮与冲突,正是流传于各种社区的职场话题与段子中最为常见的。比如

我司程序员和产品经理打架,公司给出的处理规则是,要么两人都辞职,要么就牵手一下午。于是... ....

“我们保证不改需求了!”“你们立字据!”

工作交流如此频繁的两个岗位之间出现各种故事都是正常的。

两个职位故事与争端的交织点:需求能否实现,能否如期交付,需求能否不再变化。

产品经理和程序员职业区别

对于程序员来说,他们的技能似乎太好定义出来了,只要“会写代码”就OK了,当然根据程序员的水平不同可以划分成菜鸟和大神,但是必要的条件真的就只是“会写代码”而已。

而对于产品经理来说,技能的准备似乎就更为简单了,因为“人人都是产品经理”,所以似乎技能上的壁垒对于产品经理几乎是没有的,当然,在招聘的职位描述里,我们往往还会补充上“具有良好的沟通能力”以及“对互联网产品有着深入的思考”等等。

无论是产品经理还是程序员,似乎在合作推进软件项目这件事情上,除了招聘启事上可能写过的“具有良好的沟通能力和协作精神”之外,一切就只能靠着从常识与基础教育之中获得的感悟了。

“需求”生产流水线

回想一下产品经理与程序员的日常,我们会发现,大家总是围绕着“需求”在推进事情,产品经理要把“需求”交给程序员,而程序员则是要写个“需求”,之后又会把“需求”提交测试。产品经理与程序员,其实就是这个把需求转化为产品的生产线上,最为核心的两个零件。

软件业是一个非常年轻的领域,随着互联网的繁荣和普及,更是让这个领域尚未长大就要面临如潮水般涌来的需求和问题。面对软件项目,当我们无所适从时,成熟高效的工业生产正是最合适的参考,我们自然而然就会把工业生产的过程类比到软件的开发过程,当然也就不约而同把工业生产线在脑海中的共同印象变成了对于软件开发过程的认知。

流水生产线的类比,正是我们对软件开发的基础认知,今天的企业在推进软件开发时,如何对部门进行划分,如何对职责进行界定,如何分配每个角色的任务都是在努力的把从原始需求到上线产品这整个过程流水线化。然后落地的工作,就是顺着这个流水线的方向把整个项目拆解成不同的工序,分工给不同的角色,当然既然大家都是在做软件,除了业务本身的差别之外,其他的工序和角色都是基本相似的。这些相似的角色缩减到最简单的版本,就是产品经理和程序员了。

在流水生产线的思维模型里,我们认为可以把产品经理和程序员的工作拆解开,把产品经理的完成的东西传送给程序员,然后程序员完成的东西再给产品经理,如此来回流动,就生产出了最终的交付产品。

一个可以高效运转的生产流水线,各个环节之间需要尽量减少耦合,换句话说,从前一环节拿到的东西需要十分可靠,不再需要退回去返工甚至重新加工,在流水生产线上一些不良品一般也是通过专门环节过滤掉。流水生产线的这种运作方式,放到了软件的开发这里,作为一个对于现实的预期时,就差得比较远了。

互相攻击与甩锅的背后

无论是产品经理交给程序员的产品原型与设计稿,还是程序员部署给产品经理的测试版本,相信是没有哪个产品经理和程序员会认为对方交给自己的东西是“可靠”的。不过无论是产品经理和程序员都期待着自己在一个平滑可靠的流水生产线上呀,而且deadline还在步步紧逼,于是这两个角色之间的互相攻击和甩锅就开始了。

软件项目的开发,与工业化生产,最大的不同点在于,即使是类似的应用场景,在实际的开发中即使不考虑开发者的不同,也会有着非常大的区别。工业时代辉煌的流水生产线所解决的问题是大规模的标准化的生产,而软件时代的核心的问题则是各种非定制化与个性化的问题。在生产线上我们很容易根据流水生产线的效率和时间计算出产能和交付的时间,而到了软件项目中合适交付甚至交付的东西到底是什么,都变成了玄学问题。当我们习惯地以流水生产线的预期参与到软件项目时,现实就会让参与的人员无所适从。

总结

应该说,面对滚滚而来信息与科技的洪流,工业化的思维是一个大过渡的起点,在前行的过程中反思,才能让我们从逐渐失配的工业化思维模式之中解绑出来,让各位产品经理和程序员远离内卷的漩涡,不再作职场段子的主角,走向新的篇章。

相关推荐