产品经理说的和工程师听到的为什么总是两回事

有个场景在金融科技公司几乎每周都会上演:产品经理说"这个需求很简单,就是加个按钮",工程师听到的是"又要改架构"。

会议室里的氛围瞬间凝固。产品经理觉得技术团队在找借口,工程师觉得业务方根本不懂技术。双方都没说错,但都没说对。

这不是沟通技巧的问题,是认知框架的断层。

 

信息在组织边界丢失

 

我观察过一个现象:同一个需求,产品经理在需求评审会上讲五分钟,工程师回去讨论要两小时。

不是工程师理解力差,是信息在跨部门传递时发生了质变。

产品经理说"支持用户自定义理财目标",他脑子里是一个完整的业务场景:用户设定目标金额和期限,系统推荐合适产品,定期提醒达成进度。这个场景在产品原型里是完整的,在用户故事里是清晰的。

但工程师听到的是什么?

前端听到的是:新增表单、字段校验、状态管理、埋点上报。后端听到的是:数据库表设计、接口规范、权限校验、数据迁移。全栈工程师听到的更复杂:前后端联调、缓存策略、异常处理、监控告警。

同样五个字,解析出来的工作量相差十倍。

这就是组织边界的代价。产品经理思考的是"用户价值",工程师思考的是"技术实现"。两者的抽象层级不在同一个维度,信息当然会失真。

更糟糕的是,这种失真往往到项目中期才暴露。

产品经理以为工程师理解了需求,工程师以为产品经理理解了复杂度。双方都在自己的认知框架里"脑补"了对方的部分,直到上线前一周发现:做出来的东西和预期的根本不是一回事。

然后就是扯皮、加班、互相埋怨。

 

优先级的隐形战争

 

还有一种更隐蔽的冲突:优先级判断。

产品经理说"这个功能必须这周上线",工程师说"技术债不还系统要崩"。谁对?都对。但资源就这么多,总得有个先后。

我见过最典型的场景是2021年的一次需求评审。业务方要求在理财详情页增加"实时收益跳动"效果,产品经理说这个能显著提升用户留存。工程师说现在页面性能已经在边缘,再加动画会影响首屏加载。

讨论了一个小时,没结果。

产品经理拿出数据:友商都有这个功能,用户反馈也期待看到实时数据。工程师拿出监控:页面LCP已经接近3秒,再加计算逻辑会更慢,影响核心转化漏斗。

两边都有道理,但立场不同。

产品经理的KPI是功能上线和用户增长,技术债不在他的考核范围内。工程师的职责是系统稳定性和性能,短期功能增加不会改善这些指标。

这不是态度问题,是利益分配问题。

很多技术Leader试图用"大局观"来解决这种冲突——"我们要以公司利益为重,个人KPI不重要"。这是正确的废话。KPI是公司定的,利益是公司分配的,你让员工牺牲自己的考核指标去"顾全大局",凭什么?

真正的解决方案不是道德说教,是机制设计。

要么调整KPI,让产品经理也对技术健康度负责;要么明确决策权,技术质量问题技术说了算。但大部分公司都不会这么做,因为这意味着打破现有权力结构。

于是优先级的战争就变成了持久战,每次需求评审都要重新博弈一次。

 

语言的巴别塔

 

还有个更基础的问题:产品和技术说的不是同一种语言。

产品经理说"这个逻辑很复杂",指的是业务规则多,分支多,特殊情况多。工程师说"这个逻辑很复杂",指的是算法复杂度高,状态机层级深,需要重构架构。

同样一个词,含义完全不同。

我遇到过一个经典案例。产品说"用户可以随时修改理财目标",听起来很合理。但工程师一问:已经生成的推荐记录怎么处理?历史数据要不要同步修改?如果用户在推荐结果页修改目标,页面要不要刷新?

产品愣了:"这不是显而易见的吗?"

工程师说:"一点都不显而易见。你说的'随时',是实时生效还是异步生效?你说的'修改',是覆盖历史还是新增版本?这些都影响技术实现。"

这种对话在跨部门协作中天天发生。

业务语言是模糊的,因为它要描述真实世界的复杂性,必须留有余地。技术语言是精确的,因为它要转化成代码,不能有二义性。

当模糊的业务语言遇到精确的技术语言,冲突是必然的。

 

你看不见我的成本

 

更深层的问题是:双方都低估了对方的工作难度。

产品经理觉得"不就是改个字段吗,怎么要三天?"工程师觉得"不就是画个原型吗,怎么要两周?"

本质是对彼此领域的无知。

产品经理看到的技术工作是:写代码、改数据库、发布上线。他看不到的是:代码review、单元测试、集成测试、灰度发布、监控配置、文档更新、技术方案评审。

工程师看到的产品工作是:画原型、写文档、开会。他看不到的是:用户调研、竞品分析、数据分析、需求优先级排序、与业务方扯皮、向上汇报、向下宣讲。

都只看到对方的表面工作,看不到水面下的冰山。

这种认知偏差导致一个恶性循环:产品觉得技术总是拖慢进度,技术觉得产品总是拍脑袋提需求。互相指责,互不信任。

我见过最极端的情况是,产品和技术团队各自建了钉钉群,专门用来吐槽对方。这已经不是协作问题,是组织文化问题了。

 

根源不是人,是结构

 

很多技术Leader试图通过"改善沟通"来解决跨部门协作问题。

组织联合需求评审会,强制双方多交流;推行敏捷实践,让产品经理坐到工程师旁边;甚至安排team building,增进感情。

这些都有用,但治标不治本。

真正的问题不是人的问题,是组织结构的问题。

当你把产品和技术分成两个部门,各自有各自的leader,各自有各自的KPI,就注定了利益冲突。产品经理对功能上线负责,技术对系统稳定负责,这两个目标天然矛盾。

你不能指望靠"沟通技巧"来解决利益冲突。

我观察到一个有意思的现象:在小团队或初创公司,产品和技术的协作往往更顺畅。不是因为人更好,是因为组织更扁平,决策链路更短,利益更一致。

大公司为什么容易出现部门墙?因为组织规模大了之后,必须分工,分工就意味着边界,边界就意味着摩擦。

这不是管理能力的问题,是组织演化的必然。

但这不意味着我们无能为力。

 

全栈工程师是润滑剂

 

我的观点可能有争议:全栈工程师在跨部门协作中有天然优势。

不是因为全栈工程师技术更强,而是因为他们理解完整链路。

当产品经理说"加个字段",前端工程师想到的是页面表单,后端工程师想到的是数据库设计。全栈工程师想到的是:这个字段从用户输入,到前端校验,到后端接口,到数据库存储,再到查询展示,整个链路会影响哪些模块。

这种"全局视角"让全栈工程师更容易发现潜在问题,也更容易理解业务诉求。

我不是说每个工程师都要变成全栈。专精有专精的价值,深度不可替代。但团队里如果有几个能"翻译"业务语言和技术语言的人,协作效率会高很多。

这些人不一定要写全栈代码,但必须理解全栈逻辑。

他们能在需求评审会上帮产品经理把"用户故事"翻译成"技术任务",也能在技术方案讨论中帮工程师把"技术复杂度"翻译成"业务风险"。

这是一种稀缺能力。

金融科技公司尤其需要这种人,因为业务规则本身就复杂,合规要求又严格,纯前端或纯后端的视角很容易漏掉关键点。

 

机制比意愿更可靠

 

回到根本问题:怎么改善跨部门协作?

我的答案是:别指望改变人的意愿,改变工作机制。

机制1:前置技术评审

不要等需求文档写完了才找工程师评审。在产品构思阶段就让技术参与,讨论可行性和技术风险。很多需求在设计阶段就能发现问题,比上线前才发现成本低十倍。

机制2:透明化工作量

工程师说"这个需求要三天",产品经理往往将信将疑。怎么办?把任务拆解到小时级别,列出每个环节的工作内容,透明化成本。不是为了证明自己没偷懒,是为了让对方理解复杂度。

机制3:共担风险

产品和技术的KPI应该有共同部分。如果产品经理也要对系统稳定性负责,他就不会无限制地堆需求;如果工程师也要对功能上线率负责,他就不会无限制地拒绝需求。利益一致,才会真正协作。

机制4:灰度决策权

不是所有决策都要共识。有些事该业务说了算(比如功能优先级),有些事该技术说了算(比如架构选型)。界定清楚决策权,避免无休止扯皮。

这些机制都不复杂,但执行起来需要管理层的决心。因为这意味着打破现有的权力结构和利益分配。

大部分公司做不到,所以跨部门协作问题会一直存在。

 

接受不完美

 

最后想说的是:完美的跨部门协作不存在。

只要有组织边界,就有信息损耗;只要有分工,就有利益冲突;只要有人,就有认知偏差。

技术Leader能做的不是消除这些问题,而是建立机制,让问题在可控范围内。

承认产品和技术的立场不同,承认有些冲突无法调和,承认协作本身就是妥协的艺术。

当你不再追求"完美理解"和"无缝协作",反而能找到更务实的解决方案。

产品经理说的和工程师听到的,永远会有偏差。但如果偏差在10%以内,而不是100%,这个团队就能正常运转。

这就够了。

You voted 5. Total votes: 26

添加新评论