非暴力沟通四步法:搞定高难度对话

5 阅读6分钟

Code Review时你写过"这段代码写得有问题"吗?事故复盘会上你说过"这是你们组的锅"吗?跨组沟通时你心里想过"这人怎么这么不配合"?如果答案是"有",那《非暴力沟通》这本书可能是你今年最需要的书。


为什么技术团队特别需要非暴力沟通?

马歇尔·卢森堡在《非暴力沟通》中揭示了人类冲突的根源:

大多数冲突不是因为"信息错误",而是因为"沟通方式"触发了对方的防御反应。

技术团队的沟通环境有几个特殊挑战:

  1. 对错思维根深蒂固——代码要么能跑要么不能跑,bug要么修了要么没修,这种二元思维很容易迁移到人际沟通中
  2. 线上压力导致情绪化——P0事故、deadline逼近时,人的沟通质量急剧下降
  3. 书面沟通占比高——IM、邮件、PR评论中缺少语气和表情,极易被误读

非暴力沟通的核心:四步法(OFNR)

步骤英文含义技术团队中的理解
OObservation观察客观描述事实,不加评判和推测
FFeeling感受表达自己的真实感受,而非指责
NNeed需要说明自己的需求和关注点
RRequest请求提出具体、可执行的请求

第一步:观察 vs 评判

这是最关键的一步,也是最难的一步。

评判(暴力沟通)观察(非暴力沟通)
"你这代码写得太乱了""这个函数有150行,包含了3个不同业务的逻辑分支"
"你总是不回复消息""昨天下午3点发的消息到今天上午还没有收到回复"
"你们组的接口太慢了""调用XX接口的平均响应时间是2.3秒,P99是8秒"
"你从来不写文档""最近3个上线的功能都没有对应的接口文档"

区分标准:评判带有主观定性词(太、总是、从来不),观察只有客观可验证的事实。

第二步:感受 vs 想法

想法(伪装成感受)真正的感受
"我觉得你不重视这个项目""我对项目进度感到焦虑"
"我觉得你在敷衍我""我没有被理解的感觉"
"我觉得你能力不行""我对代码质量感到担忧"

关键词:感受通常用"焦虑/担心/沮丧/困惑/无力"等情绪词;想法通常用"觉得你XX/认为你XX"。

第三步:需要 vs 策略

直接跳到策略先表达需要
"你必须今晚把这个bug修了""我需要确保明天上线前这个问题被解决,因为……"
"以后每次发版前必须跑一遍回归测试""我需要保证发版质量,减少线上事故,因为……"
"你能不能认真点""我需要准确的排期评估,因为这影响下游5个团队的计划"

为什么要先说需要? 因为当对方理解了"为什么"之后,他更愿意主动配合你提出的策略,甚至可能提出更好的方案。

第四步:请求 vs 命令

命令请求
"你必须今天改完""你能在今天下班前完成修改吗?如果时间不够,我们可以讨论一下优先级"
"以后不要这么写了""下次遇到类似场景,可以尝试用XX方式实现,你觉得怎么样?"
"把文档补上""能不能在周三之前补充一下接口文档?如果需要模板我可以发你一个"

区分标准:命令不接受"不"作为回答;请求允许对方说"不",并愿意协商替代方案。


四步法在技术场景中的实战

场景一:Code Review

暴力版:

❌ "这段代码有性能问题,你为什么不用缓存?而且命名也不规范,变量名完全看不懂。"

非暴力版:

✅ "我注意到这个查询在循环中执行了N次(观察),让我对接口性能有些担忧(感受)。我希望关键路径的响应时间能控制在200ms以内(需要)。你觉得把这部分改成批量查询是否可行?或者你有其他优化方案吗?(请求)"

场景二:事故复盘

暴力版:

❌ "这个问题很明显是你们组上线前没有做压测。每次都是这样,从来不提前验证。"

非暴力版:

✅ "我观察到这次事故中,容量评估环节缺失了(观察)。看到线上用户受到影响,我感到很遗憾(感受)。我们需要确保类似的上线操作有充分的验证流程(需要)。我建议我们针对这类变更制定一个标准的上线checklist,你觉得这个方向可以吗?(请求)"

场景三:跨组协作

暴力版:

❌ "你们排期排不上也不能一直拖着啊,我们的功能等着依赖你们的接口呢。"

非暴力版:

✅ "我了解到你们目前排期比较满(观察),但我对我们功能上线时间感到有压力(感受),因为下游的发布计划已经确定了(需要)。如果本周排期确实有困难,我们可以先用Mock数据联调,下个迭代再对接正式接口,你觉得这个临时方案可行吗?(请求)"


自我沟通:先搞定自己再搞定别人

《非暴力沟通》有一个常被忽略的章节——对自己也要非暴力沟通。

程序员最容易对自己进行的"暴力对话":

暴力自我对话非暴力自我对话
"我怎么这么蠢,这种低级bug都能犯""我犯了一个低级错误(观察),我感到很沮丧(感受),因为我希望自己的代码质量是可靠的(需要),我需要建立一个更好的自测流程来避免类似问题(请求)"
"我面试又挂了,我肯定不行""这次面试在XX环节表现不理想(观察),我感到失落(感受),因为我希望能拿到这个机会(需要),我需要针对这个环节做更多练习(请求)"

核心转变:从"评判自己"变成"理解自己的需求"。 这不是自我安慰,而是让自己从情绪中快速恢复,聚焦到可执行的行动上。


日常练习:21天非暴力沟通打卡

第一周:觉察——每天记录3次你在沟通中使用了"评判"而非"观察"的时刻

第二周:转换——尝试把记录的"评判"改写为"观察"

第三周:四步法——至少每天在一个正式沟通中完整使用OFNR四步法


一页纸总结

非暴力沟通四步法 = 观察(O) → 感受(F) → 需要(N) → 请求(R)

观察 vs 评判 = 客观事实 vs 主观定性

感受 vs 想法 = 情绪词 vs "觉得你XX"

请求 vs 命令 = 允许对方说"不" vs 不接受拒绝

对自己也要非暴力沟通 = 从评判自己变成理解自己的需求