创作声明:本文为虚构创作,请勿与现实关联
“手头的工作,照常进行。‘深蓝’项目的原有计划不变。”面对技术部一半骨干的集体跳槽,老板周毅的平静让所有人脊背发凉。
更让人看不懂的是,一周后他直接从高校招进三十个毫无经验的应届生,强行重启了关乎公司生死存亡的核心项目。
起初,这像是一场绝望的豪赌,直到新人们严格按照那份详尽到极致的设计文档,将代码一行行变为现实。
项目竟奇迹般推进,希望重新燃起。
然而,在交付前夜,系统突然崩溃,核心密钥被无法中止的进程全部加密,一个隐藏在代码深处的“逻辑炸弹”被引爆。
紧急会议上,周毅面对所有人的质问,缓缓吐出一个尘封五年的名字,并下达了一个让全场凝固的指令。
他隐藏最深的秘密,正随着这个指令,缓缓撕开一角。
办公室里静得吓人。
那种静,不是下班后的安宁,而是一种绷紧的、带着刺骨寒意的死寂。空气凝滞,只有空调出风口发出单调的呜咽。我面前的咖啡早就凉透了,褐色的液面上结了一层难看的膜。我的手指悬在键盘上方,却一个字也敲不下去。眼角的余光能瞥见,旁边工位的老张,正把抽屉里的个人物品,一样一样,慢吞吞地装进那个印着公司Logo的帆布袋里。他的动作很轻,仿佛怕惊扰了什么,但那窸窸窣窣的声音,在这种寂静里,被无限放大,像钝刀子割肉。
门“吱呀”一声被推开。
技术总监王海走了进来,他没看任何人,径直走向他自己的独立办公室。他的脸色铁青,嘴角抿成一条僵直的线,手里攥着一只档案袋,指节因为用力而发白。他身后的门,没有关严,留了一条缝。就是这条缝,像一道伤口,隐隐传来压抑的、激烈的争吵声。声音压得很低,但几个关键词还是漏了出来:“……期权……兑现……承诺……欺人太甚……”
我的心猛地往下一沉。
该来的,还是来了。
就在昨天,圈子里的小道消息已经传疯了:竞争对手“迅科科技”开出了令人无法拒绝的条件,精准地瞄向了我们“启航科技”最核心的技术团队。年薪翻倍,职位提升,最关键的是,对方承诺立刻兑现一大笔签字费,以及远比我们这里清晰明朗的股权激励方案。
而我们这边呢?项目正在攻坚,老板周毅把几乎所有利润都投入了新一轮研发,年终奖推迟发放,之前许诺的期权池细则迟迟不见落地。大家私下抱怨不是一天两天了,但谁也没想到,王海会带头。他可是跟着周毅打江山的元老,技术上的定海神针。
争吵声停了。
王海办公室的门被猛地拉开,他大步走了出来,身后跟着算法组的负责人李工,架构师刘哥,还有测试主管赵姐。全都是部门顶梁柱。他们谁也不看,脸上没什么表情,但那种决绝的、去意已定的气场,压得整个开放办公区的人都喘不过气。
王海走到办公区中央,停下,目光扫过一张张或惊愕、或茫然、或了然的脸,清了清嗓子,声音干涩:“各位同事,我,以及李工、刘哥、赵姐,还有其他几位伙伴,因为个人职业发展的原因,今天正式向公司提出辞职。相关手续和工作交接,我们会按规定完成。感谢大家一直以来的并肩作战。”
没有多余的解释,没有虚伪的客套。说完这几句,他微微点了点头,转身就走。那十几个人,沉默地跟在他身后,鱼贯而出。脚步声在空旷的走廊里回响,渐行渐远,最终被电梯的“叮咚”声吞没。
走了。真的走了。技术部一半以上的骨干,就在这个沉闷的下午,集体蒸发。
办公室里彻底炸开了锅。剩下的人面面相觑,恐慌像瘟疫一样蔓延。
“完了……核心代码都在王总他们手里……”
“下个月就要交付测试版了,这怎么搞?”
“听说迅科那边挖人挖得狠,会不会还没完?”
“公司是不是要黄了?我们怎么办?”
窃窃私语最终变成了大声的议论,绝望的情绪在发酵。我坐在那里,浑身发冷。我是后端开发组的组长,算是剩下的“资深”员工之一。王海他们的出走,不仅带走了技术和经验,更带走了这个团队最后一点精气神。项目“深蓝”——我们投入了两年心血、号称要改变行业游戏规则的新一代企业级安全防护平台——现在就像一个被抽掉了主心骨的空架子,摇摇欲坠。
就在这时,总裁办公室的门开了。
老板周毅走了出来。
周毅有个外号,叫“周阎王”。不是因为他长得凶,相反,他个子不高,身材微胖,平时总穿着皱巴巴的 Polo 衫和牛仔裤,戴着一副黑框眼镜,看起来甚至有些敦厚。这个外号,来源于他的风格。
极致的苛刻,极致的拼命,对项目进度和代码质量有着近乎变态的要求。他能在代码评审会上,为一个变量的命名和你争论半小时;也能为了赶一个紧急补丁,拉着整个团队通宵四十八小时,然后亲自下楼给大家买早餐。他骂起人来毫不留情,尤其是对技术上的疏漏和态度上的懈怠,能把你批得体无完肤。但奇怪的是,跟着他拼过命、挨过骂的人,很多又对他有种复杂的佩服。因为他自己就是技术顶尖高手,他骂你的问题,往往一针见血;他要求你做到的,他自己首先能做到,甚至做得更好。
此刻,周阎王就站在他的办公室门口,背着手,看着一片狼藉、人心惶惶的技术部。他的脸上没什么表情,既没有预料中的暴怒,也没有挫败的沮丧。镜片后面的眼睛,平静地扫视着,像是在清点仓库里剩下的零件。
议论声渐渐低了下去,所有人都屏住呼吸,看着他,等待着一场预料之中的风暴。
然而,风暴没有来。
周毅往前走了一步,清了清嗓子,他的声音不高,却奇异地压住了所有杂音:“手头的工作,照常进行。‘深蓝’项目的原有计划不变。”
不变?所有人都以为自己听错了。骨干走了一大半,项目计划不变?拿什么做?
“王海他们的离职手续,行政部会跟进。”周毅继续用那种平板的语气说,“他们的工作,暂时由各组剩余人员分摊。具体的调整方案,明天我会公布。”
他说完,顿了顿,目光在几个小组长脸上停留片刻,包括我。“杨帆,你们后端组,先把目前的代码仓库权限和项目文档整体核查一遍,列出所有依赖项和风险点,下班前发我。”
“好……好的,周总。”我赶紧应下。
“其他人,”周毅最后看了一眼众人,“该干什么,干什么。天塌不下来。”
他转身回了办公室,关上了门。留下外面一屋子人,面面相觑,惊疑不定。
“周总这是……气傻了?”有人小声嘀咕。
“不像啊,你看他多冷静。”
“冷静?我看是放弃治疗了吧?八成是在里面琢磨怎么卖公司呢。”
“唉,散了吧散了吧,赶紧更新简历是正经。”
我坐回工位,心里也是七上八下。周毅的反应太反常了。这不像他。按照他以往的脾气,此刻应该早就把大家叫进去开会,拍桌子骂娘,然后宣布进入紧急状态,全员疯狂加班试图挽回才对。这种异样的平静,反而让人更加不安。
他真的有什么后手?还是说,连他也觉得大势已去,懒得折腾了?
我甩甩头,强迫自己集中精神,开始按照他的吩咐,梳理代码仓库。这一梳理,心更凉了半截。王海他们走得“很干净”,自己负责的核心模块代码虽然还在,但关键的架构设计文档、算法参数调优记录、以及几个正在攻关的加密协议的实验性分支,都被删除或转移了。这不仅仅是人走了,这是把房子的承重墙都拆了,只留下一个看似完整的空壳。
我把初步的风险清单整理好,心情沉重地敲响了周毅办公室的门。
“进。”
我推门进去。周毅正站在窗边,望着楼下街道的车水马龙。听到我进来,他转过身,指了指对面的椅子。“坐。清单列好了?”
我把打印出来的几页纸递过去。“周总,情况比预想的还糟。核心模块的文档缺失严重,几个关键算法只有最终版二进制文件,源码和调试记录都没了。另外,‘深蓝’核心的动态加密网关部分,一直是王总亲自带着李工在搞,我们这边只有最基础的接口定义,内部逻辑完全是黑盒。”
周毅接过清单,快速地翻看着,脸上依然没什么波澜。看完,他把纸放在桌上,手指在“动态加密网关”那一项上点了点。
“这部分,是我们和竞争对手拉开差距的关键,也是‘深蓝’的命门。”他抬起头,看着我,“杨帆,如果让你们组接手,从头逆向、重构,大概需要多久?”
我心里苦笑。我们组剩下的人,应付日常迭代和维护已经捉襟见肘,要啃这种硬骨头?“周总,不是涨他人志气。王总他们在这个方向上研究了快三年,积累了大量试错经验。我们就算能勉强吃透现有接口,想要逆向出完整逻辑并确保安全稳定,至少……至少需要大半年,而且需要补充至少两名顶尖的加密算法工程师。这还不算可能涉及的专利问题。”
周毅沉默了一会儿,手指无意识地敲着桌面。办公室里的灯光照在他的眼镜片上,反着光,让我看不清他的眼神。
“大半年……”他低声重复了一句,然后忽然问了一个似乎不相干的问题,“杨帆,你是科大毕业的吧?”
我一愣:“是,本科和硕士都在科大。”
“你们学校计算机学院,今年的应届生,找工作形势怎么样?”
“好像……听说比往年难一些,大厂缩招,很多中小公司也不景气。”我有些跟不上他的思路。
周毅点了点头,身体往后靠在椅背上,终于露出了今天第一个可以称之为“表情”的神色——那是一种混合着决断和某种狠厉的神情。
“行,我知道了。风险清单放这儿,你先回去,安抚一下组里情绪,日常工作不能乱。”他顿了一下,补充道,“另外,准备一下,可能很快会有新人进来,你带一带。”
新人?这个时候,招新人?社招有经验的都未必愿意来趟这浑水,招应届生?那不等于让刚拿驾照的新手去开重型卡车吗?
我满腹疑惑地离开了办公室。周毅到底在想什么?他那种平静之下,究竟藏着什么打算?难道真的破罐子破摔,或者……他手里真的还有我们不知道的牌?
接下来的几天,公司气氛诡异。剩下的员工人心浮动,私下里求职面试的电话明显多了起来。但周毅那边,却反常地安静。他不再像以前那样频繁地出现在开放办公区盯着进度,大部分时间都把自己关在办公室里,偶尔能听到他打电话的声音,语气平静,听不出端倪。
项目“深蓝”的推进实际上陷入了停滞。我们这些剩下的人,只能勉强维护着基础框架,对于最核心、最要命的部分,根本无从下手。所有人都清楚,如果不能在合同规定的交付日期前拿出可测试的版本,公司不仅要面临巨额违约金,声誉也将遭受毁灭性打击。那点剩下的家底,根本赔不起。
就在这种压抑和等待中,一周后的星期一,答案以一种令人瞠目结舌的方式揭晓了。
早晨刚上班没多久,行政主管孙姐就一脸古怪地跑进技术部,对大家说:“那个……大家准备一下,周总马上带新同事过来。”
新同事?还真招到人了?几个?能顶用吗?
几分钟后,周毅的身影出现在技术部门口。而在他身后,跟着进来的人,让整个办公室瞬间陷入了彻底的寂静。
一个,两个,三个……年轻,无比年轻的面孔,带着刚出校园的青涩和好奇,甚至有些拘谨不安。他们穿着整齐但略显刻板的衬衫或T恤,背着双肩包,眼神干净,打量着这个对他们来说可能象征着梦想起点的办公环境。人群像溪流一样持续流入,竟然密密麻麻站了一大片。
“好了,就这里吧。”周毅在办公区中央站定,拍了拍手,声音一如既往的平稳,“各位同事,暂停一下手里工作。介绍一下,这些是我们公司新加入的伙伴,一共三十位,都是来自国内几所顶尖高校计算机相关专业的应届毕业生。未来,他们将主要补充到‘深蓝’项目组,以及公司各技术岗位上。”
三十个!应届生!
我听到身边有人倒吸了一口冷气,有人下意识地捂住了嘴,更多的人则是满脸的难以置信和荒谬感。走了十几个顶尖骨干,补充进来三十个……一张白纸?这算什么?量变引发质变?可这是技术研发,不是生产流水线啊!
周毅仿佛完全没有看到老员工们脸上的震惊和质疑,他转向那群年轻人,语气甚至称得上温和:“这里就是大家未来一段时间战斗的地方。‘深蓝’是我们公司目前最重要的战略项目,技术上有挑战,也有足够的空间让大家学习和成长。希望大家尽快适应,把学校里的理论知识和这里的工程实践结合起来。”
他又简单介绍了一下几个小组长,包括我。“杨帆,后端开发组长,以后你们后端方向的新同事,主要由他负责业务指导和任务安排。”
那群年轻人的目光齐刷刷地投向我,里面充满了跃跃欲试和一丝不易察觉的紧张。我看着这一张张朝气蓬勃却毫无经验的脸,头皮一阵发麻。让我带他们?去攻克连我们这些老鸟都束手无策的技术堡垒?周毅这不是在开玩笑吧?
周毅很快结束了简短的欢迎,让行政安排工位。技术部原本因为骨干离职空出了不少位置,这下子不仅填满了,还显得有些拥挤。办公室里顿时充满了年轻人低声交谈、整理物品的窣窣声,气氛变得有些怪异,一种沉暮的焦虑与一种新鲜的茫然交织在一起。
我硬着头皮,召集分到我这里的八个应届生,开了个小会。互相介绍了一下,他们果然都是985高校的尖子生,简历上成绩耀眼,项目经历(大多是课程设计或校内比赛)也像模像样。但问到实际的企业级开发经验、分布式系统调优、特别是密码学和安全协议的相关实践,几乎都是一片空白。
“杨哥,我们什么时候能接触核心代码?”一个叫何峰的男生,眼睛很亮,迫不及待地问,“我在学校就对安全加密特别感兴趣!”
我看着他热情洋溢的脸,心里叹了口气。“先把环境搭好,熟悉一下现有的项目结构和代码规范。核心部分……需要先打好基础。”我实在没法告诉他们,他们心心念念的“核心”,现在对我们所有人来说,都是一个黑箱,一个巨大的坑。
打发他们去干活后,我忍不住又看向周毅的办公室。他正站在玻璃墙后面,和其中一个看起来比较沉稳的应届生单独说话。那学生不住地点头。
周毅到底要干什么?用三十个毫无经验的新人,去填那个被掏空的技术窟窿?这听起来不像是一个有几十年行业经验的老兵会做出的决策,这简直像是一种自杀式的疯狂,或者说……一种置之死地而后生的、极致的冷酷?
他把这些学生招进来,许诺他们参与重要项目,给他们希望。可现实是,前面很可能是一个注定失败、会碾碎他们所有热情和自信的泥潭。这对这些年轻人公平吗?对公司剩下的老人公平吗?对他自己……又有什么好处?
我第一次觉得,这个平时只是觉得严厉、苛刻的老板,心思深得让人害怕。他的“狠”,或许不仅仅是对别人,也是对他自己,对他一手创立公司的命运,进行的一场不计后果的豪赌。
只是,赌注未免太大了。
最初的混乱和不适过去后,技术部进入了一种奇特的“双轨制”运行状态。
一边是包括我在内的老员工,忧心忡忡地维持着项目基本盘,尝试着在缺失核心部件的情况下,搭建一些外围功能,同时心里那根关于项目死线的弦越绷越紧。另一边,是那三十个应届生,他们像被投入陌生海域的鱼群,起初有些慌乱,但很快就在强大的学习本能和初入职场的兴奋感驱动下,开始拼命汲取一切。
周毅为这些新人制定了极其密集的培训计划。白天,他们被要求快速熟悉公司技术栈,阅读大量的基础代码和设计文档(当然是能公开的那些)。晚上和周末,往往不是培训就是技术分享会。分享者有时是周毅自己,有时是他从外面请来的专家(费用显然不菲),有时甚至是我这样的老员工。
让我意外的是,周毅讲课的水平很高。他能把复杂的分布式系统原理或者加密学基础,拆解成易懂的模块,结合具体的、哪怕是简化过的工程实例,讲得深入浅出。那些学生们听得如饥似渴,笔记记得飞快。我能看到他们眼中的光,那是一种被引领、被点燃的求知之光。
但我知道,这远远不够。从理论到能独立承担“深蓝”核心模块的开发,中间隔着天堑。更别说我们现在连方向都摸不准。
这些学生也开始承担一些实际工作,最初是简单的bug修复、文档整理,后来是一些相对独立的小功能模块开发。他们很努力,经常自发加班,遇到问题会互相讨论,也敢来问我们这些“前辈”。平心而论,他们的基础和学习能力确实不错,一些好的苗子开始冒头,比如那个何峰,对加密算法的理解速度惊人。
然而,隐患也无处不在。他们缺乏工程经验,写出的代码有时看似漂亮,却忽略了性能、边界条件或者异常处理;他们对业务的理解停留在表面,难以把握复杂系统的整体平衡;最重要的是,他们完全不了解“深蓝”项目目前面临的真实绝境——核心缺失,时间紧迫。周毅似乎有意对他们隐瞒了最糟糕的部分,只是不断强调这个项目的重要性,描绘着成功后的蓝图。
老员工和新人之间,也存在着微妙的隔阂。我们看他们,带着一种复杂的情绪,有同情,有担忧,有时也有一丝“不知者无畏”的轻微嘲讽。他们看我们,则带着尊敬和距离感,或许也能隐约感觉到我们身上那种挥之不去的焦虑。
压力像滚雪球一样越来越大。交付测试版的日期一天天逼近。客户那边已经来了几次询问进度的电话,都被周毅以“内部优化调整”为由挡了回去,但谁都知道,这借口用不了多久。
一天下午,我因为一个部署问题,去找运维的同事。路过一间小型会议室时,听到里面传来周毅和一个略显激动的声音。是那个叫何峰的学生。
“周老师!我们小组研究了现有的接口文档和流量样本,对动态加密网关的可能实现方式做了几种推测,这是我们的分析报告!”何峰的声音充满干劲,“我们认为,或许可以尝试用另一种架构来重构这个模块,虽然不敢说能达到原有设计的全部效能,但至少可以保证基础功能,而且我们觉得在扩展性上可能有优势……”
“报告放这儿。”周毅的声音听不出喜怒,“你们组的想法有创意,但现阶段,你们的任务是吃透既定的接口规范,确保能正确调用。重构核心模块,不是你们现在该考虑的事情。”
“可是周老师!如果原来的方案真的不可挽回,我们为什么不能尝试新的路径?我们有信心……”
“何峰。”周毅打断他,语气加重了些,“在工程领域,尤其是在安全领域,很多时候,‘能工作’和‘可靠、安全’是两回事。你们缺少的是时间和试错的经验。按既定计划走,不要绕远路。”
里面沉默了一会儿,何峰再开口时,声音低了不少,带着不甘:“……是,明白了。”
我快步走开,心里却翻腾起来。何峰他们的尝试,或许是幼稚的,但那种想要解决问题的冲劲是真实的。而周毅的压制,表面上是稳妥起见,但结合目前的困境,总让人觉得,他似乎在刻意避免这些新人过早触及问题的真正核心,或者说,避免他们用“新思路”去触碰那个“旧黑洞”。
他到底在等什么?还是在准备什么?
又过了两周,距离最终交付期限只剩下不到一个月。连那些应届生也感觉到了山雨欲来的压力,因为分配给他们的任务越来越零碎,越来越偏向辅助性质,而真正的核心推进会议,他们从未被邀请参加。
周五晚上,加班的人不多。我处理完手头的事情,正准备离开,看到周毅办公室的灯还亮着。鬼使神差地,我走了过去。门虚掩着,他背对着门,站在白板前。白板上画满了复杂的架构图和关系线,有些地方打着问号,有些地方用红笔重重圈了起来。
他站了很久,一动不动,像一尊凝固的雕像。然后,我听到他极轻地,几乎像叹息一样,自言自语了一句:
“时间……差不多了。”
什么时间差不多了?我心头一凛。
就在这时,他似乎感应到门口有人,猛地转过身。目光透过镜片,锐利地扫过来,看到是我,那锐利稍稍收敛,但依旧深不见底。
“杨帆?还没走。”
“嗯,刚弄完。”我有些不自然,“周总,您也早点休息。”
他“嗯”了一声,重新转向白板,拿起板擦,开始慢慢擦去上面的线条。动作缓慢而坚定,仿佛在抹去某种过去。
“下周一,”他背对着我说,声音平静无波,“召集全体技术会议,包括所有新人。我们要启动‘深蓝’核心模块的最终攻关。”
我愣住了。最终攻关?拿什么攻关?就凭我们这群残兵败将和三十张白纸?
他似乎知道我的疑问,但没有解释,只是继续擦着白板。最后,白板变得一片空白,反射着冷清的光。
“告诉大家,做好心理准备。”他顿了顿,补充了一句,这句话像冰碴子一样,落进我的耳朵里。
“接下来,会很难。”
周一的全体技术会议,气氛凝重得能拧出水来。
大会议室里坐得满满当当。左边是以我为代表的、面色沉重、眼神游移的老员工;右边是三十个应届生,他们似乎也感受到了不同寻常的气氛,坐得笔直,脸上带着紧张和一种近乎虔诚的专注。周毅站在最前面,身后是投影屏幕,上面打出一行简洁而残酷的字:
**“深蓝”项目最终阶段攻坚启动会。**
“各位,”周毅开口,没有寒暄,直入主题,“相信大家都很清楚‘深蓝’项目对公司的重要性,以及我们目前面临的处境。距离合同约定的交付测试版日期,还有二十五天。”
台下响起一阵轻微的骚动,主要是老员工这边。新人们大多只是抿紧了嘴唇。
“之前,因为一些人员变动,项目核心——动态加密网关模块的研发受阻。”周毅的语气依旧平稳,仿佛在陈述一个与己无关的事实,“原有的设计和实现细节,随着前同事的离职,已不可用。”
这句话像一块石头砸进水里,在新人那边激起了明显的波澜。他们之前只是隐约知道项目有困难,但没想到是“核心不可用”这种级别的灾难。我看到何峰的眼睛猛地睁大了。
“所以,我们现在的任务,不是修补,而是……”周毅的目光缓缓扫过全场,一字一顿地说,“在二十五天内,从零开始,重新设计并实现一个全新的、能满足‘深蓝’项目所有技术指标和性能要求的动态加密网关。”
“从零开始?二十五天?”一个老员工忍不住低声惊呼出来,声音里充满了绝望。这根本是天方夜谭!就算是王海原来的完整团队,要做这样一个深度定制、涉及高强度加密算法的核心模块,从设计到稳定测试,至少也需要三四个月。二十五天?还不够理清需求的!
新人那边更是鸦雀无声,许多人脸上写着茫然和难以置信。他们或许还不完全理解这个任务的恐怖之处,但“从零开始”和“二十五天”这两个词组合在一起的压迫感,他们感受到了。
“这不可能!”另一个老员工直接站了起来,脸涨得通红,“周总,我们知道您想救这个项目,但这事不能拍脑袋决定!这是拿公司的信誉和所有人的时间开玩笑!”
质疑声像点燃的引线,在老员工中蔓延。压抑了许久的焦虑、不满和恐惧,似乎找到了一个出口。
周毅没有制止,只是安静地听着,等声音稍微平息,他才开口,声音不大,却带着一种不容置疑的力量:“我知道这听起来不可能。我也知道,按照常规的评估,这确实是不可能完成的任务。”
他停顿了一下,目光变得极其锐利,看向那个站起来的员工,也看向我们每一个人。“但是,我们现在没有‘常规’的选项。要么,二十五天后,我们向客户承认失败,支付巨额违约金,公司声誉扫地,在座各位的履历上会留下一个失败项目的记录,公司也可能因此一蹶不振。要么……”
他的声音提高了一些:“我们拼一把,用非常规的方法,去创造一个可能。”
“怎么拼?用什么拼?”有人质问。
周毅的手指向了右边,那群年轻的应届生。“用他们,和我们。”
所有人都愣住了,看向那群学生。学生们自己也惊呆了,不知所措。
“从今天起,技术部重组。打破原有小组界限,围绕‘动态加密网关’重建攻关团队。我将亲自担任总架构师和项目经理。”周毅的语速加快,带着一种不容反驳的决断,“老员工作为基础框架和外围系统的保障组,确保其他模块稳定,并为攻关团队提供必要的底层支持。而攻关团队的核心编码和算法实现任务——”
他的目光落在那三十张年轻的脸上。
“——将由他们,我们的三十位新同事,为主力承担。”
会议室里死一般的寂静。老员工们脸上写满了荒谬、愤怒和一种被抛弃的悲凉。让一群毕业不到两个月、毫无实战经验的新人,去担任公司生死存亡项目的核心编码主力?这不是赌博,这是直接跳崖!
新人们则是一片惶恐。何峰的脸色有些发白,但眼睛里却燃起了一小簇火苗,那是一种混合着恐惧和极致挑战刺激的火焰。其他学生,有的跃跃欲试,有的眼神躲闪,有的完全懵了。
“周总!”我又站了起来,感觉喉咙发干,“我理解您的想法,想给他们机会,想激励他们。但这是核心模块,关系到整个项目的安全和稳定,不能儿戏!他们的经验和能力,根本不足以承担这样的责任!出了问题,谁来负责?是,他们年轻,有冲劲,可冲劲不能当代码跑啊!”
我的话代表了很多老员工的心声,大家纷纷点头。
周毅看着我,沉默了几秒钟。那几秒钟格外漫长。然后,他说出了一句让我,也让所有人瞬间失语的话。
“他们不需要对所有细节负责。”周毅的声音冷硬得像铁,“他们只需要,严格按照我给出的详细到函数级别的设计文档,进行代码实现和单元测试。”
详细到函数级别的设计文档?
我们所有人都知道,周毅技术厉害,但“详细到函数级别”的设计文档,意味着什么?意味着架构设计、模块拆分、接口定义、关键算法流程、甚至重要的数据结构和方法签名,都已经完全确定。程序员几乎变成了填空者,只需要用代码把预设的逻辑“翻译”出来。这在极度追求创新和灵活性的互联网公司,几乎是不可想象的,除非是某些对稳定性和安全性要求到极致的特殊领域(如航天、金融核心系统),或者……是某种为了绝对控制而采取的手段。
周毅手里,早就有一份完整的、全新的“动态加密网关”设计方案?而且详细到了那种程度?他是什么时候做的?在王海他们离职之前还是之后?如果他早有方案,为什么以前不用?为什么非要等到山穷水尽,再用这种极端的方式,让一群新兵去执行?
无数的疑问冲击着我的大脑。我看着周毅,他站在光影里,脸色平静,眼神深邃。我突然觉得,我们所有人,包括那些离职的王海他们,可能从未真正看透这个叫周毅的男人。他的“狠”,他的“静”,他招三十个应届生的举动,他此刻抛出的“详细设计文档”……这一切背后,到底隐藏着什么?
他不仅仅是在拯救项目。
他似乎……在下一盘很大的棋。而我们,都是棋盘上的棋子。
只是,我们这些“棋子”,尤其是那三十个被推到最前沿的年轻棋子,最终会迎来怎样的命运?
周毅不再理会我们的震惊,开始快速布置任务。攻关团队被分成几个小组,每个小组负责文档中指定的一个子模块。他当场分发了第一批设计文档的加密电子版。学生们拿到后,立刻埋头看了起来,会议室里只剩下纸张翻动和鼠标点击的声音。
老员工们面面相觑,最终,在周毅不容置疑的目光下,也只能怀着满腹的疑虑和不安,接受了这个疯狂的计划。
攻坚,就这样以一种匪夷所思的方式,启动了。
最初的几天,混乱依然存在。新人们对庞大的文档需要时间消化,对开发工具和环境还在熟悉,老员工在提供支持时也难免带着情绪和保留。但周毅像一台精密的机器,高强度地运转着。他几乎住在公司,随时解答新人的问题,每天检查各小组的代码提交,进行严格的代码评审,对任何偏离设计文档的“自由发挥”都会立刻叫停并纠正。
他的精力旺盛得可怕,对细节的执着也达到了新的高度。同时,他对新人的指导又极其耐心,往往能一针见血地指出问题所在。那些学生,在经历了最初的不知所措后,开始以一种惊人的速度适应这种高强度、高纪律性的开发模式。他们像海绵一样吸收着周毅灌输的知识和方法,严格按照图纸“施工”。
何峰所在的小组负责最核心的加密算法适配层。有一次我路过,听到周毅在给他讲解一个关键函数的实现要点,讲解中涉及到一些相当深奥的密码学原理和工程优化技巧,那绝不是临时抱佛脚能讲出来的。何峰听得连连点头,眼中满是折服。
我心中的疑团越来越大。周毅展现出的对“全新”方案的熟悉程度,远远超出了一个“刚刚完成设计”的人应有的状态。就好像……这个方案,在他脑海里已经演练过无数遍,早已烂熟于心。
他是不是早就准备抛弃王海他们的技术路线?王海他们的离职,到底是意外,还是……某种必然?
这个念头让我不寒而栗。
时间在疯狂的编码和测试中飞逝。攻关团队在周毅的强力驱动下,居然真的跑了起来。那些年轻人展现出可怕的拼劲,昼夜不停,困了就在工位趴一会儿,醒了继续。办公室彻夜灯火通明,弥漫着咖啡和泡面的味道。周毅也几乎是连轴转,眼里的血丝越来越多,但腰板始终挺得笔直,声音依旧稳定。
老员工们最初的质疑和不满,在一种近乎悲壮的氛围中,渐渐被冲淡了。不管周毅的目的是什么,至少他现在是在用尽全力试图挽救公司。而我们剩下的这些人,除了尽力保障好自己那部分,似乎也别无选择。一种“同舟共济”(尽管这舟的方向和掌舵人让人不安)的情绪,开始悄然滋生。
十五天过去,奇迹般地,核心网关模块的第一个内部测试版本,居然搭建起来了。虽然bug很多,性能也不达标,距离可用还很远,但这本身已经超出了所有人的预期。那些年轻程序员们,脸上带着疲惫,却也洋溢着一种创造奇迹的兴奋和自豪。何峰甚至在一次小组讨论时激动地说:“跟着周老师做项目,虽然累,但学到的东西比在学校几年都多!我觉得我们真的能成!”
能成吗?我看着他们因为缺乏睡眠而苍白却兴奋的脸,心里却一点也轻松不起来。还有十天。十天,要完成剩下的集成测试、性能调优、安全审计和稳定性验证,这依然是几乎不可能完成的任务。而且,我总有一种隐隐的不安,觉得事情进展得“太顺利”了。周毅那详尽到可怕的设计文档,仿佛一个早已准备好的完美剧本,我们所有人,只是在按部就班地演出。
这种被无形之手操控的感觉,并不好受。
在第二十天,距离交付还有五天的时候,意外发生了。
那天凌晨三点,大部分攻坚团队的成员刚被周毅强行赶回去休息几个小时。办公室里只剩下几个负责夜间自动化测试的运维同事,以及还在核对日志的我。
突然,尖锐的警报声响彻了整个办公区!
是核心服务器集群的警报!来自刚刚搭建起来的“深蓝”动态加密网关测试环境!
我心脏骤停,猛地从工位上跳起来,冲向服务器监控区。屏幕上,代表服务可用性的曲线像跳水一样直线下跌,瞬间归零。同时,网络流量监控显示,测试环境正在遭受异常巨大的、伪装成正常协议的数据流冲击!
“怎么回事?被攻击了?”运维同事的声音都变了调。
“是测试环境!网关服务崩溃了!所有请求超时!”
“快重启服务!”
“重启失败!进程起不来!系统资源被异常占满!”
“查攻击源!”
“源地址是伪装……不,等等!这个数据包特征……不对!不是外部攻击!”一个运维盯着分析面板,脸色惨白地转过头,声音带着颤抖,“数据包是从我们内网发出的!是从……是从网关程序本身的一个调试接口泄露出来的!这个接口……这个接口在设计文档里标记为‘仅供内部测试,正式版必须关闭’!”
我的脑袋“嗡”的一声。调试接口未关闭?这种低级错误?
但紧接着,更可怕的事情发生了。监控屏幕上,除了服务宕机的警报,又跳出了一行新的、更加刺眼的红色警告:
“检测到核心配置及密钥文件被异常进程读取并加密。加密进程无法中止。”
密钥文件被加密?!
“深蓝”网关的核心,除了算法,就是那些用于动态生成会话密钥的根密钥和配置文件。这些文件被加密,意味着整个网关就算恢复运行,也无法正常工作,因为它无法读取启动所必需的核心参数!
“加密进程的签名……验证通过,是我们自己的加密程序模块!”运维同事的声音已经带上了哭腔,“但它被调用的方式和参数……完全不对!这是一个逻辑炸弹!”
逻辑炸弹!有人预先在代码里埋下了恶意程序,在特定条件(比如调试接口被触发)下,会启动,加密关键文件,然后自毁或隐藏!
办公室里死一般寂静,只有警报声在无情地嘶鸣。我们几个人站在那里,浑身冰凉,看着屏幕上不断刷新的错误日志和无法停止的加密进度条。
是谁?谁能在周毅如此严密的代码评审和设计控制下,埋下这样的炸弹?
一个名字,几乎同时出现在我们所有人的脑海——那些新人!只有他们,是直接编写这些代码的人!他们中的某一个,或者某几个?
不,不对。设计文档是周毅提供的,代码结构、关键函数调用关系都是定死的。新人就算想埋雷,也很难绕过周毅的审查,除非……除非这个“雷”,本身就被巧妙地写在了最初的设计文档里,写在了那些“详细到函数级别”的说明中,而新人只是忠实地把它实现了出来?
这个念头让我如坠冰窟。
周毅的设计文档……
就在这时,急促的脚步声传来。周毅冲了进来,他显然也被警报惊醒了,衣服还有些凌乱。他冲到监控屏幕前,只看了一眼,脸色瞬间变得铁青。他的目光死死盯住那条“调试接口未关闭”和“密钥文件被加密”的警告,嘴唇抿得发白,手指因为用力攥紧而微微发抖。
但他没有像我们一样惊慌失措。他猛地转过身,眼神锐利如刀,扫过我们每一个人,最后落在我身上。他的声音沙哑,却带着一种可怕的冷静:
“杨帆,立刻召集所有技术核心人员,老员工和攻关团队所有组长,十分钟后,一号会议室紧急会议。”
他停顿了一下,深吸一口气,说出了让我们所有人血液几乎冻结的话:
“我们被算计了。这不是意外,这是一次精心策划的内部破坏。”
“而破坏者,就在我们中间。”
会议室里,气氛压抑得让人窒息。
所有老员工,以及何峰等几个学生组长都到了。每个人脸上都写着震惊、恐惧和茫然。何峰的眼睛红红的,不知道是熬夜还是别的情绪。
周毅站在前面,没有废话,直接在大屏幕上展示了警报日志和初步分析结果。
“情况大家都看到了。我们的测试环境,在凌晨三时十五分,因未关闭的调试接口被触发,进而激活了一个隐藏在加密模块中的恶意程序。该程序已经加密了所有核心密钥和配置文件。加密算法强度极高,且进程无法中止。”周毅的声音冰冷,条理清晰得可怕,“这意味着,我们过去二十天的工作成果——代码本身可能还在,但驱动它的‘心脏’已经被锁死。没有那些密钥,新开发的网关程序就是一堆废铁。”
“怎么会这样?”一个老员工痛苦地抱住头,“调试接口为什么没关?代码评审时没发现吗?”
周毅的目光投向何峰。何峰负责的模块,正好包含那个调试接口和部分加密管理功能。
何峰猛地站起来,脸色煞白,声音带着哽咽和激动:“周老师!我……我是严格按照设计文档实现的!文档里那个调试接口的开关配置项,默认值就是‘开启’,备注写着‘便于集成阶段联调,最终发布前手动关闭’!我们……我们一直还在紧张开发,根本没到最终发布检查那一步啊!而且……而且那个加密进程的调用,我……我完全不知道!我的代码里绝对没有主动调用这种加密核心文件的逻辑!我可以拿我的所有代码出来审查!”
他的话引起了其他几个学生组长的附和,他们纷纷表示,自己都是严格按照文档实现,绝无擅自添加恶意代码的行为。
“设计文档……”我喃喃道,看向周毅。
周毅的脸色在灯光下显得有些晦暗。他沉默了几秒钟,缓缓说道:“设计文档是我提供的。接口默认设置和备注,确实如何峰所说。这是我的疏忽,在最终检查清单中遗漏了这一项。至于恶意加密逻辑……”
他顿住了,似乎在艰难地选择措辞。
所有人的心都提了起来。
“那份设计文档,”周毅终于再次开口,声音干涩,“并非完全由我原创。其中一部分核心加密协议和安全管理框架的构思,借鉴了……公司以前的一项绝密研究草案。那份草案的创始人,是欧阳轩。”
欧阳轩!
这个名字像一道闪电,劈中了会议室里所有老员工。连我都感到一阵剧烈的眩晕。
欧阳轩。那是比王海更早的技术传奇,周毅创业初期最重要的合伙人,真正的技术天才,尤其是在密码学和安全架构领域。但在五年前,因为一次重大的战略分歧,欧阳轩与周毅彻底闹翻,愤而离职,据说出国发展,从此杳无音讯。他的离开,曾是公司早期最大的创伤和秘密,后来的人很少知道他的名字。
周毅竟然在新的设计里,用了欧阳轩当年的草案?
“欧阳轩的草案里,有一套非常激进、但也非常精妙的动态密钥管理和自保护机制。”周毅继续说道,语速很慢,仿佛每个字都很沉重,“其中包含一种应急情况下的‘熔断’协议,即在检测到系统遭受特定模式的非法侵入或调试时,自动触发对核心密钥的深度加密,以防止密钥被窃取。这套机制本身是用于极端安全场景的‘最后防线’。”
他抬起头,目光扫过众人:“我将这套机制的核心理念,经过大幅修改和简化,用在了新网关的设计中,目的是增强其抗攻击能力。设计文档里,包含了调用这个保护机制的接口和参数说明,但明确标注了触发条件需要极其严格的判断,并且最终开关必须由最高权限控制。”
他的目光再次落到何峰身上,又看向其他学生组长:“而根据代码审查的初步结果,这个保护机制被调用的逻辑,确实存在于你们实现的代码里,并且触发条件被设置得非常宽泛,几乎与那个未关闭的调试接口直接绑定。调用参数也完全指向了加密自身密钥文件这个最致命的操作。”
何峰失声道:“可我们……我们只是按照文档里给的函数名、参数格式去实现的啊!文档里说这个函数是‘高级安全自检函数’,我们根本不知道它具体会做什么!参数都是按照示例填的!”
另一个学生组长也喊道:“是啊!文档只告诉我们调用这个方法,传这些参数,没说它会加密密钥啊!要是知道,打死我们也不会这么写!”
会议室里一片哗然。老员工们面面相觑,学生们则是委屈、愤怒和恐惧交织。
事情逐渐清晰,却又更加迷雾重重。周毅的设计文档,包含了源自欧阳轩的危险“遗产”,而这份遗产的致命开关,被以某种方式“误导性”地编写在了给新人的实现指南中。新人们像提线木偶一样,毫不知情地为自己参与打造的系统,埋下了一颗定时炸弹。
是周毅故意这样写的吗?他为什么要这么做?毁灭自己倾注心血的项目?还是说……连周毅自己,也被那份源自欧阳轩的草案误导了?或者,这份落到新人手中的“设计文档”,根本就不是最初的原版?
周毅没有理会学生们的辩白和会议室里的骚动,他径直走到会议室的白色写字板前,拿起一支红笔。他的动作很稳,但手背上的青筋微微凸起。他没有写字,而是用力划掉了之前写的几个关于项目节点的关键词。
然后,他转过身,面对着我们所有人。他的脸上没有任何表情,像戴了一张冰冷的面具,只有镜片后的眼睛里,翻涌着某种极其复杂、难以解读的情绪——那不是愤怒,不是惊慌,甚至不是挫败,而是一种深不见底的、混合着决绝和某种奇异释然的……
他开口,声音不大,却像一把冰锥,刺穿了所有的嘈杂,清晰地钻进每个人的耳朵里:
“给欧阳轩打电话。”
我愣住了,几乎没反应过来他在对谁说话。
他的目光,精准地锁定在我脸上,重复了一遍,每个字都像铁钉一样砸下来:
“杨帆,给欧阳轩打电话。”
我的大脑瞬间一片空白,全身的血液仿佛在这一刻凝固了。耳朵里嗡嗡作响,周毅后面说的话变得模糊而遥远,我只看到他嘴唇在动,看到会议室里所有人骤然瞪大的眼睛和惊恐万状的表情,看到何峰手里的笔“啪嗒”一声掉在地上。
给欧阳轩打电话?
那个五年前与周毅决裂、消失无踪的技术天才?那个其危险遗产可能间接导致我们此刻绝境的欧阳轩?
周毅……他要联系欧阳轩?在这种时候?他想干什么?
难道……
一个更加可怕、更加匪夷所思的念头,如同冰冷的毒蛇,倏地钻入我的脑海,让我不由自主地打了个寒颤。
难道这一切,从骨干离职,到招聘新人,到启用那份隐藏着“熔断”协议的设计,甚至到此刻的系统崩溃……都不是意外?
难道……
周毅没有给我任何思考的时间,他那冰冷而稳定的声音,继续传来,说出了那句让我,让整个会议室彻底陷入死寂和终极震惊的话:
我看着他开合的嘴唇,那熟悉的、此刻却异常冷酷的弧线。声音传入耳膜,每一个音节都像淬了毒的冰针,狠狠扎进我的听觉神经,然后在脑海里炸开一片空白而尖锐的轰鸣。
会议室里的时间仿佛停滞了。
我僵硬地站在那里,周毅那句石破天惊的话还在耳中嗡嗡回响,像烙铁一样烫在我的意识里。周围的一切——同事们惊恐万状的脸,何峰失魂落魄的眼神,甚至空气中弥漫的绝望气息——都变得恍惚而不真实。只有周毅,站在那片模糊光影的中心,脸色是一种近乎非人的平静,仿佛刚刚只是说了一句“去倒杯水”那样平常的话。
“杨帆。”他又叫了我的名字,声音将我拉回冰冷的现实,“电话。”
我的手指冰凉,勉强从口袋里摸出手机,屏幕的光刺得眼睛发疼。通讯录……欧阳轩……我甚至不记得自己是否存过这个人的联系方式。我抬起头,茫然地看向周毅。
周毅报出了一串数字。一个国内的手机号码。他记得如此清晰。
我机械地按下数字,手指僵硬得不听使唤。按下拨号键的瞬间,我甚至希望这个号码是空号,或者已经停机。那样,这个荒谬而可怕的指令至少可以暂时无法执行。
“嘟……嘟……”
通了。漫长的等待音,每一声都敲打在我的心脏上。所有人都屏住了呼吸,死死盯着我手里的电话。
终于,在响到第五声,几乎要自动挂断的时候,那边接了起来。
一个男人的声音传来,平稳,低沉,带着一丝不易察觉的沙哑,听不出年龄,也听不出情绪。
“喂?”
我喉咙发紧,看向周毅。周毅伸出手。我把电话递给他,指尖碰到他的手,冷得像冰。
周毅把电话放到耳边,走到会议室的窗边,背对着我们。他的声音不高,但我们依然能隐约听到。
“是我。”他说。
电话那头沉默了几秒。然后,欧阳轩的声音再次响起,透过细微的电流声传来,似乎带着一丝极淡的、说不清是嘲讽还是了然的笑意:“周毅。比我想的,晚了三天。”
周毅没有回应这句意有所指的话,直接切入主题,语气是公事公办的冰冷:“‘深蓝’网关,核心密钥被‘熔断协议’加密了。触发条件是未关闭的调试接口。”
“哦?”欧阳轩的声音听不出什么意外,“看来我当年留下的‘小礼物’,你们最终还是用上了。感觉如何?”
“设计文档是你动的手脚。”周毅用的是陈述句,而非疑问句。
“一份五年前的旧草案而已,你把它翻出来,裁剪拼接,塞给你的新兵娃娃们当圣经。”欧阳轩的语气依旧平淡,却字字如刀,“我只不过……帮它恢复了一点本来的面貌。毕竟,真正的‘熔断’,不该有那么仁慈的开关和提示。”
“条件。”周毅打断他,似乎懒得再进行任何言语上的交锋。
电话那头又沉默了一下,然后欧阳轩缓缓报出了一串复杂的字符组合,听起来像是某种密钥或者哈希值。“这是解密的第一道验证码。只能阻止加密进程继续覆盖,不能逆转已加密的部分。”
“解密的完整密钥和算法呢?”周毅问。
“老地方。”欧阳轩说,“你知道的。想要,自己来拿。带着‘深蓝’全部现有代码和设计文档的原始副本。还有,”他顿了顿,声音里那丝冷意更加明显,“我要见见你那些,了不起的新兵。”
“不可能。”周毅拒绝得干脆利落。
“那你们就抱着那堆被锁死的废铁,等死吧。”欧阳轩的语气没有丝毫波动,“提醒你,周毅,‘熔断’加密有七十二小时倒计时。从触发那一刻算起,七十二小时后,如果未能用正确流程启动解密,所有被加密文件会被二次混淆并永久锁定。到时候,神仙也救不了。现在,你们还剩……不到五十六小时。”
说完,电话被挂断了。忙音传来。
周毅缓缓放下手机,转过身。会议室的灯光照在他脸上,一片漠然。他看向我们,清晰地说道:“加密进程已经停止。我们还有不到五十六小时拿到完整解密密钥。”
“他要什么?”我涩声问,虽然从只言片语中已经猜到大概。
“‘深蓝’的全部技术资料。”周毅说,“以及,你们。”他的目光扫过何峰等学生组长。
“他要我们去做什么?”何峰的声音有些发颤,但眼神里除了恐惧,竟也有一丝奇异的光芒,那是对欧阳轩这个名字背后所代表的技术传奇的本能好奇。
“不知道。”周毅回答,“但这是交易的一部分。”
“周总!我们不能把项目核心交给欧阳轩!更不能把这些孩子交出去!”一个老员工激动地站起来,“谁知道他想干什么?这根本是勒索!是趁火打劫!我们报警吧!”
“报警?”周毅看了他一眼,眼神里带着一丝淡淡的疲惫和讥诮,“说什么?说我们用了可能涉及知识产权纠纷的未公开技术草案,结果被原设计者留下的后门反制?还是说我们公司核心项目面临崩溃,急需竞争对手前合伙人的技术支援?警察能帮我们解开加密算法吗?”
那个老员工哑口无言。
“欧阳轩要的,不只是技术资料。”我忽然开口,看着周毅,“他更想看看,你用了什么方法,在这么短时间内,让一群新人差点把你和他当年的构想实现出来。他想看看这些‘新兵’。”
周毅没有否认,算是默认。
“所以,这一切……都在你的预料之中吗,周总?”何峰忽然问,他的声音带着一种超越年龄的冷静,甚至还有一丝被利用的愤怒,“你招我们进来,用那份可能有问题的文档让我们开发,是不是早就知道会有这一天?我们……我们只是你用来和欧阳轩谈判的棋子?或者……诱饵?”
这个问题,问出了所有人心中的终极疑问。连老员工们都看向了周毅。
周毅沉默了很久。会议室里静得能听到空调通风口的声音。
“我确实借鉴了欧阳轩的草案。那是公司曾经最有价值的技术资产之一,虽然存在风险。”他终于开口,声音低沉,“我修改了它,试图规避风险,用于‘深蓝’。招你们进来,最初是因为我需要人手,大量的人手,去执行一个高度纪律化、模块化的开发任务。有经验的工程师会有自己的想法,不容易完全遵循严苛到极致的文档。而你们,是一张白纸,可以最快地按照图纸施工。”
他停顿了一下,目光扫过学生们年轻的脸。“至于欧阳轩……我知道他迟早会关注到‘深蓝’,关注到我用了他的东西。但我没料到,他能如此精确地渗透并篡改分发给你们的实现层文档细节。这是我的失误,我低估了他对我,对公司内部情况的掌握程度。”
他承认了。至少部分承认了。他利用了新人的可塑性,也预见到了欧阳轩可能的反应,只是没料到攻击来得如此精准和致命。
“现在说这些没有意义。”周毅结束了这个话题,恢复了那种不容置疑的指挥状态,“我们只有不到五十六小时。兵分两路。一路,由杨帆带队,老员工为主,立刻着手备份所有现有代码和文档,清理所有可能的其他后门,稳定系统其他部分。另一路,”
他看向何峰等几个表现出色的学生组长:“何峰,高远,郑涛,你们三个,跟我走。”
“去哪里?”何峰问。
“去拿解密的钥匙。”周毅说,“去见欧阳轩。”
“周总,这太危险了!”我忍不住说,“欧阳轩明显不怀好意!而且他要全部技术资料,这等于把‘深蓝’拱手送人!”
“没有密钥,‘深蓝’现在就是零。”周毅看着我,眼神锐利,“用一份可能已经泄露(指被欧阳轩通过后门掌握)的技术资料,去换回让项目起死回生的钥匙,这是目前唯一的选择。至于危险……”
他嘴角扯动了一下,那几乎不能算是一个笑容。“我和他之间,有些旧账,迟早要算。”
他不再多说,开始迅速布置具体任务。会议室里重新忙碌起来,但气氛已经完全不同。一种沉重的、夹杂着被背叛感和对未知前途的恐惧,取代了之前破釜沉舟的悲壮。我们像一群突然被抛入巨大阴谋漩涡的棋子,而执棋者,似乎不止一位。
我看着周毅带着何峰三人匆匆离去的背影,心里沉甸甸的。
欧阳轩的“老地方”是哪里?他会提出怎样的具体交易条件?他真的只是想看看这些新人,还是另有图谋?周毅又到底藏着怎样的底牌和打算?
这场突如其来的灾难,似乎正在演变成一场多年前恩怨的延续,而我们这些后来者,不幸被卷入其中。
时间,在一分一秒地流逝。
周毅带着何峰他们去了一天一夜。
这期间,我们剩下的老员工按照他的指示,全力备份、检查、稳固系统。但每个人心里都压着一块大石头,工作效率极低。我们私下里议论纷纷,猜测着各种可能。欧阳轩会不会扣下人?会不会提出更苛刻的条件?周毅会不会为了项目,做出更惊人的妥协?
我也尝试着从一些早年入职的同事那里,打听更多关于欧阳轩和周毅的往事。得到的都是碎片:两人曾是大学同学,志同道合,一起创业,技术上都极其强悍,但性格迥异。周毅务实、强势,看重商业落地和团队控制;欧阳轩则更理想化,痴迷于技术的前沿和纯粹性,厌恶商业上的妥协。分歧最终在一次关于公司核心产品技术路线的激烈争吵后爆发,欧阳轩认为周毅的选择是“向平庸和资本投降”,愤而离开,并带走了他当时主导的几个前沿研究项目的所有资料。那件事对周毅打击很大,也是公司技术路线转向的一个重要节点。
没想到,五年后,这份“旧债”会以这样一种方式,被重新摆上台面,并且牵扯进了这么多无辜的人。
第二天傍晚,周毅他们回来了。
四个人都显得疲惫不堪,风尘仆仆,但看起来没有受伤,也没有被扣留的迹象。何峰三人的表情非常复杂,兴奋、震撼、困惑、不安交织在一起,显然这一天一夜的经历对他们冲击极大。
周毅没有立刻开会解释,而是让他们先去休息,并嘱咐不要对其他人透露具体细节。直到晚上九点,他才再次召集了技术核心会议,这次范围更小,只有我和另外两个最资深的老员工,以及何峰三人。
周毅的脸色在灯光下显得更加憔悴,但眼神却异常明亮,甚至带着一种异样的光芒。
“我们见到了欧阳轩。”周毅开门见山,“地点在郊区一个废弃的工业园实验室,他这几年应该一直在那里进行独立研究。”
“他提出了最终交易条件。”周毅的声音平稳,却让我们的心提了起来,“第一,‘深蓝’项目的全部现有代码、设计文档、测试数据,需要打包拷贝给他一份。这一点,没有商量余地。”
我们的心一沉。这等于核心技术完全暴露。
“第二,”周毅看向何峰他们,“他要何峰、高远、郑涛,在解决当前危机后,离职加入他的研究团队,至少服务两年。”
“什么?!”我失声道。这不仅是索要技术,还要挖走我们刚刚培养起来、最出色的几个苗子!欧阳轩这是在赤裸裸地抢人,而且是精准打击!
何峰三人显然提前知道了,脸色发白,紧紧抿着嘴唇,没有吭声。
“第三,”周毅顿了顿,目光扫过我们所有人,说出了最让人难以置信的条件,“他要求获得‘深蓝’项目未来商业化后,净利润的百分之十五,作为他早期技术贡献的‘补偿’。”
会议室里一片死寂。这三个条件,一个比一个苛刻,几乎是把“启航科技”和“深蓝”项目当成了砧板上的肉。
“你……你答应他了?”一个老员工颤声问。
“我答应了前两条。”周毅说。
我们全都震惊地看着他。
“至于第三条,我拒绝了。”周毅补充道,“我告诉他,技术资料可以给,人也可以去他那里学习锻炼两年,但公司的股权和长期利益,不能作为交易筹码。这是底线。”
“然后呢?”我急切地问。
“然后,”周毅的嘴角微微动了一下,露出一丝极其复杂的表情,像是嘲讽,又像是某种认可,“他给了我们解密密钥的获取方式。不是一个简单的密码,而是一个……挑战。”
“挑战?”
“一个加密算法挑战。”周毅缓缓说道,“欧阳轩将完整的解密算法和密钥,封装在了一个他自定义的加密‘盒子’里。他给我们提供了打开这个‘盒子’所需的全部工具和接口说明。”
他打开随身携带的笔记本电脑,连接投影。屏幕上显示出一份极其复杂的技术文档概要,以及一个倒计时器:**35:14:22**。距离七十二小时最终时限,还剩三十五个多小时。
“他说,这是他给这些‘小朋友’的见面礼,也是对我的一份‘考卷’。”周毅的目光落在何峰三人身上,“我们必须在他的加密‘盒子’上,找到一个他预先留下的‘后门’——这是他所有加密系统的习惯,总会留一个只有他自己知道的非对称入口。或者,如果我们足够厉害,也可以尝试正面破解他的加密。”
他切换了一下投影,屏幕上出现一行字:
我们仅有24小时的时间,来破解欧阳轩设下的这个错综复杂的加密陷阱。
这几乎是一项无法完成的任务。
欧阳轩是国内加密领域的佼佼者,他设下的这道“关卡”,即便他昔日的团队成员齐聚一堂,也未必能在24小时内攻克。
绝望,再次席卷了整个技术部门。
刚刚燃起的希望之光,被一盆冷水,迎头扑灭。
难道,我们数月来的艰苦奋战,终究只是一场徒劳吗?
“都别发呆了!”周毅的吼声,如同炸雷般响起,“何峰!你和安全小组的成员,全力以赴破解对方的加密算法!杨帆,你带领团队检查服务器,寻找是否有物理备份!高远,你尽快联系所有能联络到的外部专家!郑涛,你带领剩余人员,将现有的功能模块,在本地电脑上尽可能多地备份!”
命令有条不紊地传达下去,恐慌的人群,终于找到了依靠,开始疯狂地行动起来。
然而,现实是无情的。
时间一分一秒地流逝,屏幕上的倒计时,如同死神的召唤,不断跳动。
12小时过去了,加密算法的破解,依旧毫无头绪。
欧阳轩采用了一种极为罕见的混合加密技术,暴力破解的可能性微乎其微。
18小时过去了,我们翻遍了所有服务器,仍未找到任何可用的物理备份。
欧阳轩显然对我们的备份策略了如指掌。
22小时过去了,我们联系的外部专家,也纷纷表示束手无策。
所有的方法,都已尝试。
所有的道路,都已被封死。
办公室里,一片沉寂。
只剩下键盘偶尔发出的,绝望的敲击声。
许多人,已经停下了手中的工作,呆呆地望着屏幕上那不断减少的数字,眼神空洞无神。
一些年轻的女同事,甚至开始低声抽泣。
只剩下最后五分钟了。
周毅一直站在办公室中央,一动不动,宛如一座石雕。
我看不清他的表情,但我能感受到,一股令人窒息的压力,从他身上弥漫开来。
终于,他动了。
他缓缓走到我身边,拍了拍我的肩膀。
我抬起头,看到了他那双布满血丝,却依旧深邃如渊的眼睛。
“杨帆。”
他的声音,沙哑,却异常镇定。
“给欧阳轩打电话。”
我愣住了。
“告诉他,我接受他的条件。”
什么?!
我的大脑,瞬间一片空白。
接受他的条件?
周毅……他要妥协了?
那个宁愿项目从头再来,也不肯向叛徒低头的周阎王,他竟然……要认输了?
热门跟贴