四十不惑

昨天四十岁。

早上醒来,手机里还是告警、群消息、周报,还是有点超重,腰还是那条腰。

没有什么突然开悟的时刻。

四十岁这件事,落到一个技术人的日常里,大概就是终于承认:很多问题不会因为你讲清楚了道理就消失,很多损失也不会因为你占理就退回来。

先躲开车

刘润在《底层逻辑》里讲过一个故事。一个人走在人行横道上,一辆卡车冲过来,所有人喊他躲开,他说:「他不能撞我。他撞我是违反交通法规的,他负全责。我就不让。」后来他被撞死了。

卡车司机有错。可人没了。

我年轻时很像那个行人。需求文档没写,我就等。接口没有按约定返回,我就骂。线上依赖方挂了,我第一反应是截图留证据。那时候我觉得自己很专业,因为边界清楚,责任清楚,话术清楚。

后来我发现,用户不会关心你截图多完整。老板不会因为你证明了别人有错就少焦虑。系统不会因为责任归属清晰就自动恢复。

成年人世界里,谁损失最大,谁最应该先行动。

这句话放在工程里,就是事故响应的第一原则。先止血,再恢复,再定位,再复盘,再追责。顺序反了,场面会有点难看。

成年人的账本

四十岁之前,我曾经以为成熟就是忍。后来发现,忍这个字有点糙。

有些事该忍,因为对抗成本太高。

有些事不能忍,因为对方会觉得你好欺负。

有些事要先忍一晚,第二天带着证据处理。

这几年带团队,我最怕一种状态:出了问题,大家都在证明自己无辜。

「这个不是我负责的。」

「我早就提醒过。」

「客户那边也没说清楚。」

这些话有时都是真的。但项目不会因为这些话自动变好。

我们的目标是什么?是要把项目变好,把蛋糕做大,让大家都能分到,一个大的蛋糕就算你只有 1%,那也很大,一个小的蛋糕,哪怕你有 99%,那也很小。

人到四十,最该丢掉的东西之一,就是无效悔恨。后悔会占用注意力,却不给下一次提供工具。

组织接口

三十五岁之后,我花在代码上的时间少了,花在人身上的时间多了。

刚开始很不适应。代码报错会给栈,人不会。代码超时会返回,人经常沉默。代码重试可能成功,人被催多了会烦。组织系统比软件系统难,因为它的状态不可见,反馈有延迟,很多变量还会装没事。

做管理之后,我慢慢把团队当成一个有接口的系统来设计。

需求入口要清楚。谁提出,解决什么业务问题,验收标准是什么,必须在什么时候交付,延迟的损失是什么。没有这些信息,研发排期就是猜谜。猜错之后,产品觉得研发不配合,研发觉得产品乱改,最后大家都累。

责任边界也要清楚。一个项目只能有一个最终负责人,可以有很多协作者。多人共同负责,最后经常变成没人负责。负责人不代表所有活都自己干,他要保证信息流动、风险暴露、决策推进、结果交付。出了问题,他先站出来组织处理。至于具体错误是谁造成的,事后再拆。

会议也要像接口。输入是什么,输出是什么,谁消费这个输出。没有输出的会少开。只同步状态的会改成文档。需要拍板的会提前把选项和代价写出来。很多公司一周十几个会,真正产生决策的不到三个。剩下的会消耗注意力,还制造一种大家都很忙的假象。

我不喜欢用「兄弟们冲」来管理团队。短期能冲,长期会透支。可交付体系要靠节奏,靠优先级,靠风险前置,靠承诺管理。研发可以加班救火,但不能把救火当默认交付方式。一个组织如果长期靠英雄主义维持,说明系统设计已经出问题了。

算了

我现在经常说「算了」。

但这个「算了」不是摆烂,也不是认输。它是一个止损动作。

有些争执,继续讲下去只是增加噪音。有些合作,继续磨下去只会消耗团队。有些关系,继续解释只会给对方更多误解你的材料。有些旧账,继续翻只会让现在的生活被过去占领。

要不要算了还是有一个逻辑在的,问一下这些:

  • 损失还能不能追回。
  • 对方有没有改变动机。
  • 继续投入会不会影响当下更重要的事。
  • 这件事会不会再次发生。

如果损失追回希望很低,对方没有改变动机,继续处理还会影响手头工作,那就算了。但算了之后要留下记录。下次不合作,边界提前说清,钱款先到账,关键沟通留文字。成年人嘴上算了,账本不能空。

太早说算了,也危险。

有些人会把你的退让当成入口。第一次拖款,你说算了;第二次改需求,你说算了;第三次把锅甩给你,你还说算了。到最后,你发现自己训练出了一个持续伤害你的环境。

所以「算了」要配套一个动作:修改规则。

朋友借钱不还,可以算了,但以后不借。客户反复越界,可以算了,但合同重写。团队成员多次低级失误,可以算了,但岗位调整。亲戚说话难听,可以算了,但减少见面。

年轻时把「算了」理解成吞下去。现在更像把这件事封存,还把门锁换了。

人间很苦

《西游记》里,神仙犯错,经常被打下凡尘。小时候看了个热闹,四十岁再看,原来最大的惩罚竟然是做人。

做人确实很累。

年轻时的累,多半来自能力不够。代码写不出来,方案讲不清楚,面试被虐,工资不高,机会不多。那种累有个好处:你知道该往哪里使劲。学技术,练表达,扛项目,跳出舒适区。

中年之后的累要复杂很多。父母变老了,孩子长大了,团队要结果,公司要现金流,客户要交付,身体开始提醒你别乱来。很多事情没有根因分析,只有风险缓释。很多问题没有最终修复,只有阶段性稳定。

技术人特别容易相信因果。出了问题就找原因,找到原因就修复,修复之后写单测,特别单纯。但生活没这么规整。有人生病,你做不了回滚。关系变淡,你找不到日志。机会错过,也没有补偿任务自动执行。

所以我现在对身体很认真。睡眠、体检、运动,这些东西以前听着像废话,后来发现它们是底层资源。

太祖老人家说过:身体是革命的本钱。没有这个本钱,判断力会下降,耐心会下降,情绪会失控。一个老板如果长期睡不好,白天做出的架构决策、人事决策、融资决策都会变形。

我以前觉得扛得住是本事。现在觉得能安排好节奏才是本事。夜里两点写方案,第二天照样开会,连续几个月这么干,这就是在欠债,迟早要还的!

留点余量

四十岁最明显的身体提醒,是余量变少。

以前连续熬夜,睡一觉还能回来。现在不行,得缓一周。以前接十个需求,靠兴奋顶住。现在会先看团队承载能力,看关键人的排期,看线上系统最近有没有风险,看自己接下来两周能不能正常睡觉。

年轻时我很喜欢把资源打满。机器要跑满,人也要跑满。排期压到最后一天,预算卡到最后一分,人力刚好覆盖每个任务。看起来效率很高,实际很脆。

系统里 CPU 长期 90%,没人会觉得健康。连接池打满、队列堆积、P99 拉长,大家都会紧张。可到了组织里,很多人又开始迷信 100% 利用率。每个人的日历塞满,每个 Sprint 塞满,每个季度目标塞满,然后一个线上事故、一个客户插单、一个核心同学生病,整条链路就开始崩。

我后来改了一个习惯:排期只排到七成左右。

剩下三成留给不确定性。线上问题要处理,需求会变,客户会反悔,依赖方会延期,评审会发现以前没看到的坑。研发不是流水线,软件也不是按图纸拧螺丝。只要系统里有人、有代码、有外部依赖,就一定会有抖动。

留余量有代价。

老板会觉得资源没用满,业务会觉得研发保守,团队里也会有人问:「明明还能做,为什么不接?」我的回答一般很简单:能做和能稳交付是两件事。今天把所有人压满,明天出事故就没人救火;这个月把所有技术债往后扔,下个月每个需求都要多绕三圈;这周靠熬夜把版本发出去,下周同样的人还要继续扛下一个版本,质量只会掉。

工程上的余量也一样。

核心链路不要只按平均 QPS 设计,要看峰值、突刺和失败重试。数据库连接数不要配到刚好够用,缓存容量不要顶着上限跑,消息队列不要等堆积到业务可见才处理。监控图上那些长期贴边的指标,都是系统在提醒你:它已经没地方躲了。

发布也要留余量。重大版本不要压在周五晚上,不要把数据库变更、缓存策略调整、核心依赖升级放在同一个窗口。每次上线最好只改变少数变量。出了问题,定位范围才不会爆炸。一次变更里塞五个风险点,回滚都不知道先回哪个。

人也需要余量。

我以前把累当成常态,觉得技术人就该扛。后来发现,长期疲劳会直接影响判断。架构评审时听不出风险,代码 Review 时漏掉边界条件,跟人沟通时一点就炸。很多所谓管理问题,根上就是人已经没电了。

现在我会强制给自己留空档。一天里不把会排满,一周里留半天处理积压事项,晚上尽量不做需要重大判断的决策。团队也一样,关键岗位必须有备份,核心系统必须有人能接手,文档要能让新人看懂。一个模块只有一个人懂,平时省了沟通成本,出事时成本会翻倍回来。

四十岁之后,我越来越不相信极限操作。

偶尔冲刺可以,长期贴边运行一定出问题。身体、团队、系统、公司现金流,都一样。留点余量,平时看起来慢一点,遇到突发情况时,才有空间转身。

四十以后

四十不惑,对我来说并不代表什么都懂了。

四十岁的不惑,对我来说范围很窄。

我依然有很多困惑。业务会变,技术会变,人会变,市场会变。今天看起来稳的东西,明年可能就没了。一个人如果声称自己什么都看透了,大概率是在装。

我能确定的事情少了一些。

看见卡车,先躲开。别站在路中间证明自己有理。

线上出事,先止损。别在用户失败时忙着划清边界。

技术债可以借,账本要写清楚。别把临时方案伪装成长期架构。

团队要讲责任,也要讲机制。别把所有问题都压到某个英雄身上。

有些事要追到底,有些事要算了。别把人生过成一条永远做不完的工单。

接受所能接受的。

四十岁没有把我变成更厉害的人,只是让我少浪费一点力气。少在无用的争辩里耗,少在错误的关系里耗,少在虚荣里耗,少在已经过去的事里耗。

四十岁也没有把我变得更通透。只是比以前少了一些争辩,多了一些预案;少了一些委屈,多了一些边界;少了一些幻想,多了一些愿意亲手处理烂摊子的耐心。

下午还有文档要写。晚上还会有告警。

日子照常跑。系统照常跑。人也照常往前跑。

该小酌小酌。该微醺微醺。

这就够了。

以上。

相关推荐
潘锦9 个月前
架构师必备:要懂点信息架构
架构·cto
潘锦9 个月前
作为 CTO,应该如何看待 AI 编程
ai编程·cto·trae
潘锦9 个月前
架构师必备:解决技术问题当从第一性原理开始
架构·cto
Hello kele1 年前
平衡智慧在日常生活中的落地实践:构建和谐生活的行动指南
经验分享·科技·生活·cto
潘锦2 年前
SaaS 产品的定制路线和集成路线
saas·cto
潘锦2 年前
关于研发效能在组织层面的一些思考和总结
团队管理·cto
潘锦2 年前
成熟管理者眼中的「异类」
团队管理·cto
潘锦2 年前
详解设计 SaaS 的商业模式解析:他们到底卖的是什么?
saas·cto
潘锦2 年前
你是团队的明灯还是卡点?聊聊项目管理中的角色认知与常见问题
团队管理·cto