❶ 好累,程序员听不懂产品经理提的需求,问多了,产品经理嫌烦。该怎么办
在我们公司面对产品经理提的需求,我们都有统一的回复:
❷ 产品经理该如何跟程序员沟通
产品经理面试的过程中面试官特别喜欢会问一个问题,如果开发人员以无时间为理由拒绝你的需求怎么办?工作中产品经理和技术人员打交道的次数太多了,行业内也流行着一些图片来调侃产品和技术之间的关系,两者的关系可以用相爱相杀来形容。
之所以这么说有两个理由,相爱是因为两者要互利合作,把老板交给的任务完成,而且只有彼此合作才能让工作进展的更顺利。相杀是因为这两个职业又存在着很大的矛盾,产品经理的需求间接决定了技术人员的工作量,有些技术人员确实对产品经理比较反感。
我也看过一些关于产品与技术如何沟通的文章。这篇文章我想结合我自己的亲身经验,分享一些小技巧,可以当做是保持良好关系的润滑剂。
1
首先我们分析一下技术与产品之间产生矛盾的原因。在分析之前,先设一个前提,每个公司在招人的时候都有其标准,寻找价值观相同的人,所以我一直都相信开发人员并不会无故找理由拖延项目周期。反过来,如果开发人员因为品性而偷懒或者说是耍心眼不干活的话,那就没办法了,个人主观因素太大。
第一种情况是产品经理的需求与开发人员手头的项目撞期了,解决的办法很简单,就是根据需求的优先级来调整开发排期。碰到这种事,有些领导也总是期望产品经理靠着自己的方法解决。但是除了跟上级领导申请调整优先级,没有别的好办法。一个客观事实,公司在多个项目中确实有优先级之分,虽然你自己的孩子自己最看重但是在别人眼里并不是这样。第二个原因是开发人员是按照公司意愿办事,说严重点你总不希望别人因为你的事情跟领导闹僵,搞砸自己的饭碗吧。
第二种情况技术人员并不认同产品经理的观点,虽然产品经理和技术人员各司其职,但是在工作中会碰到有些技术对产品特别关心,如果产品经理的做法自己不认同的话会提出质疑。如果质疑的人是技术老大,产品经理往往会更被动。遇到这种情况我觉得很正常,想办法说服技术人员。
除了搬出之前做的产品分析和用户调研外,我在工作中总结了一点经验,平时可以多跟技术聊聊天,增进彼此了解,观察他们经常上使用的产品,在沟通说服他们的过程中,可以拿他们经常用的产品举例,这样的话他们本身对那个产品更熟悉,自然也更好理解。另外,在跟技术讲解产品的时候也要适当的画饼,描绘一下产品上线成功后的美好未来,这会带动起他们的积极性。
2
产品经理要做好自己的基础工作,这利于给开发人员留个好印象。做好这方面的工作有两点,一是想好产品规划的原由,避免被技术的同学问住。技术人员也特别讨厌产品经理说“某某产品就是这么做的,我们按照他们的做就行了”这样的话;二是写好产品文档,在产品文档中避免有遗漏的地方,特别是一些比较复杂的功能,一定要解释清楚,因为技术人员会遵照着产品文档进行开发,所以说如果有疏漏的地方会增加沟通成本,如果文档写错了,造成开发出来的产品功能不符合预期就是产品经理的责任了。
为了提高文档的可读性,我们也可以多使用图文、流程图的表现形式,如果只是干巴巴的一个word文档,几千个文字,看起来确实很枯燥。
对于产品经理和开发人员来说信任尤为重要,如果开发对产品经理缺乏了信任,结果就是你的话开发人员不会再听了,每个需求他们需要经过你的领导确认后才会去做。获取对方信任的一个很重要前提就是说话算数,当技术人员询问你某一个问题时如果自己没想清楚,可以先暂时别回答,考虑清楚后再说。要是随口一说,过后又让开发人员修改,不仅会造成开发人员返工,这种行为也是非常不负责任的。
即便文档写的再完善,在产品开发过程中也难免需要当面沟通。项目跟进,需要产品经理极大的责任心和积极性。一个项目立项后,公司通常会把参与人员列为一个小组,产品人员需要根据开发排期跟进开发进展,避免开发出来的产品与预期不符,验收产品功能是否与产品期望一致。这个过程产品人员的工作往往会比较繁琐,也会比较忙,当然也会锻炼产品经理的沟通能力。
3
说一下行业内一直讨论的一个问题,产品经理该不该懂技术?我觉得这个问题并没有什么好讨论的,无论是从个人知识量还是从是否有利工作的角度讲肯定是懂技术要更好,而之所以能吸引那么大的热议,可能是由于很多产品经理不懂技术,但是又没有兴趣学习,所以心底一直会纠结这个问题。
从我个人的经验来看,特别是你做项目比较多的时候,会发现懂点技术跟技术人员沟通起来会顺畅很多,一个重要的体现是技术人员也很愿意跟你交流技术实现的一些想法,而不会说“算了,跟你说了也没用”这样的话。
产品经理懂技术还有一个很重要的益处是当业务部门提出需求时,自己就能评估出技术实现的可行性,对于实现起来比较困难的需求自己就可以跟业务部门商量优化方案。而不必每个功能都去询问技术,无形中也减少了技术的麻烦。
不过我跟很多人的观点也一样,产品经理对技术的了解不需要太精通,说到这我还得庆幸自己大学时候学的是计算机专业,虽然学的不好,但对于现在的工作还是非常有益处的。不过我在工作中也会碰到技术人员偶尔说了一个名词自己不理解的,这时候两种办法,要么主动问一下,要么自己去网上查,明白其中的逻辑关系,知道是怎么一回事就好。
毕竟术业有专攻,虽然我们希望知识越多越好,但也别给自己太大压力。况且技术知识也在更新迭代,他们使用的框架也会变化,技术的语言也有很多,如HTML、Java、PHP等,你不可能全都精通。
4
最后说点工作中会遇到的个人主观因素。
当产品经理跟其他部门提需求或是沟通确认的时候也不排除其他同事有未及时回复的情况,为了确保项目上线也为了争取资源,这个时候就需要产品人员更加主动一些,所以产品经理有时候还需要脸皮厚一点。
当提交一个需求给开发部门制定排期,你会发现他们都会把时间定的很充足。也许你会因此对其他同事有看法,但其实在工作中都是这样子,大家都不会把自己的时间安排的太紧张,而且还要考虑过程中可能会出现的风险因素,例如请假的情况。当然也不能把时间定的太长,那样老板该不开心了,所以最好是产品经理根据上线时间与开发人员定一个时间结点,让开发人员在这个时间点前完成即可。
❸ 如何向外行解释产品经理频繁更改需求为什么令程序员烦恼
客户购买产品的出发点都是为了帮助他解决问题,买个10w的车是解决出行问题,买个100w的车是解决应酬问题,买个1000w的车是为了解决面子问题。但是很多客户由于搞不太清楚他面临的问题到底是什么,就导致他们对自己的需求不明确,对于要做什么东西总是模模糊糊没有清晰的概念。此时客户会下意识的将他们想到的功能以不成熟的设计描述出来,并且希望产品那边赶紧出一个demo看看是什么样子。如果做出来的东西恰好能解决他们的问题,那就皆大欢喜(从经验上看,这种概率一般都低于20%),如果做出来的东西无法完全解决他们的问题,甚至都不搭边,这样就会引起更改,有可能不断的重复这个过程。PM的角色应该是通过引导客户对其面临的问题进行详细描述,从而主抓他们主要面临的问题,进而形成一套解决方案。了解客户面临的问题是很关键的一步,因为很多客户对自己面临的问题看的不全面,考虑的不周到,往往只从一个方面描述问题,有很多因素都没有考虑到。如果PM在跟客户确认需求时,没有对客户描述的问题进行深入分析,那么以此设计出来的产品成熟度就很低,需要反复修改的风险就很大。之前听到一个例子很好的描述了这个情况:一对夫妻找到他们的律师决定立一份遗嘱,这对夫妻对遗嘱的描述很简单,就是有一方如果仙逝,则财产全部自动归到另一方名下。此时如果是一个不称职的律师(PM),基本就会按照这对夫妻的描述来起草遗嘱。如果是一个称职的律师(PM)则会想这对夫妻问以下这些问题:律师: 如果你俩同时遇难,财产如何分配?夫妻:财产全部归我两个孩子,一人一半。律师:如果在你们遇难时你的两个孩子都未满18周岁,那财产如何分配?夫妻:额,那个,财产暂时由男方父母代管,18岁时再分配给子女。律师:如果你们的两个孩子先于你们过世,财产如何分配?夫妻:那就捐给基金会。律师:如果你们遇难之后不久男方父母也过世,并且两个孩子都未满18周岁,那么财产如何分配?夫妻:这个。。。额。。。好吧,我们还是决定如果孩子未满十八岁,财产由信托基金代管,Hope信托基金能坚持到两个孩子都满18岁。律师:好的,跟信托基金签署的合同是另外一个topic。如果你俩一方仙逝后,另一放再婚,财产如何分配?妻子:我那份留给两个孩子丈夫:。。。在产品的开发过程中需求变化是在所难免的,好的PM应该能从解决问题的要点出发,尽可能的帮助客户找到适合他的解决方案,同时在跟研发团队设计产品时应该尽可能的让产品模块化,留出可扩展空间,解释清楚每个需求变化的原因,让研发团队了解修改的合理性,以便能尽可能的满足客户需求。
❹ 产品经理和程序员,如何避免矛盾
产品汪和程序猿
一、产品经理和程序员最讨厌的三句话
产品经理和程序员,就像一对情人,若即若离,有时还会撕逼,和谐的时候一切都好,撕逼的时候两败俱伤。
你知道程序员最讨厌的三句话是什么吗?
1、这个需求很简单,改一下就好了
2、你先大概弄一个,我看看再说
3、我先下班了,加油啊
我想任何一个程序员听到这样的话都会气炸了,不撕逼才怪,你作为程序员会如何回答这三句话?
1、这个需求很简单?你行你来啊!
2、大概先弄一个?请问先生(女士),什么叫大概?
3、你大爷的
你知道产品经理最讨厌的三句话是什么吗?
1、这个需求做不了
2、这个需求工作量太大了,估计要搞3个月
3、这个变更没时间做,往后排吧
产品经理在前端,有用户、有老板、有销售,版本发布的压力很大,听到这样的话估计心情也好不了哪去?
1、这个需求做不了?又不是我提的,还不是那个2B用户提的
2、要做这么长时间?养你们有什么用,还不如我自己来
3、变更没时间搞?随便,等老板来拍你吧。
二、产品经理和程序员本质上的差异是什么
奶爸干过程序员,也干过项产品经理,深知这两类工作的差异,各有各的不易。
总体上来看,做产品更侧重于创造和方案能力,不需要精密的逻辑,所以试错成本相对比较低,大不了改改原型,改改方案,这个成本是可承受的。
程序员的工作是非常精密的逻辑,一个看似很小的变更有可能对代码产生很大的影响,所以试错成本非常高,弄不好可能会因为需求的变化导致系统的重构,这时候程序员的挫败感是可想而知的。
三、产品经理和程序员友好相处的清单
1、产品经理收集需求后,在需求分析阶段,需要把一些不合理的需求尽量和用户沟通去掉,避免不合理需求造成产品发布时间延迟和没有必要的成本浪费,当然这需要产品经理去说服用户,不能只做用户的传声筒。
2、需求分析时,产品经理应该根据经验,敏锐的发现一些在技术层面实现有困难的需求,及时让研发介入,评估技术可行性,避免后续出现需求定下来,研发说做不了的情况。
当然这需要我们的产品经理对软件技术架构有一定了解和预判能力,你不能所有的需求都要在需求分析阶段让研发介入,这个成本也是极高的,所以要把握好这个度也是一项能力。
3、原型还是需求沟通的最好方式,这样是避免产品和研发在需求理解上有差异的最好手段,只靠写一些文字的需求说明书很难达到好的效果。
但这里面要注意一点,产品经理绘制出来的原型一般是非高保真原型,是为了更好的沟通需要,所以不能完全按照原型做,需要基于我们自己的前台架构进行定制。
4、需求评审的时候,研发可能会有一些不一样的意见,他们做了很多年的开发,会有很多好的经验,好的经验要虚心接受,不能觉得自己是产品就是老大,就是要按我说的做,这样很容易造成矛盾,求同存异,目标一致,这个是最好的结果。
5、研发说这个需求做不了的时候,有两种情况,一个是觉得这个需求实现起来比较麻烦,故意骗你;另外一种情况就是他的知识盲区,他可能确实不知道这个事能做。
产品经理需要有能力和研发进行谈判,比如采用类比法(类似的需求在其它项目上咱们就做过),比如去找架构师探讨技术可行性。
6、研发有时候评估的工作量会比较大,整个上线计划拉的比较长,产品经理可以要求研发出详细的资源配置清单,这样能清楚的看到一个需求被分解成了多少个研发任务,每个任务的起止时间,由谁负责完成。这样产品经理大概能看出任务的前后置关系是否合理?工作量是否合理等。
产品经理绝不能说,这么简单怎么要搞这么长时间,类似的话一出,绝对会激怒对方,还是要有理有据进行谈判。
如果实在无法压缩工作量,如果增加人力能解决问题的话,可以考虑找领导申请资源。如果还是不行就要砍需求或者改方案了。
7、在版本计划定好的情况,尽量不加需求,这样很容易打乱开发的节奏,如果一定要加进来,一定要和研发说清楚,这个是用户领导或者老板的强制要求,转移矛盾。如果可以的话,增加了需求尽量推迟上线计划。
8、开发过程中如果需求有改动,需要及时更新需求文档,同时发给我们的研发同学,否则只是靠嘴说一下,很可能研发的同事就不做了,所以一定要落到纸面上。
9、上线的时候要坚持和研发同事一起加班,这样大家才是一个团队,赢了一起狂,输了一起扛。
10、最后一点,就是要多交流,没有什么问题是一顿火锅解决不了的,大家关系好了,很多事情沟通起来自然容易,而且也会更信任对方,这样就万事OK了。