第一个 C 端项目刚上线那几天,我表面上还算稳,实际上整个人已经有点像被连续高负载跑了很久的服务,外头看着没宕,里头早就开始发烫了。
白天盯监控,晚上补问题,复盘会开完以后,我本来以为至少能喘两天。结果现实再一次证明,打工人的喘息权,很多时候只存在于自己的幻想里。
那天下午,我还在工位上整理上线后的问题清单,产品突然抱着电脑过来了。
她站在我旁边,语气特别自然,像只是顺路来问一句今晚吃什么似的。
“阿雷,后面还有个新项目,领导那边说可以先启动了。你这边先看看,大概把后端方案过一下。”
我当时手还放在鼠标上,脑子里先空了一秒。
“现在?”
“对啊。”她点点头,“需求文档已经在整理了,应该这两天就能拉会。”
我看着她,突然特别想问一句:姐,你看我像很闲吗?
但这种话显然不能直接说出口。成年人上班,很多时候最基本的职业素养,就是心里已经在翻桌了,脸上还得像在听天气预报。
我把页面最小化,抬头问她:“这个项目什么时候要?”
“尽快吧。”她说,“领导那边还挺重视的。”
行。
听到“尽快”和“挺重视”这两个词,我心里基本就有数了。
这活不是来跟我商量的,是来通知我:兄弟,恭喜你,前一个项目刚上岸,新的坑已经给你挖好了。
她走了以后,我盯着屏幕上那堆还没收完尾的问题清单,突然有种特别熟悉的血压上升感。
老项目这边还没完全稳。
监控要继续看,几个小问题要补,文档要整理,线上链路还得再顺。说得再直白点,这个项目现在只是“成功上线”,离“真正安稳”还差着一截。结果这边锅还在小火慢炖,另一口锅已经被人端过来,问我什么时候能开灶了。
那一瞬间我脑子里就只剩一个念头:
再不招人,我是真顶不住了。
以前我还会习惯性骗自己一下。
比如“年轻嘛,多扛点正常”;
比如“前期辛苦一点,后面就好了”;
再比如“咬咬牙,先把这一阵撑过去”。
可人这个东西吧,嘴能骗人,身体和情绪其实骗不了太久。
项目刚起那会儿,我还可以把自己那种累解释成兴奋。毕竟新公司、新项目、新 title,很多东西都在从 0 往上搭。那时候扛着,多少还有点“老子在做一套新系统”的上头感。现在不一样了,项目真跑起来以后,我开始越来越清楚地看到另一件事:
一个后端扛一个项目,短期看起来叫能打;
一个后端扛老项目维护加新项目启动,那不叫能打,那叫标准的单点故障。
我把手头的活在脑子里过了一遍,越过越烦。
老项目这边:
线上监控还得盯,状态展示的几个小问题要补,用户反馈得跟,复盘里的清单还没完全收口。
新项目那边:
需求要看,方案要过,表结构要想,接口要定,后面还得跟前端、产品重新再来一遍。
最关键的是——这些活,默认都还是我一个人。
我靠在椅子上,盯着天花板看了两秒,突然有种很荒唐的感觉。
老板接项目的时候那个状态,像在玩集邮。这个觉得不错,接;那个方向挺新,也接。接的时候一个比一个果断,像资源是无限的。可问题是,活接进来以后,真正跑代码、兜链路、熬日志的,不还是我这一个节点吗?
说难听点,我都快被用出分布式集群的错觉了。
可我自己心里清楚,我不是集群,我连个副本都没有。我就是个看起来还在转、实际上已经被压得有点发热的单线程服务。
那天下班以后,我整个人状态都不太对。
不是生气,就是那种闷着的烦。烦到什么程度呢?烦到我连在地铁上刷手机的心情都没有,只想把头往玻璃上一靠,谁都别跟我说话。
回到家以后,小璇一眼就看出来了。
她那会儿正在厨房切菜,听见我开门,回头看了一眼,刀都没停,就先来了一句:
“怎么了?”
我换鞋的时候还想装一下。
“没怎么。”
她“嗯”了一声,语气很平,听不出情绪。
“你每次进门先说没怎么的时候,通常都是有事。”
我没接话,把包往旁边一放,人直接坐到了沙发上。
小璇洗了下手,擦干以后走过来,站在我旁边看着我。
“项目又炸了?”
“没炸。”
“那就是来新活了。”
我抬头看她,愣了一下。
她看我那表情,自己都笑了。
“你这个人,情绪类型其实没那么复杂。项目真炸了,你反而会忙得没空摆这张脸。现在这种一脸想骂人又还没骂出来的样子,十有八九就是——又有人给你加需求了。”
我往后一靠,真有点服。
“不是加需求。”我叹了口气,“是又来一个新项目。”
小璇听完,第一反应不是安慰我,而是特别现实地问了一句:
“那你现在手头这个收干净了吗?”
“没有。”
“线上还得盯?”
“得盯。”
“那新项目是不是也默认你一个人接?”
我点了点头。
她站在那儿沉默了两秒,然后特别直接地来了句:
“那你还撑什么?这不是你顶不顶得住的问题,这是现在就该招人了。”
我抬头看着她,没说话。
这话其实我自己心里一整天都在转,只是一直没彻底说出口。打工人很多时候就是这样,明明知道资源不够,明明知道该提要求了,可一想到要跟领导开口,心里还是会下意识别扭。
怕什么呢?
怕领导觉得你不行。
怕别人觉得你刚做出点成绩就开始提条件。
怕自己这话一说出来,像在逃活,像在推责任。
归根到底,还是那种很老实巴交的职场病——总觉得“提资源”这件事,比“硬扛”更容易显得自己弱。
小璇看我没说话,干脆坐到了我旁边。
“你是不是觉得,开口要人,像在承认自己不行?”
我被她这句话问得有点没法躲,只能老实点头。
“有一点。”
“那你这想法挺打工人的。”她说。
我都被她说笑了:“什么意思?”
“意思就是,你已经在拿负责人的标准要求自己了,脑子里却还在用普通执行岗的逻辑想问题。”她看着我,语气不重,但特别稳,“你现在不是干不干得了的问题,是你已经看到风险了。看到风险不说,硬把自己顶进去,那不叫能扛,叫拿项目和自己一起赌。”
我靠在沙发上,慢慢吐了口气。
她这话说得太准了。
以前我总觉得,所谓扛事,就是把活接住,别往外推,自己多做点、多熬点、多顶点。后来才发现,那其实只是低配版扛事。真正的扛事,不是把自己当人肉中间件拼命兜住所有请求,而是你得知道什么时候这个系统已经快超载了,什么时候必须得把风险摆出来。
说白了,继续硬撑不是英雄主义,是低配自毁。
我侧过头看着小璇:“那我要真去说了,万一领导觉得我刚干出点样子就开始提要求怎么办?”
小璇听完,特别平静地回我一句:
“那你就把话说清楚。不是你不干,是现在这个配置继续接项目,风险已经很明显了。你不是在提要求,你是在做预警。”
我听完没说话,心里却一下清了很多。
很多时候人就是这样。
你自己脑子里打了一天死结,来来回回在那儿绕,绕得都快把自己绕麻了。结果别人一句话下来,结没完全解开,但至少你知道该从哪儿下手了。
那天晚上吃饭的时候,我还在想这件事。
吃完饭、洗完澡,躺到床上的时候,我心里已经基本有数了。
这话,得说。
而且不能再拖。
不是为了我自己轻松一点,是为了后面真别出事。
第二天上午,我找了个领导相对没那么忙的时候,去敲了下他办公室的门。
“有空吗?我想跟你聊两分钟。”
领导抬头看了我一眼:“你说。”
我进去以后,把门带上,坐下那一瞬间,心里还是本能地紧了一下。哪怕我已经在脑子里排练过一遍,真到开口的时候,还是会有那种熟悉的打工人局促感。像明明知道自己说的是正事,可身体还是下意识觉得——这像在给领导添麻烦。
我先没绕弯子,直接说了重点。
“现在这个情况,再不补后端人手,后面我这边真的会有风险。”
领导听完,没立刻说话,只是看着我,像在等我往下讲。
我干脆把话摊开了。
“老项目刚上线,现在还在观察期,监控要盯,线上问题要补,复盘里的东西也在收。新项目这边又要启动,后端方案、接口、数据结构这些都得有人接。现在全压在我一个人身上,短期咬咬牙也许还能顶,但凡中间两边事情撞一起,哪边都容易掉。”
说到这里,我停了一下。
领导问我:“你的意思是?”
我看着他,终于把那句话完整说出来了。
“我的意思是,得赶紧招人。再不招人,我这边是真顶不住了。”
这句话出口以后,我心里反而一下没那么紧了。
很奇怪。
就好像一件你憋了很久的事,在没说之前总觉得分量特别重,生怕一开口就把场面搞僵。真说出来以后,你才发现,原来也没那么可怕。
领导靠在椅子上看着我,过了两秒,才点了点头。
“你说的这个,我其实也在看。”
这话一出来,我心里第一反应是:来了,标准开场白。
“现在项目确实起来了,你一个人肯定会吃力。”他继续说,“尤其是后面如果老项目持续维护、新项目并行推进,确实不太够。”
我没插嘴,就安静听着。
说实话,到了这一步,我已经不太指望领导能现场拍板说“马上给你配俩高级后端”了。那种事一般只会出现在爽文里,现实里的领导大多不会给你这种即刻到账式幸福。可只要他能认真听进去,不把我这句话当成偷懒或者推活,我就已经觉得值了。
领导接着说:“这样吧,我让 HR 那边尽快先看人。你这边也想想,要什么样的,最好能尽快接得上。”
我一听这话,心里那口气终于实打实松了一截。
不管最后多快能到位,至少这事不是我一个人闷着扛了。
我点点头:“行,我这边整理个需求出来。”
领导又补了一句:“这段时间你先尽量把优先级控一下,别什么都自己往身上揽。”
我听完这句,差点都想笑。
这话站在老板角度当然没毛病,可打工人最熟的现实是什么?不是我什么都想揽,是很多时候项目往那儿一摆,默认就是你来。现在他能把“别都自己揽”这句话说出来,至少说明我昨天那番话没白说。
从办公室出来以后,我整个人都轻了一点。
不是问题解决了。
是终于不再只是我一个人心里知道问题在哪了。
以前我总觉得,所谓成长,就是技术越来越熟,接口越写越顺,项目越扛越多。后来才发现,不是。真正的成长,很多时候是你开始知道什么时候该顶,什么时候该说,什么时候该认清“继续这么搞下去会出事”。
这不叫怂。
这叫开始对项目和自己都负责了。
我回到工位上,打开文档,第一次不是想着“我怎么再继续硬顶一阵”,而是开始认真写招聘需求。
后端。
最好 Java 基础扎实。
能接 Spring Boot 这种常规项目。
有点接口设计和数据库设计经验最好。
最好还能接受快节奏,不然过来第一周就得被我们现在这摊事吓跑。
我一边写,一边在心里默默盘。
这个人进来,先接哪块?
老项目维护先分出去一点,还是新项目里非核心模块先拆?
文档得怎么补,才能让人来得快、上手也快?
越往下想,我心里越清楚一件事。
以前我以为扛事,就是把自己往前顶。
后来才慢慢明白,真要把项目做长,第一步不是继续把自己当集群用,而是先承认——
单线程,早晚会顶满。