目录
21:40 的一次误报
21:40,对方放下包,说:「今天真的好累。」
你从屏幕前抬起头,认真地问:「具体是哪一块累?工作量大,还是沟通成本高?有没有什么触发点?」
空气安静了两秒。
你并没有恶意。你甚至觉得自己很关心——你在主动收集信息,试图定位问题。但在对方听来,这句话的意思是:你的疲惫需要先通过我的验收,才值得被安慰。
这不是一个「程序员不懂浪漫」的段子,而是一次模式误用:你在一个需要陪伴的场景里,启动了排障流程。
一、翻车现场图鉴
「你能不能说得具体一点?」
对方说「你根本不在乎我」。你的第一反应是:「这个结论的样本量有多大?能举三个具体例子吗?」
从工程角度看,这个要求无懈可击:没有可复现步骤的 bug 报告,确实很难修。但从关系的角度看,你刚刚把一句求助,退回成了一份不合格的需求单。
「那你当时应该……」
对方吐槽老板、同事,或者一段糟糕的对话。你听了一半,开始分析:「你这里其实可以换一种说法」「你当时要是不接这个活就好了」。
你说的可能全对。但对方来找你,通常不是缺一个技术顾问,而是缺一个和自己站在同一边的人。顺序错了,再对的建议也会被听成「这是你的问题」。
「我看看排期」
「这个周末陪我吧。」「我看看排期,周六下午有个线上问题要跟。」
这句话在工位上叫「负责任」,在家里叫「我需要申请资源」。亲密关系不是甲方乙方,没有 story point,也不该有 SLA。把陪伴排进 backlog,本身就是一种回答。
「我不是设了提醒吗?」
纪念日的提醒在 23:50 响了。你打开外卖软件,在零点前下了一束花,然后在心里给自己记了一次「按时交付」。
技术上完美:任务触发、动作执行、截止时间前完成。体验上归零:对方等了一整天,等到的不是花,是一个被日历催出来的任务。
自动化能替你记住,但替不了你在意。
「你先冷静一下」
吵架时说出这五个字,约等于在线上事故里对用户说:「你先别报错。」
情绪不是噪音,它是系统在告诉你「这里有问题」。让报警器闭嘴,问题不会消失,只会换一个更大的报警器再响一次。
二、段子的共同点:Debug 模式开进了生活
上面这些场景,单看都像「直男/直女笑话」,但它们其实是同一种迁移失败:把调试模式用在了不支持调试的场景里。
调试模式的流程是:
- 收集信息;
- 定位根因;
- 给出修复方案;
- 验证问题是否消失。
它之所以在代码里有效,是因为代码世界有一个前提:问题是客观的,目标是消除不确定性。
而关系里的很多时刻,前提不一样。对方说「我好累」,不是在提交一个待修复的缺陷,而是在发出一个连接请求。此时最有效的回应往往不是「为什么累」,而是「先坐下,吃点东西」;不是「你应该怎么做」,而是「这确实很难受」。
这不是说关系里不需要解决问题。关键在于先判断这件事可不可控,再决定给什么支持。
心理学里有一个不算新的结论:在伴侣支持研究中,支持行为的效果与压力事件的可控性有关。Cutrona 和 Suhr 在 1992 年的研究里发现,对于可控的压力事件(比如一个可以着手解决的任务),偏向问题解决的支持更让人满意;对于不可控的事件(比如已经发生的损失、无法改变的人际关系),情绪支持更重要。
翻译成人话:
- 对方遇到一个能动手解决的问题 → 一起想办法,是对的;
- 对方遇到一个只能承受的事情 → 先陪着,别急着修。
现实中最常见的翻车,是在不可控的事情上疯狂给方案,在可控的事情上只会说「抱抱」。两种都省事,两种都没接住。
还有一个更简单的操作,可以放在所有分析之前:
「你是想让我听一听,还是想一起想办法?」
这句话的价值不在于措辞,而在于它把选择权还给了对方。未经请求的解决方案,常常会被听成「你的感受不重要,问题才重要」。
另一个有用的翻译练习,是把「对人的判决」改成「对行为的描述 + 自己的感受 + 一个具体请求」:
❌ 你根本不在乎我✅ 这周有三次你回家后直接打开电脑,我一个人吃完了饭。 我有点失落。下次能不能先陪我十分钟再开始?
❌ 你从来不听我说话✅ 刚才我说到一半,你看了两次手机。 我想把这件事说完,可以吗?这不是话术模板,重点在于:判决无法回应,请求可以。 「你从来」是在给对方定性,「刚才」是在描述一件双方都能看见的事。
三、可以带回家的五个工程习惯
工程思维不是原罪。有些习惯迁移过去,效果出奇地好。
| 工程习惯 | 带回家之后 | 边界 |
|---|---|---|
| 写清楚验收标准 | 提前对齐「怎样算过得好」:家务怎么分、节日怎么过、多久见一次朋友 | 别把它变成 KPI;亲密关系不是季度考核 |
| 自动化 | 日历、提醒、共享清单、定期订花 | 自动化的是「记得」,不是「在乎」;没有心的准时,仍然扣分 |
| 无责复盘 | 争执过后聊「这次是什么触发的」,而不是「这次是谁的错」 | 要在双方都冷静、且对方愿意聊的时候进行 |
| 灰度发布 | 把关心拆成小步、持续交付,而不是憋一个年度大招 | 惊喜可以有大招,但日常不能长期缺席 |
| 可观测性 | 用笔记记住对方提过的小事,而不是赌自己的脑子 | 记录是为了更好地回应,不是把对方变成监控对象 |
无责复盘这一条,工程界已经有很成熟的实践。PagerDuty 的 blameless postmortem 原则说得很清楚:复盘的目标是改进机制,不是寻找责任人。把它搬回家里,意思不是「吵架也要写文档」,而是在事情过去之后,讨论下次怎么做得更好,而不是重新审判一次谁更糟。
再补充一条没有边界的:不要把重要对话放在深夜、饥饿、疲惫或者刚吵完架的时候。 这相当于在生产环境的高峰期直接改配置——不是一定会炸,但完全没有必要冒这个险。
四、必须留在工位的五个习惯
1. 根因执念
不是所有情绪都有 root cause。有时候只是没睡好、天气差、激素波动,或者单纯地今天不顺。你追问「到底是为什么」,对方可能真的答不上来——这不代表对方在隐瞒,只代表人不是一个所有状态都能解释的系统。
2. 「可复现」要求
情绪不提供复现步骤。你要的是证据,对方要的是人。把「你每次都这样」和「你举三个例子」放在一起,赢的是辩论,输的是关系。
3. 「我早就说过了」
这句话在 code review 里叫「有先见之明」,在关系里叫「补刀」。事情已经发生,正确不再是稀缺资源,体面才是。
Gottman 的研究把批评、蔑视、防御和冷战称为亲密关系里的「四骑士」。它们危险的地方不在于某一次出现,而在于会形成循环:一方防御,另一方更用力地批评,然后双方都开始冷战。而「我早就说过了」恰好同时踩中批评和防御两脚油门。
4. 静默重构
你默默改了周末计划、默默退掉了旅行、默默决定今年不过纪念日——然后默认对方应该知道。代码里未经通知的行为变更叫 breaking change,关系里也一样。区别是,代码有 changelog,人没有。
5. 「在我机器上是好的」
你觉得「我已经很关心了」,对方觉得「我完全没感受到」。这不是谁在撒谎,而是两套环境观测到的不是同一个东西。感受不需要被证伪,它需要被听见。
五、一份不太严肃的自检清单
下班回家前,或者吵架之前,可以问自己几句:
- 我现在是想解决问题,还是想证明自己是对的?
- 我上一次认真说「谢谢」,是什么时候?
- 我有没有把「记得」外包给日历,却忘了「在意」外包不出去?
- 对方说话的时候,我的手是不是还在键盘上?
- 我是不是把最好的耐心给了同事和陌生人,把最差的留给了最亲近的人?
- 如果今晚只能做一件事,我是选择再修一个 bug,还是选择好好吃一顿饭?
最后一条不是反问。很多年后你不会记得那个 bug 的堆栈,但会记得那顿饭有没有吃完。
写在最后
代码世界给了我们很多安全感:可以回滚、可以重试、可以在 staging 里先试一遍、可以把失败控制在一次部署里。
关系没有这些。
说出去的话不能 git revert;信任是有状态的,不能靠重放请求恢复;同一条消息在昨天和今天发送,返回的结果可能完全不同。它更像一个长期运行、没有测试环境、还带着大量历史数据的生产系统——你能做的不是每次出事都去排障,而是平时把它维护好。
所以,下次对方说「我今天好累」,最好的回答可能不是「具体哪一块累」,而是:
先过来,吃点东西。
如果非要写代码,那就把 git commit 留到明天。今晚的 on-call,不产出 commit。
参考来源
- The Four Horsemen: Criticism, Contempt, Defensiveness, and Stonewalling — The Gottman Institute
- Controllability of Stressful Events and Satisfaction With Spouse Support Behaviors — Cutrona & Suhr, Communication Research, 1992
- Blameless PostMortems and a Just Culture — PagerDuty
延伸阅读:本博客里还有几篇讲「代码之外」的文章——《如何向爸妈解释你的工作:为什么你妈至今以为你在修电脑》、《摸鱼的艺术:办公室生存指南》、以及《程序员与咖啡因:续命水的一百种喝法》。