找回密码
 立即注册
首页 业界区 业界 技术管理:产品经理PM和技术开发人员RD之间常见的矛盾有 ...

技术管理:产品经理PM和技术开发人员RD之间常见的矛盾有哪些

溥价 2 小时前
产品经理PM和技术开发人员RD之间常见的矛盾有哪些,及一些解决方法简介。
一:需求频繁变更

在软件产品开发过程中,变更一些需求是无法避免的,但频繁的需求变更,不仅让开发团队疲于应对不断变化的需求,严重影响项目完成的进度,还会影响开发团队人员的士气。
在前面的文章中也讨论过一些需求频繁变更的情况和处理的简要方法。
下面进行需求频繁变更的原因详细分析。

  • 需求管理混乱
产品经理对于需求的管理很混乱,没有一个统一的标准,集中管理需求的地方,比如用某一个软件或工具来建立需求池,并分门别类,重要程度等进行分类管理。

  • 领导、老板想法变了
领导或老板的想法跳跃,早上看了一个 App 的功能觉得好,下午就让团队加上。或者老板直接干预细节:“这个按钮颜色我不喜欢,改一下”,加塞需求。
或者,它们突然想到了一个好的想法或功能,要求马上实现。

  • 市场竞争环境变了
公司突然发现竞争对手的产品上线了一个杀手级功能,或者改变了补贴策略,我司必须立即跟进,否则会流失大量用户。
这种需求变更确实是紧急、优先级高的需求。
还有探索型的项目,需求频繁变更不可避免。需要不断的探索来加深对用户、对市场的认知。有一个认知循环,不断加深的过程。
这也是精益创业的一个过程。MVP -> 度量 -> 反馈,然后进行优化,然后循环。

  • 用户反馈与数据验证
产品功能上线灰度测试后,发现数据惨淡,或者用户反馈极差。原来的假设被推翻,必须立即调整交互或逻辑。
这种基于数据或用户反馈的需求变更,是有必要的。
这种在创业公司初期 MVP 验证阶段用的很多,可能一个 APP 的方向要改很多次,才能找到合适的 PMF 。这种情况需求变更是无法避免的。
其实,这也是敏捷开发的初心。

  • PM 考虑需求场景不全
产品经理在编写需求文档的时候,只考虑了部分场景需求,没有考虑全所有场景的需求。或者只考虑了正常的流程,没有考虑全异常的流程。
当开发人员编写代码时候,可能会察觉需求文档描述需求不全。 等等这些都会导致需求变更。

  • 业务或市场加需求
业务部门或市场部门时不时的加一些需求进来。
解决方法


  • 用可视化排期看板,让相关方看到需求变更的影响
  • 重要的需求变更,需要需求评审委员会评审,评审变更流程
  • 建立需求变更影响评估机制(时间 / 风险 / 成本 / 需要牺牲的利益)
  • 敏捷开发模式,比如 scrum ,kanban 等开发方法。
  • 产品经理多思考一下反流程怎么办,出现异常怎么办。 所有需求要经过产品经理过滤和优化。
可以用 scrum,kanban,精益产品开发方法来解决。
二:需求模糊、不清晰

产品经理可能用抽象描述代替具体规则(如“用户体验要流畅”“按钮要显眼”),或未明确边界条件(如“支付失败时的提示语”)。例如:
需求文档仅写“支持批量导入数据”,但未说明文件格式、大小限制、错误校验规则;
需求描述不清晰,开发人员就需要反复追问细节,猜测产品经理的意图,最终实现效果可能与预期不符。
下面进行详细原因分析。

  • 一句话需求或产品经理没想清楚
一句话需求,老板、业务部门等等相关部门或人员提的一句话需求,比如 “大概就是这个意思”,“先做出来看看”,“需要一个统计功能” 等话语。
老板或业务部门把这种一句话的模糊想法当成了开发人员能执行的开发需求。
从需求到开发,这中间有一些步骤和流程,再怎么省略中间步骤,也要经过产品经理把这样的一句话需求写出一个可供开发执行的开发需求。
用户需求(用户) -> 产品功能需求(产品经理) -> 可执行的开发需求(技术开发)。
对于一个需求,产品经理要考虑:

  • 用户的本质问题是什么 - 分析本质问题
  • 产品目标 - 要解决用户什么问题
  • 实现方案 - 怎么解决

  • 把用户说的方案或目标当成需求
最著名的一个例子就是福特造车的例子。在当时的时空环境下,问一个人更好的交通工具时是什么?用户会回答:更快的马车。用户为什么会这样回答?因为当时很多人没见过汽车,但是见过马车。
“更快的马车”,其实是一个方案。这不是一个需求,如果当成了需求,那么福特就会去造更快的马车而不会造福特汽车。
那用户的本质需求是什么?
是从 A 地快速的移动到 B 地。是快速方便的到达目的地。马车只是其中一种交通工具,及是一种满足用户需求的方案。而汽车是一种创新的方案,更好的方案。
我们要仔细思考用户的本质需求是什么?而不光听用户说。
没有满足本质需求的好方案,可能会导致方案修改增多。

  • 边界条件和异常情况未定义
产品经理只关注了主流程,对于一些异常情况或边界条件,未考虑到。
产品经理的思维要养成好习惯,要考虑正常的流程,同时也要考虑异常情况的流程。
解决方法


  • 标准化需求结构或模板
标准化需求最小结构:1、目标&背景 2、用户场景 3、核心规则 4、边界&异常 5、验收标准

  • 用户故事梳理需求
一个完整的用户故事,应该包含三部分内容:用户、功能、价值。

  • 用户:是谁要用这个功能;
  • 功能:具体是什么功能;
  • 价值:通过这个功能,用户能获得什么价值;
最后用用户故事地图串联起来所有的用户故事。用用户故事地图帮助我们确定目标用户、需求的范围、产品价值和需求优先级。更深刻的理解用户需求。

  • 用例(Use Case)分析需求
用例是一种描述需求的方法,用例描述了在不同的条件下,系统对参与者的请求做出的响应。用例通常通过一个参与者(Actor)(谁?)向系统做出请求(要做什么?),系统根据参与者的请求,在不同的条件下,执行某一行为序列(系统怎么满足?)。
每一个行为序列可以称之为一个场景(Scenario),一个用例包含多个场景。场景也可以称之为用例的一个实例(Instance)。

  • 需求评审
需求评审委员会对需求进行评审。
上面2大类就是对需求的分类和怎么进行需求分析,才能获得用户本质的需求,进而给出好的产品解决方案。
三:排期和进度评估分歧

产品经理和开发人员在排期与进度评估上的分歧是产品开发团队中最常见问题之一。核心原因是双方站的视角、关注的重点和承担的风险完全不同。
在进行任务排期的时候,产品经理希望产品功能能够快速上线,抢占用户市场,倾向于压缩开发时间。
而技术开发则是基于实际的开发任务、开发流程有多少个步骤来进行评估,比如技术架构设计、写代码、联调、测试、修复bug、优化代码等步骤。
举个例子:
比如产品经理要求 2 周内上线,但是开发评估实际上线时间需要 4 周,因为还开发流程所有步骤,还有其它依赖项。
下面对各方面原因详细分析:
方面PM 的视角与动机RD 的视角与动机导致的分歧表现目标导向商业驱动:尽快上线抢占市场、满足高层期望、响应竞争。技术驱动:确保实现质量、可维护性、避免技术债、降低后期维护成本。PM 觉得 RD 估时太保守、拖进度;RD 觉得 PM 估时太乐观、不切实际。信息不对称更了解市场、用户反馈、竞品动态、业务价值,但对底层技术实现细节了解有限。更了解技术难度、潜在风险、历史遗留问题、第三方依赖,但对商业紧迫性和市场竞争激烈的感知较弱。PM 常低估技术复杂度;RD 常忽略商业压力。风险认知风险主要在“错过市场窗口”“用户流失”“高层问责”。风险主要在“系统崩溃”“技术债爆炸”“上线后加班修复”“被背锅”。PM 愿意承担一定技术风险换速度;RD 倾向保守避免过多的风险。估时经验估时多基于历史类似功能或直觉,容易遗漏边缘案例和技术细节。估时基于具体实现路径、代码量、测试覆盖、集成难度,常会预留缓冲(buffer)时间给突发情况。PM 给的 deadline 常比 RD 估时短 30%-100%。激励机制绩效常与“按时上线”“功能交付数量”挂钩。绩效常与“bug 率”“代码质量”“系统稳定性”挂钩。PM 有动力压缩时间,RD 有动力预留余地。解决方法


  • 三人估时法:PM+RD+TL/架构师共同估时
PM(产品经理)提供业务背景和需求优先级,RD(技术开发)详细拆解技术需求为更小的开发任务并估时,TL(Team Leader) 或架构师把关各种风险。三人讨论,达成共识后记录为正式估时,任何一方后期不得单方面修改。避免 PM 单方面拍脑袋决定项目 deadline,或 RD 单方面保守估时。

  • 规划扑克
详细的扑克牌估时可以看这篇文章:敏捷开发:用户故事估算估时方法介绍

  • 工具与流程层面:用客观方法替代主观判断

    • 任务拆解到颗粒度足够细:要求每个用户故事拆解到子任务不超过 1-2 人天,避免大任务导致估时偏差巨大。
    • 预留缓冲时间并显式化:在迭代计划中明确预留 20%-30% 的缓冲时间(Buffer),用于处理未知风险、bug 修复等。缓冲时间由团队共同决定,不计入单个任务估时。
    • 技术预研任务:对技术不确定性高的需求,先安排 1-3 天的技术预研任务进行技术验证和精准估时,再进入正式开发。大幅降低后期发现做不了或工时翻倍的情况。
    • 里程碑共同确认:设置功能里程碑(PM 关心)和技术里程碑(RD 关心),如“接口联调完成”“性能测试通过”等,双轨并行确认进度。这里 PM 看到功能进度,RD 看到技术风险被控制。

  • 公开透明的进度看板
    使用 Jira、Trello、TAPD 等敏捷或kanban工具实时展示任务状态、阻塞任务、剩余工时,所有人可见。PM 看到真实进度,RD 感受到被信任而非被催促。
  • 进度偏差预警机制
    每周的中间时间进行一次进度健康检查,如果某任务偏差 >20%,立即复盘原因并解决,而不是等到迭代最后才暴漏出来,进而爆发冲突。
四:优先级频繁调整

需求开发优先级频繁调整是产品经理与技术开发之间最破坏开发节奏的矛盾点之一。这个矛盾点的本质原因之一是商业环境的不确定性与技术开发需要确定性之间的冲突,加上组织机制不成熟,导致调整成本最后全部转嫁到技术开发上。因为整个产品软件开发到落地,技术开发在最底层。
下面进行详细原因分析。

  • 商业环境高度不确定
根据前面的分析了解到,需求调整,有用户反馈数据和意见、竞争对手的动作、市场变化、高层的意见、监控数据指标波动等各种变化,这些组成了一个商业相关的环境。
这些变化都会导致需求的变化,为了适应市场和商业环境的变化,会导致前期的需求优先级变化。

  • 业务目标不稳定或不清晰
公司的战略不清晰,业务目标不清晰,觉得都是机会,需要频繁的修改需求来探索新机会。
这个需要高层能给出清晰的战略方向,然后根据这个制定部门的业务方向。
如果是探索型的项目,那么这个调整是不可避免的。因为产品方向不确定,所有要通过调整产品需求来探索,导致需求修改、优先级调整。

  • PM 眼里的调整成本认知偏差
产品经理的一句话:把这个功能往后放一放。PM 的任务就完成了。但到了技术开发这里,可能涉及代码回滚、分支合并、代码重构、测试用例废弃和重写等等。2 者调整的成本不一样。

  • PM 角色被动 不敢拒绝需求
面对老板、高层、销售等的需求,不敢拒绝不合理的需求,只能被动接受需求。
这时产品经理能力要加强,不能只是个执行的角色,还需要加强学习,要能分析需求,懂得需求的重要程度,规划需求优先级的能力。
解决方法


  • 需求缓冲池
所有新想法、用户反馈、突发需求、老板需求等先进入需求缓冲池,定期(每周或双周)集体评审是否进入当前 Roadmap。避免所有人随时直接插入高优先级需求
在 scrum 框架中有一个产品需求待办列表,这个就相当于需求缓冲池。这个产品需求待办列表还有需求优先级评估、需求详细说明等,这里存放所有来源的需求。
Scrum 中的 Product Backlog(产品待办列表) 详细介绍可以看下面这篇文章:

  • 敏捷开发:Scrum 中的 Product Backlog(产品待办列表) 详细介绍
这个待办列表的特点:1、需求优先级排序 2、动态变化,随时更新列表内容 3、需求细节详情 4、透明性 5、工作集-实现产品目标所需完成的所有工作项的集合。

  • 建立优先级治理机制
每季度(或每 2-4 周)由 PM + RD Leader + 高层共同评审并锁定 Roadmap,锁定后原则上不允许插入新需求或大幅调整优先级。
还有敏捷框架 Scrum 开发方法里的 Sprint 计划会议来决定每一个 Sprint 开发周期(2 - 4 周)里的开发任务。
优先级评估的方法可以看这篇文章: 敏捷开发:Scrum 中的 Product Backlog(产品待办列表) 详细介绍

  • 冻结窗口 + 例外通道
当前迭代前半段(例如 Sprint 前 60% 时间)不允许调整优先级,后半段只允许修复严重 bug 的调整。真正紧急需求走“例外通道”,需高层批准并补偿(如延长迭代或减少其他功能)。

  • 留出弹性空间
每个迭代只规划 70%-80% 容量,剩余 20%-30% 作为弹性容量时间,专门用于处理突发高优先级需求或优先级调整。当真有紧急需求时,有空间容纳,而不打乱既有计划。

  • 停车位机制
被暂停的功能统一放进停车位看板,

  • 记录暂停原因
  • 已投入工时
  • 预计恢复时间
定期复盘是否恢复或彻底下线。避免功能无限期悬而未决,减少 RD 心理负担。

  • 高层能想清楚公司战略方向
高层能给出清晰的战略方向,然后根据这个制定部门的业务方向。
如果是探索型的项目,那么这个调整是不可避免的。
五:开发资源冲突

在一个软件产品开发公司,技术开发人员的数量在一定时间内是恒定的。产品经理可能同时推进多个项目或功能的开发,同时开发多个项目或功能需要更多的开发人员,但是开发人员的人力、时间却是有限的,开发的总产能是一定量的。这就导致了开发资源冲突。
详细原因分析:
在公司层面,缺少整体资源规划,高层不断立项新项目,却没有扩充技术开发团队人员数量。产品经理又被高层逼着,觉得哪个项目都很重要。并行项目过多超过了技术团队实际能承受的容量,就要求通过加班来弥补人员不足导致进度慢情况,长时间的话会不仅会拖慢项目进度,还会拖累开发团队的士气。
在项目型的软件开发公司,销售或业务为了签单,向客户承诺过早的交付时间,而高层为了业绩指标不断接新项目。这样也会导致开发任务过多。
还有公司的产品经理之间缺乏协调,都认为自己的项目重要,要求给到足够的开发资源。技术开发呢,被多个产品经理拉去干项目,这样导致开发人员任务过多。
公司层面缺乏项目优先级、重视程度的协调机制。
一个开发人员同时并行开发多个任务,每天上下文切换,会导致任务生产力下降很多,有的研究显示多任务会导致生产力下降 40%。再加上每天被不同会议打断,专注时间碎片化,效率更低。
解决方法


  • 在公司层面建立资源规划与治理机制
每季度由技术负责人(CTO/技术VP)牵头,做一次开发资源容量盘点:统计所有技术开发的可用人天,扣除假期、培训、维护等(通常只算 70%-80% 有效容量),得出全公司总容量。再根据业务目标决定能同时支撑几个项目。超出容量的新项目必须推迟或拒绝

  • 在公司层面建立项目立项审查委员会
新项目立项必须经过项目审查会(含 PM、RD Leader、财务、高层),评估所需资源、商业价值、优先级。只有在容量允许的情况下才能批准。

  • 项目开发透明化和优先级统一
利用工具或方法,把项目的需求统一进入一个 Backlog,比如 scrum或kanban 的 product backlog 待办列表,优先级由多个人来评估。
一个技术开发人员在一个迭代周期(2 - 4周)内,只分配一个主要项目,占比约为 ≥70%,少跨多个项目,小任务占比不要超过 ≥20%。

  • 容量预留机制
每个团队/个人预留 10%-30% 容量用于:线上问题bug修复、技术债、突发任务。各种隐形任务有了合理时间来完成。

  • 资源看板与负载预警
使用 Jira、Trello等工具实时展示每个人负载,设置阈值(如 >100% 红色预警),自动通知领导。
还有就是加速招聘或培养、外包合作。
还可以在绩效指标上想办法。
总结

产品经理和技术开发人员,其实都有一个共同的目标,那就是把产品做好,只是各自的分工不同。
他们之间的关系应是协作伙伴而非对立面,产品经理定义做什么和为什么做,技术开发人员用技术解决怎么做和具体做出来,共同为用户创造价值,为公司业务发展贡献力量。
参考


  • 《有效需求分析》作者: 徐锋  https://book.douban.com/subject/26952983/
  • 敏捷开发:用户故事估算估时方法介绍 https://www.cnblogs.com/jiujuan/p/18585259
  • 敏捷开发:Scrum 中的 Product Backlog(产品待办列表) 详细介绍-待办列表管理、用户故事、优先级评估等等 https://www.cnblogs.com/jiujuan/p/18559611
  • 《精益产品开发手册》https://book.douban.com/subject/36458020/

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册