为什么你每次和开发沟通需求,都像打仗一样?

沟通的场景

PM:战斗在革命一线的同志,为了革命成功后能快速步入小康生活,你看这个基础设施能否再打造的完美一点?

开发人员:说人话(情绪平静)

PM:能不能加个需求?你看哈……(还没说完)

开发人员:加不了(听见加需求,有明显的情绪波动)

PM:怎么就加不了?这又不是什么复杂的功能,我逻辑都给你想好了(皱着眉头,非加不可的语气)

开发人员:你项目上线周期定那么死,我现在还有好多接口没完成,哪有时间加啊?(抱怨,情绪不稳定)

PM:那我也没见你们加班啊?再说这需求也不复杂啊,最多1天就能搞定!(鄙视的语气)

开发人员:我在家加班不行吗?1天能搞定,你能你上啊!(爆发的边缘,声音分贝调高)

PM:……(被噎着了,准备出绝招)

PM:反正这是老板的要求,你要是不想加,那你直接去找老板吧(同样用很大分贝的声音搬出老板,来展现%ignore_a_1%己的气势。顺手把笔记本往桌子上一扔,不再说话,再聊下去就要撸起袖子开干了。)

沟通的结果

大家沟通了10分钟,闹的彼此很不愉快;最后的结果就是PM觉得很不爽,原因是:我好声好气和你聊需求,你给我脸色,我招谁惹谁了?我还不是为了公司的产品着想,心累。开发人员呢,也很不爽,就差点拿刀砍人了,心里在想:你丫就知道加需求,你加一个需求,老子要写5000行码,时间还限制的那么死,还搬出老板压我,就不加,爱咋咋地。

双方情绪都不稳定,一个没心思思考需求,一个没心思写代码,还可能一不小心搞个bug出来。

其实呢,这个事情,PM和开发都没有错(当然也不是老板的错,捂脸),错就错在没有正确的沟通。

上述只是简单阐述了沟通中的一个问题,PM在日常工作中,上对接领导,下对接开发、设计、运营、财务,左右还要对接客户,回到家还要考虑女朋友的感受,难免会遇到沟通的问题,那如何沟通才能在工作生活做到游刃有余呢?

沟通学的三大要点

1、要理解沟通的定义

什么是沟通呢?很多PM思考这个问题的结论都是:为了某一目的,进行信息交流,以达到彼此都满意的状态。其实这个理解只对了一半,沟通的定义其实很简单,无非是6个字“听得懂,能接受”。

就像沟通场景中有这么一段,PM刚说加个需求,话还没说完,开发人员的小情绪就如潮水般翻涌而来;这就导致沟通定义中前3个字“听得懂”都没有实现,如何继续沟通?再沟通下去,只会越来越糟。

我们来还原一下场景,可能PM是想这么说:“能不能加个需求?这个需求是……这样子的,逻辑是……这样子的,开发时间就放在你们完成手头项目之后”。诶,发现没有,PM原本的意思并不是想现在就加需求;但表达的时候是先说出了“加需求”这个目的,我们把这个目的叫做第4点,需求描述、需求逻辑、开发时间为123点;那么PM表达的顺序就是4123。开发人员呢,一般思维逻辑都是直线型的,也就是1234,拿到一个点就考虑一个点,听到加需求,就开始1234的想,想着想着情绪就不稳定了,开始炸毛了;直接就否定了PM的话,后面的完全听不进去,然后就有了接下来带有情绪的沟通。

这个场景沟通的问题:

  1. PM没有能站在开发人员的角度去把本次沟通的要点描述清楚;
  2. 开发人员没有听懂PM的沟通要点。

总结:PM没能让开发人员“听得懂”,更别说“能接受”了,如果PM能稳住情绪,把沟通的要点说完,那就是另外一种场景。

2、要学会把控情绪

“情绪”分为3种:“语气、场合、肢体动作”。

如上文,PM是知道开发人员没听懂的,但并没有用和善的语气去让对方听得懂,而是皱着眉进行反击;从而导致情绪进一步爆发,直至失控。

现实生活中也有很多没把控好“情绪”的例子。一朋友和我聊天的时候提出一个问题,以下是聊天记录,你们随意感受下。

“我女朋友让我陪她一起逛街买衣服,街也逛了,衣服也买了,为什么她总是一副不开心的样子呢?”(明明就是欺负我这个单身狗,哼哼)

我回答说“那她是不是问你累不累?衣服好不好看?”

“是啊,我说不累,怕她觉得我嫌弃陪她逛街,也说了衣服好看,但为什么她还是不开心呢,问她原因又不说,真是搞不懂”。

“问题就出在你的肢体动作和语气上面,你肯定在说话的时候表现的很不耐烦。”

朋友说“确实有点不耐烦,语气也有点敷衍”

对于这种问题进行分析,得出两个原因:

  1. 他没听懂女朋友话的含义;
  2. 他的情绪没有把控好。

最终导致既陪了时间,又掏了钱,依然不落好。女人问你累不累,其实是想知道你内心愿不愿意陪她,既然都已经陪着逛街了,何不笑着的回答她“累是累了点,但好不容易陪你逛一次街,再累也值得”。既然衣服都已经买了,钱也花了,女人问你好不好看,并不是让你来做任何评判的,而是想获得你的赞美,何不温柔的回答她“你穿什么都好看”。

这样一来,她还能不高兴?所以说,搞懂需求,把控好情绪去沟通很重要。

3、要懂的反馈

这个意思就很简单,我说了,你就要反馈有没有听见,是不是理解;如果没有理解,我可以再说一遍。

假如你老板在公司群@你,并提到一个问题,如果你没有反馈,结果是怎样的呢?

可能是这样的:你没有反馈,你老板就需要花时间去想,你到底有没有看见呢?如果你没有看见,那这个问题怎么处理呢?处理的方式有哪些呢?什么时候能搞定呢?一连串的问题在他脑海中飘过,花费了他大量的时间去帮你思考问题。最坏的结果就是认为你这个人不靠谱。

一定要懂的反馈,那怕是回复“好的、收到”或者是一个的符号都行。

最后

沟通是一门艺术,需要长期的锻炼才能修有所成。一旦你懂的了沟通,你会发现很多问题都不再是“问题”。而沟通对于PM来说,至关重要!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/213.html

(30)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月5日 00:09:03
下一篇 2025年11月5日 04:08:01

相关推荐

  • Linux journalctl与systemctl status结合分析

    先看 systemctl status 确认服务状态,再用 journalctl 查看详细日志。例如 nginx 启动失败时,systemctl status 显示 Active: failed,journalctl -u nginx 发现端口 80 被占用,结合两者可快速定位问题根源。 在 Lin…

    2025年12月6日 运维
    100
  • 如何在mysql中分析索引未命中问题

    答案是通过EXPLAIN分析执行计划,检查索引使用情况,优化WHERE条件写法,避免索引失效,结合慢查询日志定位问题SQL,并根据查询模式合理设计索引。 当 MySQL 查询性能下降,很可能是索引未命中导致的。要分析这类问题,核心是理解查询执行计划、检查索引设计是否合理,并结合实际数据访问模式进行优…

    2025年12月6日 数据库
    000
  • VSCode插件:GitLens使用详解

    GitLens是VSCode中强大的Git增强插件,提供行级代码追踪、提交历史浏览、版本对比、跨文件导航及与GitHub等平台集成;通过启用Current Line Blame和In-Line Blame,可实时查看每行代码的作者与修改时间;支持按分支、作者过滤提交记录,比较差异,并利用Go Bac…

    2025年12月6日 开发工具
    000
  • mysql如何备份存储过程和函数

    最直接且推荐的方式是使用mysqldump工具并添加–routines参数,可完整导出存储过程和函数;若需跨版本迁移,应结合–triggers、处理DEFINER用户、验证SQL_MODE,并在测试环境充分验证恢复与兼容性。 MySQL备份存储过程和函数,最直接且推荐的方式是…

    2025年12月6日 数据库
    000
  • Via浏览器为什么无法上传图片或文件_Via浏览器上传文件失败的原因及解决方法

    Via浏览器上传失败可因权限、设置或兼容性问题导致,需检查存储权限、启用JavaScript、更换User-Agent、使用系统文件选择器或清除缓存解决。 如果您在使用Via浏览器尝试上传图片或文件时遇到失败提示,可能是由于权限设置、浏览器配置或网页兼容性问题导致。此类问题通常可以通过调整设置或更换…

    2025年12月6日 电脑教程
    000
  • Via浏览器为什么打开淘宝链接会直接跳转到APP_Via浏览器防止淘宝链接跳转APP的方法

    关闭Via浏览器外部跳转权限可解决淘宝链接自动打开APP问题。依次进入设置→高级设置→链接处理,关闭“允许外部应用打开链接”选项,再尝试在浏览器内打开链接。 如果您在使用Via浏览器访问淘宝链接时,页面自动跳转至手机上已安装的淘宝APP,这通常是由于浏览器默认启用了外部应用跳转功能。以下是解决此问题…

    2025年12月6日 电脑教程
    000
  • Java中char与String的字节表示深度解析

    本文深入探讨java中`char`类型和`string`对象在内存中的字节表示及其与字符编码的关系。`char`固定占用2字节并采用utf-16编码,而`string.getbytes()`方法返回的字节数组长度则取决于所使用的字符集,这正是导致常见混淆的关键。文章将通过示例代码和详细解释,阐明不同…

    2025年12月6日 java
    000
  • 如何理解并应用JavaScript的事件循环(Event Loop)机制?

    JavaScript通过事件循环实现异步,其核心是调用栈、任务队列与微任务队列的协作:同步代码执行后,先清空微任务队列,再执行宏任务;例如console.log(‘1’)、’4’为同步,Promise.then为微任务,setTimeout为宏任务,故…

    2025年12月6日 web前端
    000
  • 如何在Linux中监控文件变化?

    最常用方法是使用inotify机制,通过inotifywait命令可实时监控文件变化,结合shell脚本能自动响应事件,Python的pyinotify库支持更复杂逻辑,其他工具如tail -f、auditd和rsync+cron适用于特定场景。 在Linux中监控文件变化,最常用的方法是使用ino…

    2025年12月6日 运维
    000
  • 外部系统ID与内部UUID映射策略:理解、实践与风险规避

    uuid旨在提供全球唯一标识,而非可逆的任意字符串编码工具。当需要将第三方系统的随机字符串id映射到内部uuid并实现双向查找时,最稳健的方案是采用数据库进行显式映射。虽然加密机制可以转换id,但涉及复杂的密钥管理和安全风险。本文将深入探讨这些策略,并提供最佳实践建议。 在现代系统集成中,将来自不同…

    2025年12月6日 java
    000
  • 突然就“推理 Agent 元年”了,再聊 AI Chat 与 AI Agent

    今年 3 月份,我们还在以为 ai agent 的新纪元需要等到“泛 agi”,依靠大模型自身的能力和与之相辅相成的一系列技术的发展,诸如 rag、调用链等,去将大模型的能力更深入地“外置”给 agent 单元体。 然而到了下半年,随着大模型自身推理能力的爆发,以及生态中 MCP、ACP、A2A、上…

    2025年12月6日 行业动态
    000
  • Java中Executors类的用途 掌握线程池工厂的创建方法

    如何使用executors创建线程池?1.使用newfixedthreadpool(int nthreads)创建固定大小的线程池;2.使用newcachedthreadpool()创建可缓存线程池;3.使用newsinglethreadexecutor()创建单线程线程池;4.使用newsched…

    2025年12月5日 java
    000
  • 如何在Laravel中处理表单提交

    在laravel中处理表单提交的步骤如下:1. 创建包含正确method、action属性和@csrf指令的html表单;2. 在routes/web.php或routes/api.php中定义路由,如route::post(‘/your-route’, ‘you…

    2025年12月5日
    100
  • Java中MANIFEST.MF的作用 详解清单文件

    manifest.mf是java中jar文件的元数据配置文件,位于meta-inf目录下,用于定义版本、主类、依赖路径等关键信息。1. 它允许指定入口类,使jar可直接运行;2. 通过class-path管理依赖,减少类加载冲突;3. 可配置安全权限,如设置沙箱运行;4. 常见属性包括manifes…

    2025年12月5日 java
    000
  • 告别订单管理混乱:如何利用Composer引入SprykerOMS打造高效订单流程

    可以通过一下地址学习composer:学习地址 订单管理的痛点:我曾被“状态”所困 作为一名开发者,我深知构建一个稳定、高效的电商系统有多么不易。其中,订单管理模块无疑是最核心也最复杂的环节之一。想象一下:用户下单、支付、仓库发货、物流配送、用户签收,这还只是一个顺利的流程。如果遇到支付失败、用户取…

    开发工具 2025年12月5日
    000
  • 如何安装和配置Workerman环境?

    选择workerman是因为它是高性能的php应用服务器,支持长连接、websocket、mqtt等,适合实时应用和高并发场景。安装和配置步骤包括:1.安装php:sudo apt-get update && sudo apt-get install php;2.安装composer…

    2025年12月5日
    000
  • java中的implements是什么 接口实现implements的3个关键步骤

    implements关键字在java中用于实现接口,其核心作用是建立类对接口的承诺关系。具体步骤包括:1. 在类声明时使用implements指定一个或多个接口;2. 类必须实现接口中的所有方法,否则需声明为抽象类;3. 实现方法需保持与接口相同的签名并推荐使用@override注解。接口的优势在于…

    2025年12月5日 java
    000
  • TypeNotPresentException与泛型类型擦除的关系是什么?

    typenotpresentexception通常由运行时类型信息缺失引起,与泛型类型擦除间接相关。1. 泛型类型擦除是java在编译时移除泛型参数并替换为限定类型或object的机制,导致list和list在运行时无法区分;2. typenotpresentexception主要发生在依赖缺失、反…

    2025年12月5日 java
    000
  • js怎样获取当前时间戳 js获取时间戳的5种方式对比

    在javascript中获取当前时间戳的首选方法是使用date.now(),因为其性能更优且无需创建date对象;其他方式如new date().gettime()和+new date()也有效但效率稍低;若需兼容老旧浏览器,可使用new date().gettime()或添加polyfill;获取…

    2025年12月5日 web前端
    000
  • 方法重写时子类异常范围为什么不能大于父类?Override方法的异常声明规则是什么?

    override方法的异常声明规则是子类重写方法抛出的异常类型必须是父类方法抛出异常类型的子类或不抛出异常,这是为了保证多态性、向后兼容性和代码可预测性;1. 子类不能抛出比父类更宽的checked exception,否则调用者无法正确捕获和处理,破坏多态性;2. 若父类方法未声明throws,子…

    2025年12月5日 java
    000

发表回复

登录后才能评论
关注微信