漫画:程序员,你能“管理”好你的产品经理吗?

一、第三选择

在工作中,你面对产品经理的各种需求变动、项目经理对关键点的 Deadline,总会有一些冲突发生。而对于事情最终执行的开发人员来说,如果这些冲突处理的不好,可能就会变成你个人的问题。

做为最终实现功能的程序员,你总不会想被贴上一个 “无法按时完成任务的开发” ,这样的标签吧?

这些问题,其实都可以借鉴第三选择的思想来解决。《第三选择》是一本书,作者是 史蒂芬·柯维,我想说到该作者的另外一本书,应该更多人能知道,《高效能人士的七个习惯》。而在《第三选择》中,他把之前的七个习惯浓缩成一件事情,可以说,第三选择是解决所有难题的关键思维。

当我们面对冲突的时候,正常的思路如何解决?

  1. 我打败你。
  2. 我认怂,你打败我。

而站在第三选择的思维下,你还有一个选择:我们共同找到一个双方都能接受的解决方案,达到共赢。

注意,这里的第三选择,绝对不是来自某一方的妥协,或者一人让一步,核心思想是创造力。如何通过第三种选择,双方协同达成另外一个更好的结局。

例如两个人分苹果,一人一半?这个方案对两个人都有亏欠,毕竟我赢了是可以得到一个完整的苹果的。那什么是第三选择?我们把苹果拿出去换点什么,然后再来分,或者把苹果种成苹果树,只要愿意长线投资,最终我们一人可以收获半棵树的苹果。这些都是第三选择,只要双方能达成共识,这是一个双赢的局面。

二、面对产品经理的冲突

那么我们在和产品经理合作的过程中,通常会面临什么冲突?

2.1 现阶段,技术上无法实现的需求

不能要求所有产品经理都是技术出身,当产品经理对技术细节不那么了解的时候,总会有一些异想天开的产品方案。当然有一些并不是技术无法实现,可能是现阶段你的团队实现起来会很吃力,可能会面临一些未知的坑,而导致整个项目进度很难把控。

面对这样的需求,你不要直接拒绝,尤其是不要立刻拒绝,说这个需求做不到,这就把对方推入了冲突的局面。你拒绝他,不做这个需求了,或者他说服你,强行要实现这个需求,这都不是我们想看到的。

那现在冷静一下,想想第三选择?

我想大多数产品方案,其实并不是唯一的解决方案,你总是想到一些更容易实现的方案的。

你可以问清楚对方的真实需求,给出一个你可以做到的方案,而不是直接拒绝对方的方案。

2.2 需求复杂度和开发时间不匹配

当你面对一个过于复杂的需求的时候,可能因为各种原因,给予你实现功能的时间并不宽裕。

这个时候怎么办?自己加班加点完成吗,大家都是程序员,加班写出来的代码具体质量如何我想你也应该心里有点数。你因为加班写出了质量不好的代码,于是上线之后的 Bug 增多,还需要花时间处理,并且新周期新需求也立刻紧跟上来,发现质量不好的代码扩展性差,想重构时间上又不允许,只能打补丁,越干越慢,越干越烂,Bug 越来越多,于是你压力越来越大,被抱怨的越来越多。

现在欠下的技术债务,之后总是要偿还的,否则长此以往,只能是恶性循环。

这个时候直接答应或者拒绝,又会陷入冲突的境地。想想第三选择,你不要直接说 "不"。你应该先了解清楚,他为什么要这么做这个需求?出发点在哪里?目的是什么?当你了解清楚产品经理对这个需求的真实意图的时候,你可以从自己技术的角度,给出一个自己能接受的方案,或者和对方讨论出一个性价比更好的方案。

能讨论出一个大家都接受的方案,固然是好的,但是如果依然很需求复杂,时间和复杂度依然不匹配,怎么办?

可以选择拆分需求。你可以说,这个需求我仔细分析了一下,需要做 A、B、C 工作,以现在分配的时间来说,我只能做到勉强实现 A、B,并且 B 并不保证质量,你看你这个功能,我们能不能拆分成两期来实现,调整一下需求,这样我能保证代码质量,第一期先保证基本功能,上线让用户来验证需求,第二期再根据用户的反馈调整细节。

相信我,产品经理也是有各种压力的,他也需要保证进度在推进,在一个完成和完美的选择中,我想这不难选择。

这里的诀窍是:当我不能完全满足你的时候,我可以选择有条件的满足你。

这样的好处在于,你把选择权留给他了,这一部分压力是你们共同在承担。如果谁对于这样的延长的周期有异议,你的产品经理也会帮你说话,说自己需求设计的很细,所以我们决定按两期来做,这样也显得他对需求细节的把控很有力。

2.3 需求变动太频繁

作为开发,有时候自己写代码的时候,可能写着写着发现最初的方案或者选型不合适了,就会主动去调整代码、重构代码。而产品经理在设计需求的时候,也会有这样的问题。可能是开始没有考虑的那么细,可能因为来自第三方的压力等等问题,种种原因吧,最终导致需求需要调整,而产品方案的调整,在开发周期内,他是没法自己独自调整的,工作压力一定会转嫁到实现需求的开发身上。

首先我想说,需求变动是一定会发生的,所以拥抱变化。

本身在需求排期的时候,开发者就应该预留出一些时间来应对这些变化,可这也架不住产品太频繁的变动,甚至太过分的明天要封板了,今天还在改需求。

这样的情况,你需要做的是尽量和他捆绑压力,既然对方把压力给了你,你要想办法把这个压力还回去,让对方和你一同来分担这个压力。

我通常的做法是:

1、先用快捷的方法实现并上线,后续再要时间偿还债务

我想很多功能,总是有一些粗暴而不优雅的方式来实现,而这些都是技术债务,之后是需要时间来偿还技术债务。

要让产品经理认领这些技术债务,并且必须立刻给予时间来偿还这些债务。

最简单的一个选择是,我可以加班加点以一个比较粗暴的方式完成这个需求,但是面临的问题是后续可能效率会有问题、扩展会有问题等等。这事后,下个周期我需要额外多出一个星期的时间来优化这一段代码,这就是对技术债务的立即偿还。

2、拆分变动

和之前的思路一样,将变动在现有的基础上最小化,以最精简的方式去完成这些变动。

如果没法精简,想办法拆分成二期来实现。

3、增加变动成本,给予对方压力

虽然所有需求上的变动,最终影响的是开发人员,但是并不是说其他人就没什么事情可做了。想办法增加产品经理的变动成本,让他来共同承担压力。

例如:

  • 增加了这个功能,UI 也需要变动,那你能不能和设计师沟通我们这一期就不要扣太多 UI 细节。— 减少沟通成本
  • 这个需求的变动影响了原本的开发安排,你看能不能将另外一个需求(不那么重要)延期。— 置换不重要,但是需要花时间做的事情
  • 这个需求如果遇到这样的情况,是不是没有办法得到处理?— 提醒他完善需求,避免再次改动
  • 这个需求还有一些 "数据" 需要处理,你看能不能手工帮我处理一下。— 给他找点事儿做,有点损,不推荐

写在最后

在工作和生活中,不要把所有事情的解决方案都放在:不(第一选择,要赢)或者 是(第二选择,认怂)上,如果只存在两种选择,很容易就进入一种推拉的环境中,实际上是可以考虑考虑第三选择 。

第三选择并不是某一方的妥协,他的核心思想是创造力,找到新的出路,让双方协同找到一个大家都能接受的新方案。

说了这么多,其实都是《第三选择》的思想,推荐阅读。

今天在公众号后台回复成长『成长』,将会得到我整理的一些学习资料,也能回复『加群』,一起学习进步。

推荐阅读:

原文地址:https://www.cnblogs.com/plokmju/p/8421721.html

时间: 2024-07-31 09:48:52

漫画:程序员,你能“管理”好你的产品经理吗?的相关文章

如何不被程序员嫌弃——写给那些血气方刚的产品经理

进入微软.亚马逊,谷歌等美国IT企业工作人才项目,起薪40万,百度搜索(MUMCS) 最近有位刚做 PM(产品经理)的小伙跑来跟我控诉,说公司技术部的 RD 们(程序员)个个不给力.需求过了千百遍还是理解错,或者就是简单回一句"做不了",表情如死灰. 这位 PM 血气方刚,张牙舞抓,脑子里总有一千万个新产品需求的想法扑腾着.他咄咄不停的抱怨 RD 们不配合,能力差,懒惰,没思考能力,没品位,顺带连抠脚味儿太大这种事也强烈谴责了."擦,老子明天就去学编程!" 哎,我发

黑马程序员-OC内存管理 @property的增强

涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了:当然@property依然强大,很好用: 1:内存管理相关参数: *:retain:  (如果是oc对象类型),生成的setter会自动release旧值,retain新值: *:assign:(适用于非oc对象)  这个是默认的值 *:copy:release旧值,copy新值: @property (retain) NSString *name; // 同类型的参数不能同时写 // @property

负能量程序员杂谈(2)- 管理中的情和义

本系列文章仅从个人有限的对事物的认知出发,如有不同意见,请温和提出态度,毕竟都是成年人,别那么幼稚. 情和义,值千金. 今天和很久没见的朋友L喝酒,L目前是一家不错公司的开发管理,手下10几号开发.中途他给我聊了一个很有意思的话题:公司正在转型,那么由于成本压缩控制会裁掉一些人,由于担心裁人会引发和公司矛盾,所以这种事交于开发小组的小组长负责沟通,有的小组长碍于情面,觉得不好意思落下脸面,他就出马负责和即将被裁掉的程序员沟通.我问他为什么不是HR去搞定这个事呢?他告诉我,之前发生过因为HR去沟通

谈谈程序员的自我管理

 讲到管理,很多人会莫名的涌起一股崇敬感,这大概源于公司的高层,都被称为管理层,高高在上,拿着天文薪水,一天开没完没了的会议,个个看来都很高深的样子. 其实这些只是表面现象,羡慕的来源其实是围城外的人向往围城内的人,围城里面不一定好,举个例子来说,我有些做经理的朋友,不止一次感叹,什么时候能痛痛快快的再编码一次,那可怜的样子真不是装的. 职位越高,责任越大,责任越大压力越大,我们可以举一个例子来说,什么叫责任和压力.比如说今天中午组内成员想去聚会吃饭,大家一致推举你做决策人,你来找地方. 这

《从程序员到项目经理》读后感-程序员的自我管理

(总是会遇到各种各样的事情来牵绊我,周一回家,周二忘记拿电脑,周三有个<GOOGLE测试之道>需要研究,有很多外力要阻拦我继续写博客,捣乱的事天天有,道心要坚定呀,小伙子) 讲到管理,很多人会莫名的涌起一股崇敬感,这大概源于公司的高层,都被称为管理层,高高在上,拿着天文薪水,一天开没完没了的会议,个个看来都很高深的样子. 其实这些只是表面现象,羡慕的来源其实是围城外的人向往围城内的人,围城里面不一定好,举个例子来说,我有些做经理的朋友,不止一次感叹,什么时候能痛痛快快的再编码一次,那可怜的样子

程序员生存定律--管理向左,技术向右

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------- 一个程序员在考虑增值时无法回避的一个根本问题是到底是做技术还是做管理.当然也有些职位会介于两者之间比如架构师,但我们暂时不去做细分,而是用简单的二分法. 这种基本方向上的选择对后续很多细节上的取舍有关键影响,所以在考虑其他之前,最好先回答一下这个问题.这就

一个程序员的时间管理

原文地址:http://www.myexception.cn/other/1391133.html 如果每天都有86400元进入你的银行户头,而你必须当天用光,你会如何运用这笔钱? 天下真有这样的好事吗? 是的,而且这种好事每天都在发生着,你真的有这样一个户头,那就是“时间”.每天每一个人都会有新的86400秒进账,而这86400秒的价值要远远的大于86400元.那么,面对这样的一大笔财富.你打算怎样利用它们呢? 其实吧,我并不知道你是如何利用它们,但我知道我自己是如何利用的,下面把我的一些时间

黑马程序员——交通灯管理

模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: 异步随机生成按照各个路线行驶的车辆. 例如: 由南向而来去往北向的车辆 右转车辆 由东向而来去往南向的车辆 ---- 左转车辆 ... 信号灯忽略黄灯,只考虑红灯和绿灯. 应考虑左转车辆控制信号灯,右转车辆不受信号灯控制. 具体信号灯控制逻辑与现实生活中普通交通灯控制逻辑相同,不考虑特殊情况下的控制逻辑. 注:南北向车辆与东西向车辆交替放行,同方向等待车辆应先放行直行车辆而后放行左转车辆. 每辆车通过路口时间为1秒(提示:可通过线程Sleep

程序员如何修炼管理思维

程序员如何修炼管理思维 1.从个人到团队转变,包容同事,出问题不是指责而是引导:培养人,给每个同事锻炼的机会.以人为中心而不是机器. 2.从专心做好一件事到同时处理多个任务转变,拥抱混乱但不要陷入其中,做好个人的时间管理,把杂乱的任务理清楚才是进步. 3.从关注点到关注面转变,先设计再开发. 4.从说是什么到为什么转变,追根溯源,发现本质. 5.从追求完美到掌握平衡转变.放弃完美是走向完美的路.项目经理最需要平衡,追求完美成本不可控,保持平衡的同时保持迭代,完美是迭代优化出来的. 原文地址:ht