我叫赵峰,在“智创科技”干了八年。八年前公司刚起步,我就跟着老板,从地下室租来的办公室,三五个人的小团队,干到现在三层楼的独立办公楼,两百多号员工。我是公司第一个,也是资格最老的嵌入式软件工程师。不敢说有多大功劳,但公司起家的几个核心产品,底层代码至少有一半出自我手。
可就在上周,一纸调令,把我从研发部核心项目组,调到了后勤部的仓库,职位从高级工程师变成了“仓储物料协管员”。理由写得含糊其辞:“因公司业务调整及个人发展需要”。
狗屁的业务调整,狗屁的个人发展。我知道,就是因为我挡了某些人的路,说了某些人不爱听的真话。
我们研发部新来的总监,叫周凯,比我小五岁。他是公司大股东的外甥,海外某野鸡大学混了个文凭回来,之前在别的公司混了两年资历,空降到我们这儿。人长得油头粉面,嘴皮子利索,PPT做得花里胡哨,满嘴“互联网思维”、“颠覆式创新”,但你要问他一个具体的技术实现路径,或者代码里的一个bug怎么解,他能跟你扯半小时概念,最后说“细节让下面人去落实”。
我就是那个“下面人”。而且是个不太听话的“下面人”。
上个月,公司押宝的新一代智能家居中控项目“方舟”,到了最关键的联调阶段。我负责最核心的通信协议栈和低功耗管理模块。周凯为了赶进度向上面邀功,不顾测试组的强烈反对,强行要求跳过两个重要的压力测试环节,直接进入样机试产。我在项目会上直接拍了桌子:“周总,跳过这两个测试,协议栈在极端网络波动下的稳定性无法保证,低功耗模块的续航数据也会失真!现在赶这十天半个月,后面出了问题,损失可能是几十上百万,甚至砸了口碑!”
会议室鸦雀无声。周凯的脸当时就黑了,他盯着我:“赵工,你是老员工,更要懂得服从大局。进度就是生命线!你说的那些‘可能’,只是理论风险。我们要有敢于试错的勇气!具体技术问题,你们加班加点解决嘛!”
“这不是勇气,是蛮干!是拿公司和客户当小白鼠!”我没忍住,又顶了一句。
那之后,我就成了周凯的眼中钉。他先是把我从“方舟”项目核心组调开,塞给我一堆陈年旧项目的维护文档整理工作,美其名曰“发挥老员工经验优势”。然后,在各种会议上,明里暗里说我“思想僵化”、“缺乏创新精神”、“难以适应公司快速发展节奏”。
我也不是没想过低头,说几句软话。但看着他那副外行指导内行、还自以为是的嘴脸,话到嘴边又咽回去了。我在这公司干了八年,代码就是我说话的方式,踏实做事就是我立身的根本。让我去学那套溜须拍马、睁眼说瞎话,我学不来,也不想学。
压垮骆驼的最后一根稻草,是“方舟”样机出了大问题。首批一百台测试样机发出去,不到一周,反馈回来三十多台出现频繁断联、待机耗电异常的问题。客户骂声一片,销售部都快疯了。
周凯紧急开会,把锅甩得干干净净:“这主要是底层协议栈和功耗管理模块的原始设计存在缺陷,当然,项目时间紧,测试不充分也是客观原因。相关责任人,公司一定会严肃处理!”
他说的“相关责任人”,眼睛就瞟着我。那个协议栈和功耗模块,原始框架是我搭的,但后来被他塞进来的几个关系户实习生改得面目全非,关键优化点都被删掉了,为了所谓的“代码简洁”。我提出过异议,但没人听。
现在出事了,锅稳稳扣在了我这个原始设计者头上。几天后,调令就下来了。去仓库“协管”,据说还是周凯“念及旧情”、“照顾老员工”,给我安排的“休整岗位”。
收拾个人物品那天,研发部里静悄悄的。平时称兄道弟的同事,要么躲着我,要么眼神复杂地看我一眼,匆匆走开。只有跟我同期进来的老张,帮我抱了个箱子,送到电梯口,拍了拍我肩膀,低声说:“峰子,忍一忍,这地方……唉。”
周凯端着杯咖啡,从总监办公室晃出来,正好看到我。他脸上挂着虚伪的惋惜:“赵工啊,去仓库也好,清净,压力小。公司不会忘记你的贡献,以后有合适机会,再调你回来。啊?”那语气,那神态,跟打发叫花子似的。
我看了他一眼,没说话,抱着箱子进了电梯。箱子里,除了水杯、几本技术书,还有一枚公司五周年纪念章,当时老板亲手发的,说“感谢一路同行”。
仓库在办公楼负一层,阴暗,潮湿,堆满了各种电子元器件、包装材料、测试样机,空气里有股灰尘和塑胶混合的味道。我的“办公室”是角落里用隔板搭出来的一个小格子,对着堆积如山的物料清单和出入库登记表。同事是两个老师傅,人挺好,就是跟我没啥共同语言。
头两天,我像丢了魂。从敲代码、调电路、跟团队头脑风暴,变成核对物料编号、登记入库数量、跟着叉车盘点库存。巨大的落差让我整夜失眠,心里堵着一团火,憋屈,愤怒,更多的是心寒。八年,最好的八年,就换来这么个下场?
周凯呢?听说因为“果断处理了项目危机责任人”、“稳定了团队”,受到了上面表扬,位置坐得更稳了。他带来的人,纷纷占据了关键岗位。
我强迫自己适应。每天按时上班,对着表格,一个个数字地核对。老师傅让我歇着,我说不用。我需要做点具体的事情,哪怕是最简单重复的,来填满时间,不然我会疯。空闲时,我就看着那些堆积的“方舟”样机故障品,它们像一堆沉默的纪念碑,刻着我的失败和公司的荒唐。
我以为,我的人生,可能就在这仓库里,慢慢锈蚀,被人遗忘。直到那天下午,我的旧手机(公司配的新手机被收走了,说仓库用不上)突然响起来。是个陌生的座机号码,尾号很特别。
我接起来:“喂,你好。”
“是赵峰,赵工吗?”电话那头是个沉稳的男声,有点耳熟,但一时想不起。
“我是。您哪位?”
“我陆正国。”
陆正国?我脑子空白了两秒,然后猛地反应过来——董事长!公司最大的老板!我进公司第二年,他在年会上讲过话,后来就很少露面,听说主要精力在集团其他业务上。
我手心瞬间冒汗,声音有点紧:“陆……陆董?您好!我是赵峰。”
“赵工,你现在说话方便吗?”董事长的声音听不出情绪。
“方便,方便!我在仓库,就我一个人。”我赶紧说,心里七上八下。董事长找我?一个被贬到仓库的前工程师?难道周凯还不满意,要董事长亲自来开除我?
“长话短说。”董事长语气凝重起来,“‘方舟’项目出大事了。不是之前那些小毛病。我们最大的客户,‘安居集团’,采购了五千台定制版,部署在他们的高端样板间项目里。从昨晚开始,出现大规模、无规律的集体掉线、指令紊乱,甚至有几台核心主机疑似固件被锁死,完全无法操作。客户技术团队和我们研发部的人搞了一整天,找不到根因。现场已经快失控了,安居的副总刚才直接打电话给我,下了最后通牒,如果四十八小时内不能彻底解决并给出可靠保证,不仅要全部退货、索赔,还会终止所有后续合作,并在行业内通报。”
我心里一紧。五千台!行业龙头客户!这已经不是技术问题,是足以动摇公司根基的重大事故!
“研发部现在谁在负责?”董事长问。
“应……应该是周凯总监。”我回答。
电话那头沉默了一下,然后我听到董事长似乎深吸了一口气,再开口时,声音里带着一种极力压抑的怒意和疲惫:
“周凯?他带着他手下那几个‘精英’,折腾了十几个小时,换了三个方案,问题反而越来越严重。刚才他给我汇报,说问题可能出在硬件底层,需要联系芯片原厂,时间无法保证。”
董事长顿了顿,每一个字都像锤子敲在我心上:
“赵工,研发部解决不了。他们连问题的边都没摸到。我调了项目日志和你的离职(他用了‘离职’这个词,可能指调离)评估报告,也问了几个老人。这个项目的核心底子,是你打的。现在,我只问你一句:以你的判断,问题最可能出在哪里?还有没有救?”
我握着电话,站在堆满纸箱的仓库过道里,周围是灰尘和寂静。脑子里飞速闪过“方舟”项目的每一个技术细节,协议栈的每一行关键代码,功耗管理的每一个状态机。那些我闭着眼睛都能画出来的架构图,那些我曾力主保留却被砍掉的容错机制,那些被周凯他们嗤为“保守”的冗余设计……
“陆董,”我开口,声音因为激动和紧张有些沙哑,但思路异常清晰,“问题大概率不在硬件底层。芯片是成熟商用方案,出这种大规模同步问题的概率极低。根据您描述的‘大规模、无规律、集体掉线、指令紊乱’,结合‘方舟’现有的网络架构和协议栈实现,我判断,根因很可能是——网络广播风暴导致的协议栈状态机全局锁死,触发了我们自研的那个有缺陷的看门狗复位逻辑,而复位后,由于配置参数同步机制被砍掉了,各个节点加载的配置不一致,进而引发指令解析紊乱和更严重的循环冲突。”
我一口气说完,电话那头是短暂的沉默。我知道,这些技术术语对董事长来说可能有些陌生。
“你能解决吗?”董事长直接问,没有任何废话。
“我需要现场日志,特别是出问题前后网络交换机的流量镜像数据、主控机的内核日志,还有故障设备的完整内存转储。我需要最高权限,能访问所有相关代码库和设计文档。我需要一个完全听我指挥的小组,至少包括一个熟悉硬件调试的、一个懂网络分析的。还有,”我咬了咬牙,“我需要绕过现在的研发部管理层,直接向您汇报。因为任何来自周总他们的‘指导’或‘建议’,都可能干扰判断,浪费时间。”
我说出了最犯忌的话。但到了这个时候,我没什么可失去了。
董事长又是几秒的沉默,然后,我听到了他果断的命令:
“好。赵峰,我现在正式任命你为‘方舟项目紧急技术救援组’组长,全权负责此次事故的处理。你需要的一切资源、权限、人员,我马上安排。我会让我的助理直接对接你,绕过所有中间层级。你现在立刻到总部一楼会议室,我的人在那里等你,带你去客户现场。车辆已经备好。”
“陆董,我……我现在在仓库,我的门禁权限可能……”我提醒道。
“我知道你在仓库。”董事长的声音忽然沉了下来,带着一种不容置疑的力量,“调你去仓库,是公司的重大失误。现在,公司需要你回来。不是请求,是必须。门禁权限已经恢复,并且升级为最高等级。赵工,客户现场,几十个工程师等着,公司声誉悬于一线。拜托了。”
电话挂断了。
我站在原地,耳朵里还有嗡嗡的余音。仓库昏暗的灯光照在我脸上,手里廉价的旧手机还有些发烫。刚才那通电话,像一场极不真实的梦。
但手机很快又响了,是董事长助理,确认我的位置,告诉我专用电梯已经授权,让我直接上顶楼董事长办公室的备用会议室集合。
我放下手里的物料登记表,脱下仓库的工装马甲,露出里面还是以前在研发部时穿的旧衬衫。我对旁边惊讶看着我的老师傅点点头,说:“老师傅,麻烦跟后勤经理说一声,我有紧急任务,出去一下。”
然后,我挺直了腰,走向仓库出口。刷卡,滴——绿灯亮起,门开了。不再是那个需要登记、被盘问的仓库出口。
我坐上了直达顶楼的电梯。电梯镜面里,我看到自己有些憔悴,但眼神里熄灭已久的东西,似乎重新亮了起来。
到了会议室,里面已经有三个人在等:董事长助理,一个我认识的技术支持部老网络工程师,还有一个是硬件部沉默寡言但手艺极好的老师傅。助理简短交代:董事长已通知相关部门,我们小组拥有最高优先级,一切配合。车在楼下。
没有废话,我们立刻出发。车上,我用自己的旧笔记本,连上助理提供的加密网络,开始远程访问公司服务器,调取我能想到的所有相关日志和代码。老网络工和硬件老师傅也各自开始准备工具。
路上,我收到了无数条消息。有以前同事的惊讶询问,有周凯发来的、语气从惊疑到强装镇定的“关切”:“赵峰,听说你去现场了?有什么需要研发部配合的尽管说。”我没有回复。
到达客户现场,那是一片高档别墅区的样板间集群,气氛凝重。安居集团的技术负责人脸色铁青,我们公司研发部派驻的几个人(包括周凯手下的亲信)满头大汗,围着几台设备束手无策。看到我们进来,尤其是看到我,他们眼里的惊讶掩饰不住。
我没有时间寒暄或解释。在董事长助理的引荐下,我直接与客户技术负责人对接,拿到了最高权限。然后,我和我的两人小组,立刻投入工作。
过程像一场高强度的外科手术。我根据之前的判断,首先抓取了网络交换机的流量镜像。果然,发现了异常的广播包洪泛迹象。然后定位到协议栈中那个被我标注过“风险”但后来被改为“简化高效”的状态机处理函数。结合故障设备的内存转储,真相水落石出:周凯为了追求所谓的“响应速度”,去掉了我设计的关键状态校验和互斥锁,在网络波动时,多个任务同时抢占一个核心状态变量,导致状态机逻辑混乱,进而触发了一个有缺陷的、复位条件过于敏感的看门狗。复位后,由于另一个被砍掉的配置同步机制缺失,各设备读取的配置参数版本不一,彻底乱套。
问题根因找到,解决方案就清晰了:第一,紧急在网络侧配置策略,抑制广播风暴;第二,现场对已部署设备,通过特殊方式注入临时补丁,修复那个状态机函数和看门狗逻辑;第三,立即准备一个完整的固件热更新包,彻底解决问题并恢复配置同步。
我们三个人,几乎不眠不休。我负责核心算法和补丁编写,老网络工负责网络配置和抓包验证,硬件老师傅负责研究设备刷写方式。期间,周凯那边的人几次想过来“了解情况”或“提供思路”,都被董事长助理客气而坚定地拦在了工作区外。
二十个小时后,第一个临时补丁在几台典型故障设备上测试成功。又过了十个小时,完整的修复固件包生成,并通过测试。在客户技术团队的监督下,我们开始分批对五千台设备进行远程静默更新。
当最后一批设备更新完成,监控屏幕上,所有设备状态指示灯恢复正常绿色,网络流量曲线变得平稳有序时,会议室里爆发出一阵压抑已久的欢呼。客户技术负责人的脸色终于缓和下来,紧紧握住我的手:“赵工,厉害!真没想到……真是太感谢了!”
董事长助理当场给董事长打电话汇报。我听到电话那头,董事长似乎长长地舒了一口气。
回到公司,已是第二天深夜。董事长让我直接去他办公室。
办公室里,只有我和他。他看起来也有些疲惫,但眼神锐利。
“赵峰,这次,你救了公司。”他开门见山,“客户那边,危机解除,合作保住了,甚至因为我们的应急处理能力,对方还增加了些信任。但公司内部的问题,必须解决。”
他递给我一份文件:“这是关于‘方舟’项目事故的初步内部调查结论,以及相关人员处理建议。你看一下。”
我翻开,里面详细列举了周凯在项目管理上的诸多违规、技术决策的重大失误、以及事后推诿责任的行为。处理建议是:撤销其研发总监职务,解除劳动合同。同时,报告里也提到了我被不当调职的情况。
“研发部总监的位置,现在空了。”董事长看着我,“我想让你来坐这个位置。不是临时的,是正式的。你需要把研发部,重新拉回技术驱动、踏实做事的轨道上。我知道,这担子很重,而且会得罪很多人。你愿意吗?”
我看着董事长,想起这半个月来的仓库生涯,想起周凯那张脸,想起那些熬夜写代码、调试设备的日日夜夜。我也想起老张送我时的那声叹息,想起仓库里灰尘的味道。
“陆董,”我缓缓开口,“我愿意。但我有几个条件。”
“你说。”
“第一,研发部的人事权、项目技术决策权,必须真正归总监,而不是上面谁打个招呼就能塞人、改方案。第二,技术人员的晋升和评价,要以实际贡献和技术能力为核心,而不是PPT和关系。第三,‘方舟’项目,以及所有类似的项目,必须建立严格的技术评审和测试流程,任何人不得以任何理由绕过。第四,”我顿了顿,“仓库那边,我希望公司能改善一下环境,另外,那两位老师傅人很好,能不能考虑给他们加点薪资?”
董事长听完,脸上露出了这些天来的第一个,真正意义上的笑容。
“好。我都答应。具体细节,你和人力总监、财务总监去敲定。赵峰,”他站起身,再次向我伸出手,“欢迎回来。这次,是真正地回来。”
我握住他的手。
走出董事长办公室,走廊里灯火通明。我看到周凯抱着一个纸箱,正低着头,匆匆走向电梯,背影狼狈。几个以前躲着我的同事,远远看到我,眼神复杂,欲言又止。
我没有停留,径直走向研发部。那里,还有很多事情等着我去做。
被降职到仓库,关系户同事升为总监。董事长来电:研发部解决不了。
于是,我回来了。带着一身仓库的灰尘,和一颗从未冷却的技术之心。
这一次,我的代码,将不仅写在机器里,也将写在公司的规则和风气里。这感觉,不坏。
#情感故事#
热门跟贴