第八十七章 署名之后
林知行把可信度评分Phase 2的技术预研材料提交到项目管理平台时,周三下午三点。文档标题是他自己拟的——《分场景评分框架:技术预研与数据验证》。格式是标准的灵犀技术文档模板,标题、摘要、技术方案、数据附录、参考文献,一项不落。他在参考文献那栏补了五篇论文。周睿教他的——论文不是用来读的,是用来引用的。
他点了提交,靠在椅背上。角落工位的显示器边框落了一层薄灰,ThinkPad风扇转得嗡嗡响。终审会过去四天了。那扇会议室的门关上之后,里面发生的事已经变成了一行项目状态更新:Phase 1统一评分模型通过评审,进入开发排期;Phase 2分场景优化纳入技术预研。林知行的89%分场景方案作为Phase 2的参考基线被记录在案。
没有掌声,没有批评,甚至没有一句多余的话。周睿在评审结论邮件里用一句话带过了分场景方案的存在:"经评审确认,分场景优化方向具备技术可行性,纳入后续规划。"没有提方案作者。
林知行刷新了一下项目管理平台。预研材料显示"已接收",审批人是程浩。程浩是项目名义上的技术负责人,所有对外材料先过他的手再往上递。这在林知行入职第一天就知道了。
他关掉页面,打开内部知识库。
这是一个习惯。每次做完一个阶段的交付,他会在知识库里搜一搜同类文档,看看别人怎么写,格式有什么差异,技术细节怎么包装。这种习惯从打杂的时候养成——整理历史文档是最快摸清产品全貌的方式。
他在搜索栏输入"可信度评分",回车。
第一条结果就是。
《可信度评分模块技术方案v2.1》,灵犀教育AI产品线正式技术文档。文档编号EDU-2024-TC-0089。归档状态:已审批。上传时间:终审会后第二天。
林知行点开了。
文档的排版比他写的好看。标题用了灵犀标准的蓝色模板,章节编号清晰,图表有统一的配色。程浩改的——程浩对格式有一种近乎执念的审美,周报的行间距都要精确到1.5倍。林知行不讨厌这一点。格式是给人看的,代码是给机器跑的,两者都需要。
他往下翻。技术方案部分基本是终审材料的定稿版本。Phase 1统一模型,准确率71.2%,数据来源"全量用户交互数据经过基础过滤"。分场景优化在附录里提了一段,标注"技术预研方向,待验证"。
他继续往下翻。翻到了作者信息栏。
两个名字。
程浩。沈渡。
没有林知行。
他的手指停在触控板上。
屏幕上的光标悬在"程浩"和"沈渡"两个名字之间。作者信息栏的格式是标准的——姓名、部门、职级,每一项都对齐。下面还有一行:文档版本历史。他点开。
v1.0,创建时间是终审会前三周。创建人:程浩。作者栏里有三个名字。程浩、沈渡、林知行。
他盯着自己的名字看了五秒。三个字,14号宋体,和其他两个名字排在同一行。
然后是v1.1。修改时间是终审会前两周。修改人:沈渡。改动说明:审批阶段编辑。改动内容:作者栏调整。
他把鼠标移到"改动内容"上,系统展开了详细记录。只有一处变更——作者栏第三行"林知行"被删除。删除理由栏写着一行字:
"外包人员不参与技术文档署名,合规要求。"
林知行把那行字读了两遍。
合规要求。
他在灵犀工作了三个月。灰色工牌、角落工位、食堂补贴打五折,这些他都接受。外包身份意味着很多东西——权限受限、晋升无门、成果归属不在自己手里。他从第一天起就知道。
但他也知道一件事。
他切回知识库的搜索页面,换了关键词。输入"外包",文档类型选"技术方案"。
搜索结果返回了四页。他随机点开了三个。
第一个,教育数据部的一份数据清洗方案,作者栏第三位写着"李明远(外包)"。
第二个,用户体验组的一份交互规范文档,作者栏末尾写着"赵斌(外包)"。
第三个,基础架构组的一份接口文档,两位外包工程师的名字都出现在作者栏里。
他关掉了那三个页面。
合规要求不是合规要求。
林知行没有去找沈渡。
这不是他处理问题的方式。去找沈渡意味着质问,质问意味着摊牌,摊牌意味着他必须在一个他没有任何筹码的对话里做选择——忍或者不忍。两个选项的代价他都算得出来。忍,等于接受这个规则。不忍,等于在灰色工牌上再叠一层"不懂事"的标签。
他做了一件不一样的事。
他打开v1.0版本的文档,截图。作者栏三个名字的那一行,单独截了一张。然后打开v1.1的改动记录,截图。沈渡的名字、改动时间、删除理由,单独截了一张。
接着他打开GitLab。可信度评分项目的代码仓库,他有只读权限——终审之后周睿收紧了他的大部分内网权限,但代码仓库的历史记录还能看。他导出了过去三个月的commit记录。每一条commit都有时间戳、代码内容、提交人。他的提交记录排在最前面——537条commit,占项目总commit数的68%。
程浩的commit记录:41条。其中23条是修改README和文档格式。
沈渡:零。他不写代码。
林知行把这些文件——两张截图、一份commit记录导出——拷进了一个U盘。黑色的,32G,他从入职第一天就带在身边。之前存的是自己的开源代码备份。现在多了一组文件。
他在U盘里新建了一个文件夹,命名为"灵犀_留底"。
不是为了告状。告状没有用。外包人员找HR投诉技术VP删了自己在文档里的名字——这个场景他用算法推演了一下,结果是:HR会走流程、流程会转给沈渡、沈渡会用"合规"两个字挡住、然后他的处境比现在更差。
留底是为了有一天需要用到的时候,他有东西可以拿出来。
什么时候会用到?他不知道。也许永远不会。但他想起了父亲教他的一件事——跑长途之前检查备胎,不是因为一定会爆胎,是因为万一爆了,荒郊野外没有备胎就是等死。
他把U盘放回背包内袋,拉上拉链。
沈渡约他吃饭是那天傍晚的事。
消息五点十二分发来的:"楼下湘菜馆,六点。"没有多余的话。这是沈渡的习惯——约饭从不用问句,不写"方便吗"或者"有没有空",直接给时间和地点。接受就去,不接受就不回。
林知行去了。
湘菜馆在灵犀大楼步行五分钟的地方。店面不大,六张桌子,灯光暖黄,油烟味和辣椒味混在一起。沈渡点好了菜——剁椒鱼头、农家小炒肉、一个清炒时蔬。林知行入职以来和沈渡吃了不下二十次饭,前几次他还会客气一下,现在不会了。沈渡在这件事上有一种令人放松的随意——他点菜从来不问你想吃什么,但每次点的都是林知行会吃的。
"预研材料我看了,"沈渡说,筷子夹了一片鱼肉,"写得不错。论文引用比上一版规范。"
林知行点头。沈渡说的是技术预研文档。那份文档的审批人是程浩,但最终过目权在沈渡手里。
"Phase 2不急,先把Phase 1的开发跟完。周睿会安排你做什么你就做什么,别在这个节骨眼上再出状况。"
"明白。"
沈渡吃了一口小炒肉。剁椒沾在他嘴角,他用纸巾擦了一下,动作很慢。
"知行,你有没有想过,Phase 2之后你的位置在哪里?"
林知行的筷子顿了一下。这个问题不是闲聊。沈渡从来不在饭桌上闲聊。
"还在这个项目组。"
"项目组里你是什么?"
"外包。"
"外包的天花板你看到了?"
林知行没接话。天花板他入职第一周就看到了——灰色工牌在灵犀内部的权限上限是模块级技术执行。不能带团队,不能主导方案,不能出现在正式技术文档的作者栏里。
最后一条他今天刚确认过。
沈渡放下筷子,端起茶杯喝了一口。
"公司下个月有一个新的战略级项目。产品线层面的,不是单个模块。代号'灯塔',教育AI核心推荐引擎重构。"
林知行记住了这个代号。灯塔。灵犀内网上没有任何关于这个项目的信息。
"这个项目有两个技术方向在竞争,"沈渡继续说,"我这边是用AI重构推荐底层架构,激进,但上限高。另一边主张在现有产品上叠加AI模块,稳妥,但天花板低。两边各有人支持,僵住了。"
他看着林知行。
"僵住的原因不是技术,是两边互相听不懂对方在说什么。我的人讲算法架构,他们讲产品稳定性,两个频道。高层需要一个人——技术底子够硬,能把两种语言翻译成同一种。"
筷子在林知行手里没有动。
"这个人,我想让你来当。"
林知行放下筷子。"我是外包。"
"灯塔项目直接向VP汇报。如果站住脚,外包转正不是问题。"
沈渡的语气是平静的。不是商量,不是建议,是描述一个他已经想好的安排。他在饭桌上提这件事,不是因为饭桌比会议室更轻松,而是因为饭桌上的对话不出现在任何会议记录里。
"下周有一个技术选型会,灯塔项目的第一次。你来做技术方案。"沈渡拿起筷子,夹了一块鱼肉,"这次是你的名字。"
林知行走出湘菜馆的时候天已经黑了。
中关村的路灯亮得整齐,白色LED把人行道照得没有阴影。下班高峰刚过,路上的人不多。灵犀大楼的玻璃幕墙映着对面写字楼的灯光,一格一格的,像巨大的像素点。
他没有立刻回青旅。沿着马路走了一段,经过一家便利店、一个公交站、一排停满共享单车的人行道护栏。走到路口的时候他停了下来。
"这次是你的名字。"
上一次——他在知识库v1.1版本里看到的那一行——名字被删掉了。理由是合规。
这一次——沈渡在湘菜馆灯光下说的这句话——名字要加上去。语气是奖赏。
同一个系统。同一个人。两种规则。
删掉名字的人是沈渡。给回名字的人也是沈渡。
他站在路口,看着对面红绿灯从红变绿再变红。有辆车按了一声喇叭,不知道是对谁。
林知行打开手机备忘录。他没有打字,只是看了一眼之前的笔记。最新的那条还是上周写的:"终审会。71 vs 89。变量是人心。"
他在下面加了一行:
"删名=合规。给名=奖赏。规则是死的,人是活的。决定权不在规则手里。"
他把手机放回口袋,转身往青旅的方向走。
背包内袋里的U盘硌着后背。32G,黑色,里面装着两张截图和一份commit记录。他不确定这些文件什么时候会派上用场,也许永远不会。
但备胎不是为了今天用的。
他走过灵犀大楼的旋转门。蓝色工牌的人进进出出。灰色工牌的——他看了看自己胸前,灯光下那张卡的颜色介于灰和白之间,像一个没有定论的答案。
回到青旅,方小满发来一条微信:"终审过了吗?"
林知行回:"过了。Phase 1上线,Phase 2预研。"
"你那个89%呢?"
"在Phase 2里。"
方小满发了一个"..."的表情,然后是一句话:"那就是没上。"
"半上。"
"半上等于没上。"方小满打字速度很快,"商户那边还在等你。三个月,说好了。"
林知行看着"三个月"三个字。从方小满第一次说这句话开始算,已经过去了两周。
他回了一个字:"嗯。"
然后放下手机,躺在上铺。床板离天花板很近,翻个身都会碰到。他盯着那块斑驳的白色天花板看了很久。
灯塔。两个阵营。翻译。
沈渡给了他一个机会。这个机会的前提是——他的名字出现在技术文档的作者栏里。
而他的名字从技术文档里消失,也是沈渡做的。
两件事发生在同一周。删名是合规,给名是奖赏。沈渡做这两件事的时候,用的是同一种平静的语气、同一种"我替你安排好了"的节奏。
林知行翻了个身。
他想起姜意说的那句话——"你不是被偷了一篇稿子,你是在被整个系统消化。"
消化。这个词此刻比任何时候都精确。
系统把他的工作成果吸收进去,把他的名字排出去。然后系统再开一个口子,让他从另一个方向进来,带着新的期待和感恩。进来的条件比上一次好一点——"这次是你的名字"——但规则没有变。变的只是谁在决定规则的适用范围。
他掏出手机,打开U盘管理App,确认那组文件还在。两张截图,一份commit记录。文件大小加起来不到2MB。
然后他关掉手机,闭上眼睛。
灯塔项目。技术选型会。他的名字。
这是一个机会。他不会拒绝。
但他也不会再天真地以为"这次是你的名字"意味着什么不同的东西。
备胎在背包里。路还要往前开。
(本章完)