写给2025年的我:在保持真我与适应社会之间找到平衡点

在这个复杂多变的世界里,每个人都以自己独特的方式存在着,而我,则被周围人贴上了“憨”、“固执”这样的标签。面对这些评价时,我的内心经历了从最初的困惑不解到后来逐渐接受的过程。起初,我试图去改变自己,让自己看起来更加圆滑、世故,但很快我发现,这样的尝试不仅让我感到疲惫不堪,更重要的是,它违背了我的本心——那个渴望真实表达自我的灵魂。

为什么技术规划总是第一年被砍

博客分类: 

每年Q1,技术团队都会经历一场庄严的仪式:写技术规划。

leader们关在小会议室里,对着白板画架构图,列痛点,排优先级,做资源估算。最后产出一个精美的PPT,把"技术债务治理""架构升级""效能提升"分门别类,附上里程碑和时间线。汇报的时候信心满满,老板点头通过,大家鼓掌散会。

然后呢?Q2还没结束,规划已经面目全非。Q3的时候,PPT里的那些项目,活着的大概只剩三分之一。到了Q4做复盘,大家心照不宣地跳过"规划完成率"这个话题,开始讨论明年的规划。

这个剧本,我见过太多次了。不是某一个团队的问题,几乎是一个行业现象。

 

规划是怎么死的

 

先说最常见的死法。

业务需求突然插队。 这个不用多解释,做过的都懂。理财业务突然要接一个新的资产类型,运营搞了个紧急活动,合规要求两周内整改——这些事情不会出现在你的规划PPT里,但它们会吃掉团队80%的产能。技术规划在业务需求面前,脆弱得像一张纸。

人力被抽调。 规划写的时候按10个人算的,Q1过完走了2个,Q2又借调1个去支援别的项目。你拿7个人去做10个人的规划,能完成就有鬼了。

前端性能优化的尽头是架构问题

每次聊性能优化,话题总是很快滑向具体的技术手段:懒加载、代码分割、图片压缩、Tree Shaking、虚拟列表……这些当然有用,但我想说一个可能让不少人不太舒服的判断——当你在做这些"优化"的时候,大概率已经晚了。 真正决定性能天花板的,不是你用了多少优化手段,而是系统架构在最初就给你画了多高的天花板。

性能问题从来不是前端单方面的问题。但很多团队把它当成了前端的问题,于是前端工程师就像一个装修工人,在毛坯房里拼命贴墙纸——墙纸再好看,承重墙没打好,房子一样不牢。

 

优化手段的天花板

 

先承认一个事实:常规的性能优化手段确实能解决一部分问题。一个从没做过任何优化的项目,加上代码分割和懒加载,首屏时间砍一半不稀奇。图片做个WebP转换、加个CDN,LCP直接降几百毫秒。这些是低垂的果实,摘了就是摘了,没人否认。

但问题是,这些优化有上限。你的首屏要从3秒优化到1.5秒,代码分割和懒加载就够了。但如果你要从1.5秒到800毫秒,甚至到500毫秒以内,单靠前端手段就力不从心了。因为剩余的耗时大头不在前端——它在网络请求、在服务端处理、在数据组装、在协议开销。

当配置比代码还复杂:配置化平台的真实边界

配置化平台这两年在金融和电商领域特别火。业务方想要灵活调整页面,需求排期又排不开,于是"配置化"三个字成了万能解药——做活动页?配置化。改文案?配置化。调整布局?配置化。好像只要搞一个配置平台,所有迭代效率的问题就烟消云散了。

但我想说一个可能得罪人的判断:大部分团队的配置平台,最终都变成了另一个更难维护的代码库。 只不过这个代码库没有版本控制,没有代码审查,调试靠肉眼,回滚靠运气。

 

配置化的承诺

 

先承认一个事实:配置化的出发点是对的。

在金融业务里,一个理财产品的详情页可能每周都要调整——改一个利率展示规则、加一个风险提示文案、换一个活动入口。这些需求的特点是:变频繁、逻辑简单、但等不及排期。 如果每次都走完整的需求-开发-测试-发布流程,前端团队光是接这些零碎需求就别干别的了。

配置化要解决的核心问题很清楚:把高频、低风险的变更从开发流程中剥离出来,让业务方自助完成。

这个思路本身没问题。问题出在执行上。

 

第一个陷阱:配置化的范围蔓延

 

几乎所有配置平台都经历了同样的演化路径。

你以为在管人,其实你还在管事

博客分类: 

有个现象我一直觉得很有意思:很多技术Leader当了Leader之后,比当个体贡献者时更忙了。

这不正常。

如果你的管理是有效的,你应该比以前更闲才对——因为你把事情分出去了,别人在做。但现实是,大部分Leader的日常是这样的:早上站会听进度,上午review代码,下午排需求优先级,晚上还要处理线上问题。忙得脚不沾地,但回头一看,团队离了你好像啥也干不了。

你以为这是"能者多劳",其实这是一个信号:你根本没在管人,你还在管事。

 

管事和管人,不是同一件事的两种叫法

 

我见过不少刚做管理的朋友,聊起来都说"我在带团队"。但你仔细看他们的工作内容:拆任务、派活、盯进度、review产出、解决技术卡点……这些是管事还是在管人?

都是管事。

区别很简单:管事关注的是"事情有没有做好",管人关注的是"人有没有成长"。前者是项目管理的范畴,后者才是团队管理的核心。

这个区分听起来像废话,但大部分技术Leader从来没认真想过这个问题。因为在工程师的世界观里,把事情做好就是一切。升Leader之后,自然也觉得"把团队的事情管好"就是管理。

晋升体系的谎言:为什么优秀工程师升不上去

博客分类: 

上个月团队晋升答辩,有个同事没通过。技术能力很强,项目执行也不错,但评委说"影响力不够"。我问他怎么看,他说:"我就是想写好代码,为什么非要搞那些虚的?"

我能理解他的委屈。在很多公司,晋升体系名义上是"能力导向",实际上是另一套游戏规则。技术好不一定能升职,会讲故事、懂包装、有人脉的反而更容易上去。

但这真的是体系有问题吗?还是我们对晋升本身就有误解?

 

晋升评的不是技术能力,是组织价值

 

大部分工程师对晋升的理解是:我技术能力达标了,就应该升职。但公司的逻辑是:你对组织的贡献达到下一个级别了,才值得升职。

这两个标准完全不是一回事。

一个高级工程师可能写代码能力很强,但如果他只是完成分配的任务,没有带来超出预期的价值,那在组织眼里他就是"合格的高级工程师",而不是"应该晋升的资深工程师"。

组织价值不是技术能力的简单加法,而是:在当前级别,你解决了多少原本不属于你职责范围内的问题。

技术课题不是业务时间做的

博客分类: 

上周一个团队成员找我聊天,提了个问题:"既要做业务,又要做技术课题。但业务开发已经占满我的时间了,技术课题怎么办?"

我当时没有直接回答,而是反问了一句:"你觉得技术课题应该在什么时间做?"

他愣了一下,说:"当然是工作时间啊,不然呢?"

这个对话让我意识到,很多人对"技术课题"这件事的理解,从一开始就错了。

 

大部分人误解了技术课题的本质

 

先说结论:技术课题从来不是业务开发的平行任务,而是向上突破的选择题

很多开发者把技术课题理解成"额外的工作任务",觉得应该和业务开发一样,在8小时工作时间内完成。这种理解有两个致命问题:

第一,技术课题不是分配来的,是争取来的

在金融团队里,业务开发是职责范围内的工作,做不好要被考核。但技术课题不是——它更像是公司给你的一个额外机会:用时间和精力,换一个证明自己技术能力、拓展技术视野、提升团队影响力的机会。

既然是机会而非义务,凭什么要公司为你的成长买单?

第二,如果技术课题能在业务时间完成,说明它不够有价值

技术团队的认知跨度陷阱

博客分类: 

大部分技术Leader在招人时都有个朴素的信念:能力越强越好,人越聪明越好。但在真实的团队管理中,我发现一个反直觉的现象:很多时候,团队出问题不是因为能力不足,而是因为认知跨度太大。

什么是认知跨度?就是团队成员在技术理解、业务认知、工作方式上的差距。这个差距小的时候是良性竞争,大了就是团队撕裂。

 

一个真实的场景

 

金融科技行业里有种很常见的情况:你招了一个大厂出来的P7,技术很强,对代码质量要求高,喜欢讨论架构。但你的团队主力是P5,关注的是怎么快速把需求做出来。

前两周还好,P7会主动做code review,提重构建议。一个月后矛盾就出来了:P7觉得"这代码没法维护,得重写",P5觉得"功能都正常,改它干嘛"。三个月后,P7要么离职,要么就闭嘴了。

这不是谁对谁错的问题。这是认知跨度的问题。

 

认知跨度的三个维度

 

在技术团队里,认知跨度体现在三个地方:

技术深度的跨度。有人觉得"能跑就行",有人觉得"必须优雅"。前者关注的是业务价值,后者关注的是技术品味。放在同一个项目里,一个想快速迭代,一个想精雕细琢,怎么配合?

技术决策的囚徒困境:为什么正确的方案总是输给能落地的方案

做了这么多年技术,我发现一个挺有意思的现象:几乎每次技术方案评审,都会有人提出一个"理论上最优"的方案,但最后落地的,往往是那个"看起来不够优雅"的方案。

这不是偶然。背后有一套残酷的逻辑。

 

那个"完美方案"为什么总是死在会议室里

 

上周技术评审会,前端团队提出要引入微前端架构,理由很充分:模块解耦、独立部署、技术栈自由、团队自治。PPT做得精美,架构图画得漂亮,甚至连落地路线图都准备好了。

然后架构师问了一句:"谁来维护基座?iframe降级方案谁负责?跨应用通信出问题谁排查?"

会议室安静了30秒。

最后的决定是:继续用现有的Monorepo + 模块化方案,虽然不够"先进",但团队都熟悉,出问题知道怎么修。

这不是个例。我见过太多"技术上正确"的方案,死在各种现实问题上:

- 服务化改造,拆到一半发现团队根本撑不起这么多服务
- TypeScript全面迁移,三个月后发现一半团队还在用any
- GraphQL替代REST,半年后发现后端团队都不会写resolver
- Kubernetes上云,结果运维团队连基本的Pod调试都不会

页面