周一一早,魏轻到工位的时候,老吴已经在刷手机了。
小周还没来。桌上那杯隔夜的豆浆换成了半瓶矿泉水,瓶盖没拧,里面泡着什么东西,大概是枸杞。魏轻坐下,开机,把上周的测试志打开,从头到尾核了一遍。运行时间、报错次数、匹配准确率,每一项都对得上。他把志导成PDF,文件名打了“地址清洗脚本测试报告”,发到陈涛的工作邮箱。
发完他又补了一条消息:“陈组长,测试志发您邮箱了。保险那批数据上周提前半天交的,甲方反馈‘质量很好’。脚本目前只在地址清洗上跑过,其他类型的数据还没测。”
陈涛没回。
魏轻没在意。周一早上是例会时间,陈涛一般都在开会。他把脚本挂上测试区,开始跑今天的新数据。这批数据还是保险公司的,但类型从地址换成了理赔记录,格式完全不一样。脚本里地址清洗的规则大部分不适用,得重新写匹配条件。他调出模糊匹配模块,开始改参数。
十点,陈涛从会议室出来,手里拿着一张打印纸,走到魏轻工位旁边。
“你过来一下。”
魏轻站起来跟他走进小会议室。陈涛把门关上了。
小会议室的百叶窗拉着,外面的人看不清里面,但能看见人影。魏轻站在会议桌旁边,陈涛没叫他坐,他自己也没坐。
陈涛把那页打印纸放在桌上。是魏轻的测试志,有些地方被黄色荧光笔画过。
“你这报告写的不错,清晰。”
魏轻没接话,知道后面还有话。
“但有件事。测试区的脚本,IT那边今早查了一遍。你用的模糊匹配模块,是之前开发组的一个同事留下的,没有正式归档,严格来说不算是公司的东西。你在这个基础上改的,对不对?”
“对。”
“开发组的组长今天找到我,说他要安排人把工具库整体梳理一遍,正式归档以后由他们组统一管。测试区权限暂时不收你的,但是后续脚本模板的开发,要归到开发组下面。你这边主要是用。”
魏轻没说话。
“还有。”陈涛把打印纸翻到第二页,上面是测试志的最后一页,备注栏那个“跑通,可复用”旁边用黄笔画了个圈。“你在测试志里只写了自己的名字。开发组那边说,底层逻辑是他们的。以后类似的工具,署名的地方加上‘开发组提供底层支持’。不是针对你,是这个流程要规范。”
魏轻低头看着那个黄色的圆圈,把“跑通,可复用”圈在里面。沉默了数秒。
不是说他写的脚本有问题。不是说他不能用。是他把东西做出来了,署名的时候不能只写自己的名字。
“明白了。”
“行。”陈涛把打印纸收起来,“没别的事。你继续活。”
魏轻走出小会议室的时候,老吴抬头看了他一眼,眼神里有个问号。魏轻轻轻摇了摇头。老吴把目光收回屏幕,但手机放下来了。这个动作魏轻注意到了。
回到工位,脚本还在跑。屏幕上数据一行一行跳过去,和他进会议室之前一模一样。电脑不知道他刚才经历了什么,该怎么跑还怎么跑。魏轻把手放在键盘上,没有马上继续改参数。他盯着测试志的最后一页——那个PDF文件还在他邮箱的发件箱里,备注栏写着“跑通,可复用”。没有“开发组提供底层支持”,没有别人的名字。那是他今早发出去的版本,还没改。
他打开一个新邮件,开始写给陈涛。写了三行,删了。又写了四行,删了。不是不知道怎么写——他可以说“已按要求修改”,可以重新提交一份署名栏里加上别人的名字。但他不想。不是因为署名本身,是因为这个底层模块被搁在共享库里两年没人管。他翻出来,改了三版,测试区崩了的时候手工跑了上千条数据做对照。现在开发组要把工具库整体梳理一遍,让他的东西归到他们组下面。他用了这个模块,他署自己的名字,逻辑上没问题。但开发组说要加他们的名字,陈涛说了,流程要规范。
不是说他缺那一个署名。测试志是内部文件,甲方看不见,行业里的人看不见,连公司别的部门都很少翻。署不署名,对他没有任何实际影响。但这是他第一次被要求在自己的备注栏里加上别人的名字。以前他习惯了东西做出来,功劳归别人,归陈涛,归排班表,归甲方对接人的“按你们的标准来”。那些他都能接受。因为那时候他的东西确实不值一提。但这次不一样,这次从头到尾,从发现底层模块没人管到改完第三版,是他一个人。开发组两年没碰的东西,他修好了。署个名,过分吗?
他关掉邮件草稿,打开本地文档,敲了一行字:
“今天有人告诉我,我在自己的备注栏里不能只写自己的名字。”
第二行:“我用了别人留下的砖头。但砌墙的人是我。”
第三行:“我不知道这算不算被抢了功劳。按流程来说不算。按我自己的感受来说,算。因为那行备注是我在测试区崩了的那天晚上写的。那天没有人帮我跑数据,也没有人告诉我底层逻辑两年没更新。我一个人跑完了所有测试。”
写到这,他停住了。这段发不了社区。不是不能发,是发了会惹麻烦。但他想保留下来,记录下第一反应。他把文件存进硬盘,文件名:《备注》。
下午三点,开发组发了一封全部门邮件,标题是“数据清洗工具库规范化通知”。内容很长,核心就三条:一是工具库由开发组统一维护;二是各部门使用的脚本模板需标注底层来源;三是鼓励大家提交优化建议。邮件最后加了一句:“感谢数据组魏轻同事对模糊匹配模块的测试与优化,相关优化已经纳入工具库更新计划。”
感谢。感谢的意思是你做了事,别人知道,但署名权不在你手里。纳入更新计划,意思是你的改进有价值,但不再以你的名义存在。
小周看了邮件,跑过来问他:“他们这是夸你还是抄你?”
老吴在旁边喝茶,杯子遮着半张脸,放下杯子的时候说了一句:“夸。”
小周说:“我怎么觉得不太对。”
老吴没理他。魏轻也没接话。他知道老吴那个“夸”字的意思——他见过类似的事。这种事不算抄,按公司流程一切都合规。但合规的意思是,你的代码归公司,你的时间归公司,你的备注也要服从公司的命名规则。你只是一个提供了优化建议的同事。
魏轻把邮件关掉,继续活。
晚上回到出租屋,魏轻靠在椅子上坐了很久。
他开始想。以前他想的是怎么把活好,怎么不被扣绩效。后来他想的是怎么省时间,怎么把省下来的时间用来积累自己的东西。今天这事是第三种情况——他的东西被拿走了一部分。不是全部,不是脚本,不是代码,是一个小模块的署名。但这比偷代码更让人难受。偷代码好歹是偷的技术成果,可以投诉,可以向IT举报。署名这件事,连投诉的理由都没有。流程本来就是这么写的。
他打开技术社区,发了一篇新帖。不是技术帖,不是情感回忆,是他今天碰到的一个问题。他写道:
“如果你做了一个东西,用的是公司现有的底层模块,但你改了三版才让它真正能跑。做好之后,公司说你不能只在备注里写自己的名字,要加上原始模块的开发组。他们没有错,流程就是这么写的。但你心里不舒服。这种不舒服合理吗?还是说,所有在公司写的代码,本质上都不属于你?”
他按下发布。标题:《署名》。
很快,有人回复了。
“当然属于公司。你在公司电脑上写的每一行代码,都是公司的。”
第二个回复的人叫“洛河散人”,只回了一句话:“从法律上讲,属于公司。但从积累上讲,属于你。你学到的东西,他们拿不走。”
第三个回复是一个新ID,叫“四环以外”,他写道:“我了六年外包,做过无数个模块,没一个署我的名字。你的不舒服不是矫情,是你开始有自己的东西了。接下来你要想的是,以后能不能不在这个流程里。”
魏轻盯着最后这句话看了很久。“以后能不能不在这个流程里”——这是第一次有人没有安慰他,没有跟他说“流程就是这样,忍忍”,也没有跟他说“你学到的拿不走”,而是直接告诉他:你要从这里出去。
他一直在发帖写自己,写时薪十五块,写,写的眼睛,写那些从来没人问过的事。他一直觉得能写出来已经是往前走了一大步。但今晚有个人告诉他,写出来还不够,还要走出去。
他没回复“四环以外”,但在新建的文档里打了一行字:
“署名可以改。方向不能改。”
存进硬盘。窗口外面有只飞蛾撞着路灯,忽高忽低。
他没有像往常那样躺到床上。而是坐在桌前,把文件《备注》打开,补了一句结尾:“今天是我第一次觉得,我不能一直在这里待下去。”
关掉电脑,他走到窗边,推开窗户。城中村的夜晚还是那些声音,烧烤摊、电动车、电视声,但他今晚听到的不再是嘈杂,而是细节——有人在收碗,折叠桌腿收起来的声音很脆,一颗螺丝钉松开,滚了几圈停在墙角。巷子那头有人在打电话,声音很远,说的是方言,他听不太清,但语调很急。电动车报警器又响了,跟之前每一次一样,他还是不知道是谁的车。
他听着这些声音,想起老吴。老吴在这个环境里待了七年,从一开始的年轻气盛到现在的手机贴耳,从自己写脚本到不再主动提任何建议。老吴说“我年轻的时候也这么”,那个“也”字里装的可能是无数次差不多的事。他现在四十多岁,跟二十出头的小周坐在一起,做同样的活,态度上完全相反:一个放弃得快,另一个什么都无所谓。魏轻发现自己离小周的距离,比离老吴的距离更近一些。但再近,他也不想在这里待七年。
他二十二岁毕业的时候,投了一百多份简历才找到这份工作。当时他的标准是:有班上就行。现在他有了第一个真正属于自己的脚本,也有了第一次被要求改署名的经历。他发现自己其实一直在衡量自己值多少钱——以前是用时薪计算,用十五块计算。今晚他发现自己其实可以重新计算。不是按时间算,是按能力算。按他能不能把一件事从零做到“跑通,可复用”算。
窗外的声音渐渐稀了。他把窗户关上,躺回床上。手机屏幕亮了一下,技术社区又有人回帖。
还是那个“四环以外”,他又加了一句:“流程是别人的,方向是自己的。别搞混。”
魏轻回了一个字:“谢。”
然后他打开闹钟,把起床时间调到比昨天早了半个小时,他想调到更早,但他知道那样太急,会让自己在晨会上打瞌睡。不能急,一步一步来。
最后他手机搁在枕头边,屏幕暗下去。窗外还有零星的声音,但他已经听不见了。他睡着之前想到了一个具体的计划——明天把测试志重新提交一份,备注栏改掉,加上那句话。他还是会署名,但他会记住“四环以外”说的:以后能不能不在这个流程里。