会议室里只听得见空调的嗡嗡声。
董事长梁德康翻了两页材料,抬起头,目光落在我这边:“沈和,系统是你参与开发的,核心架构你上来补充几句。”我从座位上站起来,感觉到吕伟的视线刀子似的扎在我后背上。
我摆摆手,笑了笑:“董事长,我就是个打下手的,具体细节我也不清楚。”会议室里鸦雀无声。
曹煜城手里的书写笔“啪”地砸在桌面上,弹了两下。
门外走廊里传来保洁员拖地的声音,水桶磕了一下墙脚。
01
周一上午,部门例会,老规矩九点整开始。
我端着茶杯进了会议室,老韩冲我点了点头,我回了一下,坐在老位置上,靠窗第二个座位,挤是挤了点,但能看到楼下的梧桐树。
八点五十分,人陆陆续续到齐了。
九点过十分,吕伟才推门进来,手里夹着一份文件夹,脸上看不出什么表情。
他身后跟着曹煜城,穿着件蓝白条纹衬衫,领子立着,头发梳得油光水亮。
我下意识看了一眼老韩,老韩也正好扭过头来看我,眼神里带着点意思。我没接话。
吕伟在长桌那头站定,清了清嗓子:“说个事,下半年公司核心系统的研发,进度要加紧了,配合市场部的推广节点,项目汇报这块,得重新调整一下人力。”
他翻开文件夹:“从今天开始,主负责人这块,让曹煜城来挑大梁,主要是对外汇报、项目协调这些,沈工那边继续负责技术支撑,你们配合着来。”
我端着的茶杯停了一下。
老韩在桌子底下踢了我一脚,我没动。会议室里几个人交换了一下眼神,谁也没说话。
曹煜城笑了笑,站起来冲大家点了个头:“往后还得各位多支持,我这块刚上手,很多地方不懂。”
他话是客气话,但听在我耳朵里不是个滋味。
我干了十五年的技术,从最底层一个一个代码敲上来,这个项目从立项到架构到核心模块上线,每一行关键代码都是我写的。
结果临到头来,一句“主负责人”就是别人的了。
我嘴张了张,想说点什么,最后什么也没说出来。
吕伟看了我一眼:“沈工,有没有什么想法?”
我摇了摇头:“没有。”
老韩在旁边“哼”了一声,声音不大不小。吕伟装作没听见,翻了一页文件:“那就这样定了,下周公司的季度汇报,由煜城代表部门去讲。”
散会的时候,老韩和我一起往外走。
“你就不说两句?”他压低声音。
我笑了笑:“说什么?说了有用吗?”
他张了张嘴,又咽了回去,叹了口气走了。
中午我没去食堂,在工位上坐着。
电脑开着,屏幕上是一排代码,我盯着看了半天也没看进去。
桌子上放着女儿的照片,她今年刚考上大学,笑得露出一排牙齿。
我拿起杯子喝了口水,凉了。
下午两点多,我拿着硬盘去公共服务器上拷一份接口文档。
路过小会议室的时候,门虚掩着,里面传来曹煜城的声音:“舅舅,这项目报告上沈和的名字是不是该去了?他都说了没事儿,您还顾虑什么?”
我脚步顿住了,站在门外没动。
吕伟的声音:“急什么,等风头过了再说。”
曹煜城:“那我就跟市场部说了,这块从头到尾都是咱自己人干的。”
吕伟沉默了一会儿:“自己注意分寸,别太张扬。”
我在门外站了几秒钟,攥着硬盘的手指用力收了一下。然后我转过身,哪里也没去。晚上下班前,我打开项目文档页面,找到“参与人员”那一栏。
我的名字还在。
我盯着屏幕看了很久,最终什么也没做。
那天下班回家,天已经黑透了。妻子在厨房里炒菜,油烟机轰轰响着,见我回来,问了一句:“今天这么晚?”
我说:“加班。”
她端着菜走出来:“饭菜在锅里,自己盛,我晚上吃了。”
饭桌上,妻子忽然说:“闺女今天打电话来了,说学校要交个什么实习材料费,一千八。”
我扒饭的动作慢了一下:“行,回头转过去。”
她看了我一眼:“你工资发下来了吗?”
“发了,月底。”
“月底月底,什么都等到月底。闺女那边等得起吗?”
我没接话,筷子夹着一根青菜,慢慢嚼着。客厅里的电视开着,播着本地新闻,主持人声音听着远得很。
妻子也没再说什么,端起碗进了厨房。
那碗饭,我吃了很久。
02
第二天一早,我在茶水间冲咖啡,老韩跟了进来。
“听说没有?吕伟昨天连夜改了项目人员名单,你的名字已经拿掉了,换成曹煜城牵头,你排在技术支持那一栏。”
我手里拿着的咖啡包没撕开。
老韩看着我:“你就这么让人欺负到头上来?”
我撕开咖啡包边,倒进杯子里,热水“咝”地冲下去,浮沫打着旋儿:“老韩,你说我该怎么办?找他吵一架?然后呢,他是总监,我一个写代码的,胳膊拧不过大腿。”
老韩瞪着我:“你手艺不差,差的就是张嘴。忍了大半辈子,你忍出什么了?你对他那么多项目,他管过你一次吗?该升职的时候他提过你吗?”
他说完,把杯子里的水倒了,杯子重重磕在台面上,走了。
我没说话,把那杯冲好的咖啡喝了,滚烫的苦味顺着嗓子一路烧下去。
回到工位,我开机,习惯性打开项目管理系统。成员列表里,我的名字确实已经被移到了“技术支持”栏目下,排序从第一位落到了第四位。
我盯着屏幕看了一会儿,就像在看一样跟自己没关系的东西。可心里什么地方,像是被人用针扎了一下。
中午,老韩拉我去楼下小店吃面。他点了两碗牛肉面,多要了一份花生米,开了一瓶啤酒,往我面前一放。
“别光筷子杵着,喝一口。”
我端起杯子喝了一口,冰冻过的啤酒顺着嗓子滑下去,凉意散到四肢。
老韩夹了一筷子花生米:“我跟你说个事。昨天我在楼梯间抽烟,听到吕伟打电话。他姐姐,就是他那个亲姐,把他好一通数落,说他外甥在公司混了几年连个拿得出手的成绩都没有,让他拉一把。”
我愣了一下:“他姐姐?”
老韩冷笑:“对,亲姐。曹煜城他妈。当初吕伟买房子差钱,是他姐给凑的。现在人家开口了,他能不办?你不过是给这个‘成绩’垫脚的。”
我端着酒杯没动,盯着杯子里的泡沫一点一点消下去。
老韩又夹了颗花生米扔嘴里:“所以我说,你别当这是冲你来的,你根本没在人家眼睛里,你只是一个用得上的物件儿。”
他说得对。我低头吃东西,没再接话。
事情并不是没有转机。
当天下午,我收到一封邮件,公司通知下周举行季度项目汇报会,董事长梁德康会亲自参加。
吕伟把曹煜城报成了主讲人,邮件抄送了我一份。
曹煜城在主讲人后面的括号里写着:“核心系统研发项目总负责人”。
我攥着鼠标,盯着这句话看了很久。
心里那股气慢慢散了,散了之后就剩下一个念头。
我打开电脑里的一个加密文件夹,把里面存了三年的东西整理了一遍,又新建了一个文档。
那天晚上下班前,我给家里打了个电话:“晚饭不用等我,加班。”挂了电话,我把办公室的门锁上,开始把大半年来的项目开发日志、代码提交记录、会议纪逐一打包备份。
老韩走的时候路过我工位,看我在弄这些,没问,只丢下一句:“自己注意点。”我点了点头。
那天晚上十一点,我把U盘拔出来,放进衣服内兜的口袋里。然后我靠在椅背上,看着屏幕上还亮着的代码,心里头不知道是什么滋味。
第二天一上班,曹煜城拿着一张产品方案找我:“沈工,您帮我把这块功能描述改一下,下午要给市场部看。”他口吻挺客气,但我听出那股子吩咐的味道。
我看了他一眼。他到底有什么底气呢?他连这个系统的底层逻辑都没弄明白,就敢拿着方案去给市场部讲。
“你自己先过一遍,再说哪里有问题。”我说。
曹煜城愣住,大概没料到我会回这么一句。他干笑两声:“行,那我先看看。”
他走后,老韩凑过来:“哟,沈老师傅今天口气不一样了。”
我没理他。但心里确实有什么东西在松动。
下午,市场部那边来了个新需求。
系统需要对接一套外部接口,改动量不大但涉及底层逻辑,只有我最熟悉那块代码。
吕伟的意思让曹煜城来做,曹煜城坐在电脑前磨了半天,连接口文档都看不懂。
最后吕伟还是找到我:“沈工,这块还是你来处理吧。”
我看着他,没吭声,默默地接了下来。他大概觉得我是个老好人,不会拒绝任何活。
他不知道的是,我做这件事的时候,把每一次修改的记录都清楚地存了下来。
03
系统上线测试的第三天,我发现了一个问题。
不是小问题。
数据接口层有一个隐蔽的漏洞,一旦被人利用,客户的交易数据就可能泄露。
这个模块当初是我带着两个新人一起做的,当时赶进度,底层逻辑有一个小的校验分支没有走完。
问题埋得不深不浅,但平时操作根本不会碰到,只有在特定的调用顺序下才会触发。
我发现它的时候是晚上九点多。办公室里安安静静,头顶的日光灯管坏了一根,泛白的灯光照得人眼睛发涩。
我盯着屏幕上那一行代码,脑子里迅速过了一遍可能的影响范围。越往下想,后背就越凉。这个接口下周就要对公开放了。
我掏出手机,本来想给吕伟打电话,按到一半又把手机放下了。他懂吗?他不懂。他跟他说了,他只会问我“能不能对付过去”。算了,我自己来。
那天晚上我修到凌晨一点多。
把漏洞补上之后,又重新跑了一遍全量测试数据,确认没有问题才关了电脑。
走出办公楼的时候,夜风迎面吹过来,凉丝丝的。
我在楼下站了一会儿,抬头看了看自己办公室那层楼的窗户,灯已经灭了。
第二天我没有跟任何人提这件事。
包括老韩。
有些事,知道了反而惹麻烦。
但那天晚上敲代码的时候,我的手指头落在键盘上,忽然觉得很没意思。
我修一个我自己做的系统里头的漏洞,修了三个通宵,没有一个人知道,没有一个人问过一句。
功劳是别人的,责任是我自己的,好像我天生就欠着这个部门一笔账。
第三天深夜,凌晨两点多。
我写完最后一段测试代码,靠在椅背上,后颈酸得厉害。
屏幕的光映在脸上,办公室里空荡荡的,只有主机风扇嗡嗡转着的声音。
我忽然想起十几年前,我刚进公司那会儿,什么都肯干,什么都愿意学,那时候觉得自己是在做喜欢的事。
现在呢?
我干着一样的活,但总觉得缺了点什么。
我关掉电脑,收拾东西准备回家的时候,推开办公室的门,看到走廊尽头站了一个人,穿着件旧棉袄,手里端着一个保温杯。是我媳妇。
“你怎么来了?”我愣住了。
她走过来,把保温杯塞进我手里:“你也不看看几点了。打你手机不接,我寻思着你又熬夜干活。”她说着,往我身后办公室看了一眼,“跟谁在一块呢?”
“就我自己。”
她没追问,朝电梯走去:“赶紧的,回去睡,明儿还要上班呢。”我拧开保温杯盖子,里面是热牛奶,还冒着热气。我仰头喝了一口,温的,甜的。
她走在前头,步子不快,但也没回头等我。
我关了走廊的灯,跟上去。
那一刻我心里头,什么东西翻了一下。说不上是感动还是心酸,就觉得这两年亏欠她挺多的。
回到家洗了个澡,躺下已经三点多了。她在旁边翻了个身,含糊地说了一句:“跟你说个事,闺女那个实习材料费我交了,别整天惦记着。”
我“嗯”了一声,把被子往上拉了拉,闭着眼睛,却怎么也睡不着。
这十来年,我从来没跟任何人红过脸,有什么事都自己咽了。我总觉得忍忍就过去了,忍忍就太平了。
可是那份忍耐,它换来了什么呢?
04
汇报会前一天的下午,吕伟把我叫进了办公室。
他坐在大班台后面,翘着二郎腿,手里转着一支笔,脸上的表情说不上严厉,也不算和善。
他开口的时候,声音是那副标准的领导腔:“沈工,明天的汇报会你也知道,董事长亲自来听,这关系到咱们部门下半年的整体形象。”
我站在他对面。他没有让我坐的意思,我也没有主动坐。
“所以我想跟你交个底,”他顿了顿,把笔放到桌上,“明天曹煜城主讲,你在台下坐着,万一有什么技术细节,他拿不准的,到时候你救一下场。”
他说“救一下场”三个字的时候,语气轻轻的、随意的,像是在说一件再平常不过的事。
我没说话。
吕伟见我没反应,又补了一句:“你放心,这事完了不会亏待你。下半年晋升名额,我会考虑你的。”
我看着他,心里翻涌着一种奇怪的感觉。
他这算什么呢?
给我一个空头承诺,然后让我继续当影子。
我干了十五年,技术部谁不知道活是谁干的?
可他偏偏就是能说得这么自然。
我憋了一肚子话,最后只说了三个字:“知道了。”
转身往外走的时候,吕伟在我身后又追了一句:“对了,明天的汇报顺序,你就不用多说话了。沈工,你这个人就是太老实,老实人容易吃亏,我听你的。”
我顿住了脚步。他又补了一句:“这次要是出了岔子,部门年度晋升名额你一个也别想。”
我攥了一下拳头,没回头,推门走了出去。
回到工位上,老韩递过来一根烟:“他跟你说了什么?”我接过烟,没点,拿在手里捻了半天:“他说让我明天闭嘴。”
老韩骂了一句脏话,又压着嗓子问:“你打算怎么办?”
我捻断了那根烟:“不怎么办。他让我别说话,我就不说话。”
老韩皱起眉头,欲言又止。那天晚上,我没有加班。下了班就回家,吃了媳妇做的饭,又陪她看了一会儿电视。十点多,我进了书房,关上房门。
我从抽屉最里面拿出那个U盘,把里面的文件又检查了一遍。
一份一份打开,确认每一个日期、每一处记录都清清楚楚。
我把U盘揣进明天要穿的外套内兜里,想了想,又拿出来,在电脑上多备份了一份。
晚上躺下的时候,媳妇翻了个身问我:“明天那个汇报会,你有把握?”
我怔了一下:“你怎么知道明天我有事?”
她嘟囔了一句:“你晚上吃饭的时候筷子夹菜夹了三次空,心里头藏着事,谁看不出来。”我没说话。
她又说:“别老让人欺负到自己头上。”
过了一会儿,她补了一句:“不然闺女都要看不起你了。”我听着她翻身的声音,眼睛睁着,望着天花板。
那晚,我睡得不太好,但醒着的时间也不长。
大概是被什么东西撑着,脑子里翻来覆去都是一些念头,一会儿是吕伟说“老实人容易吃亏”的嘴脸,一会儿是曹煜城连接口文档都看不懂的样子,一会儿又是媳妇端给我的那杯热牛奶。
窗外头的风吹得窗户呜呜响。我翻了个身,脑子里冒出一句话:沈和,你这一辈子,想当一个什么样的人?
我没有回答。但我知道,有些事情,该有个说法了。
05
汇报会在公司三楼的大会议室召开。
会议室里坐满了人。
研发部、市场部、财务部、人事部,各有各的位置。
长条会议桌铺着蓝色桌布,桌面正中间摆着一排矿泉水,瓶子上印着公司的Logo。
我坐在第五排靠边的位置,老韩坐在我左手边,右手边是一个不认识的市场部姑娘,一直在低头刷手机。
吕伟坐在会议桌靠前的位置,西装笔挺,头发梳得整整齐齐。
曹煜城坐在他旁边,手里攥着一沓打印好的PPT材料,翻来覆去地看。
他的额头上,肉眼可见地渗着一层细汗。
九点整,董事长梁德康推门进来了。
他不是一个人来的,身后跟着董秀艳,公司的人力资源总监。
梁德康穿一件深灰色的夹克,头发花白,步履沉稳,进门的时候扫了一圈在座的人,也没跟谁打招呼,径直坐到主位上。
“开始吧。”他声音不大,但会议室里所有人都安静了下来。
先是市场部汇报上半年推广情况,然后是财务部说预算执行进度。
曹煜城排在第三个。
轮到他上台之前,我注意到他端起矿泉水喝了一大口,喉咙滚动了一下,使劲咽了下去。
吕伟轻轻推了他一下:“去吧。”曹煜城深吸一口气,站起来走到投影幕布旁边,插上U盘,PPT打开。
前两页是项目概况,讲得还算顺。到了第三页,他点了一下翻页笔,屏幕上出现了一张系统整体架构图,密密麻麻的模块和线条。曹煜城卡住了。
他看了一眼图,又看了一眼手里的材料,嘴里挤出半句话:“这个,这个架构呢,是我们,我们这个团队整体,整体设计出来的一个……一个比较合理的架构方案。”
梁德康坐在主位上,微微抬了一下眼皮:“你具体解释一下,这个架构分几层,每层之间的调用关系是怎么走的。”
曹煜城的嘴巴张了一下。
他站在那里,眼睛在屏幕上快速扫过,像是在找什么答案。
可那图上只有模块名字,没有他需要背下来的东西。
他嘴唇动了几下,挤出一句话:“各层之间,是……是那个通过接口来调用的。”
梁德康没说话,只是看着他。
整个会议室安静得能听见空调出风口的气流声。
吕伟在旁边轻轻咳了一声,像是在用咳嗽提醒什么。
曹煜城背对着他,没有接收到这个信号,又翻了两页PPT,声音干巴巴的:“这个,这个模块,我们用了那个……最新的技术方案,那个……”
他讲不下去了。投影仪的光打在他脸上,他的表情是空的。
梁德康沉默了几秒钟,目光缓缓移过桌子,像在找人:“你们这个项目里,有没有人能把整体架构讲清楚的?总不能一整场讲下来,光念提纲吧。”
吕伟的嘴皮子动了动,刚想接话,梁德康的目光忽然落在后排:“沈和,我记得你是技术部的老人了,这个系统你也参与了。你上来补充一下。”
吕伟的身体肉眼可见地僵了一下。他的脚在桌子底下踢了一下我的椅子,那力道不小,椅子腿擦着地面发出一声轻响。
那一瞬间,所有人的目光都集中到了我身上。
我感觉到自己的心跳在加速,但面部表情还算平静。
我站起来,伸手整了一下衣领,不紧不慢地往前走了两步,离长条会议桌还有两步远的时候,停住了。
我摆摆手。语气不重,甚至带着点笑意:“董事长,我就是个打下手的,具体细节我也不清楚。”
会议室里,静得连呼吸声都听不见。曹煜城手里的翻页笔“啪”地掉在地上,弹了一下,滚到了桌子底下。他弯着腰去捡,捡了半天没捡起来。
吕伟的脸色从红变白,又从白变青,嘴唇微微泛着紫。他看着我,眼神里头藏着一句话:你疯了。
但我没看他。
我看向主位上那个头发花白的老人。
梁德康的目光在我脸上停了几秒钟,没说话,面无表情,但那条皱纹很深的眉头上,轻轻动了一下。
我回到了座位上。老韩在桌子底下拍了一下我的大腿,那是他表达激动的方式。我没回应,端起面前那杯已经凉透的茶水,喝了一口。
手,微微发抖。
06
会议室里安静了大约有十秒钟,却像一个世纪那么漫长。
梁德康打破了沉默。
他的声音不紧不慢,像是随口一问:“既然沈工不了解具体情况,那曹煜城,你接着说。刚才讲到第二部分,系统的数据安全方案,这块你往下讲讲。”
曹煜城手里攥着捡起来的翻页笔,手指头发白。
他把PPT翻到下一页,上面画着一张数据流程图。
他看了看图,又看了看面前的材料,像是想从那些打印好的文字里找出答案。
他开口了:“这个安全方案,我们主要采用的是……加密技术,对传输过程中的数据进行加密,确保数据在传输过程中不会被非法获取……”
他说的这段话本身没有问题,任何一个做过信息安全的人都能说出个大概。
问题在于,他说得太像背书了。
像是一个没学过游泳的人,背了一本游泳要领手册,然后被丢进了深水池。
梁德康没打断他,只是微微偏了偏头,又问了一句:“你用的是哪种加密算法?密钥管理的机制是什么?”
曹煜城愣住了。
他嘴唇动了动,想说什么,又没说出口。
他的眼睛快速地在PPT上扫着,像是希望能从页面上找到答案。
可他不知道的是,他手上那版PPT只写了方案的大标题,具体的技术细节全部藏在附录里,而他根本没有翻到那一页。
“这个……我们这个方案里面,采用的是……比较成熟的加密方案,具体算法的话,得看技术文档……”
梁德康没有接着问他,而是转了个方向:“那你们这个系统,数据接口层是怎么设计的?外部系统对接的时候,怎么保证接口的稳定性?”
曹煜城的脑门上冒出了细密的汗珠。他拿起手里的矿泉水喝了一口,动作有点急,嗓子眼发出“咕咚”一声响。
“接口层……接口层这块的话,我们……做了……做了很详细的预案……”
他说话的时候,眼睛不自觉地往吕伟那个方向瞟了一眼。
吕伟只能坐在那里,连提醒他的机会都没有,因为在他开口之前,梁德康已经提了一个新问题:“预案有哪些?你举一个例子说说。”
曹煜城的手指微微发抖。
他翻了一页PPT,这一页他倒是熟悉,因为上面有公司名称和一个大大的项目标题,旁边配了一张团队工作时的照片。
照片上人不多,沈和蹲在机柜旁边,手里攥着一根网线,正低头看着什么。
这张照片是三个月前拍的,当时项目进入联调阶段,我连续加了半个月的班。
曹煜城指着照片上的一个背影:“这个是我们的团队在调试现场,当时这个系统做了一个压力测试,然后呢,整个团队的协作配合非常紧密……所以最终的结果,也是达到了预期的效果……”
他以为这张照片能帮他撑过去。可他漏算了一件事,梁德康认识这张照片里的人。
“这张照片里蹲在前面干活的那个,是沈工吧?”梁德康的声音慢悠悠的,“他在机柜旁边蹲着调设备,你站在后面,拿着手机在拍,是这样吧?”
曹煜城的脸色“唰”地一下白了。他的嘴唇张了张,像是想辩解什么,但什么声音都没有发出来。
会议室里有人开始窃窃私语,声音很小,但在这样安静的房间里,一点点声音都能被放大。
吕伟终于坐不住了。
他赔着笑插了一句:“董事长,这照片是当时团队加班的时候拍的,煜城当时也在场,只是没有拍到……这个主要是体现团队协作精神对不对。”
梁德康没有理会他,目光从屏幕上的照片移开,落回曹煜城身上。
口气仍然是那样不紧不慢的:“曹煜城,我再问你最后一个问题。这个系统上线以后,如果用户量翻十倍,你觉得最先出问题的是哪个环节?”
曹煜城站在那里,手里握着翻页笔,额头上的汗珠子顺着太阳穴滑下来,滴在他的衣领上。他张了张嘴,嘴皮子干得发白。
“用户量增长的话……我们的服务器……应该可以通过增加……扩容……”
他说不下去了。
因为他根本想不出,大数据量下最先扛不住的会是哪个模块。
他从来没有做过这方面的推演,因为整个系统都跟他没关系。
他只是被架到了这个台面上,然后灯光一打,戏就露馅了。
“你先坐下来吧。”梁德康说。
这话说得不重,但落在曹煜城耳朵里,像挨了一记闷棍。
他腿软了一下,扶着桌沿,慢慢坐回椅子上。
吕伟的杯子在手里晃了一下,洒了一点茶水在桌布上。
会议室里的气氛,像一根绷紧的弦,随时会断。
梁德康没有立刻再说话。
他拿起面前的一页材料看了看,然后放下了,抬头扫了一圈在座的人,声音平得没什么起伏:“研发部门这个项目的汇报,就到这里吧。散会。”
所有人都坐在原地,没有人动。
梁德康站起来,拍了拍夹克袖口,又像想起了什么,看了我一眼,那一眼很快,快得几乎没有人注意到,但被我看得清清楚楚。
他什么都没说,转身走出了会议室。
热门跟贴