《首富从看见信息面板开始》 第一章 你被优化了 208会议室很小。灯光很亮。 HRBP张薇坐在桌子对面,面前摆着一份打印好的协议和一瓶没开的矿泉水。 “路一,先喝水。” 韩路一没拿水。 张薇清了清嗓子:“公司最近在做组织架构调整,你这边的岗位需要优化……” 后面的话韩路一没怎么听。 无非就是那些:感谢你的贡献、公司的决定、N+1、竞业协议、祝你前程似锦。 每一句都是标准话术,每一个字都不带温度。 “补偿方案在这里,你看一下。”张薇把协议推过来。 韩路一翻了翻:数字、条款、签名栏。 五年。 校招进来的P5,一路卷到P7,多少次周末赶代码,多少次通宵盯着新版本上线。 一张纸就结束了。 签完,站起来往外走。 走廊很长,白色的灯管在头顶排成一排。 走出208会议室大概第五步的时候,他突然开始头痛。 不是普通的头痛。 是那种从太阳穴开始,像有人拿锥子往里钻的剧痛,韩路一脚步一个趔趄,右手撑住了墙壁。 他的视野里出现了裂纹。 不是眼睛的问题,是整个世界出现了裂纹,就像一块屏幕被用力按了一下,液晶面板底下的像素点全部扭曲了。 然后世界破碎了。 又重组了。 整个走廊都变了。 墙壁、天花板、脚下的地砖,所有东西的表面都浮现出一层半透明的光,像是有人在现实世界上覆盖了一层AR图层,无数行代码和数据以极快的速度滚动着。 韩路一死死扶着墙,大口喘着气。 视野正中央,一个框体弹了出来。 【现实代码视界已激活】 【Lv.1|精力:100/100】 “……什么?” 韩路一以为自己出了幻觉,被裁员裁出精神问题了? 但那个面板就悬在他视野中央,清清楚楚,他试着伸手去碰,但手穿过了光影,什么也没摸到。 他眨了几下眼,面板还在。 右上角的数字在慢慢跳动:99……98……97…… 精力值在往下掉。 这时候208会议室的门开了,张薇抱着一叠文件走出来,差点撞到靠墙站着的韩路一。 “哎,路一?没事吧?你脸色不太好……” 她话没说完,韩路一抬头看到张薇的头顶浮着一个半透明的数据面板。 【张薇|29岁|HRBP(P6)】 就这么一行字,悬在她头顶大概十公分的位置,半透明的,像游戏里的名牌。 当韩路一把注意力集中到那里的时候,像是有人点开了一个折叠菜单,更多信息被打开了—— 【当前任务:完成7人裁员面谈(已完成3/7)】 【情绪:疲惫(隐藏:心虚)】 【WARNING:补偿方案存在两个漏洞:①工龄计算遗漏2021年7-9月实习转正衔接期;②加班补偿基数误用税前工资而非应发工资|差额¥47832】 韩路一盯着那个数字看了两秒。 四万七千八百三十二块。 忽然鼻子里一热,有什么东西流下来了,他抬手一抹,指尖是红色的,鼻血。 精力值:92……91…… 张薇吓了一跳:“你流鼻血了!要不要去医务室?” “不用。”韩路一用手背擦了一下鼻子,“张姐,等一下。” 他把刚才签好的协议从口袋里掏出来。 “补偿方案我又看了一眼。” 张薇愣了一下:“你都签了啊……” 韩路一的声音很平静:“劳动法第四十七条,工作年限计算有问题,我2021年7月实习转正,系统记录的入职日期是10月,中间三个月的衔接期你们没算。” 张薇脸上的表情微妙地变了一下。 韩路一继续说:“另外,加班补偿的基数你们用的是税前工资,但按照劳动合同法实施条例,应该用应发工资,包含绩效和补贴部分,这两个加起来,差了不少。” 张薇没接话,但她手里的文件夹握紧了一点。 韩路一看着她头顶的面板。 【情绪变化:疲惫→紧张】 韩路一把协议放在张薇面前:“数字不对,咱们重新算一下,按法条来就行。” 张薇沉默了几秒,然后说:“你等一下,我核实一下。” 她转身回了会议室,关上门。 韩路一靠在走廊的墙壁上,看着视野里跳动的数字和飘浮的代码流,精力值还在掉:85……84…… 太阳穴还在一抽一抽地疼,但他的嘴角翘了一下。 五分钟后,张薇出来了,表情有点僵硬。 “路一,你说的情况……确实存在,我跟薪酬组确认了,补偿金额需要调整。” 她递过来一份新打印的协议,手指点了一下最后的数字。 比原来多了四万七千八百三十二块。 韩路一拿起笔签了字。 “谢谢张姐。” 他把新协议折好放进口袋,转身的时候,看到走廊尽头站着一个人。 是陈博文,他端着一杯咖啡靠在墙边,表情似笑非笑。 以前见到这张脸,韩路一心里只有一个字:忍。 陈博文是韩路一的直属领导,海归硕士,空降P8。两个月前,他拿韩路一写了六个月的推荐系统演进做了场漂亮的汇报,转化率提升37%,留存涨了5.2个百分点。代码仓库里两千三百多次提交,百分之九十一来自韩路一的账号,但PPT署名“陈博文团队”,台下的VP王志远听得频频点头。 年终述职,陈博文拿了部门唯一的3.75,韩路一被评3.25,反馈就五个字:配合度不够。 然后项目被接手,人被踢去外包组,最后HR下场收人,一条龙。 韩路一看向他。 陈博文头顶的数据面板亮了起来。 【陈博文|33岁|算法部总监(P8)】 【情绪:轻蔑(隐藏:恐惧)】 【当前负责项目:推荐系统v3.2|上线后转化率持续下降(-0.3%/日)|团队未定位原因】 【WARNING:该对象存在3个严重Bug(当前等级不足)】 “路一,辛苦你了,好好休息一阵,”陈博文的表情恰到好处地遗憾,“有什么需要帮忙的,跟我说。” 韩路一笑了笑。 他把工牌从脖子上取下来,放在旁边的前台桌上。 “对了,”他像是想起什么似的,“转化率是不是在掉?” 陈博文端咖啡的手顿了一下。 韩路一掏出手机看了一眼时间。 “上线后应该每天掉零点几,你最近拉周线看过没?” 陈博文脸上的笑容不见了。 “你怎么知道的?” “是我写的。”韩路一把手机放回兜里,“陈哥,加油。” “韩路一!你什么意思!?” 韩路一没理他,摆摆手走了。 走出鼎盛集团大楼的旋转门,二月的冷风扑面而来。他站在台阶上,深吸了一口气。 精力值:61/100。 头还在疼。 鼻血干了以后上嘴唇痒痒的。 视野里依然飘着那些半透明的数据和代码,路上每个行人的头顶都顶着一块小小的面板,他试着集中注意力想要关掉这东西—— 面板消失了。 世界恢复了正常。 韩路一伸手摸了摸口袋里的新协议。 被裁了。 多拿了将近五万块。 眼睛好像出了什么大问题。 他把这三件事在脑子里排列了一下,发现自己居然想笑。 然后他真的笑了。 站在二月的冷风里,一个刚被裁员的二十六岁程序员,鼻子下面还有干掉的血痂,对着灰蒙蒙的天空笑出了声。 路过的保安看了他一眼。 韩路一收住笑,拿出手机叫了一辆车。 打车软件弹出预估价格:38元。 但是他的脑子里想的是另外两个问题—— 精力值归零了会怎样? 陈博文那三个严重Bug是什么? 手机震了一下,推送弹窗:《快闪科技完成B轮融资10亿,估值破百亿》,韩路一瞥了一眼,划掉了。 十个亿。 跟他没关系。 第二章 这个世界,有Bug 出租车上,韩路一靠着后座闭眼假寐。 司机在前面骂骂咧咧地吐槽交通,导航的电子女声冷冰冰地说“前方五百米右转”。 到家了。 浦东老小区,六层楼梯房,他住五楼,没电梯,每天爬楼就当健身了。月租四千五,在海城算便宜的。 进屋鞋都没换,他就打开了电脑。 程序员遇到了未知的新功能,第一反应只有一个。 测试。 新建文档,文件名:RCV_test_log_v_0_1.md 开启视界。 世界再次变了。 房间里每个物体的表面都浮现出淡淡的数据光层,墙壁有建筑信息,桌子有材质数据,就连角落里那袋没扔的外卖垃圾都标着【有机废弃物|存放时间:3天|建议:立即处理】。 韩路一瞥了一眼那个提示,默默把垃圾袋拎去了门口。 然后回来坐下,开始记录。 精力值:67/100,比出公司大门的时候恢复了6点,大约每分钟0.15。 他在文档里敲下第一行数据,接着花了十来分钟测试视界的被动和主动两种模式,被动挂着每分钟耗1点,聚焦扫描跳到3-4点。 基础参数记完,他把视界对准了电脑屏幕。 屏幕上还开着一个开源推荐系统,他业余时间在GitHub上维护的,star两万多,好几家小公司拿去部署了。视界扫描了大约十秒钟,整个代码结构在他视野中展开。 Bug标红,冗余代码标黄,优化空间标蓝。 韩路一皱了皱眉。 找Bug、标红代码、提示边界条件,这不就是代码审查工具干的活吗?2026年了,这种功能烂大街了。就算视界的准确率更高、速度更快,本质上也只是一个增强版的静态分析,算不上质变。 但每一个红色标记旁边,还悬浮着一层东西。 韩路一凑近屏幕,逐字看清了。 【Bug|推荐权重溢出】 【触发场景:用户连续刷新>50次时权重累加溢出】 【影响范围:日均触发约12万次|涉及用户约8.3万人】 【业务损失:推荐精度下降,聚合估损≈日均62000元】 韩路一瞬间坐直了。 日均损失六万二。 这不是代码层面的信息,代码里写的是一个数据溢出,任何AI分析工具都能找出来,但“日均触发12万次”“影响8.3万用户”“每天亏六万二”,这些数据从哪来的? 这是开源项目,他自己都不知道有谁部署了这套系统。 这是现实世界的运行数据。 而视界能看到。 他正要关掉扫描,手机闪出一行金色提示—— 【WARNING:外部实体异常,快闪科技|检测到重大Bug:核心运营数据严重异常|修复可获得大量经验|详情需深度扫描】 韩路一愣住了。 快闪科技,刚才打车的时候手机推送的那条,B轮融资十个亿,估值破百亿的那个快闪科技。 十个亿的公司,核心数据有重大Bug? 精力值哗哗往下掉,他赶紧关闭视界,在文档里写下: “代码扫描:Bug定位,能看到Bug在真实世界中的影响。” 又加了一行:“快闪科技,核心运营数据严重异常,需要深度扫描,大量经验。” 他关上电脑,靠在椅子上。 窗外的天已经快黑了,二月的海城日落早,才五点出头就暗下来了。 肚子叫了一声。 韩路一这才想起来,自己今天只吃了一顿早饭。 他起身下楼买饭。 走到二楼楼道拐角,听到下面传来动静。 有人在上楼,走得很慢。脚步声沉闷,中间夹着一个小孩子的哼唧声。 韩路一往下走了几步。 一个女人左手拎着两大袋超市购物袋,右手抱着一个小女孩,正吃力地往上爬。购物袋太重,塑料提手勒得她手指发白。怀里的小女孩大概四五岁的样子,脸上挂着没干的泪痕,脑袋靠在女人肩窝里。 韩路一迎面下来的时候,女人抬起头看了他一眼。 视界还开着。 面板自动弹了出来。 【林晚晴|30岁|自由插画师】 只有这么一行,简洁的基础名牌,悬在她头顶。 但他的目光多停了一秒,面板下方自动展开了更多信息—— 【情绪:疲惫(隐藏:焦虑)】 【WARNING:该对象存在1个待修复Bug,家庭纠纷(详情需Lv.2解锁)】 韩路一来不及多看,已经本能地伸出手:“我帮你拎。” 林晚晴愣了一下。 她额头上有一道浅浅的蓝色颜料,大概是画画的时候蹭上去的,自己还不知道。 “啊……谢谢。”她把购物袋递过来,声音里带着不太习惯被帮忙的拘谨。 韩路一接过来,挺沉的,两袋加起来估计有三十斤。米、食用油、一堆蔬菜水果,还有两盒儿童牛奶。 两个人一前一后上楼。 “你是……502的吧?”林晚晴先开口了,有点不确定的语气。 韩路一点了点头。 “我501。”她笑了一下,“搬来两年了,好像第一次说话。” 韩路一确实一点印象都没有,以前每天早上六点出门,晚上十一二点到家,周末还经常去公司加班,别说邻居了,这栋楼的楼管叫什么他都不知道。 “我以前工作忙,不常在家。”他说。 “现在不忙了?” “现在……不太忙。” 林晚晴没追问。 到了五楼,两家门对门,韩路一把购物袋放在501门口。 这时候怀里的小女孩突然抬起头,瞪着一双圆溜溜的大眼睛看韩路一。 泪痕还没干,睫毛上挂着水珠,但她已经不哭了,神情里多了一种小孩子特有的好奇。 “大哥哥。”她突然说。 “嗯?” 小女孩歪着脑袋,认真地看了韩路一好几秒。 “你眼睛好亮。” 韩路一心里“咯噔”一下。 视界还开着。 他不动声色地关掉了视界,面板消失,代码流消退,世界恢复正常。 小女孩又看了他两秒,然后兴趣转移了,把脑袋重新埋回妈妈肩膀上。 林晚晴没注意到这个细节,腾出一只手摸钥匙开门。 “谢谢你啊……”她回过头来。 韩路一注意到她犹豫了一下,大概是在想怎么称呼。 “我姓韩,韩路一。” “我叫林晚晴,这是我女儿,朵朵。” 林朵朵闷在妈妈肩膀上闷闷地说了句“朵朵”,算是自我介绍了。 韩路一笑了一下:“朵朵你好。” 林晚晴又道了一次谢,进了门。 门关上的那一刻,韩路一站在走廊里,脑子里回放起刚才面板上那行黄色的警告。 【WARNING:该对象存在1个待修复Bug家庭纠纷(详情需Lv.2解锁)】 Lv.2。 他想起文档里那行字:快闪科技,核心运营数据严重异常,修复可获得大量经验。 第三章 415%的谎言 等林晚晴关上门,韩路一又打开视界。 视野右上角的数据面板亮起来: 【Lv.1|精力:53/100】 【经验值:12/200】 离升级差的有点远。 他关掉视界,下楼买了份黄焖鸡米饭,边吃边想事情。 晚上九点,他洗了澡,躺在床上。 今天的经历很魔幻,脑子太乱,先睡,让后台跑一遍GC。 闹钟设在早上七点。 第二天。 韩路一是被阳光晃醒的,比闹钟还早了十分钟。 睁开眼,开视界。 【精力值:100/100】 洗漱完毕,泡了一杯速溶咖啡,坐到电脑前。 打开某个自由开发者接单平台。 以前他偶尔会在上面接点私活,赚个零花钱。但那时候是纯凭技术和经验筛选项目,效率一般。 现在不一样了。 视界开启。 平台页面上的每一条外包需求旁边,都多了一层数据面板。 第一条:某社交APP的数据接口开发。 【甲方信誉评分:31/100|实际预算:低于标价60%|隐藏需求:要求免费维护半年|赖账概率:67%】 韩路一嘴角抽了一下,赖账概率百分之六十七,之前就接过这种单子,验收完了对方消失,尾款永远在路上。 第二条:某教育公司的AI课程推荐算法。 【甲方信誉评分:88/100|实际预算:与标价一致|隐藏需求:无|赖账概率:1%】 这不就是开全图吗? 他挑了几个高信誉、低赖账率的单子,开始干活。 视界的代码扫描功能在这时候展现出了恐怖的效率。 第一个单子,电商后台优化,打开代码,扫描三秒,所有性能瓶颈和潜在Bug以高亮色块的形式浮现出来。别人要花一天理解的代码架构,他看一眼就全明白了。 四十分钟,搞定。提交修复报告的时候,甲方过了好一会儿才回:这么快?你们是多少人的团队啊? 第二个单子,AI推荐算法,稍微复杂一点,但这是他的老本行了,一个小时完成。 第三个单子,数据库迁移脚本,最简单的那种,半小时。 三个单子,一上午。 平台账户余额提示:+8200元。 以前在鼎盛的时候,税后月薪五万出头,一个工作日算两千多块。 半天赚了差不多四天的钱。 韩路一靠在椅子背上,看着那个数字。 在鼎盛卷了五年,没有过这种手感。 精力值掉到了41,代码扫描的消耗不低,三个单子加起来用了将近60点。但钱已经到账了,剩下的时间可以关掉视界慢慢恢复。 他伸了个懒腰,关掉接单平台,打开了浏览器。 昨天视界扫到的那条提示一直在他脑子里,快闪科技,核心运营数据严重异常,修复可获得大量经验。 他搜了一下快闪科技,打开官网,开了视界。 就一秒。 视野里“啪”地炸开一片刺目的红。 整个页面都被一层红色覆盖了。 一行巨大的警告浮现在正中央。 【严重异常!!!】 【该公司公开DAU数据与系统推算真实数据偏差率>400%】 【数据造假概率:99.7%】 【关联风险:用户隐私数据异常调用,详情需主动扫描】 韩路一的手停在鼠标上,没动。 四倍。 DAU造假四倍,十个亿融资,建在这种数据上。 他拿起手机,在应用商店搜“快闪”,下载,安装。 先扫快闪的公开资料,官网、应用商店页面、公开的融资新闻稿。 视界叠上去的数据图层把每一组公开数据都标注了“真实偏差”。 注册用户:官方宣称8000万。 【系统推算真实值:约2300万|偏差率:248%】 月活用户:官方宣称6000万。 【系统推算真实值:约1400万|偏差率:329%】 日活用户:官方宣称3500万。 【系统推算真实值:约680万|偏差率:415%】 每一组数据旁边都挂着红色标签,像一棵长满了烂果子的树。 韩路一的目光在三行数字之间来回扫了两遍。 等等。 表面上看,8000万注册、3500万日活,日活率43%,完全合理。 但视界给出的真实注册只有2300万。 3500万日活,2300万真实注册,日活比真实用户总数还多出一千多万。 就算每个真实用户天天登录,也凑不出3500万,多出来的人从哪来的? 精力值在快速下降,50,46,42…… 韩路一带着这个问题加快了速度,他拿起手机,打开刚下载的快闪APP,随手刷了几条视频。 视界同时在扫描。 专注看短视频背后正在发生的事。 视界扫描了十五秒,弹出一连串红色警告。 【严重异常#1|APP实际读取:通讯录、短信记录、GPS轨迹|用户协议声明范围:基本设备信息|超范围采集】 【严重异常#2|隐私数据传输方式:Base64编码|安全标准要求:AES-256|当前等级:无防护】 他们用Base64来“加密”用户隐私数据,这不是加密,这是行为艺术,任何一个计算机专业的大一学生都能在三十秒内把这些数据全部还原成明文。 通讯录、短信记录、GPS轨迹,快闪在偷2300万用户的一切。 但偷数据不是终点。 视界继续深入,后端架构的轮廓像洋葱一样一层层剥开,一个隐藏极深的模块浮出水面。 【严重异常#3|检测到「用户行为模拟引擎」|输入:真实用户隐私数据(行为模式/社交关系/地理轨迹)|输出:批量虚拟活跃账户|当前虚拟账户规模:约2800万】 韩路一的脊背一凉。 拼图的最后一块落进去了。 快闪偷来的隐私数据不只是在裸奔,它们是原料,2300万真实用户的行为模式被喂进模拟引擎,批量造出了2800万以假乱真的“活跃用户”。这些虚拟账户会刷视频、点赞、留言,行为模式照搬真人,从外面几乎看不出破绽。 680万真人加上2800万幽灵,凑成了3500万日活的漂亮数字。 一条完美的造假链:偷数据→仿真人→充日活→骗融资。 十个亿,就是这么骗来的。 面板底部弹出一行红字: 【该Bug集群影响范围:约2300万注册用户隐私数据】 【融资欺诈规模:10亿】 精力值已经掉到了29,太阳穴开始抽痛,这大概是过度使用的前兆,韩路一强行关掉视界,靠在椅背上缓了好一会儿。 他打开了一个新的文本文件,把刚才看到的所有信息凭记忆敲了进去:数据偏差、隐私窃取、行为模拟引擎、造假链条,分条列明。 这些信息的冲击力太大了,想忘都忘不掉。 全部记完之后,他看着这份文件沉默了一会儿。 这份东西不能用,来源没法解释。 他需要一条干净的证据链,每一步都经得起追问。 韩路一开始收集证据。 先做APK逆向,快闪的安装包反编译后,可以看到数据库接口,用户ID是自增主键,最大值停在2300万附近。官方宣称8000万注册,差了三倍多。 再写爬虫,一段脚本抓取快闪公开页面上“活跃用户”的行为数据,跑了半小时,结果出来了,大量账号的点赞间隔、浏览路径、活跃时段高度雷同,呈明显的机器生成特征。 两份证据保存好,这才是能摆上台面的东西。 一家B轮融了十个亿的公司,投资方是几家头部VC,快闪的CEO隔三差五上科技媒体的头条。上个月他还在某行业峰会上做了主题演讲,讲的是“数据驱动的用户增长方法论”。 数据驱动,确实,造假也算一种驱动。 韩路一再次点进快闪官网的“关于我们”页面。 联合创始人兼CTO:周明哲。 这张脸他见过,去年鼎盛年会,王志远那桌,坐他右手边的那个人,陈博文还过去敬了酒。 VP请外面的人来年会太常见了,他当时没在意,但现在这张脸出现在快闪的CTO栏里,韩路一心里划了一个小小的问号。 韩路一面前摆着两条路。 第一条:当没看见,把刚才的东西都删掉,没有任何风险。 第二条:把这些东西捅出去。 怎么选? 快闪背后是十个亿的融资、头部VC的站台、专属法务团队。他有什么?一份不能说明来源的证据。 但如果不管—— 2300万人的隐私每天都在被榨干,变成快闪造假的燃料,每多一天,就多一天的数据在裸奔。 韩路一堵着鼻子坐了五分钟。 然后他拿起手机,翻开微信,找到一个名叫“404寝室”的群聊。 群里最后一条消息停在三天前。马小飞发了张凌晨一点半的自拍照,然后说“需求又改了,甲方是我爹”,韩路一回了句“人寿保险买了吗”,再往下就没人说话了。 韩路一打了一行字:“晚上出来搓一顿,我请,有正事。” 发送。 窗外天已经黑了,手机屏幕的光映在他脸上。 一个刚失业的程序员,去对抗一家百亿估值的公司。 听起来像个笑话。 但2300万人里,看到真相的只有他。 第四章 堂吉诃德的冲锋 马小飞三秒内回复:“???老韩你主动请客?说吧让我干谁?我两肋插刀!” 张浩然慢了两分钟:“下班后可以,老地方?” “老地方。” 老地方是大学城旁边一家叫“再来一串”的烧烤摊。 老板换了三任,烤串的味道换了三个风格,但404寝室的三个人每次聚会都来这儿。 晚上七点半,三个人坐在露天的塑料凳上,面前摆着六十串烤肉、一盆小龙虾和三瓶啤酒。 “先说正事。”马小飞举起啤酒瓶指着韩路一,“老韩,你被鼎盛优化了?” “嗯。昨天的事。” “卧槽。”马小飞表情夸张到像在演小品,“你P7啊!你一个P7的算法工程师被优化了?鼎盛是疯了吗?” “陈博文把我的项目摘了,然后推动的优化。” “操他……”马小飞拍了一下桌子,小龙虾汤溅出来两滴,“这种人你不告他?” 张浩然在旁边默默剥虾,声音不大:“告不了,项目归属公司,署名权这个东西在大厂基本是灰色地带。” “那也太他妈欺负人了!” 韩路一笑了笑,喝了一口啤酒,他打开视界,好奇两个兄弟的面板长什么样。 马小飞的面板弹出来了。 【马小飞|26岁|职业:自媒体博主/自由摄影师】 【情绪:义愤】 【隐藏情绪:嫉妒(韩路一居然还是不秃)】 【核心焦虑:账号涨粉瓶颈期】 【粉丝总量:4.7万|当月收入:¥8200】 韩路一差点没绷住,嫉妒他不秃。 再看张浩然。 【张浩然|26岁|职业:某股份制银行信息技术部】 【情绪:担忧(为韩路一)】 【隐藏情绪:无(该对象情绪表里如一)】 【核心焦虑:月底房贷¥11400】 韩路一关掉视界,笑着又喝了一口。 “不说我了。”他把话题引开,“小飞,你最近在追什么选题?” 马小飞来了精神,咬牙切齿的精神。 “你不说我还想说呢,快闪你知道吧?那个短视频APP。” “知道。” “我被那帮孙子坑了,”马小飞把啤酒瓶往桌上一顿,“坑惨了。” 韩路一夹虾的手停了一下:“怎么回事?” “上个月我接了一单推广,一个护肤品牌找我在快闪上投信息流广告,品牌方出预算,我负责内容和投放。”马小飞越说脸越黑,“我跟你讲,我把这单当翻身仗来打的,自己贴了一万二的制作费,拍了三条视频,熬了半个月。” “然后呢?” “然后投上去,效果稀烂。快闪官方说月活八千万,按他们公布的流量模型,我那条广告至少应该有五十万曝光,结果实际只有八万。八万!转化率更离谱,品牌方预期的ROI完全没达到。” 马小飞一口啤酒灌下去:“品牌方觉得是我内容做得烂,尾款两万块直接不付了。我找快闪客服投诉数据有问题,你猜人家怎么说?「投放效果受多种因素影响,建议优化内容质量。」” “尾款没追回来?”张浩然问。 “追个屁。品牌方说没达到KPI就是没达到,合同里白纸黑字写着。我总不能告诉人家「快闪数据注水所以效果差」吧?我拿什么证明?”马小飞搓了搓脸,“一万二制作费打水漂,两万尾款没了,三万二!我一个月才赚八千多!” 韩路一看着他的表情,感觉他都快吐血了。 “后来我不死心,又花了一个星期扒他们的公开数据。CPM、用户活跃曲线、广告填充率,全都对不上。”马小飞压低声音,“老韩我跟你说,他们的数据至少注了三倍水,但我没有技术能力去证明,只能从投放数据反推,不够硬。我要是发出去,快闪法务分分钟告我诽谤。” 实际是四倍以上。 韩路一看了马小飞一眼。月收入八千二的人,亏了三万二,相当于四个月白干。 张浩然在旁边开口了:“快闪B轮的领投方是星辰资本和云帆创投,这两家都不是小机构,尽调应该做过了,如果数据真有这么大的水分,投资方不可能看不出来。” “那就是投资方也被骗了呗。”马小飞说。 “或者投资方知道,但装不知道。”张浩然用筷子点了点桌面,“击鼓传花,只要能在下一轮之前把估值做上去,接盘的不是他们就行。” 韩路一想起下午在快闪团队页看到的那张脸,问了一句:“快闪的CTO周明哲,你听说过吗?” 张浩然剥虾的手停了。“周明哲?”他皱了下眉,“这名字……等等,他是不是之前在鼎盛?” “嗯,年会我见过他,坐王志远那桌。” “对。”张浩然放下筷子,“他是王志远带出来的,2023年从鼎盛离职的,之前在王志远手底下干了三年技术,走的时候鼎盛内部还有人议论。” 马小飞在旁边听得两只眼睛越瞪越大:“等一下,快闪的CTO是鼎盛VP的老部下?” “大厂的人出去创业太常见了。”张浩然说,但他顿了一下,语气变得谨慎,“不过我上个月帮行里做合规审查的时候,扫到过快闪天使轮的一笔投资,走的壳公司,结构上像个人投资通道,不像正规机构行为。” 他没继续说。 韩路一喝了口啤酒,快闪的水,比他想的要深。 他看向张浩然,这人平时话不多,但看问题的角度总是很准。 “假设,”韩路一斟酌着用词,“假设有人拿到了快闪数据造假的硬证据,技术层面的那种,怎么处理比较稳妥?” 张浩然抬头看了他一眼。 “除非是竞对的那几个大公司,普通人要举报他们不是以卵击石吗?人家法务也不是吃素的……” 话没说完,马小飞停下来,也看了他一眼。 “老韩,”马小飞放下啤酒瓶,“你是不是知道点什么?” “我随便假设。” “你这个随便假设的表情可不太随便。” 韩路一没接话,喝了口啤酒。 张浩然想了想,说:“如果真有硬证据,直接举报不是最优选择,快闪估值百亿,法务团队肯定有准备的,最稳妥的做法是走匿名渠道,找专业媒体。但在这之前——” 他从手机里翻出一张电子片,推到韩路一面前。 “先找个靠谱的律师,搞清楚法律风险,然后再行动。” 名片上写着:顾司玥,海城博衡律师事务所,高级合伙人。 “你认识?”韩路一问。 “我们银行的外聘法律顾问之一,做互联网和知识产权诉讼的,非常厉害。”张浩然说,“人有点冷,但专业能力没得说。” 韩路一把名片存了下来。 马小飞在旁边看看这个看看那个,觉得自己成了一条嗅觉敏锐的自媒体猎犬:“你们俩这什么眼神?到底怎么回事?老韩你是真的有料对不对?” “我真的是随便假设。” “我信你是秦始皇。” 三个人又喝了一轮。话题从快闪聊到了各自的近况,马小飞的账号卡在五万粉上不去,张浩然在银行做IT无聊到想辞职但不敢,韩路一被裁了反倒是三个人里最淡定的。 “说真的老韩,你接下来打算干嘛?”马小飞问。 “先接点私活,”韩路一说的是实话,“然后看看有没有什么想做的。” “你这技术水平,出去创业分分钟的事。” “创业这东西不是光有技术就行的。” “行了行了,”马小飞站起来去结账,“今天算我请,改天你发财了记得带上兄弟。” “不是说我请吗?” “你刚失业呢你请什么请。”马小飞把他摁回塑料凳上,“这种时候还跟我抢买单?给我省省吧老韩。” 韩路一笑了笑,没再争。 回家的路上下起了小雨。 海城二月的雨带着冷意,不大但黏人,韩路一没带伞,走到楼下的时候头发已经湿了。 上到五楼,开门进屋,换了双拖鞋。 韩路一坐到电脑前,打开了下午记录快闪问题的那个文本文件。 张浩然说得对,先找律师。 韩路一拿起手机,翻到张浩然发来的那张电子名片。 顾司玥,海城博衡律师事务所。 打开博衡律师事务所的官网,找到了在线预约页面,填了一个明天上午的咨询预约。 姓名:韩路一。 咨询方向:互联网企业数据合规。 备注:涉及用户隐私安全的技术举报需要法律评估。 发送。 第五章 两千三百万分之一 博衡律师事务所在陆家嘴一栋写字楼。 韩路一站在大堂的楼层指示牌前,看了一眼手表,上午十点差两分钟。他今天特意换了件干净的衬衫,头发也拢了拢,陆家嘴的律所,穿运动服进去不太合适。 电梯停在十九楼。 前台是全透明玻璃墙设计,黑胡桃木前台上摆着一枝白色马蹄莲,墙上挂着一排律师照片和执业资质,金色铭牌刻着“博衡律师事务所”。 “您好,请问有预约吗?” “韩路一,预约了十点的咨询,顾司玥律师。” 前台翻了一下电脑,点点头:“顾律师在会议室等您了,这边请。” 来到会议室门前,前台敲了敲虚掩的门。 “顾律师,您十点的客人到了。” 会议室不大,一张六人位的会议桌,窗外能看到半截陆家嘴的天际线,桌子一头坐着一个人。 她身穿黑色西装,白衬衫,扣子系到最上面一颗。黑色长直发在脑后束成一个低马尾,几乎没有碎发。细框眼镜下面是一张线条分明的脸,很白,嘴唇抿成一条直线。 整个人像一份排版严谨的法律文书。 顾司玥从笔记本电脑后面抬起头,看了他一眼,站起来。没有笑容,只是微微点了一下头,伸手示意她对面的座位,整套动作加起来不超过两秒,然后重新坐下。 “请坐。” 韩路一坐下来。张浩然说“有点冷”,这叫有点? “顾律师,我——” “韩路一,前鼎盛集团算法工程师,P7,今年二月被裁员,咨询方向数据合规,备注写的技术举报。“她翻了一页本子,“你的公开背景我查过了。“ 韩路一眨了一下眼:“……效率挺高,我连自我介绍都省了。” “咨询按小时收费,”顾司玥合上笔记本电脑,终于正眼看他,“说吧,什么情况。” 韩路一开了视界。 数据面板在顾司玥身上浮现。 【顾司玥|28岁|博衡律师事务所高级合伙人】 他多看了一眼,面板展开了详情。 【情绪:公事公办(隐藏:略微好奇)】 【评价:又一个程序员?】 【逻辑推理能力:异常值(outlier)】 又一个程序员?这五个字配上问号,信息量很大。说明找她咨询的程序员不少,而且她对这个群体的整体评价不太高。 视界给人打标签,韩路一见过“优秀““较强“,没见过直接标“异常值“的。这是数据偏离正常分布太远,视界不好给评分了。 他关掉视界。 “我在一个公开渠道下载的APP上,发现了一些数据异常。” “哪个APP?” “快闪。” 顾司玥的表情没有任何变化,拿起了桌上的笔。 韩路一提前准备好了一份说辞,他不能暴露金手指,所以要把“视界扫描”包装成“技术分析”,好在他确实有技术能力支撑这个说法。 “我下载快闪的APP后,出于职业习惯做了一些技术层面的观察,APP运行时的网络请求行为和它在用户协议中声明的数据采集范围有明显不一致。” “具体呢?” “两个层面,”韩路一竖起手指,“第一,隐私窃取,APP实际读取通讯录、短信记录、GPS轨迹,但用户协议只声明了基本设备信息,严重超范围采集,而且传输方式是Base64编码。” “Base64?”顾司玥抬起眼睛。 “就相当于是明文,任何计算机专业的学生都能在三十秒内还原全部内容,没有加密。” “第二,数据造假。”韩路一说,“我对APK做了反编译,用户ID自增主键最大值约2300万,但官方宣称注册用户8000万。然后我用爬虫抓了公开页面的活跃用户数据,大量账号的行为模式高度雷同,呈机器生成特征。更离谱的是——官方宣称日活3500万,比真实注册还多,多出来的全是假的。” 顾司玥把笔放下,身子靠近了桌面。 “影响范围?” “约2300万注册用户的隐私数据在裸奔。融资方面,B轮十个亿的估值基础全建在假数据上。” “你说的这些,有什么证据?” “APK抓包记录、爬虫数据、行为分析报告,全部做了脱敏处理,只涉及APP公开行为,没碰过任何后端代码或者服务器。” “你确定?” “确定,所有操作都在合法范围内——下载公开APP,反编译公开安装包,抓取公开页面数据,都是正常的安全研究。” 顾司玥看了他几秒。 那几秒钟让韩路一有一种被X光扫描的感觉。 “假设你的技术能力是够的,”顾司玥开口了,“但技术能力和法律安全是两回事,你知道快闪是什么体量的公司吗?” “B轮融资十个亿,估值一百亿。” “对,一百亿,法务团队至少二十人,还有外聘律所,你如果实名举报,他们有一百种方法让你后悔。” 顾司玥把双手放在本子上,手指交叉,看着他。 “我需要问你几个问题。” “请说。” “你跟快闪有劳动关系吗?” “没有。” “投资关系?竞业关系?商业纠纷?” “都没有。” “你不是快闪的员工,不是投资人,不是竞争对手,甚至不是被快闪直接侵害过利益的当事人。”顾司玥的语速没有变,但每个字都在收紧,“你是一个刚被别的公司裁员的程序员,你现在要做的事,是去举报一家百亿估值的公司。” 她停顿了一下。 “为什么?” 这个问题问得很直接。 对一个律师来说,委托人的动机决定了这个案子值不值得接,一个没有利害关系的人要去戳百亿公司的眼睛,要么是傻,要么是圣人,要么是有没说出来的原因,三种都不好接。 “你说我不是被直接侵害过利益的当事人,这一点不对。”他说。 顾司玥微微抬了一下眉毛。 “我下载了快闪。”韩路一说,“我的手机里有我朋友的电话、我的聊天记录、我每天去了哪里,从我安装这个APP的那一刻起,这些数据就被偷走了。” 他停了一下。 “我就是那两千三百万人之一。” 顾司玥没说话。 “我一个兄弟是做自媒体的,上个月在快闪投了一单广告,因为数据注水,效果远低于预期,品牌方不付尾款,他自己贴了一万多的制作费,全打了水漂,他一个月才赚八千块。”韩路一的语气平静,“他没有技术能力去证明快闪造假,他能怎么办?找客服投诉?人家让他「优化内容质量」。” 顾司玥的手在本子上轻轻点了一下。 “我前天刚被公司裁员。”韩路一说,“原因你查过了,不用我多说,大公司欺负小人物这种事,我刚经历完一遍,快闪干的是同一套,我是大公司,我掌握数据,用户是小人物,我想怎么用就怎么用,反正你们看不到。” 他看着顾司玥的眼睛。 “现在我看到了。” 会议室安静了几秒。 顾司玥看了他一会儿,然后她拿起笔,重新翻开本子。 “两千三百万人里,只有你一个人跑来找律师。” “两千三百万人里,有我一个就够了。” 第六章 七十二小时 “两千三百万人里,有我一个就够了。” 顾司玥没有评价这句话,她开始在本子上写字。 “方案分为三层。”她落笔极快,“第一,匿名举报,网信办和工信部,我来拟法律表述;第二,证据公证,你的分析材料具备法律效力;第三,法律防火墙,快闪找到你头上的任何接触都通过我中转。” 她抬起眼睛看着他。 “按我说的做,他们告不到你,自作聪明的话,我也救不了你。” 韩路一靠在椅背上。 “收费怎么算?” “咨询费每小时两千,不便宜。”顾司玥合上笔记本,“但你请得起,刚多拿了五万赔偿金,不是吗?” 她怎么知道的? “做律师的基本功是了解你的客户,能在被裁员当天还发现赔偿金计算错误的人,”她停了一下,“至少不蠢。” 韩路一偷偷开了一秒视界。 【顾司玥|情绪变化:公事公办→微妙的认可|评价升级:有脑子的程序员】 “行,按你说的来。” 顾司玥站起来收东西。走到门口,她停了一下。 “你有七十二小时。” 韩路一愣了一下。 “快闪下周二有投资人闭门会,B轮交割的最后环节,会前引爆效果最大。”她的语气冷得像在念判决书,“过了这个窗口,B轮一旦close,举报的影响会小很多。” 韩路一算了一下,今天周五,周二闭门会,还有七十二小时。 “另外,事情做干净,这家公司背后不简单。” 说完她推门出去了。 韩路一站在会议室里,回味着最后两句话,他这次见面得到的信息比想象的多得多。 倒计时开始了。 —— Day 1 韩路一从律所出来,在地铁上用手机备忘录整理思路。回到家花了两个小时,把快闪的技术分析写成一份十二页的脱敏报告。数据不涉及任何非公开信息,但逻辑链完整,结论清晰,不懂技术的人也能看明白快闪在干什么。 完成后拆成两个版本,完整版给监管,精简版给媒体。 下午,公证处。 工作人员看完报告,表情从礼貌微笑变成面无表情,又从面无表情变成反复翻页确认。 “先生,您确定这份材料可以公开?” “确定,全部是公开可获取的信息。” 盖章,签字,公证书到手。一共花了四十分钟。 出了公证处,韩路一打了三通电话。 第一个,顾司玥。 “公证完了,举报材料什么时候递?” “今晚。匿名渠道已经安排好了。” 第二个,马小飞。 “举报快闪,你那有媒体的路子吗?” 电话那头安静了三秒,马小飞的声音切换成了韩路一很少听到的认真模式:“你有硬东西?” “已经公证了,法律干净,但必须走正规媒体首发,自媒体发,快闪法务直接告你诽谤。” “我认识的36度的编辑老赵,我今天联系他。老韩,那帮孙子坑了我三万二,这事要是成了……” “我这可不是给你报私仇,这是2300万用户的隐私。” “行行行你高尚,但我也顺便报仇。” 第三个,张浩然。 “能帮我从金融侧梳理一下快闪的融资链条吗?公开信息,看估值逻辑站不站得住。” 电话那头敲了两下键盘。“快闪?你要动手了?”张浩然哼了一声,“我早觉得他们的增长曲线有鬼,给我一天。” 三条线同时启动。 晚上九点,顾司玥发来消息:“举报材料已递出。从现在开始,不要主动联系任何记者,不要发社交媒体。你对任何人说的每一句话,都默认可能被取证。” “明白。” “「任何人」包括你那两个朋友。” 韩路一看着这条消息,觉得这个女人的谨慎程度堪比加密通信协议。 倒计时:48小时。 —— Day 2 凌晨两点,马小飞转来老赵的消息。老赵看完材料,用马小飞的话说,“声音都在抖”。36度编辑团队连夜启动了交叉验证。 但紧跟着第二条消息让韩路一坐了起来。 老赵说:快闪的公关部似乎嗅到了什么。今天下午开始密集约行业媒体“沟通”,疑似在做舆论预案。如果不加速,对方可能抢先发辟谣声明把水搅浑。 韩路一打开快闪APP,开了视界。 他的脸色变了。 快闪昨晚悄悄推送了一次热更新。更新日志写的是“优化用户体验”,但视界清清楚楚地看到,隐私数据采集通道正在被逐步关闭。窃取用户隐私的接口有三个已经停用,剩下两个在做代码混淆。 他们在删痕迹。 精力值掉了11点。韩路一关掉视界,给顾司玥发消息。 “快闪昨晚紧急更新APP,在关闭隐私导出通道。他们开始销毁证据了。” 顾司玥三十秒后回了几个字:“提前十二小时。” 韩路一盯着这条消息。原计划周二早晨发布,现在要提前到周一晚上,留给36度的审稿时间又短了半天。 下午,张浩然的金融分析到了。一天就做完了,快闪的融资链条、股权结构、资金流向,全部用公开数据梳理清楚。结论:B轮估值的逻辑完全建立在注水数据上。数据一垮,估值就是空中楼阁。 三条线的材料齐了。就看36度审稿了。 倒计时:22小时。 —— Day 3,上午。 韩路一把快闪紧急更新前后的数据对比截图发给顾司玥。销毁证据这个行为本身,就是最好的证据。匿名渠道追加提交。 上午十点,马小飞接到老赵的一条语音。没有完整的句子,就一句“内审过了”,后面跟着一声长长的呼气。一天半的交叉验证,三个匿名信源的补充采访,过了。张浩然的金融分析同步转给老赵作辅助材料。 下午两点,404寝室群弹出一条消息。四个字。 “晚上八点。” 韩路一盯着屏幕。脖子酸得转不动,桌上摆着三杯外卖咖啡,只喝了半杯,剩下两杯凉透了。 顾司玥发来最后一条:“准备好了?” “准备好了。” 韩路一关掉手机屏幕。窗外是海城的午后阳光,隔壁隐约传来林朵朵看动画片的声音。一切都很正常。 他起身,打算去床上闭两个小时的眼。 手机调了八点的闹钟。 第七章 引爆 晚上八点整。 韩路一坐在电脑前,刷新了一下36度科技频道的页面。 报道上线了。 标题:《独家调查:快闪科技核心运营数据涉嫌大规模造假,2300万用户隐私或遭泄露》。 他没有做任何事,没有转发,没有评论,没有在任何平台提一个字,他只是看着。 十分钟,科技圈的微信群炸了。马小飞在404寝室群里发了一串感叹号,张浩然发了一个句号,韩路一没回。 三十分钟,微博热搜第九。 一个小时,热搜第三,话题阅读量破两亿,评论区以每秒刷新的速度在增长。 “Base64加密隐私数据???我读大一都不敢这么写。” “2300万用户的隐私就这么裸奔?快闪你是认真的吗?” “星辰资本那帮人怕是睡不着了,B轮的钱还没捂热就炸了。” 两个小时,快闪科技官方发布紧急声明,措辞模糊,既不承认也不否认:“正在核实相关信息,将第一时间向公众通报。” 翻译一下就是“我们在想怎么圆”。 三个小时,星辰资本发布简短声明:“已关注相关报道,正在与快闪管理层沟通。” 资本市场的反应比舆论更快。快闪的B轮交割暂停了。周二的投资人闭门会直接取消了。 韩路一打开报道页面,打开视界。 【该报道阅读量:287万(上升中)】 【舆论影响力评级:A】 【快闪科技估值实时波动:-22%(下降中)】 他关掉视界。 手机响了。 顾司玥。 “你看到新闻了?”韩路一接起来。 “看到了,写得很克制,全靠数据说话。”顾司玥的声音听不出什么波动,“法律层面你放心,他们查不到你。” 顾司玥在电话那头停了两秒。 “做得不错。” 然后挂了。 韩路一看着手机,花了几秒钟消化这四个字。顾司玥说“做得不错”,大概相当于马小飞说“卧槽牛逼”吧。 他笑了一下,放下手机。 评论区还在以每分钟两位数的速度增长。 与此同时,技术圈开始追查那份匿名技术分析的作者了。 有人在论坛上逐段分析报告的行文风格和技术视角,有人猜是某大厂的安全工程师,有人猜是竞品公司的人在搞事,有人甚至猜是快闪内部的吹哨人,“对底层技术架构太熟了,不像外部渗透”。 一个ID叫“逆向工程老王”的用户发了一条长帖,从报告中对Base64的吐槽方式、对数据管道的描述习惯、对隐私合规的技术理解深度三个维度做了画像分析,结论是:“作者大概率是一线大厂的后端或算法工程师,工作年限五年以上,对APP行为分析有实战经验。” 距离猜到韩路一,还差几步。 但没有人往“刚被裁员的前鼎盛P7”这个方向想,一个失业程序员,被排除在所有人的视线之外,不在候选名单上。 韩路一把这个帖子收藏了,关掉了浏览器。 顾司玥的话还在耳边,“法律层面你是干净的,他们查不到你。” 人肉搜索可不走法律渠道。 他需要继续保持隐身。 就在这时候,视界自动弹开了。 整个视野里涌进一道巨大的系统提示,金色的,占据了他半个视野。 【重大Bug修复协助完成】 【影响范围:2300万用户隐私安全】 【你的行动推动了该Bug的公开和修复进程】 【经验值+200】 【当前经验值:212/200】 【升级条件已满足!】 【正在升级……Lv.1→ Lv.2】 眼前的世界碎裂了,像一台电脑强制重启,所有画面闪烁、断裂、重组,他感觉自己的大脑被格式化了一遍,然后重新安装了操作系统。 重启持续了几秒钟。 当一切稳定下来的时候,视界面板已经变了。 【升级完成】 【Lv.2|精力:83/250】 韩路一盯着面板看了一会。 就这? 等级从1变成了2,精力上限翻了一倍多,然后……没了? 但他立刻发现了不同。 视野里的信息变多了,之前只能感知到身边几米的范围,现在整栋楼的数据都在往他眼睛里灌,隔壁林晚晴家里的面板隐约浮现在视野边缘,楼上楼下住户的数据以半透明图层的形式叠在空间里。 信息量比之前大了十倍不止,他赶紧关掉了全范围扫描,只保留近距离的被动感知。 还有一个更重要的变化。 他打开笔记本电脑,点进最近一个接单项目的代码仓库。 之前在Lv.1看代码,Bug的位置会亮红光,旁边飘一行简短的警告,标注错误类型。看到了,然后呢?还是得自己分析,自己想方案,自己改。 现在不一样了。 每一个红色标记后面,都跟着一整块展开的修复路径。改哪个文件、改哪一行、怎么改、改完之后有什么影响——全部列得清清楚楚,像一份写好的处方。 韩路一盯着屏幕上下滑动。 他随便点开一个标记为严重的Bug,是数据库连接池泄漏,之前他接单的时候已经手动修过了,但修复路径给出的方案比他的更优——不只是补上了泄漏,还顺带优化了连接池的回收策略。 如果升级之前他是拿着放大镜找虫子的人,现在他手里多了一本《害虫防治指南》。 他又看了一眼面板——精力值在缓慢下降,深层扫描比之前费精力了,但上限也翻了一倍多,足够用。 韩路一关掉代码仓库,往椅背上一靠。 闭上眼睛,才发现身体状态出奇的好,连日赶报告、做公证、来回跑,身体的疲惫全都消失了。 这是升级的赠品吗? 韩路一从椅子上跳起来,神清气爽。 该做正事了。 韩路一拿起手机。 他想给马小飞和张浩然说点什么,但想起顾司玥的话,“你对任何人说的每一句话,都默认可能被取证。” 算了,不说了。 他退出微信的时候,屏幕顶部跳出来一条新消息提醒。 一个他已经很久没看到的头像。 苏念念。 “路一?好久不见。听说你从鼎盛出来了?” 韩路一看着这条消息,怔了两秒。 苏念念…… 两年多没联系了,上一次有交集还是23年国庆节,他在朋友圈发了一张加班工位的照片,她在底下回了句“注意身体”。 他的手指悬在屏幕上方,没有打字,脑子里闪过了几个画面,三食堂门口她冲他挥手的样子,图书馆里她趴在桌上睡着的侧脸,毕业散伙饭上全班举杯的嘈杂。 很快,像弹幕一样划过去了。 最后他打了四个字。 “嗯,出来了” 消息发出去不到两秒,对话框里苏念念的名字变成了: 对方正在输入… 第八章 两年零四个月 苏念念的微信回得很快。 “太突然了吧!你怎么也不在群里说一声?” “没什么好说的,正常流动。” “你还是这样,什么事到你嘴里都是四个字就打发了!” 韩路一看着屏幕笑了一下。苏念念说话的风格一点没变,打字永远带感叹号,像怕对方感受不到她的情绪。 “最近怎么样?”他问。 “还活着。你呢?有什么打算吗?” “先休息一下,想想接下来干什么。” “那要不要出来坐坐?好久没见了,叙叙旧。” 韩路一打了几个字又删掉,最后回了个“行”。 苏念念发过来一个定位。 Bug Café。 韩路一愣了一下。这家咖啡馆在他家附近,离小区走路十分钟,他几乎每周都去坐一坐。老周的咖啡不算最好喝,但胜在安静,WiFi稳定,程序员扎堆的地方总有一种特殊的松弛感。 苏念念怎么知道这个地方的? “大众点评搜的,评分还挺高。而且离你近,别跟我客气说你来接我之类的。” 苏念念说她明天下午在附近见个客户,三点左右能结束,“正好过来坐坐?” 韩路一说行。 关掉微信,他靠在椅背上看着天花板。 两年多的空白说长不长,说短也不短。够一个人换两份工作,够一座城市拆掉一条街再盖起来,够两个曾经每天说话的人变成通讯录里埋在下面的一个静静地头像。 第二天下午两点五十,韩路一推开了Bug Café的门。 老周的咖啡馆开在社区底商的一楼,门口挂着一块黑色招牌,上面画了一只举着咖啡杯的瓢虫,Bug的双关。店里不大,十来张桌子,墙上贴满了各种编程梗的海报。最显眼的一张写着“It works on my machine”,旁边老周自己加了一行手写体:那就别动它。 “小韩!”老周在吧台后面抬头,四十多岁的中年男人,退役程序员,头发比同龄人少一半,脾气比同龄人好一倍,“美式还是手冲?” “先来杯美式,周哥。等会儿还有个朋友来。” “约人?稀奇。你来这儿半年了,头回带朋友。” “大学同学,好久没见。” 老周了然地点点头,没再多问。 韩路一选了靠窗的位置坐下。阳光从落地窗照进来,把桌上那本翻旧了的《代码大全》晒得发黄。 三点零二分,门被推开了。 苏念念站在门口。 韩路一一抬头就认出来了。变了,也没变。 头发还是长的,但没有大学时那么长了,到肩胛骨的位置,微微有些卷。她穿了一件米白色的针织开衫,里面是白色连衣裙,踩着一双白色帆布鞋。脖子上戴了一个白色的choker,缀着一颗很小的珍珠。左手腕上一只细细的银镯子,没有别的多余配饰。整个人还是那种干干净净的白色系,像从牛奶广告里走出来的。 她整个人看起来比大学时瘦了一点,下巴的线条更明显了,但笑起来还是那个样子,眼睛先弯,嘴角再跟上,像是笑容从眼睛里淌出来的。 “路一!” 苏念念看到他就笑了,朝他挥挥手,步子加快了一点,在他对面坐下来。 “念念。”韩路一也笑了,很自然地打招呼,“两年没见,你怎么瘦了?” “加班加瘦的,我们那个组一个月上了四个版本,我都快住公司了。”苏念念放下包,打量了一下他,“你倒是一点没变,还是这副样子。” “什么样子?” “就……卫衣牛仔裤运动鞋,程序员出厂设置。” “哪个程序员出厂设置有我这么帅?” 苏念念笑了,没接这个话,转头看了看店里的装潢:“这家店好有意思,墙上那个404页面是真的吗?” “老板自己写的,他以前也是程序员,写了十五年代码写秃了,退休开咖啡馆。” “好家伙,前车之鉴就摆在你面前。” “我发量很健康,谢谢关心。” 老周端着两杯咖啡走过来。韩路一一杯美式,苏念念的菜单还没看,老周就先放了一杯招牌拿铁下来。 “小韩难得带朋友来,这杯我请。”老周冲苏念念笑了笑。 “谢谢老板!”苏念念双手接过杯子。 老周走了,苏念念低头喝了一口拿铁,抬头的时候嘴角沾了一点奶泡。 “所以你从鼎盛出来之后在干嘛?”苏念念问。 “接点散单,写写代码,想想接下来的方向。” “自由职业?” “算是吧,暂时的。” 苏念念点点头:“也好,反正你技术在那儿摆着,饿不死。” “你倒是对我挺有信心。” “那当然了,全班谁不知道你是卷王。”苏念念的语气很轻松,“大二那年你一个人肝操作系统课设,把教授都给整懵了,他说他看了十五年作业,头回见本科生完成度这么高的。” 韩路一被她说笑了:“你记性也太好了。” “那个事太经典了。”苏念念双手捧着杯子,眼睛弯弯的,“还有大三下学期那个比赛,你带队熬了三个通宵,比完赛直接睡在机房地板上,被保洁阿姨拿拖把捅醒的那次,” “行了行了,”韩路一摆手,“能不能说点我帅的事。” “你有帅的事?我不记得啦。” “过分了啊同学。” 两个人都笑了。 聊天很顺畅,像一台关机了两年的电脑突然通了电,系统文件还在,只需要重新启动一下,他们聊大学的食堂,聊室友的八卦,聊老师的口头禅。 所有话题都是安全区。 两个人都很默契。 韩路一觉得苏念念变了一点,大学的时候她说话更直接,想到什么说什么,现在她会在某些地方停顿一下,像是先在脑子里筛过一遍再说出口。这种谨慎并不让人觉得虚伪,只是她成熟了。 “你呢?在海狸做产品经理,怎么样?”韩路一问。 海狸科技,国内第二梯队互联网大厂,主营短视频和本地生活,去年刚在港股上市,市值两千多亿。在互联网圈子里,海狸的标签是“加班狠、给钱多、晋升快”,属于那种应届生挤破头想进、工作三年后又拼命想逃的地方。 苏念念的表情稍微变了一下。 “还行吧,就那样。”她喝了一口咖啡,“最近在做一个AI方向的项目,挺有意思的。” “什么方向?” “AI代码审查工具,就是帮开发团队自动审核代码质量,找Bug,给优化建议那种。” 韩路一来了兴趣:“AI现在挺热门的。” “对,所以我们老板很着急,想抢先发。”苏念念叹了口气,“但我们技术团队做出来的东西……怎么说呢,能用,但不够好,跟市面上的竞品比没有核心竞争力,用户测试的反馈也一般。” “一般是多一般?” “就是用户说「这个我用GPT也能干」的那种一般。” 韩路一笑了。 “更烦的是,”苏念念的语气轻描淡写,“这个项目本来是我从立项开始推的,需求文档写了几十页,用户调研也是我做的,结果上个月空降了一个总监,直接把项目负责人换成他自己的人了,我变成了「协助推进」。” “这不是……” “是,跟你一个剧本,只不过你演的是技术版,我演的是产品版。”苏念念说完自己笑了一下,“所以我听到你从鼎盛出来的消息,第一反应是,行吧,又一个。” “同病相怜啦?” “同病相怜也是一种社交动机啊。”苏念念的语气回到了轻松模式,“我就是想见见你,两年了嘛。” 她说这句话的时候眼睛看着窗外,语气很随意,像是在说一件小事。 韩路一没有接这个话。 他端起美式喝了一口,沉默了两秒。 “你们那个AI代码审查,”他放下杯子,“定位的核心用户是谁?” 第九章 代码看不见的东西 苏念念愣了一下,然后眼睛亮了。 “中小型开发团队。大厂有自己的代码审查体系,不需要外部工具。但中小团队没有专门的代码审查流程,很多Bug都是上线之后才发现的。” 一聊到产品她就自动进入状态了,毕竟是资深产品经理。 “所以核心需求不是「找Bug」,是「上线前拦住Bug」?” “对!”苏念念啪地一拍桌子,咖啡晃了一下,“你一下子就抓到点了。我写了五页用户画像才说清楚的事,你一句话就总结了。” “我也是用户嘛。写了五年代码,最怕的就是自己看不出自己的Bug。” “那你觉得现有的AI代码审查工具最大的问题是什么?” 韩路一想了想:“大部分工具只能做静态分析,看代码本身的逻辑问题。但真正让团队头疼的Bug,往往不是代码语法错误,而是代码和现实业务之间的错位,逻辑上没问题,但放到实际场景里就出Bug。这种东西,AI看不出来。” 苏念念放下杯子,身体微微前倾:“你继续。” “比如一个电商APP的推荐算法,代码逻辑没错,但上线后发现推荐结果严重偏向高价商品,低消费用户的留存率暴跌。这不是代码Bug,这是代码和用户行为之间的错位。现有的AI工具分析不了这种东西,因为它只看代码,不看代码运行后的现实世界反馈。” 他说这些话的时候,脑子里闪过了什么东西。 一个模糊的、还没有成形的想法。 如果……有一款工具,不只是检查代码,而是能检测代码在现实场景中可能触发的问题呢? 这不就是他的视界在做的事吗? 当然,他不可能把自己的金手指做成一个产品。但视界的逻辑,“连接代码和现实”,完全可以抽象成一套方法论,用AI来模拟。虽然不可能做到视界那种精准度,但即使能实现百分之十的效果,也远超现有的竞品。 苏念念的声音把他拉了回来。 “说得我心痒痒的。”苏念念托着下巴看他,“你要是早两个月来我们组,这项目也不至于被人摘走。” “天下产品经理的项目,一半都是被摘走的。别往心里去。” “你还劝我呢?你自己被摘得比我还惨。” “所以我现在多通透啊,过来人的智慧。” 苏念念被他逗笑了,用勺子拨动着杯子里的拉花。阳光把她的侧脸照得很温柔,细碎的头发丝在光里变成金色。 老周在吧台后面擦杯子,余光瞟了一眼这边,嘴角若有若无地翘了一下。 “你接下来真就打算一直接散单?”苏念念问。 “不是长久之计。”韩路一靠在椅背上,“在想做点自己的东西。” “什么方向?” “还没定。有几个想法在脑子里,还不成熟。” “那想好了告诉我,说不定我能帮上忙。”苏念念说得很自然,“我好歹做了几年产品,用户调研和需求分析还是能干的。” “行,到时候找你。” 他说这话的时候确实只是客气,但苏念念认真地点了点头。 他们又聊了一会儿别的。她问他在看什么书,他说最近在看一本讲分布式系统的。她说自己在追一部剧,问他看不看,他说不看,她说你真无聊。 四点半了。 苏念念看了一眼手机:“五点有个会要回去准备,我得走了。” “行。”韩路一站起来,“我送你到地铁站。” “不用不用,走几步就到了。”苏念念摆手,拿起包站起来。 两个人走到门口。老周在后面喊了一声:“小韩,下次带朋友来打八折啊!” 苏念念回头冲老周挥了挥手:“谢谢老板!” 推开门出去,外面是傍晚的阳光,已经不那么刺眼了,把整条街染成暖黄色。 苏念念在门口站了一下。 “路一。” “嗯?” “以后……常联系啊。” 她说这话的时候在笑,语气很轻松,像是随口一说。但她的脚尖微微朝内侧扣了一下。 “好啊。”韩路一说。 苏念念冲他笑了一下,转身沿着人行道走了。白色帆布鞋踩在落日的阴影边缘,步子不快不慢。 韩路一站在Bug Café门口看了两秒,转身回了店里。 老周已经在给他续了一杯美式,放在他刚才的位子上。 “谢了周哥。” “大学同学?”老周问。 “嗯。” “不错。” 老周没再多说,低头继续擦他的杯子。 韩路一坐下来,端起咖啡喝了一口。 苦的。 他拿出手机,打开备忘录。 在空白页面上打了几个字: “代码审查工具,连接代码与现实场景,BugKiller?” 然后他盯着这行字看了一会儿,又在下面加了一行: “第一步:找个产品经理。” 写完他自己笑了一下。脑子里自动浮出了一张刚才还坐在对面、用勺子拨拉花的脸。 他关掉手机,靠在椅背上。 窗外最后一点阳光消失在对面楼顶。老周打开了店里的暖黄色灯,咖啡机嗡嗡地响着。 韩路一脑子里那个模糊的想法,比两个小时前清晰了不止一点。 就差动手了。 他又靠了一会儿。老周在吧台后面安静地磨豆子,整个店里只剩他一个客人了。 韩路一拿起手机,习惯性地下拉了一下通知栏。 一条新闻推送卡在最上面。 【快闪科技CEO丁仁公开回应:匿名举报系恶意诽谤,已向公安机关报案,将依法追查信息源头】 韩路一的手指停了。 他点进去扫了一眼。声明的措辞很讲究,一个造假数据都不正面回应,全部火力集中在“追查匿名举报人”上。末尾引了刑法第二百四十六条,诽谤罪。 他知道这条罪名在这案子上根本站不住脚,但丁仁的目标压根不是法律,他在对着两亿围观群众喊话:我不解释,我找人。 典型的祸水东引。 韩路一退出新闻,打开微博看了一眼快闪相关的讨论。 丁仁的声明底下已经炸了。骂的占一半,但另一半的讨论方向让他不太舒服,大家真的开始认真猜匿名举报人是谁了。 “逆向工程老王”又更新了一条长帖。 上次他的画像结论是“大厂后端/算法工程师,五年以上”。这次在丁仁声明的评论区里又往前推了一步: “匿名报告中对快闪数据管道架构的描述精度极高,对各种技术细节的剖起深入浅出。这意味着作者要么是快闪内部人员,要么具备远超常规的逆向分析能力。结合此前的画像,如果不是内部人,那这个人可能是业界知名的技术大牛。” 帖子底下最热的评论: “所以要么是内鬼,要么是大神。丁总你确定要找吗?找到了你请得起吗?” 韩路一没笑出来。 “远超常规的逆向分析能力”,老王不知道自己离真相有多近。 他把丁仁声明的链接转给了顾司玥。 三分钟后,顾司玥回了两条消息。 第一条:“法律上不构成威胁,我明天出一份备忘。” 第二条:“从现在起,在任何平台、任何场合,都不要讨论快闪。一个字都不要提。” 韩路一回了个“好”字。 他把凉透的美式一口喝完了。站起来,背上包。 老周在吧台后面喊了一声:“明天见,小韩。” “明天见,周哥。” 推开玻璃门走出去,外面已经黑透了。路灯橘黄色的光把他的影子拖得很长。 韩路一走了两步,又摸出手机看了一眼。 备忘录最上面的两个文档,一个写着BugKiller,一个写着“不要提快闪”。 他锁了屏,加快了脚步。 第十章 赚钱如呼吸 升级到Lv.2之后的第一个完整工作日,韩路一打开了自由开发者平台。 和之前不一样。 之前他用视界扫需求列表,能看到甲方靠不靠谱、预算是不是虚标、有没有额外的隐藏需求。这些信息让他能精准筛选高价优质单,一天赚个一万多不是问题。 但那只是“看”。 现在他能“修”了。 第一单,一个中型电商平台的后端优化。甲方描述是“系统偶尔卡顿,原因不明”,报价15000。 韩路一打开甲方提供的代码仓库权限,视界开启。 代码上浮现了一层半透明的高亮标注。 以前一个Bug得他自己分析半天。现在视界直接给出了修复路径,改哪个文件、改哪一行、怎么改,全部列在面板上。他只需要动手抓药。 四十分钟,三个Bug全部修完。他写了一份简洁的修复报告发给甲方。 甲方回复:??? 第二条消息:哥们你这也太快了吧 第三条消息:我们自己的团队排查了两周都没找到原因 第四条消息:牛逼 第五条消息:追加个赏金行不行? 韩路一回了一个微笑表情。 第二单,一个初创公司的APP崩溃问题。报价8000。七个Bug,最严重的是内存泄漏。半小时搞定。 第三单,一个小程序的支付回调异常。报价3000。问题不大,十五分钟收工。 十一点半。三单全部交付。总收入两万六。 他在鼎盛干半个月,税后到手也就这个数。 当然,自由职业要自己缴税,社保也得另出。但就算打完折,半天干出半个月,这笔账怎么算都不亏。 这时,甲方的好评已经挂上平台了。 “史上最快交付,质量无可挑剔。” “这人是不是开了挂?半小时解决了我们两个月的Bug。” 韩路一看着“开了挂”三个字,嘴角抽了一下。 你还真说对了。 他关上笔记本电脑,靠在椅背上。 这是韩路一五年来,第一次干完了所有的活。 在鼎盛的时候,他的日程表上从来没有“空闲”这个词。早上九点到,晚上九点走,运气好的话。赶版本的时候十一二点是常态,凌晨两三点也不稀奇。午饭是工位上扒两口外卖,晚饭是会议室里啃面包。周末偶尔能休一天,但手机上随时会弹消息。 他已经忘了工作日的中午是什么样子了。 韩路一站起来,走到阳台上。 二月的阳光照进来,暖洋洋的。楼下的小花园里,几个退休老大爷正在下棋。旁边的长椅上,一个年轻妈妈在刷手机,婴儿车里的小孩睡着了。小卖部的王阿姨搬了个板凳坐在门口晒太阳,嗑着瓜子。 这些人每天都在这儿。只是他从来没在这个时间看到过。 他站了一会儿,回屋打开冰箱。 空的。除了半瓶老干妈和两盒过期的酸奶。 韩路一拿上钥匙下了楼。小区门口有个菜市场,他路过了几百次,但从来没进去过。 他进去买了西红柿、鸡蛋、一把小葱。 回家做了一盘番茄炒蛋。 不好吃。 但至少没糊。 他站在厨房里把午饭吃完了,洗了碗,又回阳台上站了一会儿。 韩路一脑子里浮出了一个奇怪的念头:这就是自由的感觉吗?真不习惯。 突然他听到敲门声,刚拉开防盗门,差点被一个小小的身影撞了满怀。 “路一哥哥!” 林朵朵抱着一个粉色的平板电脑,眼眶红红的,小脸上还挂着没干的眼泪。 “怎么了朵朵?”韩路一蹲下来。 “我的平板坏了……”林朵朵把平板举到他面前,屏幕卡在一个花花绿绿的界面上,完全不动了,“动画片放到一半就不动了,重启也不行,妈妈也弄不好……” 她说着说着嘴巴又瘪了。 “让我看看。”韩路一接过平板。 隔壁501的门开着,林晚晴站在门口,一手拿着画笔,头发随便扎了个丸子,脸上还沾着一点颜料。 “不好意思啊,朵朵非要来找你。我说了妈妈明天给你修,她不听。”林晚晴有点不好意思。 “没事林姐,小事。” 韩路一低头看着平板,随手开了一秒视界。 【设备:儿童平板|型号:小豆平板5 |故障类型:系统级】 【Bug检测:后台进程内存溢出导致系统冻结|起因:某动画APP存在内存泄漏(v3.2.1已知缺陷)】 【修复路径:强制安全模式启动+清除该APP缓存+降级至v3.1.8稳定版】 韩路一关掉视界,按照修复路径操作。长按音量和电源键,进入安全模式,清除缓存,把那个有Bug的动画APP回退到上一个版本。整个过程不到两分钟。 屏幕亮了。那只粉红色的小猪重新在屏幕上蹦蹦跳跳。 “好了。” 林朵朵的表情变化堪称教科书级别,从含泪到震惊到狂喜,总共用了零点五秒。 “路一哥哥好厉害!”她一把抱住平板,又一把抱住韩路一的腿,“比妈妈厉害一百倍!” “……谢谢你的一百倍。”林晚晴在门口翻了个白眼,但嘴角是往上翘的。 面板闪了一下。 【微型辅助任务完成|经验值+3 |当前经验值:15/200】 林晚晴牵着朵朵的手回了501。门关上之前,朵朵探出半个脑袋冲他挥了挥手。 韩路一的一周有了固定的节奏。 上午接单。两到三个,挑问题有意思的接,中午前收工。下午是他自己的时间。 他开始做一些以前没时间做的事。 周四傍晚去跑了一次步。上一次跑步可能还是大学的时候。他沿着小区外面的河道跑了八分钟就喘得不行。五年的996,账都记在身上。 周五下了场小雨。他坐在阳台上看书听雨声。隔壁传来朵朵咿咿呀呀唱歌的声音,隔着一堵墙,模模糊糊的。 这些都是很小的事。小到在鼎盛的时候连想都不会想。 但连在一起,它们构成了一种韩路一快忘掉的东西。 生活。 …… 一周结束。 平台加私单,总收入六万五。 他在鼎盛干一个月,税后到手五万。一周干出一个多月。 钱的事解决了。但韩路一发现了一个新问题。 视界面板上,经验值还停在15。 十几个活,六万五,零经验。帮朵朵修一个平板反倒加了三点。 收了钱的不算。 这套系统的规则比他想的简单,赚钱归赚钱,想升级,得帮别人的忙。不收钱的那种。 韩路一关掉银行APP,打开了电脑。 他有一个想法要尝试。 第十一章 马甲 韩路一在论坛上注册了一个马甲ID:“NullPointer”。 第一天,有人发帖求救:线上服务每隔三到五天必崩一次,重启就好,但死活找不到规律。帖子下面二十多条回复,有人说查内存泄漏,有人说上监控告警,有人直接甩了一段ChatGPT的分析——全都隔靴搔痒。 韩路一开视界扫了一眼帖子里贴的架构图和日志截图,虽然不是直接看代码仓库,但他的经验加上Bug检测的辅助,还是捕捉到了一条线索。 他敲了一条回复,三段话,指出了两个连接池共用超时配置的问题,给了具体的修改方案。 帖主半小时后追更:改了,观察中。 三天后再追更:稳了,彻底稳了。 帖子火了。 两百多条回复,一大半不是在讨论技术,是在问“这人谁啊”。 【辅助任务完成|经验值+2|当前经验值:22/200】 果然。 免费帮人修Bug,系统给的经验比商业接单多出一大截。 韩路一找到了正确的打开方式。 从那天起,他每天下午花一两个小时泡论坛,专挑那种讨论了几十层还没结论的疑难帖,这种帖子围观的人多,答案的传播面最广。 有人的生产环境偶发段错误,查了一个月,四种工具轮着上都抓不到,他视界一扫,发现是第三方库和结构体的内存对齐打架,一条回复解决。 有人的排序算法在特定数据集上结果错乱,他发现是浮点精度问题导致比较函数不满足传递性,加一个epsilon就稳了。 每次都是一样的套路:一堆人讨论了半天,他进来一条回复,结束。 论坛里开始流传一句话:“等NullPointer来。” 有人猜他是大厂的架构师,有人猜他是退休的技术VP,有人说他是某个开源项目的核心维护者,还有人开了个投票帖:“NullPointer到底是谁?”选项里从“字节3-2”到“中科院研究员”到“OpenAI早期员工”都有,最高票的是“不知道但是跪了”。 一周下来,“NullPointer”在几个主流技术论坛上攒了两千多个赞。 经验值从20慢慢爬到了35。 不快,但蚊子腿也是肉。 当然,论坛上不只有技术求助帖。 快闪科技的事还在发酵,36度的调查报道发出去十天了,后续跟进一篇接一篇。网信办介入调查,CEO丁仁被约谈,CTO周明哲“因个人原因离职”。业内都知道是什么个人原因。APP下架三天,B轮融资彻底黄了,估值从八十亿跌到不到三十亿,还在跌。 韩路一刷到这些消息的时候,手指会停一两秒,然后继续往下划。 丁仁没消停,他请了公关团队在各个平台放话,说已经“锁定了几个嫌疑目标”,措辞像钓鱼,逼举报人自己露头。 更麻烦的是“逆向工程老王“的画像帖,这帖子就挂在韩路一每天泡的同一个论坛上,每隔几天更新一版。最新的结论已经从“大厂后端工程师“缩窄到了“有推荐系统实战经验的高级专家”。 距离猜到韩路一,可能就差一两步了。 他每次刷到这个帖子都会多看两眼,然后关掉。顾司玥的禁令还挂在备忘录最上面——“不要提快闪”。 周五晚上,他刷完最后一条帖子,准备关电脑。 自由开发者平台弹了一条新需求推送。 他本来没打算看,今天已经做了三单了。但标题吸引了他的注意力。 【紧急外包|推荐系统核心模块优化|报价:50000|甲方:鼎盛数字科技(深圳)有限公司】 鼎盛数字科技。 鼎盛集团旗下的全资子公司,负责集团的数字化产品线。韩路一在鼎盛工作的最后一年,有大半年的代码是在这个子公司的代码仓库里提交的。 他点开了需求详情。 “推荐系统核心算法近期出现性能异常,峰值期延迟飙升300%+,用户留存指标持续下降。内部团队排查两周未定位根因,现紧急外包高级技术顾问协助诊断……” 韩路一看着这段描述。 这套推荐系统他写了五年,系统架构他闭着眼睛都能说出来。 陈博文大概mit记录都没看过。 需求描述下面附了一段脱敏后的技术概要,三页PDF。 韩路一看了两行就停住了。 关键参数后面全都跟着括号备注,峰值延迟300%+后面写着(对比基线为2025Q3上线版本),QPS阈值后面写着(当前集群配置下理论上限)。 他一眼就认出来这是小明写的。 赵启明,他带了三年的组员,从实习生带到P5,手把手教的代码规范和文档格式。 小明把问题发到了外包平台上。 这意味着内部已经彻底搞不定了,陈博文那个团队排查了快两周都没定位根因,最后是小明——八成是他主动揽的活——写了这份技术概要往外发,韩路一能想象他这两周加班到什么程度。 他已经看出问题了,陈博文的团队改了他的核心调度模块,把原来的动态权重分配改成了静态规则引擎。 这就像把一辆手动挡跑车改成了自动挡老年代步车,然后问“为什么跑不快了”。 五万块的单子,他闭着眼睛都能修。 但这不是钱的问题。 这是陈博文摘走的桃子,正在他手里烂掉。 韩路一关掉了需求页面。 又打开了。 又关掉了。 他靠在椅背上,看着天花板。 窗外有风,把阳台上晾的T恤吹得啪啪响。 他拿起手机,又开视界扫了一眼那条需求。 面板弹出来了。 【鼎盛数字科技推荐系统|当前状态:严重退化|核心算法稳定性:极差】 【关联人物:陈博文(项目负责人)|该系统异常与其团队改造直接相关】 极差。 他写了五年的系统,被改成了极差。 韩路一关掉视界,把手机扣在桌上,屏幕朝下。 第十二章 鼎盛的外包 第二天早上,韩路一醒来第一件事就是打开电脑,重新点开了那条外包需求。 昨晚他没做决定,睡了一觉,已经想清楚了。 需求页面上附着的技术概要只有三页,做了脱敏处理,去掉了公司名和项目名,但对韩路一来说跟没脱一样。 每一段描述他都能对应到具体的代码文件。 “核心推荐引擎近期进行了架构调整,将原有的动态权重分配模块替换为基于规则的静态引擎。” 韩路一看到这句话的时候,表情很微妙。 动态权重分配,那是他花了八个月设计的核心调度模块,整个推荐系统的心脏,它的精妙之处在于能根据用户实时行为自动调整推荐权重,每一次点击、每一次滑动、每一次停留都会被纳入计算。 这套东西不是写出来就能用的,是他一边写一边调,跑了上亿条用户数据,一个参数一个参数地磨出来的。 然后陈博文的团队把它拆了,换成了静态规则引擎。 韩路一能理解为什么,动态权重模块确实复杂,没有他本人在场,团队里没有第二个人能完全看懂那套逻辑。陈博文的选择是,看不懂的东西就换掉,换成看得懂的。 技术概要后面还列了一串症状:峰值期响应延迟飙升、推荐精准度下降、用户留存率持续走低、A/B测试全面不如旧版。 说白了就是:换了之后全面拉胯,而且越来越差。 韩路一靠在椅背上,开了视界。 精力值满的,250/250。他把注意力集中在屏幕上那三页技术概要上。 面板炸开了。 不是一般的弹窗。整个屏幕被半透明的红色警告覆盖,像一面着火的墙。 【目标系统:鼎盛数字科技·核心推荐引擎】 【整体稳定性评级:极度危险】 【严重漏洞:12个|中等漏洞:37个|轻微漏洞:91个】 【预计完全崩溃时间:上线后72小时内】 140个Bug,深红的浅红的,密密麻麻铺了一屏,像一份病危通知书。 他只扫了一眼前三个严重漏洞就不想再看了,内存泄漏,三天后系统会把自己撑死。数据管道断裂,四分之一的用户数据在悄悄丢失。并发锁死,高峰期两成概率直接雪崩。 三颗定时炸弹,随便一颗炸了都够上一次热搜。 他花了三年时间把这套推荐系统从能用调到好用,每一个参数、每一条权重、每一次版本迭代,都是他一行一行敲出来的。 陈博文才接手了半个月。 他想起了第一天被裁时,陈博文面板上的那行字—— 【WARNING:该对象存在3个严重Bug点击展开(当前等级不足)】 当时他是Lv.1,看不到详情。 那三个严重Bug,其中一个大概就是这个,陈博文摘了他的果子,但咬不动。 他当然能修好,这套代码是他写的,都不用视界,有些Bug他看一眼就知道改哪行。 他关掉了视界。 屏幕回到了正常的外包需求页面,右上角有两个按钮:【接受需求】和【忽略】。 韩路一的手指停在鼠标上。 然后点了【忽略】。 不接。 他关掉了外包页面,端起桌上已经凉了的咖啡喝了一口。 不接归不接,但有些东西憋着也浪费。 他打开论坛,以NullPointer的身份花了四十分钟写了一篇《推荐系统架构改造的七个经典陷阱》,纯技术分享。 能不能看到,看小明的运气吧。 发完帖子,他关掉论坛。 脑子开始转了。 这140个Bug,这两周接单修过的上百个Bug,再往前,五年里经手的几千个Bug。 它们长得不一样,但模式都一样。 同样的模式,在不同的项目里反复出现,他每次修Bug,本质上就做两件事,认出模式,匹配方案。 这不就是喂给AI干的活吗? 他放下杯子,掏出手机翻到备忘录里那行字—— “代码审查工具,连接代码与现实场景,BugKiller?” 把视界看到的Bug模式全部整理出来,特征、触发条件、修复路径,喂给AI,让它学会“看到代码就知道上线后会出什么问题”,AI不需要拥有视界,它只需要学会视界看到过的东西。 就像教AI下棋不需要教它思考,只需要让它看够多的棋局。 韩路一打开电脑,新建文件夹,命名“BugKiller”,新建文档:《Bug模式数据库 v0.1》。 然后他开始写,写得很快,五年里踩过的坑,全从记忆里涌出来,按类型自动归位,内存类、并发类、数据流类、接口类,每一类下面是触发条件、典型表现、修复路径。 他像在给一个什么都不懂的新手编一本《Bug大全》。 写了两个小时,停下来。 不够,一个人的经验撑不起一整个数据库,他需要更多样本,更系统的分类。 他需要一个产品经理。 韩路一拿起手机,找到苏念念的微信对话框。 “念念,上次聊的AI代码审查方向,我有个想法,今晚有空吗?吃个饭聊聊。” 发出去不到三十秒,苏念念回了:“今晚?!几点?” “七点。” “没问题!下班正好六点半,什么想法?先说说?” “到了再说。” 对话框顶部的“对方正在输入…”闪了好几次,最后发过来的不是追问,是: “那我先选个餐厅,你想吃什么?” “随意,不挑。” “好,我来定。” 韩路一觉得有点好笑,明明是他约的人,三句话下来主导权就到对方手里了。 不过也正常,苏念念做产品经理的,抢需求主导权是本能。 韩路一放下手机,又闷头写起了文档,再抬起头已经是下午四点半了。 离七点还有两个半小时。 他回头看了看屏幕上刚建好的BugKiller文件夹,想了想,没有继续写文档。今晚跟苏念念聊的时候,脑子里得是活的想法,不能是写僵了的文字。 他关掉电脑,起身去洗了个澡,换了件干净的衬衫。 出门的时候,隔壁传来林朵朵的声音,在跟林晚晴讲幼儿园的事。 韩路一带上门,往地铁站走去。 晚风不凉也不暖,三月中旬的海城,恰好卡在两个季节的缝隙里。 第十三章 辣得莫法 晚上七点,苏念念选的餐厅。 不是什么高档地方,是他家附近商圈的一家湘菜馆,叫“辣得莫法”。 他到的时候,苏念念已经在靠窗的位置坐着了。 韩路一拉开椅子坐下,抬头看了她一眼。 上次在Bug Café是下午,阳光从落地窗照进来,苏念念坐在逆光里,干净清爽,像一杯温水。现在是晚上,餐厅暖色的吊灯从上方打下来,她的眉眼轮廓比白天更深,长发散着垂到肩上,浅杏色的针织衫衬得锁骨那截细链格外显眼,整个人多了一点白天没有的味道。 “今天真好看。”韩路一坐定了,语气随意得像在说今天天气不错。 “……哪天不好看了?” “没有不好看的时候,上次是上次的好看,今天是今天的好看。” 他说得太顺了,顺到苏念念没办法判断这是真心话还是嘴贫,接了像在撒娇,不接又显得小气。 “嘴真贫。”她最后只说了这三个字,转头看向窗外,耳朵尖有一点点红,但灯光昏黄,看不太出来。 她面前摆着一台打开的苹果电脑,屏幕上密密麻麻的都是表格。 服务员走过来,苏念念刚要拿菜单,韩路一已经开口了。 “一个剁椒鱼头、一个小炒黄牛肉、一个虎皮青椒、一个酸辣土豆丝,米饭两碗,再来一扎酸梅汤。” 苏念念看着他,手里的菜单举了一半,没放下也没打开。 “……你点这么快?” “我家就在附近,这家店来过几次。”韩路一顺手接过她手里的菜单递还给服务员。 等菜的时候,苏念念把电脑转过来给他看。 “你说有想法要聊,又不给我剧透,我只好自己猜了,关于代码审查,我先把赛道摸清楚了。”她抬了抬下巴,“产品经理的基本功。” 屏幕上是一份竞品分析表:十七款产品,每一款都列了核心功能、技术路线、定价策略、用户评价、融资轮次,最右边一列是她自己标的评分,满分五分,最高的一款只拿了三分。 “你什么时候做的?”韩路一问。 “上次跟你聊完就开始整理了,本来只是随手查查,结果越查越多。”苏念念说得很轻松,像在说一件不值一提的事。 韩路一看了她一眼,她眼下有一层薄薄的遮瑕,盖住了熬夜的痕迹。 “你给最高分的这款,缺什么?”他指着表格问。 “跟上次我跟你说的一样,只能做静态分析,找到了Bug,但不能告诉你这个Bug在真实业务场景里会造成什么影响,程序员需要的不是「你这行代码有问题」,而是「这行代码上线后会炸成什么样」。” “所以核心痛点是——” “是「代码和现实之间的鸿沟」。”苏念念用手指敲了敲桌面,“你上次的原话,我回去想了好几天,越想越觉得你说到点子上了。” 剁椒鱼头端上来了,热气腾腾的。韩路一拿起公筷,挑了几块鱼腮边最嫩的肉放到苏念念碗里。 “先吃,凉了腥。” 苏念念低头看了一眼碗里的鱼肉,全是最好的部位。 她没说谢谢,拿起筷子吃了一口。 “我想做一款工具。”他说,“名字我都想好了,BugKiller。” “BugKiller?”苏念念念了一遍,嚼着鱼肉,皱了下眉,“名字太geek了,程序员听着过瘾,但以后要做商业化的话不好卖,先当内部代号用吧,回头再想个正式的。” “它不只是找Bug,它要做的是——”韩路一在脑子里组织了一下语言,“建立一个Bug模式数据库,把各种类型Bug的特征、触发条件、影响范围、最优修复路径全部结构化,然后用这些数据训练AI模型,让AI学会「看到一段代码就知道它上线后可能会出什么问题」。” 苏念念放下筷子,身体前倾。 “等等,你说的Bug模式数据库,数据从哪来?这是最关键的问题。市面上的竞品之所以做不好,就是因为训练数据只有代码本身,缺乏「代码在真实场景中的表现」这一层。” “从我这里来。” 苏念念眨了两下眼睛。 韩路一解释:“我这些年写了几十万行代码,debug过的系统也少说有几十个,最近自由接单又修了上百个项目,每一个Bug的特征、触发条件、修复路径,我都在记录。” 这是实话,只不过他省略了视界的部分。 “你的个人经验当然有价值,但一个人的样本量不够啊,”苏念念皱眉,“AI训练需要大量数据。” “对,所以第一步是做最小可用产品,用我现有的模式数据库做一个原型,先验证思路能不能跑通。如果跑通了,第二步再想办法扩大数据源,比如接入开源社区的Bug报告、公开的代码漏洞库、技术论坛的问答数据。” “MVP先行,数据飞轮后做。”苏念念总结了一句。 “对。” “那你的MVP打算多长时间做出来?” “一周。” 苏念念正在喝酸梅汤,差点呛了。 “一周?你认真的?” “我已经开始写了,今天下午搭了Bug模式数据库的框架,分类结构都想好了,算法层面我有现成的经验,模型训练我也熟,一周出原型不是问题。” 苏念念看了他三秒钟,把酸梅汤放下了。 “你知道我在公司推那个AI代码审查项目,光需求阶段就花了两个月。” “因为你们有流程,有审批,跨部门协调,领导要拍板。” 苏念念想了想,笑了:“好吧,卷王你说一周就一周,那我能帮什么?” “用户调研和需求文档。”韩路一说,“你比我了解用户,你来定义BugKiller应该长什么样、核心功能优先级怎么排、第一批目标用户是谁。” “这我在行。”苏念念已经开始在电脑上打字了。 两个人一边吃一边聊,越聊越快,苏念念一手夹菜一手打字,韩路一说到技术方案的时候习惯性用筷子在桌上比划,被她拍了一下手背,“别拿筷子点桌子,不礼貌。” 剁椒鱼头见底的时候,苏念念的电脑上已经有了一份完整的MVP需求文档。 韩路一看了一遍。 “你这需求写得太清楚了。”他说。 “不然呢?写需求含糊其辞等着开发骂我?”苏念念哼了一声,“而且……” 她停了一下,语气变轻了一点。 “好久没碰到这么聊得来的开发了,我在公司跟技术团队掰扯一个需求能掰扯一个礼拜,你这儿四十分钟就搞定了。” “那是因为你需求写得好。” 苏念念没说话,低头合上了电脑。 灯光从侧面照过来,睫毛在她脸上投下一小片阴影。 “一周后你给我看原型,我帮你做用户测试。”她说。 “你用什么身份做?你还在公司上班呢。” 苏念念端起酸梅汤喝了一口,视线落在窗外。 “当作朋友帮忙。”她过了两秒才说,“反正我自己的项目被人拿走了,闲着也是闲着。” 韩路一叫了买单,苏念念抢了一下没抢过,瞪了他一眼:“下次我请。” “行,等BugKiller上线那天你请。” “成交。”苏念念收好电脑,又看了他一眼,“对了,回去别又泡面对付,冰箱里多少放点东西。” “我什么时候泡面对付了?” “你大学四年有三年的午饭是泡面加火腿肠,别以为我不知道。” “……那是因为懒,不是因为穷。” “结果呢?现在也没改吧。” 韩路一想反驳,但发现自己昨天中午确实吃的泡面,他没说话。 苏念念笑了一下。 出了餐厅,夜风有点凉。 “你怎么回去?”韩路一问。 “打车。”苏念念掏出手机叫车,“你呢?” “走路,十五分钟。” “那你先走吧,别等我了。” “不急。”韩路一靠在路灯杆上,“等你车来了我再走。” 苏念念看着手机屏幕,没抬头,风把她的长发吹到脸侧,她伸手别到耳后。 “韩路一。” “嗯?” 她好像要说什么,但手机响了,车到了。 “没事。”苏念念拉开车门,回头冲他笑了一下,“回去早点睡,别又写到凌晨。” “知道了,妈。” “……滚。” 车门关上,车开走了。 韩路一站在原地看着尾灯消失在路口,然后往回走。 他打开视界。 街边的一切立刻有了数据浮层,公共垃圾桶底座的螺丝松了两颗,便利店的招牌有三个像素的色偏,对面人行道上一个跑步的中年男人左膝半月板有磨损。 整个世界像被掀开了一层皮,露出底下密密麻麻的代码。 韩路一关掉视界,继续走。 第十四章 二十三个Bug 一周。 韩路一关掉所有接单平台,手机调静音,冰箱塞满速冻水饺和罐装咖啡。一周只做一件事。 前两天最顺。框架和数据库是他的舒适区,闭着眼睛都能搭。第三天开始啃核心引擎,晚上卡住了,模式匹配逻辑怎么调都不对,盯着屏幕两个小时脑子越转越慢。他下楼在小区走了一圈,冷风一吹想通了:特征提取的粒度选错了。回来改了方案,通了。后面几天顺流直下,接口、串联、测试,每天睡前用一次Debug修复消除疲劳,第二天满血继续。换成以前在鼎盛,连续高强度编码三天人就废了。现在不会。 核心中的核心是Bug模式数据库。韩路一把用视界积累的几百种Bug模式全部结构化,每种Bug长什么样、什么条件触发、影响多大、怎么修最优。别人训练AI用的是代码本身,他训练AI用的是代码在真实世界里的死法。 训练是最烧钱的环节。 韩路一在云平台上查了一圈价格,算下来光训练这一项就要好几万。他盯着报价页面看了半分钟,AI创业的第一道门槛,劝退九成独立开发者的那道门槛,现在摆在他面前了。 好在他有一个别人没有的优势:数据质量极高。别人需要十万条脏数据才能训练出基本能用的模型,他用视界标注过的三千条干净数据就能喂出来。数据量小,训练轮次就少,算力也成比例下降。 他选了折中方案:开源轻量模型做底座,竞价实例跑正式训练,做了断点续传防中断。最后花了四万出头。 五年积蓄加上离职补偿,四万不算伤筋动骨。 但四万只是一轮训练。后面要花多少,他不敢细算。 先把原型跑通再说。 第七天晚上,代码写完了。 光标停在最后一行的分号后面。韩路一的手离开键盘,十指交叉搁在脑后,盯着屏幕。 他忽然有点不敢跑测试。 这种感觉他太熟悉了,考试做完不敢翻答案、论文写完不敢查重、代码写完不敢编译。越在意的东西越不敢验证。 他站起来,去厨房接了杯水,喝了一口,又倒掉了。走回来坐下。 把BugKiller的源代码丢进了BugKiller。用自己做的刀,切自己做的菜。 运行。 进度条开始走。12%...31%... 他发现自己在屏住呼吸。 47%...68%...89%... 进度条走完。 二十三个Bug。 屏幕上二十三条红色高亮。日均十二小时,视界辅助,身体巅峰。 二十三个。 他盯着那片红看了几秒,然后开了视界,扫了一遍同样的代码。 二十五个。 BugKiller比视界少了两个。他把两份结果拉到一起对了一遍,大部分重合。 一周。一个人。做出来的东西在他自己的代码上已经接近金手指的水平。 韩路一用Debug修复确认修复路径,花两个小时把所有的Bug全部干掉。 然后让BugKiller重新扫了一遍。 屏幕上弹出一行绿色的字。 0 Issues Found. 他靠在椅背上,盯着那个零看了好一会儿。 把原型打包,发给了苏念念。“一周,没食言。” 五分钟后苏念念炸了。 “我试了!!!把我们组上周的一段代码丢进去扫了一下,找到了八个问题!!其中三个是我们已经知道的,另外五个是我们不知道的!!而且它给的影响评估特别直观,「该Bug在高并发场景下有约15%概率触发服务降级」,运营和产品也能看懂!!不只是给开发看的!!!” “冷静。” “我不冷静!!市面上没有一款工具能做到「影响评估」这个层级!!所有竞品都停在「找到Bug」这一步,你直接跳到了「找到Bug+告诉你后果+教你怎么修」!!这不是优化!这是降维打击!!” “用户测试的事交给我。”苏念念最后发了一条,“我找几个做开发的朋友试一试,收集反馈。你继续迭代。” “行。” 韩路一放下手机,翻出微信通讯录,找到顾司玥。 两人的聊天记录还停在上次她说“快闪大概率会走破产重组”。之后就没再联系过。 韩路一想了想,打了一行字:“顾律师,方便约个时间吗?有个新的法律咨询。” 晚上十一点多了。他不指望今晚有回复。 过了一会,顾司玥回复了:“什么方向?” “软件著作权注册,可能还涉及商标。” “明天下午两点来我办公室。新case按正常咨询费收。” 明天周六。韩路一看了一眼这条消息,晚上十一点秒回、周六还约客户,这人是不下班的吗。 韩路一回了个“好”。 顿了一下,又加了一句:“这次不是举报别人了,是保护自己的东西。” 顾司玥过了几秒才回:“那更要趁早。明天见。” —— 第二天下午两点,博衡律师事务所。 周六的律所比上次来安静一些,走廊里大半的办公室都黑着灯。前台把他领到会议室,路过走廊的时候经过一间门没关严的办公室,里面桌上摆着三杯咖啡,两杯空了,第三杯喝了一半。窗台角落有一盆绿萝,叶子耷拉着,土干得发白。衣架上挂着两件备用衬衫,一黑一白。 门上的铭牌写着“顾司玥高级合伙人”。 这人住在办公室里吗? 顾司玥已经在会议室等着了。笔记本摊开,笔帽拧开。 “说。” 韩路一花了三分钟把BugKiller介绍了一遍,做什么、怎么做、数据从哪来、现在到什么阶段。只说产品和技术,不提视界。 顾司玥听完没评价,直接进入法律盘问。 “软件著作权注册了吗?” “没有。” “代码用到前东家的IP了吗?” “没有。” “商标查过吗?” “没有。” 连续三个“没有”。顾司玥的笔顿了一下,抬头看了他一眼。 “你倒是什么都没做。” “所以才来找你。” 顾司玥没接这句话,低头在本子上快速写了几行。 “著作权我让助理今天就开始走流程。商标查重同步做,如果没有撞车的一周内提交。”她写完一页翻过去,“你的代码仓库在哪个平台?” “GitHub,私有仓库。” “好。源代码文档和软件功能说明整理一份发我邮箱,越快越好。” 韩路一点头。 顾司玥继续往下走流程,忽然停了一下。 “你原来公司有竞业协议吗?” 韩路一愣了一秒。“有。但签离职协议的时候HR说是标准流程,不会真启动。” 顾司玥的笔停了。 她抬起头,看着韩路一的眼神变了,从“走流程”切换到了“审视”。 “协议在手上吗?” “在家里。” “拍给我看看。” “应该不会有问题吧?HR说,” “HR说的不算。”顾司玥打断了他,语气没变重,但每个字都咬得很清楚,“白纸黑字写的才算。你做的产品叫「AI代码审查工具」,你前东家是科技公司,如果竞业条款里有「人工智能」或「软件开发工具」这几个字,你现在做的每一件事都可能在踩线。” 办公室安静了两秒。 韩路一没接话。他脑子里快速过了一遍那份离职协议,签字的时候扫了一眼,确实有竞业条款,当时没细看。HR说不会启动,他就信了。 “回去就拍给你。”他说。 顾司玥“嗯”了一声,低头继续写。 韩路一出了会议室,往电梯走。又经过那间门没关严的办公室,余光扫到角落的绿萝,叶子耷拉在那里。 他脚步顿了一下,没停。 出了大楼,他翻出手机又看了一眼备忘录。 不会真启动的吧。 他把手机揣回口袋,加快了脚步。 第十五章 深夜的拍门声 晚上十点四十。 竞业协议已经发给顾司玥了,她还没有回复。 韩路一坐在电脑前写代码。 窗外很安静。整栋楼六层,这个时间大部分人都睡了。 屏幕上的光照着他的脸,手指在键盘上敲出有节奏的声响。 然后他听到了—— 楼道里有动静。 是拍门声。 很重,很急,带着某种不耐烦的力道。 “砰砰砰,” 韩路一的手指停了。 拍门声又响了一轮,然后有一个男人的声音,含混不清,带着明显的酒气。 “开门!我就看看朵朵!你凭什么不让我看自己的闺女!” 韩路一站了起来。 隔壁。501。林晚晴家。 他打开了视界。 50米的感知范围瞬间铺开。整栋楼的数据像半透明的全息图一样叠在他的视野里,但他只关注一个方向,一墙之隔的501室。 两个人。 一个在门外,一个在门内。 门外的人情绪面板亮成了红色,愤怒、焦躁、酒精影响。 门内的人,林晚晴,情绪面板是深蓝色,标签写着:恐惧(隐藏:强撑镇定)。 门内还有第三个数据信号。林朵朵。情绪标签只有一个字:怕。 韩路一走到自己家门口,拉开了防盗门。 楼道的声控灯被拍门声震亮了。昏黄的灯光下,一个男人站在501门前。 身高大概一米七五,体格偏壮,穿一件皱巴巴的深色夹克,头发乱糟糟的,整个人散发着浓重的酒气。他一只手撑在门框上,另一只手还在拍门。 林晚晴打开了一条门缝,人挡在中间。她穿着家居服,头发散着,脸色很白。 “许嘉铭,你喝了酒,明天再说。”她的声音在发抖,但还在努力保持平稳。 “什么明天再说!你躲了我两个月了!我就看一眼朵朵怎么了?我是她爸!” “你现在这个样子看什么看?朵朵已经睡了。” “那我等她醒,” “你走。” 许嘉铭往前逼了半步,手掌拍在门板上。林晚晴本能地往后缩了一下,但没有关门,门被他的脚卡住了。 韩路一走过去了。 他的脚步声让许嘉铭转过了头。 视界面板在韩路一眼前弹开了这个男人的信息。 【许嘉铭| 35岁|情绪:愤怒(隐藏:心虚、酒精影响|血液酒精浓度约0.14%)】 【关系标签:林晚晴前夫|离婚时间:2024年8月】 【WARNING:有轻微暴力倾向|近期情绪不稳定】 轻微暴力倾向。 韩路一把这条信息记住了。他的表情没变,不紧不慢地走到楼道中间,站在两家门之间的位置。 “朋友,大半夜的,影响邻居休息了。” 许嘉铭打量了他一下。“你谁啊?” “隔壁502的。”韩路一指了指自己家门口。 “关你什么事?我来看我闺女。” “看闺女是好事。但现在快十二点了,孩子也睡了。”韩路一说着掏出了手机,屏幕亮着,“不如这样,我看你喝了不少,要不我帮你打个车?” 他晃了晃手机,然后声音不大不小地加了一句:“车打不到的话,我也可以帮你叫110。你选一个。” 这句话像一桶冷水。 许嘉铭的脸色变了。酒精让他冲动,但没让他完全失去理智。他看了看韩路一手里的手机,又看了看韩路一,一米八五,虽然瘦但比他高半个头,站在那里不慌不忙,眼神平静得像一面湖。 不知道为什么,那眼神好像看穿了他的色厉内荏。 “你少管闲事。”许嘉铭低声骂了一句,但脚从门缝里收回来了。 “好走。”韩路一说。 许嘉铭瞪了他一眼,又瞪了门缝里的林晚晴一眼,最后骂骂咧咧地转身下楼了。脚步声踩在楼梯上,一层一层往下,越来越远。 楼道里安静下来。声控灯啪地灭了。 黑暗中,韩路一听到了一声很轻的喘息。 他打开手机的手电筒,照了一下。 林晚晴靠在门框上,双手抱着自己的胳膊。她整个人在发抖。 “他走了。”韩路一说。 林晚晴点了点头,但没说话。过了好几秒才慢慢松开一直抱紧自己的双手。 门缝里,一双小手扒着门板的边缘,然后林朵朵的脸从里面探出来了。眼睛红红的,脸上有泪痕。 “路一哥哥……”她的声音很小,“我怕爸爸。” 韩路一蹲了下来。 “没事了小朵。他走了。”他的声音放得很轻很轻,“你保护妈妈了吗?” 林朵朵使劲点头。 “那你很厉害。” 林朵朵的嘴瘪了一下,又要哭,但忍住了。 林晚晴深吸了一口气,蹲下来把女儿抱进怀里。过了好一会儿,她抬头看着韩路一。 “谢谢你。” 三个字说得很吃力。 韩路一站起来:“没事,林姐。他以后要是再来,你直接叫我。” “不用的……不用麻烦你,” “不麻烦。”韩路一打断她,“我每天都在家写代码,一墙之隔,有什么动静我听得到。” 林晚晴看了他几秒。 她的眼眶已经红了,但没有哭。 “你先把门锁好。”韩路一上前一步,看了一眼501的防盗门,“这个锁太老了,建议换一个C级锁芯,防技术开锁的那种。明天我帮你看看。” “我……好。谢谢。” 林晚晴把林朵朵抱进屋里,在门口又回了一次头。 “韩路一。”她顿了一下,“今天真的谢谢你。” “早点休息,林姐。” 门关上了。锁扣了两道。 楼道重新暗下来。韩路一站了两秒,确认隔壁没有其他动静,转身回了自己家。 关上门之后,他靠在门板上,开了视界。 隔壁的基础面板透过墙壁隐约浮现。 【林晚晴|30岁|自由插画师】 Lv.2的50米范围,隔壁的数据自动推送过来。他没办法只选择看一部分。基础面板下方,深层信息跟着展开了。 【情绪:感激(隐藏:安全感)|当前状态:安抚女儿中|核心诉求:保护女儿】 韩路一把注意力集中在另一个信息上—— 那个从第一次见面时灰着的,标注为“待解锁”的Bug标签。 现在它亮了。 Lv.2的视界,终于让这个Bug的详情完整展开了。 【Bug:家庭纠纷(严重)】 【详情:林晚晴前夫许嘉铭正在筹备争夺抚养权诉讼】 【证据收集状态:许嘉铭方已委托律师,以“母亲经济能力不足、居住环境不稳定”为由准备起诉】 【威胁等级:高】 【当前林晚晴应对状态:无法律支持,未咨询专业律师,处于被动防守】 【建议应对路径:需专业家事律师介入,提前准备应对方案】 “母亲经济能力不足、居住环境不稳定。” 初二那年,他也听过差不多的话。他爸打电话来,说“你一个人带孩子太辛苦了”,意思是想争抚养权。他妈挂了电话,在阳台站了很久,以为他没看到。 那年他十三岁。林朵朵今年五岁。 Debug修复建议:需专业家事律师介入。他脑子里浮出了一个名字。 顾司玥。 顾司玥做的是知识产权诉讼,不是家事方向。但她在博衡,内部肯定有做家事的律师。 不过,他跟林晚晴就是邻居,说上话还不到一个月。赶走一个醉汉是一回事,插手人家的抚养权官司是另一回事。 韩路一关掉了视界。 他走回电脑前坐下。屏幕还亮着,光标在他刚才离开时的那一行闪烁。 他看了两秒钟代码,没继续写。 拿起手机,发现顾司玥在十分钟之前回了条消息,“竞业协议收到了。” 韩路一想了想,把备注从“顾律师”改成了“法律顾问-顾律师”。 然后关了电脑,洗了把脸,上床。 隔壁很安静。林朵朵大概已经被哄睡了。 第十六章 律师函 BugKiller的0.2版本打磨了一周多。 苏念念找几个开发朋友试用之后,给了他一份十九条的反馈。他改了七条半,第八条改到一半觉得方案不对,推翻重来,到今天还差一个收尾。 林晚晴那边没再出过事。偶尔在楼道碰见,她点个头就错身过去,有点像不知道该怎么跟他相处。林朵朵倒是每次都要喊一声“路一哥哥”,然后被妈妈轻轻拉走。 顾司玥那边发邮件说著作权登记在走流程,商标查重同步推进,“BugKiller”暂时没被注册过。 四月六号,周一上午。 韩路一坐在电脑前,手机开着语音通话,跟苏念念讨论新版本的迭代方向。窗外天气不错,小区里有人在遛狗,楼下不知从哪飘上来一股葱油饼的香味。 “精度得再提一提,”苏念念的声音从手机里传出来,“现在体感误报大概百分之七八,用户觉得还有噪音。降到五以下才能真正进入工作流。” “我知道,单条误报可以标忽略、已经加上了,真压到五以下至少还得再训一版,成本有点高,” 门铃响了。 韩路一看了一眼门的方向。“有人敲门,等我一下啊。” 他起身开门,是快递员,手里有一个EMS信封。一开门,电子签收板就递了过来。 他签了字,接过信封,快递员已经在按隔壁的门铃了。 韩路一关上门,走回电脑桌前坐下。 发件人:鼎盛数字科技集团有限公司法务部。 收件人:韩路一 手指沿封口撕开。 一份文件。一页纸。抬头印着鼎盛集团的LOGO,标题—— 《竞业限制义务提醒函》 内容很简短:提醒韩路一先生,您于2026年2月签署的离职协议中包含竞业限制条款,期限十二个月,范围涵盖“人工智能、代码审查、软件开发工具及相关领域”。如贵方已在上述限制领域内从事经营活动,请立即停止并联系我司法务部协商处理。 措辞挺客气的,但“请立即停止”那几个字,一个字比一个字沉。 文件一份离职协议复印件。竞业条款所在的那一段被人用黄色荧光笔标了出来。白纸上一道刺眼的黄。 韩路一盯着那片荧光色看了两秒。 签字的时候他扫过一眼。张薇说“标准流程,不会真启动的”,他就翻过去了。 然后他想到了一件事。 著作权登记是公开信息。国家版权局的系统,任何人都能查。 这边刚登记完,警告信就到了。 时间点也太巧了。 韩路一打开视界。 提醒函的纸面上浮出一层半透明的数据图层,字符流动了两秒,稳定下来,正文之外多出一条信息: 【文件发起链条:陈博文(建议)→法务部合规专员周洋(执行)→审批人:王志远(VP)】 看来不是法务部例行排查。 韩路一关掉视界。精力值扣了12点,不多,一张纸没什么好扫的。但上面的信息够了。看来陈博文不是想把他挤走就结束了。 “……路一?怎么了?”苏念念的声音还在手机里。 “念念,我有点事,晚点聊。” “哦好,” 他坐回椅子上,把提醒函和离职协议复印件并排摆在桌上。荧光笔标出的那段话又看了一遍—— “乙方离职后十二个月内,不得从事与本公司主营业务相关的人工智能、数据分析、软件开发工具及相关领域的工作,包括但不限于自主经营、受雇于竞争对手或为竞争对手提供咨询服务。” 人工智能。软件开发工具。 如果严格来说,BugKiller是踩线的,但是这也太不公平了。 顾司玥说过的那句话浮上来,“HR说的不算。白纸黑字写的才算。” 他手指无意识地敲了两下桌面。 手机亮了。陌生号码。 他看了两秒,接了。 “您好,请问是韩路一韩先生吗?”是个职业腔女声,笑意都镶在音调里。 “是的,请问你是哪位?” “韩先生您好!我是锐才猎头的Linda,冒昧打扰。我这边有一个算法总监的机会想跟您简单聊聊,年薪、奖金加期权,总包一百二十万以上,团队十五人。客户是头部互联网公司,名字不方便直说,但您肯定知道。” “我跟鼎盛有竞业,你们客户介意吗?” “没关系的韩先生,客户和您上家不算同业,这类情况他们法务常处理。JD我发您看看?” 韩路一靠回椅背。 视线落在桌上那封提醒函上。 一百二十万。鼎盛给他六十五万。将近翻了一倍。去大厂当总监,竞业的事有公司法务扛,不像现在一个人创业,对面来一封信就能把你钉在墙上。 一封信告诉他,你不许做。 一个电话告诉他,你可以不做。 这两件事中间只隔了十五分钟。 “发我吧。”他说。 “当然!我加您微信!” 挂了电话。韩路一把手机放在桌上,屏幕正好挨着那封提醒函。一个发光一个不发光,并排摆着。 微信弹出好友申请。他通过了,对方秒发一份PDF。 打开扫了一眼。技术栈熟悉,团队规模合适,核心KPI是推荐系统优化,跟他在鼎盛干的差不多,换了个壳换了个级别。年薪加期权,三年能拿到手的数字他心算了一下,不算少。 他手指在屏幕上停了两秒。 收藏,然后回了个“谢谢”。 打开电脑。 苏念念半小时前发来的v0.1内测反馈汇总。十九条用户意见,每一条都标了优先级和建议方案。 他往下翻了几屏。 “#7误报率降到5%以下才能进入工作流,目前体感约8%,建议增加「忽略」功能并记录用户忽略模式用于迭代。” “#14 CLI界面够了但VSCode插件是刚需,看看能不能v0.3做?” #14那行她又加了一条备注:“这条我问了五个人,四个说「有插件我天天用,没插件我偶尔用」。” 他盯着看了一会儿。 桌上的提醒函还摊着。他没收,也没再看。 又打开微信翻起了通讯录。 “法律顾问-顾律师”。 之前存这个备注的时候,想的是帮林晚晴打官司。 现在第一个用上的倒是他自己。 “顾律师,方便吗?有个急事。” 一个语音打了过来,那边有翻文件的声音。 “说。” “鼎盛法务给我发了一封竞业限制提醒函。今天上午收到的。” 安静了三秒。韩路一以为信号不好,刚要再说一遍,顾司玥开口了。 “带着你的离职协议来一趟。”顾司玥说。“当面说。” 挂了。 韩路一看着手机屏幕。通话时长四十七秒。 他愣了一会。 窗外遛狗的人走了第二圈。桌上的提醒函安静地躺着,黄色荧光笔标出的那段话在下午的光线里泛着一层薄亮。 韩路一收起文件,起身去换衣服。 第十七章 她在第五层 和合大厦,十九楼,博衡律师事务所。 这是韩路一第三次来博衡。 上一次是两周前,BugKiller刚跑通,他来做著作权和商标。那天他坐在访客椅上,觉得自己在做一件很酷的事。 这次来,他手里多了一封EMS。 前台认出了他。“顾律师在办公室,我领您过去。” 他敲了一下半开的门。 顾司玥坐在桌后翻一份文件。上次隔着走廊看到的备用衬衫还在,只是换了位置。桌面上有两个空掉的咖啡杯。 “坐。”顾司玥没抬头。 韩路一坐下,把鼎盛的提醒函放在她桌上。 顾司玥看了一眼信封上的“鼎盛集团法务部”几个字,打开看了看内容。 韩路一也开了视界,看向那份文件。 法律文本上浮出一层半透明的高亮批注,像代码Review里的注释。竞业条款那一段被标了红—— 【竞业限制范围条款|风险评估:存在争议,无效概率约45%】 【原因:限制领域“人工智能、数据分析、软件开发工具及相关领域”,范围偏宽但未明显超出行业惯例】 【法律依据:《劳动合同法》第24条|司法实践中类似条款裁判结果不一,取决于具体举证】 韩路一皱了皱眉头。四五成的概率,跟抛硬币差不多。打官司的话,不好说。 他刚要开口。 顾司玥拉开了右手边的抽屉。 拿出一个蓝色文件夹,不厚,推到他面前。 “先看看这个。” 韩路一打开文件夹。 三份文件。按时间顺序排好,每份用回形针别着。 第一份。 催收函复印件,附EMS签收回执。 【致:鼎盛数字科技集团有限公司人力资源部张薇女士 本所受韩路一先生委托,就贵司与委托人签订之竞业限制协议事宜致函如下:委托人已于2026年2月26日正式离职,依据双方协议约定,贵司应自离职之日起按月支付竞业限制经济补偿金。截至本函发出之日,首期补偿金已逾期,委托人尚未收到任何款项。 特此函告,请贵司于收函后五个工作日内依约履行补偿金支付义务。逾期未回复或未支付的,委托人将视为贵司明确拒绝履行补偿义务,并依法主张相应权利。 博衡律师事务所顾司玥律师 2026年3月27日】 周五,他算了一下,那天是他离职整四周。 韩路一翻到第二份。 一封邮件的打印件。发件人:张薇。收件人:顾司玥。时间:3月27日,15:17。 【顾律师您好: 经核实,韩路一先生的岗位级别(P7)不在竞业限制补偿金发放范围内。如有其他疑问,请联系我司法务部。 此致 张薇 鼎盛集团HRBP】 韩路一盯着这封邮件。 标准的HR模板。收到催收函到回复,不到半天。连法务都没抄送。对张薇来说,这大概跟回复一封考勤查询差不多。 P7嘛。不发的。流程走完了。 他翻到第三份。 竞业限制解除通知书的复印件和签收回执。 【收件人:鼎盛数字科技集团有限公司法务部。 发件人:博衡律师事务所,顾司玥律师,受韩路一先生委托。 日期:3月30日。星期一。 ……贵司人力资源部张薇女士已于2026年3月27日以书面方式明确告知委托人:其岗位级别不在竞业限制补偿金发放范围内。贵司以实际行为明确表示不履行竞业限制协议项下支付经济补偿金之主要义务。 依据《中华人民共和国民法典》第五百六十三条第一款第二项之规定,委托人韩路一先生特此通知:解除双方竞业限制约定,自本函送达之日起生效。】 韩路一把三份文件放下了。 看向顾司玥。 “……你什么时候办的?” “你上次来的那天晚上,”顾司玥说,“把离职协议照片发给我之后。” 韩路一想起他上次来博衡做著作权咨询,走的时候顾司玥让他把离职协议拍给她看。当天晚上他发了照片,顾司玥回了一份电子委托书让他签,说“先把授权做了,后面可能用得上”。 他签了,没多想。 “你当时就知道他们不会发补偿金?” “P7,非核心岗位,标准裁员流程。”顾司玥的语气像在念结案报告。“这种级别的竞业条款,十个公司九个不实际执行。连HR自己都当走过场。” “所以催收函……” “当然不是催钱,是钓鱼。”顾司玥说。“我要的就是她这封拒绝邮件。” 韩路一没跟上。“……什么意思?” 顾司玥往椅背一靠,换了个跟客户讲案子的节奏。 “竞业限制是双务合同。你不去竞争对手那里,公司按月给你补偿金。两边各有义务。” 韩路一点头。这部分他知道。 “正常情况下,公司连续三个月不付补偿金,劳动者可以请求解除竞业限制。这是最高院的司法解释,也是大多数人走的路。但三个月太久了,你的产品等不了三个月。” “那你怎么绕过去的?” “民法典五百六十三条。”顾司玥说。“一方明确表示不履行主要义务的,对方有权解除合同。关键词,「明确表示」。张薇那封邮件,「P7不在补偿金发放范围内」,就是鼎盛明确表示不付钱的书面证据。拿到这个,解除权直接成立。” 韩路一回过味来了。 “催收选在周五发。这种级别的case,HR不会请示上面,当天就按流程回了。” 他顿了一下,自己接上了下一步:“不回也没关系。催收函上有回复期限,逾期不回,” “视为拒绝。”顾司玥接过去。“五六三条照走。再不济,三个月不付款,还有司法解释兜底。” 韩路一的手指在扶手上无意识地敲了两下,这是他写代码时跑逻辑的习惯。 “那还有一种情况,”他说,“他们真的付了。” “那你先拿着钱,”顾司玥说,“竞业继续生效,但你那份协议写的限制范围是「人工智能、数据分析、软件开发工具及相关领域」,基本把整个IT行业都框进去了。这种条款拿到仲裁庭上,完全有可能认定范围过宽、部分无效。到时候再打。” 韩路一低头看着桌上那封鼎盛法务寄来的提醒函。 “如贵方已在限制领域内从事经营活动,请立即停止。” 出门前他盯着这句话坐了两分钟没动。现在再看,有点可笑。 这张纸在寄出之前就已经是废纸了。 “那鼎盛法务不知道?”韩路一把提醒函推到一边,“解除通知就在档案柜里,还发这个?” “催收函和解除通知都寄的法务部公共收件地址。P7离职员工的case,处理完就归档了。这封提醒函大概是另一个人推的,经手人未必翻过那个档案。” 韩路一点了一下头,往椅背靠了靠。 他的视线漫过办公室,落在窗台上。 绿萝。 一盆小绿萝搁在窗台边,叶子蔫巴巴的,盆里的土干得发白。比上次路过时更惨了。 “你这个绿萝,我上次来就注意到了。还有救吗?” “它不在我的业务范围内。” “倒杯水就能活。绿萝挺好养的。” 顾司玥没接话。 但她伸手拿起桌上喝剩的半杯水,倒进了花盆里。 韩路一看着水渗进干裂的土里,安静了一会儿。 “顾律师,太感谢了。” 顾司玥看看他。“你付费了。” “可太值了。”韩路一笑了。 “著作权登记已经通过了。”顾司玥把话题拉回来。“商标查重也没冲突。法律身份没问题。” 韩路一点头。 顾司玥合上了面前的文件夹。 “但竞业是小事。” 她拿起手机,翻出一张照片,递过来。 拍的是一份内部文件。角度歪,光线不好,像是在会议室偷拍的。 鼎盛数字科技集团:《前员工竞业合规排查》。 一份名单。十几个名字。 只有一个名字是红色的。 韩路一。 “这封提醒函不是法务部例行公事。”顾司玥说。“是有人专门推动的。十几个人的排查名单,只有你被标红。” 韩路一没说话。他想到了昨天视界扫描提醒函时看到的那行数据。 【文件发起链条:陈博文(建议)→法务部合规专员李洋(执行)→审批人:王志远(VP)】 但这个他没法告诉顾司玥。 韩路一把那份报告放回桌上,离开了顾司玥的办公室。 他靠在电梯壁上,看着楼层数字一格一格往下跳。 张薇按惯例拒了催收函。解除通知寄到法务部,归了档,没人多看一眼。 但陈博文还不知道。 他拿着一把一周前就坏掉的枪,还在瞄准。 什么时候他会发现枪打不响啊? 第十八章 竞争对手 晚上七点半。 有人敲门。 林晚晴站在外面,手里端着一个盘子。 一盘小蛋糕。奶油抹得很均匀,表面用可可粉撒出一片树叶的形状,边缘点缀着几颗草莓,全挤在一起。上面用奶油挤了两个字,“谢谢”。 林朵朵从妈妈身后探头:“路一哥哥!妈妈做的!我帮忙放了草莓!” 韩路一蹲下来看她,“草莓是你自己摆的?” “嗯!本来放了五颗,我尝了两颗,甜的。” 理直气壮,像是在汇报质检结果。 韩路一拿了一块。 “好吃。草莓放得特别好。” 林朵朵搂住妈妈的腿,仰着头说:“妈妈,路一哥哥说好吃!” 林晚晴摸了摸朵朵的头,嘴角弯了一下。 “上次的事,一直想说谢谢。”声音轻轻的,目光没怎么抬。 她眼下有一层淡淡的乌青。 林晚晴没有多待,蛋糕放在鞋柜上,拉着朵朵就走了。朵朵还在门缝里挥手:“路一哥哥晚安,” 501的门关上了。他打开了视界。 【林晚晴|情绪:疲惫(隐藏:焦虑)|核心焦虑:抚养权诉讼|当前应对状态:无法律支持】 韩路一拿出手机,翻到顾司玥的对话框。 “有个朋友可能要打抚养权官司,你那边有人能接吗?” 秒回。 “有,我们所有个合伙人专做婚家。什么情况?” 婚家。他搜了一下,婚姻家事。 “具体的等我确认了再说。对方经济条件一般,费用能不能灵活点。” “我们所里有法援名额,符合条件的话可以减免。让她先别急。” 又过了几秒,顾司玥追了一条。 “另外,你的竞业排查名单我又看了一遍。十几个人只有你被标红,不正常。还有个法律风险我在核实,确认了当面说。” 韩路一站在门口把那块蛋糕吃完了。 回到电脑前。BugKiller v0.2还差最后一步,一键修复。 思路不复杂:扫出Bug之后,把上下文丢给大模型生成补丁,再用BugKiller自己扫一遍补丁代码,确保没引入新问题。检测是自己的长板,生成让大模型干,各司其职。 难点在最后一步。BugKiller得判断补丁有没有“修出新Bug”,而不同框架的写法天差地别,React和Vue不一样,Python和Go也完全不同。通过率卡在93%,苏念念要求的门槛是95%。 两个点。 又花了三个小时重写模板匹配逻辑,试了四种方案。第四种过了。 通过率95.2%。能交了。 BugKiller v0.2最终版打包完成。 新增功能两个:Bug影响评估加了置信度百分比,修复建议支持一键生成代码补丁。发给苏念念。 刚发完,苏念念那边就回复了。 “发了?我马上看。” 十五分钟后,消息开始轰炸。 “v0.2比v0.1强太多了。影响评估的置信度怎么做到的?” “你别管怎么做的,先测。” 五分钟。 “上次扫出来的那五个未知Bug还记得吧?我刚用v0.2一键生成补丁,五个,全过!韩路一!我感觉我成开发了!” 过了半分钟没说话。产品经理在算账。 “韩路一,这东西以后怎么定价?” “还没想。” “赶紧想。能帮人省两周人力的工具,不愁卖的。” “你怎么还没睡?” “在测你的东西,少转移话题。定价你得上心了。” 又过了一分钟。 “我明天开始拉人,先凑20个内测用户。你做个邀请码出来。” “行。” 韩路一刚要关电脑,苏念念又发了一条。 不是关于v0.2的。是一个链接。 《AI代码审查赛道升温:又一家初创拿到天使轮》 “你看看这个。” 韩路一点开。 科技媒体的深度分析。重点提到一家叫CodeSafe的初创公司,刚拿到天使轮,背后投资方隐约有鼎盛关联资本的影子。创始人赵文渊,斯坦福CS博士,在谷歌呆过三年。 产品方向:AI驱动的代码审查与风险评估。 韩路一翻了翻文章的其他段落。CodeSafe去年十一月成立,运行了五个月,团队从三人扩到三十人。天使轮的钱够烧至少半年。 他打开视界,扫了一眼CodeSafe的官网。 【CodeSafe | AI代码审查】 【核心路线:大模型+大数据(重资产)】 【公测日期:4月27日】 大概三周后。 精力扣了8点。 面板底部还挂着一行小字,投资链条的末端。 【天使轮投资链条:鼎恒创投(LP含鼎盛集团)→个人跟投:王志远】 王志远。 韩路一盯着这三个字看了两秒。快闪的天使轮也有他,张浩然说的那个壳公司。现在又是他。 一个鼎盛的VP,到处投初创公司,挺忙的。 他关掉视界。 苏念念的第二条消息跟了上来。 “这也太巧了吧?” “看了。三十个人,有钱有团队。” “慌不慌?” “说不慌是假的。但他们走大模型重资产,我们走轻量,路线不一样。重的烧钱快、迭代慢,轻的反过来。短期他们功能可能比我们全,但跑长线我们有机会。” “机会有多大?” “不知道。但他们现在还没产品出来,我们v0.2今晚跑通了。先把内测做起来吧,有用户口碑才有得聊。” 苏念念过了一会儿才回。 “行。邀请码明天给我,我先拉人。” 关上电脑,拿起手机,刷了一会技术论坛。 《推荐系统架构改造的七个经典陷阱》阅读量破了一万二。私信列表里多了几条,有的请教,有的约稿,还有一条来自一个他认识的ID,鼎盛广告数据组的前同事,跟他同期入职。 “大神你好,我是某公司的后端开发,你写的第三个陷阱我们正在踩。方便私聊吗?” 韩路一没回。这人用的是鼎盛工作邮箱注册的论坛账号,说明他还不知道NullPointer是谁。但一个鼎盛的人主动找NullPointer求助…… 博客下面最高赞的评论写着:“NullPointer到底什么来头?这种架构级别的分析不像普通开发者。” 404群也在炸。马小飞丢了条链接,《鼎盛数字宣布旗下推荐系统全面升级,下周起覆盖全线短视频及电商应用》。 马小飞:“牛逼啊,全量上线。你们说会不会崩?” 张浩然:“系统改造两个月就敢全量,你猜呢。” 韩路一打了几个字:“不是会不会。是什么时候。” 马小飞:“???你这么确定?” 马小飞:“那陈博文那小子不是完蛋了?” 韩路一没再回。他想起之前视界扫描的D-评级,140个Bug,峰值延迟飙升300%。 全量上线之后,撑不过72小时。 第十九章 我是预言家 鼎盛数字推荐系统全量上线了。 韩路一刷到微博热搜的时候是下午三点。#鼎盛推荐系统抽风#,排第十七。 点进去,画风很统一。 “给我推婴儿车。我二十三,单身,养了条狗。” “我的健身账号刷出来全是保健品和助听器。” “我看了一上午美食视频,首页给我推了个殡葬服务优惠。鼎盛大概觉得我吃太多了,提前帮我安排后事。” 评论区充满了快活的空气。 有人总结:“鼎盛的「猜你喜欢」应该改名「猜你是谁」,连我是谁都没搞清楚就开始猜了。” 韩路一没笑。 态规则引擎本身不至于这么离谱,推得不准是正常的,但推得这么驴唇不对马嘴,说明数据管道出了问题。他一行一行写出来的特征提取模块被砍掉之后,旧的用户画像格式和新引擎之间没人做适配,输入全是乱的。垃圾进,垃圾出。 推婴儿车不算什么。等数据管道的缓冲区吃满,后面的事就不好笑了。 第二天上午,微博上的吐槽变了味,热搜也冲到了第三。 最高赞:“打开鼎盛买菜APP,给我推了一屏幕情趣用品,我妈就站在旁边。我现在怎么跟她解释啊?” 有人发:“我在深圳,「猜你喜欢」给我推了一整页哈尔滨本地火锅店。问了个哈尔滨的哥们,他那边全是深圳奶茶店。我俩换号了?” 有人跟:“不止你们。我和我同事的推荐页一模一样。连顺序都一样。” 技术论坛这边也炸了。 一个ID叫“架构老狗”的资深开发者发了长帖: “说句不好听的,这个推荐系统的改造路线非常眼熟。特征提取从动态权重退回静态规则,多模态融合模块砍得只剩文本维度,NullPointer上个月那篇《七个经典陷阱》,第三、第五、第七个,鼎盛全踩了。建议写个续集:《七个陷阱实战教程,由某大厂倾情演绎》。” 两小时一百三十多赞。 韩路一看了看自己那篇博客的阅读量。一万八。 窗外的天空灰得像没校色的显示器。雨还没下出来,空气闷得发黏。 还没人意识到真正的问题有多大。 到了晚上十一点半。 韩路一睡前又刷了一眼微博。 挂了两天的话题#鼎盛推荐系统崩了#,热度已经下去了。 一个新的话题,#鼎盛崩了#,冲到了热搜第一。 他点进去。二十分钟前,鼎盛系三款核心APP集体闪退,用户打开就白屏。 推荐系统的崩溃没有触发熔断。坏掉的模块像传染病一样顺着调用链往上爬,拖垮了依赖它的内容分发、搜索、首页加载,最后整条链路全死了。 十一点十五分鼎盛发了紧急公告。十一点四十分,APP陆续恢复上线,他们手动把推荐系统整个切掉了。 微博上有人贴了恢复后的截图。首页干干净净,没有“猜你喜欢”,没有个性化推荐,没有千人千面。就一个光秃秃的货架。 “这是2015年的APP吧?” “鼎盛的推荐系统呢?去哪了?” “切了。不切整个APP都用不了,你选哪个?” 韩路一打开视界。 【事件性质:系统级故障(无熔断→全链路雪崩)】 【根因:画像格式不适配→解析异常堆积→内存泄漏触发OOM→数据管道断裂→ 23%用户画像错乱→推荐模块崩溃未熔断→级联击穿全链路】 【影响范围:宕机期间全量用户(峰值约1200万在线),当前降级运行中】 【当前状态:手动切断推荐模块,APP降级运行】 【预测恢复周期:版本回退至原架构,约14天】 跟他的判断一模一样。 三月中旬他扫那个外包需求时看到的D-评级,一百四十个Bug,就指向这个结局。当时看到的是七十二小时。 从周一上午全量上线到周二晚上全线崩溃,还不到四十八小时。 比原本预估的还快了一天。 …… 天亮之后的事,像多米诺骨牌。 有人翻出了韩路一一个月前那篇《推荐系统架构改造的七个经典陷阱》,发了一条帖子—— “兄弟们!NullPointer是预言家!一个月前精准描述了鼎盛今天的崩溃路径,七个陷阱全踩了!” “什么预言家,是重生者!” “不是全踩。我数了数,至少五个。” “你数错了。第二个和第六个也中了,只是症状还没完全暴露。” “所以是七个全踩?” “七杀。” 帖子被版主置顶。博客阅读量开始飙。中午两万九。下午四万二。晚上破六万。技术媒体引用,大厂群截图传播,连几个头部科技公众号都转了。 404寝室群里也在讨论。 马小飞丢了条链接进来:“你们看了吗这个NullPointer?一个月前写的文章,七个陷阱鼎盛全踩了。这人也太牛了吧。” 张浩然:“技术圈都在转。” 马小飞:“你们说这人会不会就是鼎盛内部的?不然怎么写得这么准?” 没人接话。 过了几秒,韩路一打了一句:“是我写的。” 马小飞:“???” 张浩然:“NullPointer是你?” “嗯。别往外说。” 马小飞发了条语音,韩路一没点开都知道他在喊什么。 张浩然:“知道了。” 下午,讨论从“鼎盛系统崩了”升级到了“谁的锅”。有自媒体把时间线整理出来,鼎盛年初裁员,核心算法团队换血,新团队全面改造系统架构,两个月后全量上线,两天崩溃。配了一句:“教科书级别的管理灾难。” 评论区有人说了一句:“被裁的那个核心开发叫什么来着?” 没人接话。帖子的浏览量继续在涨。 苏念念在微信上转了这条给他:“你之前做的不就是推荐系统吗?这是不是你们组的?” 韩路一回了个“嗯”。 他关掉论坛,切回代码编辑器。内测组反馈积了一堆,最集中的问题是误报率,v0.2降到了7.8%,苏念念标的目标是5%以下。二十三个内测用户里四个人提了同一条:误报太多,影响工作流。 该干嘛干嘛。 晚饭是冰箱里的速冻水饺,煮了十个,吃了八个,剩两个烂了倒掉。 洗完碗坐回电脑前,九点半。 微信弹了一条。赵启明。 “韩哥,睡了吗?” 韩路一回:“没,怎么了小明” “今天加班到现在刚回来,跟你说个事。 “下午开了复盘会,陈博文全程在甩锅。 “说系统崩溃的根因是「前任核心开发者遗留的架构缺陷」。 “PPT上你的名字出现了四次。什么「过度耦合的动态权重设计导致系统脆弱性」,什么「缺乏文档交接」。二十三页PPT,有四页在说你。 “放屁啊,那套动态权重是你写的,跑了三年多没出过事,他一上来全改崩了。 “文档我也写了啊,他看都没看。” 韩路一看着这行字,没动。 过了几秒。赵启明又发了一条。 “我在会上差点当场怼他。忍住了,简历还没投出去呢。” “现在这环境,就当日结工资了。先把自己的事安排好。” “我有数。就是太他妈恶心了,跟你说一声。” “嗯,知道了。谢谢【抱拳】” 赵启明发了个叹气的表情包。 “行了韩哥,你早点睡。我也扛不住了” 韩路一放下手机。屏幕暗了几秒又亮了。是顾司玥。 “鼎盛的事你看到了吧。小心被牵连,有情况随时找我。” 第二十章 装弹 早上七点闹钟响了。韩路一拿起手机。赵启明凌晨三点发来消息。十二张照片,手机拍的,陈博文的复盘PPT,二十三页。“韩哥,偷拍的,你留着。” 核心论点就三句话。 一、原架构设计者留下了严重的技术债务,包括过度耦合的动态权重系统和缺乏冗余设计的数据管道。 二、团队在继承和优化过程中,遭遇不可预见的系统性风险。 三、建议对前员工遗留代码进行全面审计,明确责任归属。 他翻完十二张截图,把这事在404群里说了一下。 马小飞:“这他妈是把锅焊在老韩头上啊。” 张浩然:“这手段很恶毒啊。如果不了解真实情况,可能真有人会信。” “第三条最毒。”张浩然说。“明确责任归属,先定性,后面想怎么追都行。” 马小飞:“还有个更恶心的。今天凌晨,某科技自媒体发了篇文章,” 他截了图丢群里。 标题:《被裁员工的代码炸了老东家?一场推荐系统崩溃背后的人事博弈》 马小飞:“我问了渠道,这篇不是编辑部自发的。走投放。有人买单。” 张浩然:“PPT对内,文章对外。内外夹击。标准公关打法。” 韩路一打字:“里面提我名字了吗?” 马小飞:“没直接点名。写的是「一位在鼎盛工作五年、负责核心推荐系统的算法工程师」。稍微查一下就能对上。” “而且,”马小飞又发了一条。“这篇文章故意把NullPointer的博客拎出来一起讲了。原话:「一个月前精准预测崩溃路径的匿名博主NullPointer是否就是这位前员工?」” 群里没人说话。 韩路一把手机扣在床上,去卫生间洗了把脸。水龙头开了很久,凉水从指缝往下淌。 回来拿起手机。马小飞问:“老韩,什么打算?” “下午去见律师。” 马小飞:“我先帮你怼回去?咱不能吃这个哑巴亏。” “别。”韩路一打字。“你一出手,人家顺着你查到我,正中下怀。” 马小飞:“……行吧。” …… 下午两点。博衡律师事务所。 前台已经认识他了。“韩先生这边请。” 顾司玥在办公室等他。 窗台上那盆绿萝比上次好了一点,新抽了两片小叶子,土是湿的。 桌上摊着三份文件,按顺序排好。她面前摆了两杯咖啡,推了一杯到对面。 “坐。咖啡。” 韩路一坐下,端起咖啡。 顾司玥把一张纸推过来。上面画了三个圆,分别标着,竞业、归责、职务作品。前两个用红线连着,第三个单独在下面,画了个大大的感叹号。 “你看到那篇自媒体文章了?” “看了。” “他们在打组合拳。”顾司玥拿起笔,点了点前两个圆。“竞业是锁链,归责是攻击。他们的算盘是,你站出来自辩,就暴露BugKiller跟鼎盛业务的关联性,他们就用竞业协议攻击你。你不回应,叙事权在他们手里。” “挺聪明的。”韩路一说。 “对。但他们漏算了一步。” “竞业已经没有了。” 顾司玥点头。 她在第一个圆上打了个叉。 “竞业没了,锁链就断了。你随时可以站出来说话。但我建议先不动。” “为什么?” “主动澄清等于承认你是当事人。一旦开口,对方就拿到了互动的机会,你说什么他们都能接着打。先手在我们这边,没必要让出去。” “那你的建议是……?” “等。收集证据。归责文章的投放记录、传播路径、跟陈博文的关联,这些都是名誉侵权的子弹。现在只需要装弹,不用发射。” 韩路一喝了口咖啡。 “那第三个圆是什么?” 顾司玥停了一下。她把剩下那份文件推过来。封面是《中华人民共和国著作权法》,第十八条被黄色荧光笔标了出来。 “上次我说有个法律风险在核实。就是这个。” 韩路一等她说。 “职务作品。” 顾司玥翻开那一页。 “著作权法第十八条。员工离职一年内完成的、跟原岗位主要职责相关的作品,单位有权主张属于职务作品。” 她的手指点在那行字上。 “竞业是「不让你做」。职务作品是「做了也是我的」。” “如果鼎盛主张成功,就不是赔钱的问题了。你的新产品,包括代码、模型、数据、商标,全部归属权归对方。” 韩路一放下咖啡杯。 “我能证明代码是离职后写的。代码提交记录,云平台账单,都有时间戳。” “光证明时间不够。”顾司玥摇头。“构思、设计、实现,全链条都要能证明跟鼎盛无关。法院看的是,你离开鼎盛的时候,脑子里有没有带走东西。” 她翻到下一页,一张清单。 “Git提交时间线、开发环境日志、云平台账单、设计文档版本历史,这些全都要规范化存档。这些是将来上庭的弹药。” 顾司玥翻回著作权登记文件,指了一行。 “你的核心模块描述里写了「Bug模式知识库」。这个知识库里的模式,有多少来自你在鼎盛的项目经验?” 韩路一沉默了两秒。“不少。” “经验归你,不归公司。这个官司他们打不赢。”顾司玥合上文件。“但打不赢不等于不会打。拖你进仲裁,光举证就要几个月。你现在有几个月可以浪费?” 韩路一没接话。 “陈博文还沉浸在竞业和归责里。但等他发现竞业走不通,会找新路。职务作品就是最顺手的那条。” “窗口多长?” “不好说。一到两个月。够你做准备了。” 韩路一站起来。 “回去把开发记录整理一遍。Git log、云账单、笔记、草稿、每一版设计文档。能证明BugKiller从第一行代码到现在,每一步都跟鼎盛无关。” “知道了。” 顾司玥送他走到门口。 “对了,你之前问的抚养权。情况确认了吗?” “确认了。对方前夫要争抚养权,她没请律师。” “让她联系沈予微。”顾司玥从桌上翻出一张名片递过来。“家事诉讼她比我专业,我来盯策略。费用的事我跟予微说。” 韩路一接过名片。“谢了。” “给我的客户牵线而已。” 韩路一走进电梯。门关上之前,走廊尽头传来她的声音,在打电话:“予微,我手上有个家事case……” 回到家。晚上八点。 韩路一打开电脑,在加密网盘里建了个文件夹。 evidence_chain。 Git提交日志导出、云平台账单、每一版设计文档的修改记录、域名注册信息、苏念念发的每一条产品反馈,全部按时间线归档,同步到云端。 手机亮了。苏念念。 “内测数据出来了。二十三个人里十九个人用了超过五次。有三个主动问我什么时候出付费版。” 苏念念又发了一条。“有个内测用户是个小公司CTO,今天跟我聊了半小时。他想把BugKiller接进他们的CI流程,每次提交自动跑一遍。问能不能开API。” “现在没有。但不难。” “我整理了一下他的需求,明天跟你对。如果这条路走通,企业客户的口子就开了。” 韩路一关掉微信,打开了技术论坛的后台。 草稿箱里躺着一篇帖子,上周写的,一直没发。 标题:《一个新产品:BugKiller》。 浏览器另一个标签页还开着那篇自媒体文章。标题里“前员工”三个字加了粗。 光标在“发布”上停了两秒。 第二十一章 One More Thing 草稿在论坛后台躺了四天。二十三个人的反馈磨了三轮,v0.3才算定稿。 四月二十号,周一晚上。苏念念测完最后一轮:“够了。发吧。” 韩路一打开草稿。标题还是上周写的,《一个新产品:BugKiller》。 正文改了四十分钟。开头三段纯技术,中间插了两张v0.3的扫描结果截图,脱敏过的。结尾一句话:“今天开放限量测试,50个名额。填表申请,先到先得。” 最后加了一段声明,数据来源合规,源码可审计。 发布。 发完帖他切回编辑器写v0.4。凌晨一点半,框架搭完,冰箱里最后一盒速冻水饺下了锅。煮好端到电脑前,顺手扫了一眼帖子。 内测申请表提交人数:127。 五十个名额,三个半小时,一百二十七人。 第二天上午,韩路一被手机震醒。 是苏念念。连发八条消息,前三条是“???”“你看论坛了吗”“快起来”。 他揉着眼睛打开论坛。 内测申请:638。浏览量:12,400。回复:289。私信:67条未读。 回苏念念:“正在看。” 韩路一靠在床头把评论区从头翻到尾。 “NullPointer做产品了???这是什么跨界打劫??” “影响评估是什么鬼,扫出Bug还能告诉我上线后会死多少用户?请问这合法吗?” “NullPointer之前分析鼎盛崩溃封了神,现在把这能力做成产品。传说中的大佬下凡开店,凡人瑟瑟发抖。” 有人做了投票,“你觉得BugKiller能不能干掉市面上的代码审查工具?” 一千二百多票。67%选了“有可能”。 404群里也有未读消息。马小飞丢了一串问号过来。 “哥!你那帖子上热帖了!我朋友圈被你刷屏了!科技圈好几个大号都在转!” 张浩然冒出来:“「NullPointer做产品」,脉脉热帖第三。你小心身份被猜到。” 马小飞:“我帮你宣传宣传?我现在六万粉了!” 韩路一:“不用。” 马小飞:“?” 张浩然:“NullPointer现在是匿名的。你一宣传,画像就收窄了。” 马小飞沉默了五秒,回了两个字:“忍了。” 中午。申请人数破八百。 韩路一从里面筛了第一批,五十个名额,全挑技术栈匹配度最高的。二十分钟,账号全部开通。 下午两点。第一批内测用户的反馈开始涌进来。 论坛、微信私信、邮件,三个渠道的通知刷不完。 “扫了我们公司核心服务,找到6个我们不知道的Bug,其中两个高危。影响评估说其中一个如果不修,上线一周内会影响约12万用户。我们查了一下,这个模块确实排在下周灰度。救命。” “把自己的开源项目扫了一遍。8个问题,逐个验证,全是真的。3个我知道但一直没修,5个完全不知道存在。” 韩路一一条一条回私信。回了一会,手指有点酸,去厨房接了杯水,回来继续。 “这不是代码审查工具。这是代码审查加风险预警系统。NullPointer你是不是开了天眼?” 论坛前排有一条评论引爆了讨论。 “影响评估有点恐怖。它说我一个Bug会导致「峰值期0.3%的订单金额计算错误」。我算了一下,日均八万单,0.3%是240单,平均客单价85,一天两万,一个月六十万。一个Bug。六十万。” 底下跟了一串。 “六十万?BugKiller按这个算投入产出比,定多少钱我都买。” “你们别光说好话,说说缺点。” “缺点:名额太少了。建议NullPointer开放一万个。” 窗外黑了。他没开灯,屏幕的光映在脸上。隔壁501传来林朵朵的笑声,隐隐约约的,大概在看动画片。 论坛最新一条,“Java那个我也遇到了,NullPointer回我了,说v0.4会改进。你们知道什么叫售后吗?这叫售后。” 苏念念从下午开始就在整理反馈。飞书表格,四栏,功能模块、用户原话、优先级、建议方案。到晚上七点,四十七行。 她打来电话的时候声音有点哑了。 “路一,我跟海狸科技请了两周年假。” 他正在改代码,手停在键盘上。 “你不用,” “你一个人写代码、改Bug、回用户、整理反馈、写文档,你同时干几份工?我项目早被人拿走了,请假也没人管。这两周我全投BugKiller。” 韩路一没说话。 苏念念:“明天上午九点,Bug Café。所有内测数据发我,今晚我先看。还有,v0.4迭代方向我想好了,你先别动手,等明天碰完再说。” “我刚把v0.4的框架写完了。” 苏念念沉默了三秒。 “发我看看。” 五分钟后回了一句:“功能优先级跟我排的一模一样。” 又过了两秒,苏念念发了条语音:“写完了你不早说?我白排了一下午。” “你没问。” “明天九点。别迟到。” 晚上十一点。帖子发出二十六个小时。 申请人数:2,147。浏览量:43,000。回复:687。 有技术媒体编辑在评论区实名留言:“求专访NullPointer。”底下一百多条回复,排队去。 面板闪了一下。 【经验值+8 |当前:75/200】 BugKiller帮助内测用户发现并定位了多个实际Bug。系统判定:批量帮助。 韩路一关掉面板,准备关电脑。 习惯性刷新了一下帖子。 回复区最顶上多了一条新评论。三分钟前。 “BugKiller的Bug检测模式数据库来源存疑。建议作者公开数据来源和训练方法论,否则无法排除使用了未授权的商业数据进行训练的可能性。作为同赛道从业者,我认为数据合规是产品公信力的基础。” 账号名:TechEthicsWatch。 注册时间:今天。发帖数:零。回复数:零。头像是默认灰色。 唯一的操作就是这段话。措辞精准,语法工整,不像技术社区里的吐槽,像律师拟的声明。 韩路一往下看了一眼点赞列表。 第三个。 CodeSafe Official。 CodeSafe的公测大概还有一周。产品还没上线,已经开始给别人的质疑帖点赞了。 韩路一把这条评论截了图,发给顾司玥。 关掉了论坛。 第二十二章 陈经理 鼎盛集团总部二十八层。晚上九点半,整层楼还灯火通明。陈博文办公室在走廊尽头,门关着。 他在刷论坛。 技术论坛热帖榜第二条,《NullPointer画像分析:他是谁?》。帖主把NullPointer所有公开信息串了起来,写得像侦探报告。 “BugKiller的Bug模式数据库覆盖推荐系统、电商后端、支付链路三个方向。其中推荐系统方向的模式深度远超其他两个,推测他有很深的推荐系统背景。” “鼎盛推荐系统崩溃。NullPointer一个月前发的博客精准命中全部崩溃路径。简直像是当事人回忆录。” 当事人。推荐系统。鼎盛的推荐系统。 陈博文不用猜。 推荐系统核心开发,今年离职,技术顶尖——鼎盛符合条件的只有一个人。他亲手裁的。 评论区还在猜,“鼎盛?字节?海狸?小黄书?” “在职的大厂员工不可能做产品吧?被公司发现直接开除。” “那就是离职的。” 全网都在找NullPointer。没人知道答案就在他手机里,那是他两个月前亲手签的裁员审批单,上面的名字叫韩路一。 陈博文放下手机。嘴角压了一下,没压住。 竞业提醒函上个月就发了。十二个月限制期,白纸黑字。韩路一做BugKiller,正面撞上限制条款。 这不叫巧,这叫送。 论坛里所有人在猜“大厂高级专家”,P8起步,P9也有人猜。 一个P7而已。 他站起来,走到落地窗前。二十八楼,半个城市的灯铺在脚下。 一封函的事。 第二天上午。陈博文去了一趟二十二楼法务部。 上次来还是推那封竞业限制提醒函。走廊尽头的工位区,一排格子间,空调比楼上冷两度。 小周在。就是上次帮他拟提醒函的法务专员。 “小周,帮我拟个东西。竞业限制违约追诉函,前员工韩路一。” 小周推了推眼镜。“陈总,追诉函我需要先核实一下执行状态……” “十二个月限制期,二月底离职,不到两个月。他做的产品叫BugKiller,做AI的,全面覆盖。”陈博文把截图递过去。“板上钉钉的事,直接拟。” 小周看了看截图,犹豫道:“这个case我印象中好像有一些……” “周四之前给我。例会上要用。” 小周张了张嘴,没再说。 陈博文走出法务部。电梯里给王志远发了条消息:“王总,周四例会加个议题。前员工竞业违规,跟上次宕机有关。有把握。” 王志远回了一个字:“说。” “上次宕机舆情里那个预言帖,NullPointer,查出来大概率是韩路一。他最近做了个产品,但竞业还在限制期,一封追诉函过去,他要么配合我们的舆论口径,要么他现在做的东西全停。不花一分钱。” 过了十几秒。王志远回复:“周四讲。” 周四。三十层大会议室。跨部门月度例会。 长桌坐了十来个人。产品负责人刘芳靠窗,用户增长负责人张毅在对面。法务负责人秦岭坐在长桌末端,面前摊着一叠文件。 王志远最后进来。深灰色西装,红色领带。在长桌正中落座。 前四十分钟是常规议程。陈博文坐在王志远左手边,笔记本电脑亮着,PPT停在封面。 轮到他了。 “占十分钟。上次宕机的舆情还有个尾巴没处理,跟在座几个部门都有关。” 投屏。封面:《Sev0-20260414的后续公关处理》。 先翻到第二页,微博热搜截图,#鼎盛崩了#,两周前的。 “这个话题我们都经历过了。舆情压下去了,事情本来翻篇了,但有一个尾巴没处理。” 翻页。NullPointer预言博客截图,发布日期红框标出,系统崩溃前整整一个月。 “这篇博客精准命中了我们全部崩溃路径。技术社区的共识是:写这篇文章的人掌握鼎盛推荐系统的底层架构。” 张毅放下了手机。 “社区已经在画像了。” 翻页。三栏表格,技术方向、时间线、关联事件。 “所有线索指向鼎盛近期离职的核心开发。还没人猜到具体是谁……” 陈博文停了一拍。 “各位想一下。如果身份被确认,媒体标题会是什么,「鼎盛裁掉核心开发,两个月后系统崩溃,被裁员工一个月前精准预言」。” “上次的舆情好不容易压下去了。这个标题能把它全部翻出来。这是一个公关炸弹。” 他扫了一圈。张毅已经把手机收起来了。 “综合判断,NullPointer大概率是今年二月裁掉的前员工韩路一。” 刘芳转头看了一眼王志远。 “他最近做了一个AI代码审查工具,内测两千多人申请。” 翻页。竞业协议扫描件。关键条款用红框圈了起来,旁边配着BugKiller在论坛招募内测贴的截图。 “韩路一签了标准竞业限制协议。十二个月限制期,覆盖AI、数据分析、软件开发工具。BugKiller一条不落。” 说到这里,他微微一笑。 “我已经让法务拟了追诉函。函发出去,对方只有两条路:要么赔违约金加停业,要么谈。谈的条件很简单,配合出一份技术澄清,预言帖是个人推演,不涉及内部架构。这份声明一出,上次宕机的舆情就彻底翻不了了。” 全场安静了几秒。 刘芳:“确定是他?” “百分之百。” 刘芳转向长桌末端。“法务这边呢?” 秦岭合上了手里的文件。 “陈经理。”秦岭的声音不高,语速不快。“你说的这份竞业协议,法务部核过了。” “公司没付竞业补偿金,对方律师走了法定解除流程。协议上个月就终止了。” 秦岭翻了一下桌上的文件,抽出一张。 “解除通知签收记录在档。”他抬头看着陈博文。“这函要是发出去了,对方律师一封回函,我们得上行业新闻。” 会议室里只剩空调在响。 刘芳看了一眼幕布上的PPT,又看了一眼陈博文。“补偿金为什么没付?” 陈博文张了张嘴。“P7,标准流程……HR那边——” “P7。”刘芳重复了一遍,语气没什么起伏。 幕布上还亮着他做的那页,红框圈着“限制期十二个月”,旁边配着BugKiller内测两千人的截图。 没人接话。 P7不值得花钱锁,但P7做出来的东西值得做十页PPT。 这个矛盾不需要说出来。 秦岭把抽出来的那张纸放回去,摞齐,语气没变:“陈经理,以后要出法律文件,走审批流程。不要直接找我的人。” 说完低头翻下一份文件。像在处理一件跟这间会议室毫无关系的事。 没人说话。 张毅拿起了手机。刘芳端着水杯,目光从陈博文身上移开,不经意地扫了一眼王志远。 王志远从头到尾没开口。保温杯端在手里,杯壁上凝着一层水雾。 刘芳放下杯子,轻咳一声:“下一个议题。” …… 散会。人陆续走了。 陈博文拔投影线,合笔记本,动作比平时都慢。走出会议室的时候幕布还亮着,投影仪的风扇嗡嗡转。 走廊里。王志远走在前面,步子不快不慢。 陈博文跟了上来。“王总……” 王志远脚步没停,就像没听见。 走到电梯口才开口。声音不大。 “这件事不要再提了。” 电梯门开了。王志远走进去,按了二十八层。 门快合上的时候,他又说了一句。 “韩路一那边,我另有安排。” 门合上了。 陈博文站在电梯外面。 走廊里没有别人了。投影仪的风扇还在会议室里转。 他站了很久。 第二十三章 唯一标准 傍晚,韩路一准备去Bug Café吃个简餐。 路过501的时候停了下来,敲了敲门。 开门的是朵朵。小丫头只拉开半条门缝,脑袋先探出来,眼睛一亮:“路一哥哥!” 林晚晴来开门,手里还捏着一支画笔,指尖沾了好几种颜色。头发随手绑了个高马尾。“怎么了?” “没事,路过看看。”他蹲下来跟朵朵碰了一下拳头。小丫头咯咯笑着跑回屋了。 他站起来。“林姐,最近还好吗?上次那个人……有再来过吗?” 林晚晴摇头。“没有。挺好的。” “那就好。有事随时敲门。”韩路一转身往回走。 “路一。” 他停下来。 林晚晴靠着门框,往屋里看了一眼,朵朵趴在茶几上画画,没注意这边。她压低了声音:“……你认不认识律师?” 韩路一没多问。“我认识一个很靠谱的律师,很专业。我帮你牵个线。” 林晚晴沉默了几秒。画笔在指间转了一圈。“……好。谢谢。” “你等我一下”,他回502翻出沈予微的名片,把名片递过去。“直接打这个电话就行。” 他转身要走。林晚晴犹豫了一下:“对了路一,我还没有你微信。” 韩路一愣了一下。确实没机会加。他掏出手机,两个人扫了一下。 “有事随时发消息。” 在Bug Café吃了点炒饭。手机一震,苏念念发来一个链接。 《AI代码审查赛道的三个底线》,作者赵文渊。 韩路一点开。 三千字的长文,通篇没出现BugKiller的名字,但每一段都是冲着他来的。 “训练数据的来源合规性是产品公信力的基石。当一个产品的核心数据来源无法被独立第三方验证时,用户的信任建立在流沙之上。” “匿名是权利,但匿名不等于免责。当匿名身份与商业利益绑定,社区有权要求更高标准的透明度。” “赛道需要的不是一鸣惊人的个体英雄叙事,而是经得起审视的工程化体系。” 底部署名:赵文渊,斯坦福大学计算机科学博士,前谷歌高级工程师,CodeSafe创始人。 文章同步发了多个技术社区,并且迅速被很多科技媒体转载。 评论区已经打起来了。 “说实话看完有点动摇。NullPointer的检测率是强,但强的原因是什么?数据来源声明写了一句话,第三方验证在哪?” “赵博士这篇每个字都在点子上。匿名做产品不是问题,匿名加不透明加赚钱,这三样加一块就不行。” “内测的时候我跟团队推荐过BugKiller。现在有点后悔。万一训练数据真有问题呢?” “……所以没人在意CodeSafe Official给TechEthicsWatch马甲帖点赞这件事吗?” 最后一条沉在第二页底部,没几个人点赞。风向不太对。 韩路一在Bug Café看完全文,脸色不太好。 老周在吧台后面擦杯子,探头看了他一眼:“谁惹你了?” “没事。同行互踩。” “咱们程序员还搞这个?” “写代码的不搞,写PPT的搞。” 老周笑了。 苏念念的消息过来了。“看完了吗?” 韩路一给苏念念打了个语音通话:“文章我刚看完。” 苏念念没有寒暄,语速很快:“他也太阴险了吧。表面讲行业规范,实际上把「匿名加数据来源不透明」两顶帽子扣咱们头上了。你看评论区,已经有人在问NullPointer是谁了。他这不只是攻击你,他想定规矩。他要是定好了,你就永远在他的框架里接受审判。” “我知道。” “那咱们怎么办?” “不接他的招。他聊规范,我聊结果。检测率摆出来,其他全是废话。” 电话那头安静了一秒。“好。我先帮你把内测数据整理好?” “嗯,检测率、误报率、影响评估覆盖率,跟CodeSafe公开数据放一起对比。” “给我二十分钟。” 挂了电话。韩路一起身回家。 他坐在书桌前,打开了一个新文档。 标题:《检测率就是一切》。 一千二百字。写完还不到八点。 不长。通篇只讲一件事:什么是好的代码审查工具。 “用户不关心你的创始人是谁,不关心你的团队有几个博士,不关心你的数据来源写了几页白皮书。用户只关心一件事,你能不能找到我代码里的Bug。” “找得到,你就是好工具。找不到,你说什么都是废话。” “这是BugKiller内测首批用户的数据。” 一张表。三行数字:检测命中率、误报率、影响评估覆盖率。每一栏都附了内测样本量和用户验证比例。 “以上数据从今天起在BugKiller官网实时更新,不做筛选,不做美化。欢迎任何同行、媒体、用户随时验证。也欢迎任何同赛道产品公开同口径数据,放在一起比。” 最后一句:“工具好不好,跑一遍就知道。” 发布。 二十分钟。回复破两百。一小时七百赞。 “最后那句笑死。” “赵博士写了三千字定规矩,NullPointer一千字都没到,数据往桌上一拍。来,比。格局差距。” “CodeSafe Official给TechEthicsWatch马甲帖点赞的截图又被翻出来了,吃相太难看。” “TechEthicsWatch零发帖零回复昨天注册今天消失,马甲还需要实锤?” 赵文渊在自己博客置顶了一条回复:“本文不针对任何具体产品。” 底下第一条回复有两千三百个赞。 “赵博士,您文章发布时间比BugKiller内测帖晚了三十六小时。您一般都是在竞品火了之后才关心行业规范的吗?” 赵文渊没再回复。 周五下午。马小飞在404群里甩了一条短视频链接。 “一出手就是巅峰!” 标题:《我试了全网最火的AI代码审查工具BugKiller,结果……》 韩路一点开。马小飞的风格,节奏快,表情包密,夸张又勾人。他用自己的一个开源小项目做了演示。BugKiller跑完,三个他不知道的Bug,每个附带影响评估和修复建议。 “这玩意扫了一遍我的代码,把我三个月前埋的雷全翻出来了。” “第二个Bug更离谱,它说高并发时有概率死锁。我寻思我这破项目也没啥并发啊。结果仔细一看,这个方法被另一个项目引用了,那个项目有并发场景。它怎么知道的?它怎么知道的??” “第三个,算了不展示了。三个月了,一行拼错的环境变量,线上没炸纯属运气。丢人。” 末尾总结:“工具有两种。一种让你觉得「还行吧」。另一种让你看完直接去翻自己的代码库。BugKiller是第二种。免费内测中,不是广告。但欢迎NullPointer给我打钱。” 张浩然在群里说:“你那项目一共多少行?三个Bug命中率有点高。” 马小飞:“你闭嘴。” 韩路一:“你说了不是广告?” 马小飞:“工行 6222 XXXX XXXX XXXX马小飞谢谢老板” 四十八小时。播放量十二万。马小飞涨了将近一万粉,直接奔着七万去了。BugKiller从技术论坛的内测圈出圈到了泛科技受众面前。 苏念念看到数据后发了一句:“马小飞可以啊,这期视频比我写两周推广文案都好使。” 韩路一截图发给马小飞。马小飞秒回:“苏女神???你俩现在天天聊???” “她帮忙看产品。” “看。产。品。懂了懂了。” 周一。 苏念念发了三张截图。没带一个字。 第一张,科技媒体头条:《CodeSafe正式公测:斯坦福博士团队打造的“最完整AI代码审查方案”》。 第二张,技术论坛热帖:《CodeSafe首周体验:企业级集成真的强》。帖主实测Python、JavaScript、Java三种语言,结论,“超越市面上所有的代码检测工具,集成文档写得比产品本身还好,开箱即用”。 第三张,赵文渊朋友圈截图。不知道谁传出来的。 只有四个字。 “产品说话。” BugKiller内测群里也在讨论:“CodeSafe公测了啊,我们什么时候公测?” 苏念念没说话。韩路一也没回。 论坛首页,NullPointer的帖子还挂在热帖第一。七千赞。赵文渊三天没更新。 韩路一打开CodeSafe的官网。注册页上,第一周的数字还在涨。 他开了视界。 灰色的代码流从页面底下浮了上来,前端、后端、数据管道,CodeSafe的技术架构像透视图一样铺在屏幕上。 他看了几秒。关掉视界,关掉页面。 表情没什么变化。打开编辑器,继续写v0.4。 第二十四章 魔高一尺 周三下午。Bug Café。 老周看了一眼吧台后面的钟。“一点你就来了,今天不加班?” “自由职业没有加班。”韩路一端着美式坐到角落的老位置。“只有随时在班。” 老周哼了一声。“我当程序员的时候可不这么自我感动。” 韩路一打开电脑。 CodeSafe的官网还停在上次的标签页。注册数涨到了三千八。好评测评从三篇变成了七篇。 每篇测评他都看了。 他喝了一口咖啡。下载了CodeSafe的公测版,本地装好,打开。 上次只扫了一眼轮廓。这次要看仔细的。 开视界。 灰色代码流从屏幕底部浮上来,像透视图一样在眼前铺开,前端框架、后端微服务、数据管道、模型推理层,CodeSafe的整个技术栈一览无余。 先说好话。 前端React加TypeScript,组件拆分规范,交互动效流畅。UI比BugKiller好看三个档次,他们有专门的前端团队,这不是一个人能追的差距。后端Go写的网关,Python跑推理,中间Kafka做消息队列。教科书一样的技术选型。支持三种语言,检测速度不慢。企业集成的文档写得比很多大厂都好。 视界在整体代码质量旁边浮出一个评级标签: 【代码质量评级:B+】 不差。斯坦福CS博士加谷歌的经历不是白混的,这套系统的工程化水准放在创业公司里算顶尖。赵文渊有两把刷子。 韩路一继续往下看。 视界深入核心检测引擎。代码流变密,信息量陡增。他集中注意力,精力值开始加速消耗。 然后他看到,核心引擎上方,一行黄色WARNING缓缓浮现: 【架构风险:检测引擎采用全量遍历+大模型推理路线|当前性能:代码库<5万行时表现优秀|WARNING:代码库规模超过20万行后,误报率将非线形上升(预估:5万行误报率3%→20万行误报率17%→50万行误报率41%)|根因:特征提取未做分层剪枝,大规模代码库的上下文窗口溢出导致模型幻觉】 5万行,3%。 20万行,17%。 50万行,41%。 三个数字,非线形上升。 现在CodeSafe的用户全是个人开发者和小团队,代码库普遍在5万行以下。体验好,好评是真的。赵文渊不是在作假。他的产品在当前用户规模下确实能打。 但企业客户的代码库动辄几十万行。 这不是Bug。Bug可以修。这是架构选型的根本性问题,特征提取没做分层剪枝,核心引擎直接用大模型全量推理。5万行以下没问题,上下文窗口装得下。超过20万行,窗口溢出,模型开始产生幻觉。检测结果从“准确”变成“瞎猜”。 要修?重写核心引擎。 至少三个月。 赵文渊大概率还不知道。公测期用户全是小项目,数据漂亮得很,他肯定觉得自己牛逼坏了。 等真接了企业单,才会发现这事有多棘手。 韩路一关掉视界。精力掉了六十多点。 他靠在椅背上,看着CodeSafe首页那行“最完整的AI代码审查方案”。 苏念念推门进来带了一股外面的风。围巾还没摘,径直走到韩路一对面坐下,掏出电脑。两人约好了在Bug Café碰面。 “我注册了CodeSafe。” “嗯。” “搞个对比测试?”她打开一个GitHub仓库。“这个开源项目,Python后端服务,大概八万行。各跑一遍。” 两台电脑同时开始跑。 BugKiller的进度条先到底。CodeSafe慢了快一分钟。 结果出来了。苏念念把两个窗口并排放在一起。 BugKiller报了50个。CodeSafe报了36个。 韩路一又开视界扫了一遍,51个Bug。 他拿视界的结果当答案,逐条比对。BugKiller:50个里48个是真的,2个误报,漏了3个。CodeSafe:36个里32个是真的,4个误报,漏了19个。 看了二十分钟源码确认之后,他把误报数据告诉苏念念。 苏念念在本子上算。“误报率,我们百分之四,他们百分之十一。” 漏报率他没提,总不能跟苏念念解释自己为什么知道真实答案是51个。心里默算了一下,百分之六比百分之三十七。 八万行代码库上,CodeSafe的误报率明显上升了。 但数量还不是关键。 苏念念点开BugKiller第一条检测结果。Bug描述下面挂着一段影响评估:“上线后影响预测:高并发场景下触发概率约12%,预估月均影响用户1.2万,修复优先级:P0。”后面还有三行修复路径。 她点开CodeSafe的同一条。 “发现潜在空指针异常。建议检查。” 一句话。没了。 苏念念看完两边数据,安静了一会儿。 “检测能力我们碾压他们。”她抬头。“他们语言支持比我们多,企业那套集成也做得早,但这些都是时间问题。” “对。而且他们的引擎在更大的代码库上会出问题。”韩路一说。“用户量上来之后自己会发现的。” 苏念念眯了一下眼睛。“你怎么知道?” “看架构猜的。全量遍历加大模型推理,代码库规模一大,上下文窗口扛不住。误报就炸了。” 苏念念盯着他看了两秒。 没追问。 她合上本子翻到新一页,标题写了五个字,“公测方案v0.1”。 “竞品分析先过一遍。”苏念念边写边说。“CodeSafe团队十五人。融资额具体查不到,但按赵文渊的配置,保守估计是你全部积蓄的五十倍。” “谢谢,很提气。” “钱和人我们都不占优。但他重我们轻,这一点没变。所以不能跟他全面打,得挑一个他补不上的点。” 苏念念翻到新一页,笔尖点了点纸。 “就打影响评估。别的都不碰。” 苏念念指着屏幕上的对比。“CodeSafe告诉你有Bug。BugKiller告诉你这个Bug上线后有什么影响。这完全是品类差距。” “上线方案呢?” “先在论坛,V2EX和掘金发帖,内测用户那批人让他们帮忙扩一波,马小飞那边再出一期视频。首日注册能破五百就算成功了。”她手里的笔没停。 “什么时候上线?“ 苏念念打开日历看了一眼,“假期回来第一天。上线方案加推广素材,趁假期搞定。五一大家放假,六号上班第一天刷论坛正好看到。再拖下去CodeSafe用户养起来就不好抢了。你写代码的时间够吗?” “够。” “那就六号。” 说着她就给马小飞发起了微信。 窗外天暗了。老周给他俩各续了一杯,把灯调亮了点。韩路一写代码,苏念念做方案。中间几乎没说话。偶尔苏念念抬头问一句“API文档改了吗”,或者韩路一甩过来一段逻辑让她确认产品流程。 八点半。老周开始收桌子。 “二位,打烊了。” 苏念念抬头看时间。“这么快?” 老周笑着摇摇头。 两人收拾东西出门,一起走向地铁站,一边继续讨论上线方案。 地铁站口,苏念念忽然停下来。“路一。” “嗯?” 苏念念笑了笑。 “……没事。明天见。” 她进地铁站了。韩路一转身往家走。 到502门口的时候,差不多九点了。 门口放着一个牛皮纸袋。 他蹲下来拎起来。是一块小蛋糕,奶油抹得歪歪扭扭,上面用巧克力酱画了个笑脸。纸袋底下压着一张蜡笔画。 画上是一个戴眼镜的小人坐在电脑前。旁边趴着一只巨大的瓢虫。瓢虫的壳是红色的,上面三个黑色大圆点。 他翻到背面。歪歪扭扭的铅笔字,每一笔都很用力: “lu一哥哥加you” “加”字写反了。 韩路一站在门口吃了一口。奶油太甜,蛋糕有点硬。他又吃了一口。 剩下的放进冰箱。 手机亮了。 顾司玥:“林晚晴的case予微接了。初步评估胜算很大。” 他回了一句“谢谢顾律师”。 又一条。苏念念发了个飞书文档链接,“BugKiller公测上线方案v0.1”。 他点开看了两眼,回了句“收到,早点休息”。 韩路一把朵朵的画贴在显示器边上。 然后打开编辑器。 瓢虫瞪着两只大眼睛看他。 第二十五章 狗都不用 七天。 说出口很轻松。 韩路一仿佛又回到了在鼎盛的日子,每天只睡不到5小时。 一边飞速推进,分开用好几个AI Agent推进代码,一边用视界把Bug揪出来修好。 苏念念的上线方案从v0.1改到v0.4,上线流程精确到分钟级别。 马小飞拍好了第二期视频,韩路一看完让他把标题里“全网最强AI代码审查工具”改成“可能是最好用的AI代码审查工具”。 马小飞不服气:“有区别吗?” 韩路一:“有。被告的时候赔的钱不一样。” 五月六号。 苏念念凌晨三点还在改推广文案的措辞。韩路一凌晨四点修完最后一个边界条件。六点睡了三个小时,九点起来洗了把脸。 十点。BugKiller v1.0在官网上线公告,NullPointer名义发布。论坛、V2EX、掘金三平台同步。内测群推送。种子用户邮件触达。马小飞第二期视频同时发布。 发了。 韩路一坐在自己房间的书桌前,盯着注册后台的数字。 前三十分钟很安静。 3。 7。 12。 苏念念的消息过来了:“才十二?” “才半小时。” “我在海狸科技做CodeReview产品线,对外卖的那种。二十个人的团队,市场部配合推了一整轮,砸了八个月。对外发布第一天,注册五百出头。” “所以?” “所以我也要首日五百日活啊啊啊!” 第一个代码仓库接入了。Python Flask项目,六千多行。BugKiller跑了十四秒,报了七个Bug。后台日志显示用户点开了第一条检测结果,在影响评估那一栏停留了四十三秒。 十一点。47。 中午。89。 苏念念没在说话了。她只是不断发数字更新的截图过来。 下午一点。破一百五。增长曲线在加速,每个整点的增量比上一个整点多。口碑传播的典型斜率。内测用户开始往各自的技术群里扩散了。 韩路一喝了口水。手有一点抖。不是紧张,是三个小时的睡眠开始报账了。 马小飞:“视频发了三小时,后台显示一千多人从我视频点进BugKiller注册页。各位,我马小飞,科技区带货一哥。” 张浩然:“你视频底下第一条评论说「第二个Bug的分析太准了」。你确定不是托?” 马小飞:“你才托。那是我真实粉丝好吧。” 张浩然:“行。路一,你这个自然增长率如果持续三天,周活数据可以拿去见投资人了。” 韩路一:“没想那么远。” 张浩然:“不远。信我。” 下午三点。帖子上了论坛热榜第三。马小飞的视频播放量八万。 帖子下面有一条长评在快速上升。 “我们公司从内测开始用了两个月CodeSafe。今天注册了BugKiller。同一个项目跑了一遍。BugKiller找到三个CodeSafe从来没报过的Bug。其中一个,跟上个月炸过线上的那个是同一类问题,连接复用的竞态条件。上次那个炸了六万用户,排查了两天才修好。这个还藏着,CodeSafe完全没报。 “BugKiller的报告里写着:「高并发场景触发概率约12%,预估月均影响用户5-6万,修复路径:修改第1247行连接复用逻辑,预计改动3行代码。 “三行代码。上次同样的问题我们排查了两天。 “我说句理中客的:CodeSafe,狗都不用。” 六百赞。底下跟了一串类似的现身说法。 下午四点十二分。后台全红了。 API响应时间直接飙到超时。韩路一打开服务器面板,请求量暴涨四十倍,来源IP高度集中,全指向/api/scan接口。 是DDoS攻击。 开视界。 服务器流量在视野中铺开。正常用户的请求是一条条细线,节奏规律。攻击流量完全不一样,三股暗红色的洪流从三个IP段同时涌入,密到把正常流量淹没了。 视界在攻击源上方浮出诊断: 【DDoS攻击|类型:HTTP Flood + SYN Flood|来源:3个IP集群(某云华东节点)|目标:/api/scan|修复路径:①封禁47个攻击IP段②/api/scan启用频率限制(单IP≤5次/分钟)③开启CDN层DDoS防护】 三步。 封IP段。加限流。开CDN防护。 七分钟。监控从红转绿。 他在内测群发了一句:“刚才断了几分钟,被DDoS了,已处理。” “公测第一天就被人打?” “谁这么急啊。” “你一个人处理的?七分钟???” 韩路一没接话。打开官网写了篇事故复盘。攻击时间、持续时长、来源IP段、攻击目标接口,全部列出来。 半小时后论坛多了个帖子,标题:“猜猜谁会在BugKiller公测日打DDoS。” 点赞第一:“我帮大家捋一下时间线哈,对比帖600赞是下午4点整,DDoS攻击4点12分。十二分钟。就这?” 第二:“上次马甲帖点赞,这次直接DDoS,下次是不是该上门砸电脑了?” 第三条是一个技术讨论,很多人回复:“我在某厂做安全运维的。说个数据吧,我们SOC十二个人轮班,全套自动化监控,DDoS响应SLA是30分钟。这还是提前演练过无数遍、剧本都写好了的情况。他一个人,七分钟,从发现到恢复。离谱。” “楼上说的是大厂有预案的情况。小团队第一次被打正常流程是:卧槽怎么挂了→是不是代码炸了→查半天日志发现是DDoS→慌了→提工单给云服务商→等客服回复→一两个小时算快的。七分钟?我工单都还没提交。” “所以NullPointer到底是一个人还是一个团?一个人写产品一个人修线上一个人扛DDoS,这是三头六臂?” “DDoS都赢不了人家一个人。攻防七分钟,泡面都没泡开。” 下午六点。 注册用户:476。 接入代码仓库:527个。 累计检测Bug数:3847个。 476。苏念念的五百还差二十四。 晚上九点。 韩路一从冰箱里拿了瓶水。打开后台。 苏念念兴奋的打电话过来。 “路一!六百一十二!!!” “你知不知道这意味着什么!” “二十个人的团队,大厂资源,砸了八个月。” “对外发布首日注册才五百出头。” “你一个人做的产品。” “首日注册612。” “一个人干掉一个大厂团队!” 韩路一说:“是咱们两个人。” 苏念念沉默了一会。 “说真的。路一。你做到了。我们做到了。” 挂了电话,韩路一看向显示器旁边贴着的画。大瓢虫的红壳上有三个黑点。 他伸手把画纸翘起来的一角折了折。 手机又震了。顾司玥。 “恭喜。数据不错。” “顾律师也关注科技产品?” “关注我的客户。” 他回了句“谢谢”。 马小飞第二期视频播放量过了十五万。评论区顶到最高的一条:NullPointer大神求出山。 韩路一看了一会儿评论区。翻了翻。退出来。 打开和马小飞的对话框。 “下一期视频,做个专访?BugKiller创始人真人出镜。” 马小飞的回复秒到:“???你要公开身份??” “产品到这个阶段,匿名没意义了。企业客户要签合同,总不能跟NullPointer签。” “!!!” “你来拍,拍一期「NullPointer是谁」,也给你涨点粉。” 好一会儿没回。韩路一还以为他在犹豫。 然后收到一条语音。点开,马小飞声音里压不住的兴奋快从听筒里溢出来。 “老韩你知不知道我等这一天等了多久!脚本我写了三版了你知道吗三版!明天!不,今天晚上就能拍,我把灯光全架好,” 韩路一哭笑不得:“别急。” 放下手机。 开了一下视界。 【Lv.2|精力:58/250】 经验已经到82%了。 今早还是41%。 后台的Bug检测总数停在4215。每一条记录背后都是一个开发者接入了仓库,BugKiller替他找到了问题。 经验条又跳了一下。 打开苏念念刚更新的飞书文档。《BugKiller公测首日复盘》,七页。拉到最后一行,标红加粗。 “建议尽快公开创始人身份,将NullPointer的社区信任转化为品牌资产。窗口期不超过一周。” “已经在安排了。” 第二十六章 裁到大动脉 五月七号。上午。 博客写好了。一千五百字,改了三遍。 标题:《一个失业的程序员,和他的BugKiller》 顾司玥审稿用了十一分钟。回了三条消息。 第一条:“可以。” 第二条:“四个不,不提鼎盛,用「前东家」。不提任何人名。不主动攻击。你讲你的故事,别给对方递把柄。” 第三条:“发之前让我看终版。” 苏念念看完改了一处。把“失业”改成“被优化”。 “好听点。而且带梗,打工人都懂。” “被优化这三个字有什么好听的。” “你信不信标题发出去,评论区第一条就是「优化他的人现在在想什么」。” 全文没提鼎盛。没提任何人名。通篇只讲四件事:被裁、接单、认清Bug模式、做了BugKiller。 “今年二月,我被前东家优化了。工作五年,P7,年终B+。裁员通知来的那天我签了字,走出了大楼。 “接下来两个月,我每天做三件事。接自由开发的单子赚房租,写各种不同项目的代码,盯着Bug发呆。 “所有Bug都长得不一样,但犯错的方式就那么几种。同样的逻辑陷阱在不同项目里反复出现,只是穿着不同的衣服。我把这些模式记下来,喂给了模型。 “这就是BugKiller。一个被优化的程序员做的Bug检测工具。” 最后一段—— “我不是为了证明什么。但既然在这个行业这么多年,总得留下点什么有用的东西。” 顾司玥的反馈简短:“措辞没问题,没有攻击性叙事。「被优化」改得好,谁的主意?” “一个朋友。” 停了两秒。“脑子不错。” 发了。 然后炸了。 一小时。回复破五百。 两小时。赞数破三千。帖子从科技板块顶上了论坛首页。 “NullPointer居然是被裁的???” “等一下……他一个人做了BugKiller?一个人?没有团队?” “P7被裁做出这个水平的产品,他前东家什么眼光?” “「总得留下点什么有用的东西。」看完这句话,我坐在工位上沉默了五分钟。” “我被裁之后在家躺了三个月。人家被裁之后做了个碾压斯坦福博士团队的产品。做人的差距。” “年度最佳离职故事。没有之一。” 苏念念说对了。评论区确实有个高赞评论—— “优化他的人现在在想什么???” 四千多赞。 点赞第一的评论—— “这不叫优化。这是裁员裁到大动脉了。” 八千多赞。底下跟了一整排“大动脉”的接力。有人生成了一张图,一把手术刀切在动脉上,旁边标注“某大厂HR部门”。博客里没提公司名,评论区也默契得很,“某不愿意透露姓名的大厂”“某鼎某盛”刷了满屏。 下午五点。马小飞到了502。 两个灯架,一台索尼A7M4,一个无线领夹麦。三分钟在韩路一书桌前搭好简易拍摄区,手法比写代码还熟练。 “坐那。自然点。” “怎么才叫自然?” “你写代码的时候什么样,现在就什么样。别看镜头,看我。” 韩路一坐下来。身后是显示器,旁边贴着朵朵画的瓢虫。马小飞看了一眼那张画,调了下机位,把瓢虫框进了画面右下角。 “这什么?” “邻居小孩画的。” 马小飞打开平板上的采访提纲,前两版被韩路一以“太煽情”为由否掉后重写的第三版。 “行。先走一遍,不好再来。” 录制键按下去的前三分钟,韩路一像在做技术分享会。他讲BugKiller的架构,讲模式匹配的原理,讲误报率从8%压到3.8%的过程。马小飞听了一会儿,把手伸到镜头前挡了一下。 “停。” “怎么了?” “你在讲代码。观众不在乎BugKiller怎么跑的,在乎你为什么做。” 韩路一想了一下。“因为Bug有模式。” “不是。再上一层。” “因为被裁了。” “再上。” “因为写了几年的东西,被人改了几行就废了。” 马小飞竖起大拇指,重新按下录制。 这一遍顺了。韩路一说话越来越自然,到后面已经不看马小飞了,盯着自己的显示器在讲,像在跟另一个自己复盘。 他讲到被裁那天多拿了五万块的时候,马小飞忍不住说了一声“卧槽”。讲到“所有Bug都长一个样”的时候,马小飞停下来认真听了十几秒。 拍了四十分钟。马小飞收镜头的时候顺手拉了个韩路一侧脸的特写,显示器上是BugKiller后台的数据面板,旁边贴着瓢虫画,窗外是老小区的天际线。 “这个镜头我封面用。” “随便。” “不随便。这个镜头值十万播放。” 收灯架的时候马小飞问了一句:“标题我想好了。《大厂裁了一个年薪百万的程序员,三个月后他做了一个产品把老东家按在地上摩擦》。” 韩路一:“不行。” “……哪不好了?” “按在地上摩擦。” 马小飞:“又不是我说的,是弹幕说的。我只是……提前预判了弹幕。” 韩路一:“你预判个头。改。” 标题最终妥协成《大厂裁了一个年薪百万的程序员,他一个人做了个轰动全网的产品》。马小飞坚持保留了封面上的两个大字,“打脸”。 五月八号。早上八点。视频上线。 马小飞剪到凌晨四点。成品快二十分钟,节奏是他的老风格。开头三十秒是博客金句,配打字机音效一个字一个字蹦出来。核心画面是BugKiller和CodeSafe以及其他几家老牌工具的对比数据,穿插马小飞本人的使用体验和韩路一的采访片段。 “我不做评价。数据都在屏幕上,各位自己看。但我说一句,我做了六年科技自媒体,第一次见到这么离谱的故事。一个人。被裁的。三个月。做了一个产品,公测首日碾压所有竞品。” “你跟我说这是网文我都嫌扯。” “但它是真的。” 十二小时。三十二万播放。 二十四小时。八十七万。 马小飞在404群里发截图。 “十万了!!!粉丝破十万了!!!!科技区一哥谁不服!!!” 张浩然:“冷静。你的涨粉是蹭韩路一热度蹭的。” 马小飞:“……闭嘴。” BugKiller后台的数字跟着视频一起起飞。注册用户从公测首日的六百一十二,涨到了一千四。亮牌两天,翻了一倍多。 苏念念发来消息:“你知道吗,现在论坛上讨论最多的不是BugKiller好不好用,是你这个人。用户记住故事比记住功能快十倍。” 韩路一回了一个“嗯”。 关掉手机,继续写v1.1的热补丁。 同一天。晚上九点。 浦东,一家私人会所的包间。 赵文渊坐在靠窗的位子上,面前的普洱碰都没碰。 他今天刷了一整天“裁员裁到大动脉”。NullPointer的博客他逐字看了两遍,马小飞的视频他看了完整版。评论区有一条三千多赞的热评,“赵博士三千字定规矩,NullPointer直接甩数据。两周过去了,你们觉得谁赢了?” 他关掉了手机。 对面坐着一个人。五十出头,灰色西装,铂金袖扣。坐姿很板正,坐在那像在开会。 “赵博士。”对面的人先开口,声音很稳。“你天使轮的领投方,背后的LP结构了解吗?” 赵文渊看向他。“鼎盛有交叉持股。这不是秘密。” “交叉持股是明面上的。”王志远语气没变。“这里面有我个人的钱。” 赵文渊没有表情。天使轮拿钱时他只跟基金的GP见过面,对方说有产业资本背书,没提具体是谁。 他口袋里的第一笔钱,是眼前这个人放进来的。 “王总今天约我,不只是认亲吧。” 王志远嘴角动了动。不算真笑。 “NullPointer的真名叫韩路一。我手底下优化掉的。P7。去年在鼎盛做推荐算法,转化率提升37%。代码有九成是他一个人写的。” 赵文渊手指在杯沿停了一下。 “你觉得他一个P7,凭什么三个月做出这种东西?” 赵文渊没接话。这个问题他问过自己很多遍。 “我也想不通。但想不想得通不重要。重要的是,你打不打得过他。” 王志远端起茶杯喝了一口。 “一个人做产品是有天花板的。他现在是故事,不是公司。故事的热度会过去。” 赵文渊盯着他。“王总想说什么。” “鼎盛准备在代码审查方向布局。我会推动集团出资源。”王志远放下杯子。“但我不想从零起步。” 赵文渊听明白了。 天使轮是王志远个人的钱。鼎盛云是集团的资源。他要做的事情很简单,拿公司的渠道,喂大自己投的项目。韩路一是不是真的有威胁不重要,重要的是“BugKiller威胁论”能帮他在集团内部拿到审批。 “具体怎么合作?” “CodeSafe接入鼎盛云的开发者工具链。十五万家企业客户,代码一推上去就过你的审查引擎。” 听起来像天上掉馅饼。 但赵文渊是拿过风投的人,不是学生了。十五万家客户的渠道一旦接进来,CodeSafe的增长就绑死在鼎盛云上。今天叫合作,明天叫依赖,后天叫收购。他见过太多初创公司死在这条路上,被大厂的资源喂大,再被大厂的资源吞掉。 他看着王志远。这个人投了他的天使轮,现在又要把鼎盛的资源塞进来。进来的不是钱,是绳子。 但他也算了另一笔账。靠自己的十五个人打赢韩路一,要烧多少钱,打多久? 窗外浦东的夜景很亮。 “让我想想。” 王志远站起来,整了整袖扣。 “不着急。但你要记得,机不可失啊。” 第二十七章 孤注一掷 赵文渊坐在井安区的办公室里,面前有两块屏幕。左边是CodeSafe后台,右边是论坛,中间放了一杯凉透了的美式。 自从“被优化程序员”的博客和视频爆火以后,CodeSafe日新增注册从均值一百五,掉到了九十出头。趋势很难看。 社区讨论的风向也变了。两周前还是“CodeSafe vs BugKiller谁更好”,现在首页热帖标题是“被裁员工做的产品碾压斯坦福博士”。 技术比较变成了故事比较。 在故事这条赛道上,赵文渊没有赢面。 他回想起王志远的话,“不着急。但你要记得,机不可失啊。” 三天了,他还没回复。 十五万家企业客户的渠道。鼎盛云的品牌背书。听起来像活路。 但赵文渊在硅谷见过太多这种剧本的结局。小公司接了大厂的渠道,第一年是合作伙伴,第二年是核心供应商,第三年创始人的名字从官网上消失了。 他从谷歌辞职回国创业,不是为了给又一个大厂打工的。 赵文渊切到CodeSafe公测数据面板。 公测两周,用户好评率82%。项目检测准确率领先行业基准。有三家中型公司在聊采购。 数据不差。差的是叙事。 他点开公测反馈的收藏夹,翻了五分钟。一个前端团队说“CodeSafe帮我们上线前拦了两个P0”。一个独立开发者说“第一次觉得代码审查不是走形式”。 产品是好产品。 赵文渊关掉聊天记录,打开社交媒体的编辑框。 打字。 删掉。 又打字。 又删掉。 …… 五月十一号。下午两点。 赵文渊的帖子出现在技术论坛、推特和微博。同一段话,一字不改。 “NullPointer在《检测率就是一切》里说过一句话,「工具好不好,跑一遍就知道。」 我同意。 所以我提议:公开、透明、社区监督的横向评测。CodeSafe vs BugKiller。同样的代码库,同样的评判标准。全程直播,数据公开。 让产品说话。” 技术圈立马就炸了。 “卧槽赵博士要单挑NullPointer” “今年科技圈最好看的对决。没有之一” “独立开发者 vs融资团队,被裁P7 vs斯坦福博士” “来了来了,这才是正经比武” “骄傲不允许他认输,respect” 帖子二十分钟冲上热度第一。 苏念念截图发过来的时候,韩路一正在Bug Café吃老周新出的鸡排饭。他放下筷子,点开截图。 “看到了吗看到了吗看到了吗” “他用你的原话发的挑战” “他自己送上门了” 韩路一把筷子捡回来,夹了块鸡排,腾出左手打字。 “接。” “就一个字?” “他想比,就比。” 三十六度科技的老赵通过马小飞联系上了韩路一,请缨主持直播横评。 韩路一同意。赵文渊那边也同意了。 评论区有人刷:“36度这波主持,流量赚翻了。” 五月十二号。社区投票选择测试项目。 韩路一以NullPointer账号发了一条建议: “公平起见,测试方案应覆盖不同规模的代码库,毕竟用户的项目什么体量都有。建议分三轮:小型项目(3万行左右)、中型项目(10-20万行)、企业级大型项目(30万行以上)。同一批代码库,同样的评判维度。” 帖子底下清一色叫好。 “支持分梯度测试,这才是科学方法论” “NullPointer格局打开了” “这个提案本身就已经赢了一手,你提出公平方案,对方只能同意” 赵文渊回复:“完全同意。覆盖不同规模才有说服力。” 有人在帖子底下提了个关键问题:“公开项目两家都可能预训练过,测出来算什么?得用没见过的代码才公平。” 三十六度科技的老赵出面协调,三家企业赞助商各捐了一个即将开源的私有项目,双方此前都不可能接触过。代码在直播前由第三方公证封存,直播时才解封接入。 最终方案确定—— Round 1:某初创公司Go微服务框架,约3万行。 Round 2:某中型SaaS公司Python数据处理平台,约12万行。 Round 3:某上市公司Java企业级核心系统,约35万行。 三十六度科技当晚发公告。 “AI代码审查工具公开横评直播,5月14日晚7点。三轮测试代码库由企业赞助方捐赠,双方此前均未接触。第三方公证封存,直播时解封。实时数据公开,社区全程监督。” 五月十三号。预约人数破三万。 技术论坛开了专帖:“CodeSafe vs BugKiller,你押谁赢?” 投票结果很微妙。55%押BugKiller,45%押CodeSafe。差距没拉开。 “BugKiller社区口碑更好,但CodeSafe有完整团队+企业方案+博士背书” “NullPointer一个人打十五人?你认真的?” “别看人少。上次那个用户说CodeSafe漏报了三个Bug,” “个例” “你去看评论区。不止他一个人” 十几家科技自媒体出了分析文章,从各种角度预测结果。马小飞也想做预测视频,被韩路一一条消息摁住了。 “赛前别发。我刚提了公平测试方案,你这边立刻出预测视频,评论区第一条就是「NullPointer团队赛前搞舆论」。” 马小飞:“那我憋着?” 韩路一:“憋着。结果出来之后你剪精华,那个流量是预测视频的十倍。” 马小飞沉默了五秒。 “有道理。那我先把脚本准备好。” 五月十四号。 苏念念坐在海狸科技的工位上,面前开着一个空白的运营周报模板。她已经盯着它二十分钟了。 年假回来第一天,空降总监把她调到了运营支持岗。产品文档权限关了,数据看板进不去了,技术评审不叫她了。美其名“你先在运营这边过渡一下。” 下午两点的时候,产品群里弹了一条消息。她之前带的那个AI代码审查项目,这周要做用户访谈方案。新接手的人@了全组问谁有用户联系人表格。 苏念念的电脑里就有。她做了三个月的用户调研,每个联系人都是自己一个个加的。 她打了一行字,又删掉了。 没人@她。 她缩小周报窗口,打开BugKiller的系统监控页面。比赛代码库封着拿不到,但BugKiller自己的状态得确保万无一失。她远程跑了一遍内部基准测试,检测引擎响应、并发处理、各语言解析器稳定性,全部绿灯。 给韩路一发了条消息:“系统没问题。就是不知道封的那三个项目什么情况。盲盒。” 韩路一回得很快:“能控制的都控制了。剩下的交给产品。” 苏念念看着这条消息,又看了一眼运营周报的空白模板。 五点半她准时下班。背包里装着笔记本电脑。 五月十四号。晚上六点五十五分。 三十六度科技直播间开了。 画面正中分屏,左边CodeSafe的Logo,蓝底白字;右边BugKiller的Logo,黑底绿字。 在线人数从八千跳到一万二,从一万二跳到一万八。还在涨。 弹幕已经刷起来了。 “来了来了” “博士别怂” “NullPointer加油” “我从下午三点等到现在” “谁也别说话等结果” 三十六度科技的演播厅不大,两排座位面对面摆着,中间隔了三米。左边CodeSafe,右边BugKiller。头顶四台摄像机,正前方一块大屏实时投数据。 赵文渊坐在左边的座位上。白衬衫熨的没有褶皱,领口的扣子松开最上面一颗。他朝镜头点了点头。 五米外,韩路一在右边座位坐下来。他穿一件白色卫衣,胸口写着“Debug the World”。他关掉了所有多余的窗口,屏幕上只留一个终端和BugKiller的管理后台。 打开视界。 赵文渊头顶浮出一行淡蓝色的字。 【赵文渊|31岁|CodeSafe创始人/CEO】 韩路一多看了一眼。信息展开—— 【情绪:平静(隐藏:高度紧张)|核心诉求:证明技术价值|行为模式:背水一战型决策者】 平静是真的。紧张也是真的。这人是抱着孤注一掷的心态来的。 韩路一收回视线。 开场前五分钟,赵文渊站起来走过去,伸出手。 “NullPointer。久仰。” 韩路一站起来握了一下。“赵博士。产品做得不错。” 不是客套。赵文渊的方向没错,只是在错误的时间打了一场不该打的仗。 赵文渊笑了笑。“彼此。” 握完手各自回到座位。摄像机拍到了这一幕,弹幕瞬间炸了一波。 在线人数破两万。 主持人站到大屏幕前。 “各位观众晚上好。欢迎来到三十六度科技「AI代码审查工具公开横评」直播间。” “规则此前已经公布。今晚,CodeSafe和BugKiller将在相同代码库、相同条件下进行三轮测试。所有数据实时呈现,社区全程监督。” “第一轮测试项目,Go微服务框架,代码量约三万行。” “现在——” “开始。” 第二十八章 让产品说话 第一轮。Go微服务框架。三万两千行。 大屏幕上两个进度条同时跑起来。左边蓝色CodeSafe,右边绿色BugKiller。在线观众四万一千,还在涨。 CodeSafe的扫描速度稍快,进度条先到100%。 弹幕立刻刷起来。 “CodeSafe速度好快” “等等BugKiller还没跑完?” BugKiller的进度条慢了大概七秒,跟着到顶。 扫描结果不直接上屏。按赛制,每轮由五人技术专家组现场核验,三家公司技术负责人加两位开源社区资深贡献者,逐条确认真Bug还是误报,再把核验数据投上去。 专家组围着显示器开始过结果。弹幕等得有点急,“快快快”“急什么人家要逐条看代码”。 六分钟后,核验结果上屏。 CodeSafe:标记总数24个,确认Bug 24个,误报0个。误报率0%。 BugKiller:标记总数23个,确认Bug 22个,误报1个。误报率4.5%。每条附影响评估和修复路径。 专家组组长拿话筒:“三万行级别两款工具都表现不错。CodeSafe多检出两个,零误报,干净利落。BugKiller有一个误报,少检出两个,但每条结果附带的影响评估和修复路径是CodeSafe没有的功能。综合来看,第一轮CodeSafe略占优。” 赵文渊靠在椅背上,对着镜头点了点头。“两家产品各有所长。不过在标准化的代码审查场景下,检出率和精确率还是硬指标。” 弹幕滚得很快。 “CodeSafe第一轮赢了?” “零误报确实漂亮” “BugKiller那个影响评估挺有意思的,但检出少了两个” “完了NullPointer要输?” “才第一轮别急” 韩路一全程没什么反应。他看了一眼大屏上的数据,点了点头,然后低头喝了口水。 弹幕有人注意到了:“NullPointer这心态也太稳了”“输了一轮跟没事人一样”“是稳还是装的?” 苏念念窝在出租屋的床上看直播,被子裹到胸口,笔记本电脑架在膝盖上,屏幕左半边直播间右半边BugKiller后台。手机扔在枕头边充着电,旁边散着一小堆橘子皮。 第一轮结果出来的时候她盯着屏幕愣了两秒。CodeSafe赢了? 她打开微信给韩路一发了一条:“啊啊啊第一轮输了” 没回。她想了想,也对,他在直播,不可能看手机。 她放下手机,开始剥第四颗橘子。心里默算:第一轮三万行,CodeSafe赢。第二轮十二万行。第三轮三十五万行。 上次八万行的对比测试,BugKiller就已经拉开差距了。十二万行只会更大。 “第一轮本来就不是我们的主场。”她对着屏幕说了一句。没人听。 主持人:“感谢双方。第一轮结果已在屏幕上呈现。现在进入第二轮,Python数据处理平台,代码量约十二万行。” “开始。” 进度条再次跑起来。 这一次,速度差异从第一秒就开始了。 BugKiller的绿色进度条匀速推进,跟第一轮节奏差不多。 CodeSafe的蓝色进度条明显慢了。10%正常,20%开始拖,到30%的时候像遇到了什么东西,顿了两秒才跳到31%。 弹幕比专家敏感。 “CodeSafe卡了?” “正常正常,12万行确实需要时间” “BugKiller没卡啊,你看那个绿条” “速度差距出来了” BugKiller先跑完。韩路一靠在椅背上,双手交叉放在脑后,等着。屏幕上BugKiller的结果已经静静地排好了,五十八条检出整整齐齐。 CodeSafe的蓝色进度条还在78%。 弹幕开始倒计时。“80了80了”“快了快了”“这个速度差……” 等了将近两分钟,CodeSafe才到100%。 弹幕:“第一轮只差七秒,第二轮差了两分钟”“十二万行拉开这么多?”“代码量翻四倍,差距翻十几倍” 专家组核验。这次比第一轮久。弹幕能看到专家们反复对照代码,有人皱眉翻回去重看。 十一分钟后,核验结果上屏。 BugKiller:标记总数60个,确认Bug 58个,误报2个。误报率3.4%。 CodeSafe:标记总数48个,确认Bug 41个,误报7个。误报率17.1%。 专家组组长这次没笑。“CodeSafe有7个误报,其中4个是把正常的异常处理逻辑标成Bug,这说明代码规模增大后,检测引擎的上下文理解在下降。BugKiller多检出的17个里,确认15个为真实Bug。” 在线人数四万六千。弹幕越来越密了。 “17%???” “专家说了,规模一大就不行” “17%的误报率在生产环境里根本不能用” “BugKiller稳如老狗,3.4%” 赵文渊盯着屏幕上的数字。直播里不能暂停,不能查日志。所有人都在看着他。 “十二万行项目确实对检测引擎有更高要求。我们现在正在进行下个版本的迭代和优化。” 韩路一的声音从右边传过来。不大,但收音很清楚。 “赵博士,开始第三轮吧。” 弹幕:“不给他解释的时间”“尊重对手的方式,快点结束” 主持人看了一眼两边。 “第三轮,Java企业级核心系统,代码量约三十五万行。” 在线人数破五万。弹幕停了一瞬间,五万人同时屏住了呼吸。 第二十九章 道高一丈 “开始。” BugKiller的绿色进度条匀速推进,跟前两轮没有区别,10%、20%、30%,速度几乎一样。 CodeSafe的蓝色进度条从一开始就不对。 10%的时候还正常,20%的时候明显变慢,30%的时候几乎是在一格一格地挪,右侧实时面板上标记的问题数在跳—— 标记数:14...21...35... 弹幕先注意到的不是数字,是速度。 “CodeSafe卡住了?” “没卡,在跑,就是巨慢” “BugKiller三十五万行跟前两轮一个速度,CodeSafe这是怎么了” 40%,标记数跳到58。 弹幕开始算账了。 “BugKiller扫同样的项目根本不卡,CodeSafe40%就跑了快三分钟?” “第二轮12万行慢两分钟,这次35万行怕不是要慢十分钟” “这不是线性增长,这是指数级的吧……” 50%,标记数79,进度条挪一格要七八秒。 “我现在的心情就像看着温度计往上走” “赵博士脸色不好看了” 韩路一坐在五米外,屏幕上BugKiller的扫描早就跑完了,他没说话。 CodeSafe的进度条还在爬,60%、70%,标记数过了一百。 弹幕已经从讨论变成了围观。 “这已经不是竞争了” 80%。 全场等着。 100%,标记总数:123个。 专家组核验了将近四十分钟。 等待期间,主持人拿着话筒走到两人中间,“核验还需要一些时间,我们先跟两位聊聊。赵博士,第三轮的感受?” 赵文渊坐在座位上没动。“等结果吧。” 就四个字,主持人愣了半秒,转向韩路一。 “NullPointer这边呢?三轮下来什么感受?” 韩路一靠在椅背上,挺松弛的:“感受谈不上,说说BugKiller的影响评估吧,刚才专家组提过,我们每条检出结果会附带一个修复成本估算。这个功能底层逻辑是把Bug跟业务场景做关联,不只告诉你哪里有问题,还告诉你这个问题上线之后会亏多少钱。” 弹幕:“NullPointer开始卖产品了”“这人心态是真好”“赵博士那边气氛不太对啊” 主持人追问:“这个功能是怎么想到的?” “接自由单的时候。,甲方不关心你修了什么Bug,关心的是修完之后他少亏多少。看多了就知道,Bug本身不值钱,Bug造成的损失才值钱。” 弹幕刷了一波:“这个insight值一个亿”“产品经理看了沉默” 主持人又转向赵文渊:“赵博士对影响评估这个方向怎么看?” 赵文渊看了一眼还在核验的专家组:“是个好方向。” 没了,弹幕又开始刷省略号。 核验区那边,一位专家摘了眼镜揉眼睛,看了两遍同一段代码才落笔。 核验结果上屏。 CodeSafe:标记总数123个,确认Bug 76个,误报47个,误报率38.2%。 BugKiller:标记总数132个,确认Bug 127个,误报5个,误报率3.8%。 专家组组长拿起话筒停了一下。 “CodeSafe在三十五万行级别,误报率38%。误报集中在深层调用链和跨模块依赖,检测引擎处理大规模代码时出现了系统性偏差,不是个别误判。” “BugKiller误报率3.8%,跟前两轮持平。一百二十七个检出里有几个修复成本估算精确到人天级别,这个能力我们在同类工具上没见过。” 在线五万三千人。 弹幕彻底失控。 “38%????” “系统性偏差,专家原话” “这不是代码审查,这是占卜” “博士三千字白写了” “让产品说话,产品说了,我是假的” 最后这条弹幕一秒之内被复制了几十遍。满屏都是“让产品说话,产品说了,我是假的”。 赵文渊从第三轮开始就没说过一句话。 他面前的屏幕亮着,89个检出,34个误报,他比任何观众都清楚这些数字意味着什么。三万行的时候没问题,十二万行开始暴露,三十五万行全面崩溃。这不是参数调不调得好的问题,是检测引擎的核心架构在大代码库上扛不住。 他在公测阶段从来没跑过三十五万行的项目。 主持人等了三秒。 “赵博士,最后总结一下?” 赵文渊抬头看了一眼镜头。 “感谢社区的监督,我们会认真复盘。” 然后他站起来,摘下领夹麦放在桌上,走了。 摄像机跟了他两秒,直播间在线人数在他推门的瞬间又涨了三千。 弹幕最后一波高潮—— “完了彻底完了” “赵博士确实体面,但体面有什么用,38%就是38%” “让产品说话,产品说:我死啦” 苏念念在床上看到第三轮结果的时候一脚把被子蹬开了,差点把电脑踹下床。 她把三轮数据录进表格,截了六张弹幕精华图。BugKiller后台数据,直播还没结束的时候注册就开始涨了。 当天新增注册突破两千。 两天后,直播录像播放量破百万,“38%误报率”成了技术圈的新梗。 马小飞的精华剪辑视频标题,《CodeSafe创始人说“让产品说话”,产品说了,“我是假的”》,三十万播放。 BugKiller注册用户一周之内从三千多飙到八千多。 赵文渊三天没发任何社交媒体动态。 CodeSafe内部发了一封全员邮件:暂停所有市场推广,全力修复核心引擎。 韩路一在Bug Café靠窗的位子上喝咖啡,苏念念坐在对面,笔记本电脑开着,手指没停过,她在整理直播后的用户数据和注册趋势。 整理到一半,她头也没抬说了一句。 “他不该来的。” 韩路一端着杯子没接话。 苏念念接着说:“他的产品在小项目上是真的好,如果没有这场直播,他至少还有时间慢慢修,现在全世界都知道了。” 韩路一喝了口咖啡,说:“他不会放弃的。” 苏念念抬头看了他一眼。 “这话什么意思?” 韩路一没解释。 五月十七号,直播三天后。 赵文渊坐在井安区的办公室里,两块屏幕都亮着,但他只盯着左边那块。 CodeSafe数据面板,新增注册连续三天为负,卸载的比注册的多。 投资人的微信消息他没回,第一条还客气,第二条直接了:“下周董事会我需要一个说法。”第三条他没看。 媒体的采访请求也没回。 他打开了一个从来没仔细看过的页面,大型项目测试日志。 公测以来跑的都是五万行以下的项目,没人往大代码库测过。 现在他看了,全量遍历在二十万行以上指数级增长,上下文窗口溢出,模型幻觉。架构选型的根本错误。 他知道怎么修,要花六到十二个月,但账上的钱撑不了那么久。 社区已经给CodeSafe判了死刑,“38%”一个梗比任何分析文章都有杀伤力。 赵文渊靠在椅子上,闭了一会儿眼。 然后拿起手机。 通讯录翻到底部,三天前那个没回的号码,王志远。 三天前他还可以谈条件。 他按下了拨号键。 响了两声。 “王总。鼎盛云的事……直播的结果您应该看到了。我想问一下,您这边的意向还在吗?” 电话那头传来王志远的笑声。 “赵博士,你觉得我为什么找你?” 赵文渊没说话。 “你的产品好不好,跟我有什么关系?”王志远的语气轻松得像在聊天气,“鼎盛云采购代码审查工具,走的是集团信息化预算。预算批了,钱就得花掉。花在谁身上,那是我说了算的事。” 顿了一下。 “你需要一张大单活下去,我需要一个合作愉快的供应商,这事从头到尾就这么简单。” 赵文渊握着手机,后背贴在椅子上。 “……明白了。” “明天下午,我让人把合作方案发你,细节咱们见面聊。” 赵文渊挂了电话。 手机放在桌上,屏幕灭了,映出他自己的脸。 他闭上眼,王志远说得很清楚了,产品好不好无所谓,38%还是3%无所谓。钱是预算里的钱,花不花、花给谁,是另一套逻辑。 三天前他还可以谈条件,现在他只能接条件。 筹码变了。 韩路一不知道这通电话,他在502写v1.2的新功能。 窗外老小区的灯一盏盏亮起来。 第三十章 两千九百九十九 苏念念做了一周竞品调研。 国内SaaS代码审查工具,她把市面上十一款产品的功能、定价、付费模式全拆了一遍。整了一张飞书表格,四个Tab,十七列,三十二行。 发给韩路一的时候附了一句:“你先看,不急。” 韩路一晚上十一点回复:“看了。” “Pro版收个999吧,加几个功能就行了,便宜点跑量。” 苏念念盯着屏幕。 十七列。三十二行。 做产品经理这么多年,她学到的第一件事,开发者永远不知道自己的东西值多少钱。第二件事,开发者总觉得便宜点跑量就是定价策略。 她回了一条:“明天见面说。带上你的笔记本。” 第二天。Bug Café靠窗的位子。 苏念念打开表格第三个Tab。竞品功能对比。 “先说清楚一件事。免费版和付费版的区别不是功能多一点少一点。它们面向的用户完全不同。” 韩路一端着美式等她说。 “免费版给个人开发者。扫Bug,出报告,够了。一个人写代码一个人修,不需要别的。这一层不赚钱,让他用上瘾就行。” “付费版给团队。团队需要什么?三样东西。” 她竖了三根手指。 “第一,影响评估。”她指了一下表格里那一列,整张表只有BugKiller有数据,其他十款全是空的。“个人开发者看到Bug就修了,不需要知道这个Bug值多少钱。但团队不一样。团队里做决定的人不是写代码的人,是批预算的人。你告诉CTO「有个Bug」,他说排进下个Sprint。你告诉他「这个Bug每个月亏六十万」,他今天就批加班费让人修。” 她看着韩路一。 “影响评估不是给程序员看的,是给他老板看的。免费版不开这个功能。想看Bug值多少钱,升Pro。” “第二,CI的API接口。” “这个已经有人在问了。”韩路一说。 “内测群里四个CTO在问。因为个人开发者手动跑一遍扫描就完了,但团队要的是每次代码提交自动触发检测,PR不过BugKiller就不让合。这是工作流级别的集成。” 她看了韩路一一眼。“你知道接进CI以后意味着什么吧?” “迁移成本。” “对。换工具等于重配整条部署链。能嵌进基础设施的东西,不是999能定价的。” “第三,团队看板。Bug趋势图、修复率、各模块健康度,每周自动生成报告。技术上不复杂,但对续费率影响最大,因为它让老板每周都能看到BugKiller在帮他省钱。他看到的不是工具,是ROI。” 韩路一靠在椅背上。 苏念念接着说:“所以价格。个人免费,不动。团队Pro,2999。” “怎么定的?” “大部分公司三千以下的SaaS订阅,技术负责人自己能批。过了三千要走采购流程找VP签字。2999是team leader能拍板的最高价。” 韩路一看了她三秒。“行。” 苏念念合上笔记本。她想说“十七列三十二行没白做”,但忍住了。 “Pro版2999,下周上线付费模块。” …… 苏念念坐在海狸科技的工位上。面前两个窗口。左边是空白的运营周报模板。右边是BugKiller后台。 一条支付回调通知弹出来。 BugKiller Pro·月度订阅·¥2,999.00·支付状态:成功·用户:鹏城跨境达科技有限公司 她的手停在键盘上。 在海狸的三年。前两年是好的。第一年跟着老产品总监做智能客服系统,从需求调研到灰度上线,完整走了一遍。第二年自己带了数据看板项目,七个人的小组,三个月上线,DAU做到一万二。怎么跟开发吵架,怎么在评审会上用数据堵嘴,怎么把一个想法从零变成产品,都是那两年学的。晋升答辩那天,老总监给她写的评语是“团队里成长最快的PM”。 然后老总监离职了。新来的产品总监叫方旭,从某二线大厂跳过来的,简历好看但产品圈没人认识。他到岗第一周开产品方向讨论会,PPT标题写着“海狸AI产品矩阵3.0”。苏念念坐在第二排,发现第七页的DAU趋势图纵轴起始值不是零,视觉上斜率被拉高了三倍。她举手说了。方旭笑着点头:“好的,感谢,会后我们对齐一下。” 再也没有对齐过。 第三年。她的Q1季度汇报做了四十页PPT。数据、反馈、规划,每一页都是她写的。汇报那天方旭说“我来讲,你在台下配合回答问题就行”。四十页讲完,VP说不错。全程没人提她名字。上个月海狸内部创新奖公布,她刷朋友圈看到同事转发,她带的那个数据看板拿了银奖。获奖人写的是方旭。她翻了三遍公告。没有“苏念念”三个字。 她对着屏幕上的2999看了很久。 刚才给韩路一讲的那张表,十七列,三十二行,十一款竞品全拆,不是天上掉下来的。是在海狸做了三年产品才练出来的手艺。但海狸已经不需要她了。 她拿起手机打给韩路一。 “你看到了吗?!” “看到了。” “第一笔!第一笔钱!!” 她听到自己的声音在抖。丢人。管不了了。 “2999块你哭什么?” “这是第一笔!第一笔!你懂不懂!”她吸了一下鼻子,“我在海狸三年,到最后连自己做的东西名字都留不下。你一个人写的产品,有人愿意掏钱了。两千九百九十九块。” “嗯。” 安静了两秒。她以为他要挂了。 “2999。” “……什么?” “第一笔收入,2999。这是你定的价,不是我说的999。” 苏念念张了张嘴,又合上了。 “我继续盯后台了。”她说。 周围海狸的同事看过来一眼。她把手机扣在桌上,对着屏幕上的支付通知发了很久的呆。 接下来一周。 第三天,14个。第五天,31个。第七天,47个。 苏念念在飞书上建了一个文档,《BugKiller付费数据周报#1》。第一行: 截至5月26日,付费用户47,月收入¥140953。用户留存率82.4%。 她在82.4%后面打了三个感叹号,又删掉了两个。留了一个。 SaaS赛道正常留存率30%到50%。82%意味着用户用了就不走。这个数字稳住了,BugKiller根本不需要烧钱获客。口碑自己会跑。 她把文档发给韩路一。他回了一个字:“嗯。” 海狸这边。 产品群里有人问“谁有Q2用户增长数据的源文件”。苏念念打了一行字,那些表是她做的,Q1到Q2三十多张,来源、口径、公式全是她设的。打完准备发送的时候,另一个人已经回了:“我问问新来的实习生。” 她删掉了那行字。 另一次更离谱。飞书公开频道里有人转发了方旭的产品路线图,里面有一张用户旅程地图。她一眼就认出来了,配色方案是她的,节点命名是她的,连第三个触点的备注错别字都没改。底下标注:制作人,方旭。 每天在海狸最开心的时候,是偷偷把浏览器缩成一条缝看BugKiller后台。刷新一下,付费数字跳了一个。再刷新,又跳了一个。 手机震了一下。内测群里有个CTO发消息:“请问有年费方案吗?我们走采购年付更方便。” 心在那边,人在这边,中间隔着的是一纸劳动合同。 她把手机屏幕朝下扣在桌上。面前的运营周报还是空的。 新一季度的OKR定好了,上面只有一条:“协助完成运营支持相关工作。” 第三十一章 必输的案子 苏念念拎了一袋橘子敲502的门。 “我想辞职,全职来做BugKiller,产品、运营、市场,我一个人都能干。” 韩路一看着她。 “但你要给我股份。” “多少?” 她没犹豫,BugKiller的数据她比韩路一还清楚,注册过万,付费47,留存82%,月收入14万。定价方案是她做的,竞品分析是她做的,付费模块上线的运营节奏是她定的,这些活她已经免费干了三个月。 “20%。” “行。” 韩路一秒答。 她嘴角动了一下,没笑出来,又绷回去了。 “你连想都不想?” “你已经免费干了三个月,没有你就没有BugKiller,20%不多。” 苏念念没接话,拿了个橘子剥开,一瓣一瓣地吃,吃完了才开口。 “我去递辞呈了!” 第二天她就交了辞职申请。按规定要提前三十天通知,方旭当天就回了邮件:“交接工作不多,不用等一个月了,月中走完流程吧。”快得不正常。正常领导都会安排交接,他连问都没问她手上有什么。 六月十五号,办离职手续。 HR把一摞文件推过来,社保转移、公积金封存、工资结算,一项一项签。签到最后一页的时候,HR翻出一份单独的文件。 “这份需要您确认一下。公司决定对您启动竞业限制,限制范围包括人工智能、代码审查、软件质量保障及相关领域,期限两年。公司将按协议约定按月支付经济补偿金,第一笔月底前到账。” 苏念念拿着笔没动。 HR顿了一下,又补了一句:“需要提醒您的是,协议中约定的违约金为年薪的三倍。” 她在离职交接单上签了字,走出海狸科技大楼。六月中的海城闷热,阳光白晃晃的,晒得人发晕。 站在路灯底下,她把刚才的流程又想了一遍。方旭主动免了三十天通知期,连交接都不要,不是痛快,是陷阱。调岗,关权限,不叫她开会,一步一步把她从核心业务上剥下来。等她终于走了,再用竞业协议给她最后一击。 她打车来了韩路一的家,上了楼,敲502的门。 韩路一开门看到她的脸色,让开身。 她坐下来,把那份竞业协议从包里抽出来放在桌上。 “海狸启动竞业了,范围写的是人工智能、代码审查、软件质量保障,违约金是年薪三倍,一百多万。” 说完了她才发现自己一直在攥包带,松开,手心好多汗。 “你认不认识做劳动法的律师?” 韩路一看了她两秒。 “认识一个,博衡律师事务所的,之前合作过,很强。” 他掏出手机发了几条微信。苏念念坐在旁边,看着他打字,不知道该说什么。过了一会儿他抬头:“明天下午两点,我陪你过去。” 回到出租屋,苏念念坐在床上打开手机。 博衡律师事务所官网,合伙人页面,往下翻,顾司玥。 照片是标准商务照,黑色西装,白衬衫,细框眼镜,低马尾。看起来跟她年纪差不多。 往下看。 复旦大学法学院,十六岁自主招生入学,本科GPA全院第一,哈佛法学院LLM,全奖,二十一岁回国入职博衡,执业六年,博衡所内最年轻高级合伙人。 苏念念看了两遍。 十六岁上复旦?这履历也太强了吧! 她又翻了翻公开的案例记录和媒体报道:知识产权、互联网合规、商业诉讼、竞业限制纠纷,评价清一色,“专业”“高效”“逻辑极强”。 韩路一什么时候认识这种人的。 她把手机扣在床上,看着天花板,外面的灯光从窗帘缝里照进来。 第二天下午,博衡律师事务所。 苏念念第一次走进这间办公室。 窗台上一盆绿萝,叶子绿得发亮。 顾司玥从桌后站起来。 本人比照片瘦,气场比照片冷。 她翻苏念念带来的材料,竞业限制协议原件、补偿金发放通知、离职交接单。她翻得很快,但不跳页,每一页都看完了。 看完之后没马上说话。 她把补偿金发放通知抽出来,放在桌面最上面。 “苏小姐,先说结论,这个案子不好打。” 顾司玥看着苏念念。 “大部分竞业纠纷,要么公司不付补偿金,要么限制范围写得太宽泛法院不认,程序上有硬伤,解除起来不难。你的不一样,海狸科技每个月按时打钱,限制范围精准卡在你的岗位上,程序上挑不出毛病。” 顾司玥问:“苏小姐,如果你坐在仲裁庭上,对面律师问你,「你在海狸科技负责的产品是什么?」你怎么回答?” “……AI代码审查工具。” “他会接着问:「你现在要加入的公司做的是什么产品?」” 苏念念没说话。 顾司玥把文件夹合上。 “一模一样的赛道,一模一样的产品方向,只看业务重合度的话,这是一个你必输的案子。” 第三十二章 他帮你赢了 苏念念攥紧了椅子扶手。 “那怎么办?等十二个月?” 顾司玥没有回答。她重新打开文件夹,把苏念念带来的三份材料又翻了一遍。竞业协议原件,补偿金发放通知,离职交接单。 翻到离职交接单,她停了。 “你交接单上的岗位,写的什么?” 苏念念没明白她为什么问这个。“运营支持专员。” 顾司玥把离职交接单和竞业协议并排放在桌面上。一左一右。左边“岗位”一栏写着运营支持专员,右边限制范围写着人工智能、代码审查、软件质量保障。 “你原来是产品经理。什么时候变的运营支持?” “年假回来第一天。五月十四号。产品总监方旭通知的,他空降来了半年,之前请年假也是他批的。” “调岗之后,AI代码审查项目的产品文档权限还有吗?” “没了。” “数据看板?” “第二天就关了。” “技术评审会议?” “不叫我了。一次都没有。” “飞书工作群呢?” “产品核心群踢了。只留了一个部门大群,发通知用的。” 顾司玥拿起笔,在便签纸上快速记了几行。权限关闭日期,群移除时间,评审参会记录。 “调岗到你辞职,中间多久?” “三周多。”苏念念想了想,“二十二天。” 顾司玥合上文件夹。 “他帮你赢了。” 苏念念没听懂。“谁?” “方旭。你那个空降总监。” 顾司玥把两份文件并排推到苏念念面前。 “竞业限制的前提是劳动者掌握商业秘密。仲裁庭判断这个前提成不成立,看的不是你曾经接触过什么,是你离职时的实际岗位和信息接触范围。” 她伸手指向离职交接单。 “你离职的时候,岗位是运营支持,文档看不了,看板进不去,评审一次没参加。对吧?” 苏念念点头。 “所以。”顾司玥拿起那份竞业协议,指了一下限制范围那一栏。“海狸自己的系统记录证明,你在离职前二十二天已经不接触AI代码审查业务的任何核心信息。权限是他们关的,群是他们踢的,会是他们不叫你开的。” 她放下协议。 “你不能一边说她不配留在项目上,一边又说她重要到不能去别的公司做同类项目。两个说法只能选一个。” 苏念念的手松开了扶手。她在这间办公室坐了半个多小时,后背一直在出汗。 顾司玥接着问。“你辞职前后,海狸还走了别的人吗?” “两个。一个前端,一个测试。同一个部门的。” “收到竞业通知了吗?” 苏念念想了想。“没有。” “同部门、同时期、同样能接触产品信息的人,都没启动竞业。只有你。”顾司玥的手指点了一下桌面。“这不是公司制度,是定向限制。仲裁庭对选择性执行非常敏感。” “所以……能赢?” “我不说能赢。”顾司玥打开电脑,开始敲字。“对方的逻辑链有一个断裂。这个断裂不是你造成的,是他们自己造成的。调岗是他们做的,权限是他们关的,选择性执行是他们选的。我只需要把这三件事摆到仲裁员面前。” 她抬起头。 “申请仲裁。” …… 浦东新区劳动人事争议仲裁委员会。 走廊很长,日光灯白得刺眼,两边一模一样的门。空气里有股消毒水混着旧文件的味道。 苏念念坐在候审区的塑料椅上。旁边坐着韩路一。 “紧张?” “还好。” 她的脚在地上点了三下。 顾司玥从走廊另一头走过来。黑色西装,低马尾,文件夹夹在腋下。鞋跟敲在地砖上,节奏不快不慢。 “等一下不管对方说什么,你只回答我问你的问题。其他时候不要开口。” 仲裁庭不大。一张长桌,三位仲裁员坐在对面。左边是苏念念和顾司玥,右边是海狸科技的代理律师,戴金丝眼镜,四十来岁,面前一摞文件。韩路一坐在旁听席。 海狸的律师先陈述。 声音不急不缓。苏念念在海狸科技任职期间深度参与AI代码审查核心产品设计,接触用户数据、产品路线图和技术架构文档。竞业限制补偿金按协议约定按月足额发放,程序无瑕疵。BugKiller与海狸在研产品属于直接竞品,业务方向高度重合。 每一条都是真的。她确实做过那些事,接触过那些信息。 对方律师说完,合上文件。 仲裁员翻了一下材料,示意申请人代理人发言。 顾司玥站起来,打开证据目录。 “仲裁员好。关于被申请人主张的竞业限制条款效力,申请人提交两组证据。” 第一组。岗位变更与信息隔离。 离职交接单原件,岗位一栏:运营支持专员,非AI产品部产品经理。申请人向仲裁庭申请调取被申请人IT系统记录,被申请人已提供。权限变更精确到分钟,5月14日上午9:47,产品文档库权限关闭。5月14日下午2:12,数据看板访问权限移除。5月15日上午10:03,产品核心飞书群移除。技术评审系统会议记录:5月14日至6月15日,AI代码审查项目召开技术评审七次,苏念念参会次数,零。 “离职交接单由被申请人出具,IT记录由被申请人系统生成。申请人在离职前二十二天已不在AI产品部,不再接触代码审查业务的任何核心信息。” 她把打印件递给仲裁员。 第二组。选择性执行。 两份离职证明复印件放上桌。 “申请人同部门、同时期离职的两名同事,一名前端开发,一名测试工程师,均未收到竞业限制通知。竞业限制是公司统一制度,还是针对申请人个人的定向行为?如果是制度,为什么同岗同期离职人员不适用?” 海狸的律师翻了一下材料。没有回应。 顾司玥合上文件夹。没有继续。 仲裁员在看前两组证据。主审仲裁员抬起头,翻了翻手里的权限变更记录,转向海狸的律师。 “被申请人主张苏女士掌握核心商业秘密,但贵公司在她返岗当天就将她调离核心项目并关闭全部系统权限。请问贵公司是否仍然认为苏女士在离职时接触商业秘密?” 海狸的律师停了两秒。 “调岗是公司正常的人事安排,与竞业限制的启动是两个独立事项。” 仲裁员低头记了一笔。 顾司玥开口了。 “如果调岗与竞业无关,那请问被申请人启动竞业的依据是什么?是申请人在运营支持岗接触到的信息,还是她二十二天前在另一个岗位接触到的信息?” 她停了一拍。 “如果是后者,被申请人自己关闭了她的信息接触渠道,切断了她与核心项目的一切联系,又主张她仍然是需要限制的对象。这个逻辑矛盾不是申请人造成的,是被申请人自己造成的。” 海狸的律师翻开一页文件,看了三秒,合上了。 仲裁庭宣布休庭合议。 苏念念坐在椅子上没动。顾司玥在旁边整理文件,一页一页按顺序放回去。 十四分钟。 仲裁员回来了。 裁决结果:竞业限制条款对苏念念不具有约束力。海狸科技应停止发放竞业限制经济补偿金,并返还已扣款项。 苏念念听到“不具有约束力”六个字的时候,脑子嗡了一下,什么都没想起来。 走出仲裁庭。 走廊还是一样长,日光灯还是一样白。她在走廊椅子上坐下来。腿有点软。 顾司玥站在旁边打电话,已经在聊另一个案子了。语气跟刚才庭上一模一样,没有起伏。 韩路一靠在对面墙上等。 苏念念坐了两分钟。站起来。 “顾律师。” 顾司玥挂了电话看向她。 “你好可怕。” 顾司玥笑了一下。庭上从没见过这个表情。 “但是好可靠。” “律师费账单之后发你。”语气还是冷的,但她从包里抽了一张纸巾递过来。 苏念念接过来。手心全是汗。 顾司玥点了一下头,转身往电梯方向走了。脚步声渐远,在拐角消失了。 苏念念看着那个背影。刚才在庭上,顾司玥翻证据的速度、提问的节奏、停顿的时机,全都精确到秒。 从头到尾,这个人就没觉得会输。 韩路一走过来。 “走吧。” 两人从仲裁委出来。外面下着小雨。六月底的海城,闷热裹着水汽。 “韩路一。” “嗯。” “我以后全职做BugKiller了。产品、运营、市场,我全包。” “你之前不就在包了吗。” 苏念念愣了一下,然后笑了。 “那不一样。之前是帮忙。” 她在雨里站了两秒,没打伞。 “现在是我的了。” …… 晚上。韩路一给顾司玥发消息。 “顾律师,我们准备注册公司。股东协议、知识产权归属这些,需要你帮忙拟。后面常年法律顾问也想找你,有兴趣吗?” 过了半分钟。 “营业范围和股权比例发我,我出一版框架。” 又过了几秒。 “常年顾问不打折。对了,苏小姐的律师费,等公司注册完可以开给公司。你的也是。” 他搁下手机。窗外雨还在下。 手机屏幕亮了一下。苏念念发来一条飞书链接。 《BugKiller全职运营计划v1.0》。三十七页。 文档创建时间:今天下午4:12。 仲裁庭散场是三点半。 第三十三章 瓢虫 七月一号。顾司玥发来三份文件:股东协议、知识产权归属协议、公司章程。韩路一65%,苏念念20%,期权池15%。两人分别签完,拍照回传。顾司玥一小时内确认。 三号,海城源码科技有限公司营业执照核准通过。注册资本一百万,认缴。经营范围写了半页纸。 注册地址填的是顾司玥推荐的一个浦东创业孵化器。实际办公地址,Bug Cafè。 七月的海城,蝉从早叫到晚。 中午的时候,手机亮了一下。 林晚晴的微信:“今晚过来吃饭?” 隔了几秒,又来一条:“不是什么大餐,就是家常便饭。” “好啊。我几点过去?” “五点半来就行。” 五点半,韩路一敲了501的门。林晚晴来开门,穿一件浅灰色的居家T恤,头发扎成高马尾,碎发别到耳后。身后厨房里传来油烟机的声音。 “来啦,进来坐。”她侧身让开,“排骨还在炖,你先坐会儿。” 501的门韩路一路过了好几年,第一次从外面走进去。 玄关很窄,一双大人的布鞋和一双小孩的粉色凉鞋并排放着。林晚晴递过来一双一次性拖鞋。客厅不大,跟502一样的户型,但布置的风格完全不同。茶几上铺着一块碎花桌布,角落堆着朵朵的蜡笔和画纸,冰箱门上贴满了手掌大的涂鸦,太阳、花、一只巨大的瓢虫。 墙上挂着四五幅插画,装了简单的白色画框。 一只猫在窗台上晒太阳。雨天的弄堂口,积水映着半盏路灯。一个小女孩在蒲公英田里跑,裙摆被风吹成一个弧。 每一笔都轻轻的,颜色也轻轻的,像怕把纸弄疼。 “路一哥哥!!” 朵朵从房间里冲出来,整个人挂到他腿上。五岁的小孩力气不大,但抱得很紧。 “路一哥哥你来我家了!你看你看,” 她举起一张A4纸。上面是一只大象,四条腿粗细不一样,鼻子画成了一条彩虹。 “好看。”韩路一蹲下来。 “它鼻子会变颜色!因为它喷的水是彩虹做的!” “有道理。” “那你给它起个名字。” “彩虹大象。” 朵朵想了一下。 “不好听。叫胖胖。” “行,胖胖。” 林晚晴在厨房喊了一声“朵朵别缠着人家”,但语气没有真的在制止。 朵朵拉着韩路一在客厅转了一圈。她要给他看她所有的画,所有的贴纸,还有她的宝贝,一个塑料的万花筒,幼儿园老师送的。 “你看!转一下就变了!” 韩路一接过来转了一下。花花绿绿的碎片拼成一个图案,再转一下,又变了。 “好不好看?” “好看。” 厨房传来炒锅的声音,油在跳。 饭桌是折叠的小方桌,平时靠墙收着。林晚晴搬出来支在客厅中间,刚好够三个人。 四菜一汤。红烧排骨、油爆虾、清炒丝瓜、凉拌黄瓜,一小锅番茄蛋汤。米饭刚才电饭煲里盛出来,还冒着热气。 韩路一夹了一口排骨。 “怎么样?”林晚晴站在旁边没坐下来。 “好吃。” “真的还是客气?” “排骨软烂程度刚好,酱汁收得干净,葱花是最后放的,还有香味没散。” 林晚晴愣了一下,低头坐下来,给朵朵碗里夹了一块排骨,筷子把骨头剔了才放进去。朵朵吃得满嘴都是酱。 “路一哥哥,你天天来吃好不好?” “朵朵。”林晚晴拿纸巾擦她嘴角。 “好嘛好嘛——” “人家有自己的事。” “小朵,你妈妈做饭也很辛苦的啊。”韩路一夹了第二块排骨。 吃到一半的时候林晚晴放下筷子,像是找到了一个合适的空隙。 “谢谢你介绍的律师。”声音不大。“沈律师今天打电话告诉我的。保全令通过了。” 韩路一点头。 “她很好。”林晚晴停了一下。“不像我想象的律师那样。她很有耐心。问了很多我以为不重要的事,朵朵幼儿园在哪里、平时谁接送、他上一次来是什么情况。问完了跟我说,「林女士,我们有优势,别怕。」” 她低头扒了一口饭。 “他不能再随便来了。” 这句话说得很轻。像是在跟自己确认。 “嗯。” 朵朵听不懂大人在聊什么,专心对付碗里的排骨。 “对了,” 林晚晴放下筷子,起身去房间拿了一样东西。 一幅画。巴掌大,画在一块棉布画框上。 一扇老式木门,他们楼道里那种,暗红色的漆有一点剥落。门把手上停着一只瓢虫。瓢虫画得很细,触角弯弯的,翅膀上五个黑点。门的木纹也细,能看出一圈一圈的年轮。 “朵朵一定要我加上瓢虫。”林晚晴把画递给他。“我就画了一只。” 韩路一接过来。棉布框很轻。 “谢谢你介绍的律师。也谢谢……之前的事。” “不客气。”韩路一说。 朵朵凑过来看。“妈妈画的!我也画了一只!但是我画的瓢虫有十一个点!” “为什么是十一个?” “因为我想让它多几个!” “合理。” …… 林晚晴开始收碗。韩路一站起来要帮忙,她侧身挡了一下。“你坐着。” 语气不重,但没有商量的意思。 朵朵钻到沙发上拽他袖子,翻出自己的画册一页一页给他看。每一页都要解释,这个是幼儿园的小猫、这个是妈妈、这个是冰淇淋怪兽、这个是路一哥哥。 “等等,这个是我?” 纸上画了一个很长的火柴人,戴着巨大的圆眼镜,身边飘着一只跟人一样大的瓢虫。 “对呀!你和你的瓢虫!妈妈说你是捉虫子的人。” “……差不多。” 林晚晴在厨房洗碗,水声哗哗的,偶尔隔着门笑一声。 韩路一抬头扫了一眼501的四周。墙上那几幅插画,色彩是暖的、流动的,像一个沉默的人把所有没说出口的话都画在了纸上。 角落的画架上有一幅画了一半的插画。一只橘猫趴在窗台上,窗外画到一半没画完,铅笔线条还在。旁边的小桌上摊着几张打印的参考图,看着像是接的商单。 “路一哥哥你明天还来吗?”朵朵仰着头。 “看情况。” “什么情况?” “忙不忙的情况。” “不忙就来。”朵朵用一种不容拒绝的语气说。 “朵朵该洗澡了。”林晚晴从厨房出来,手在围裙上擦了一下。 “不要,” “洗完澡可以看一集小猪佩奇。” 朵朵立刻从沙发上跳下来。“路一哥哥拜拜!明天见!” 说完拖着拖鞋跑进卫生间。 韩路一站起来。“我回去了。晚饭很好吃。” 林晚晴把他送到门口。走廊的声控灯亮了,白光把两扇门照得一模一样。 “把画挂起来。”她说。 “我会的。” 502的门关上了。 韩路一把那幅瓢虫画放在显示器旁,就在朵朵之前画的那张大瓢虫蜡笔画边上。一大一小,各有美感。 他拿起手机给顾司玥发了条消息。 “谢了。林晚晴的保全令。” “谢什么。沈予微出的庭,跟我有什么关系。” 过了两秒。 “不过你推荐得不错。她的case不难,予微处理得很好。” 帮朵朵就像在帮小时候的自己,但他不会说出来。 顾司玥也没再说话。 打开电脑,准备继续写代码。 手机亮了。苏念念。是一张截图。 科技媒体首页—— 《重磅:CodeSafe宣布与鼎盛云达成战略合作,正式接入鼎盛云开发者工具链》 副标题:鼎盛云15万企业开发者将一键接入CodeSafe代码审查引擎。 截图下面跟了一行字: “巨头入局了。” 第三十四章 围剿 八月。Bug Cafè。下午三点。 苏念念的笔记本电脑摆在桌子上,六个浏览器标签页排成一排,飞书文档、后台数据、媒体截图。她从下午一点半开始说,说到现在,冰拿铁喝了两杯,嗓子有点哑。 韩路一只手撑在桌子上,托着下巴,一直在听。 数据他看过了。七月的月报苏念念凌晨四点发来的,十一页。注册用户18400,月活12300,付费团队142个,月收入42.6万。看上去还在增长。 但拐点已经出现了。 “七月第一周日新增注册390,第四周402。蓝线基本没动,个人开发者还在增加。”苏念念指着屏幕上两根折线。“但橙线,新增付费团队,第一周12个,第四周3个。断崖。” “付费转化率从3.1%跌到1.4%。”她切到另一个页面,指了一下右上角的数字。“七月推理成本,八万三。” 韩路一看着报告,没有说话。 “每次扫描跑一遍模型,大仓库跑好几轮。月活一万二,一个月差不多十万次推理请求。”苏念念说。“五月份月活三千的时候,推理成本是两万一。” 用户增长了四倍,成本也增长了四倍,收入却只增长了两倍。 “免费用户占月活88%,吃掉四分之三的算力,贡献零收入。”她合上电脑。“企业不敢掏钱,个人不用掏钱。照这个趋势,年底推理成本能吃掉月收入的三分之一。” 苏念念说的都是推理成本。但想留住客户,模型得一直迭代,训练成本才是真正的大头。 这些韩路一都知道。七月中旬CodeSafe正式接入鼎盛云的那天晚上,苏念念发了截图过来,他就知道后面的事不会简单。但一个月下来,局面比他们预想的还难看。 媒体上两周内冒出了六篇行业分析文章,四个平台,论点整齐得像同一份大纲拆出来的,“独立开发者产品灵活但缺乏企业级保障”“大厂入局标志着赛道进入成熟期”“真正的壁垒不在检测率,在生态集成和合规能力”。通篇没提BugKiller的名字,但每一段都在说BugKiller。 客户那边也开始松动了。五个付费用户问过退款政策,他们在观望,等着看BugKiller怎么应对鼎盛。 “念念。”韩路一说。“你有什么想法?” “先搞清楚对方在打什么牌。” 她把飞书文档翻到一页关系图,五个方框围着中间一个圈,箭头从四面八方射进来,每个方框旁边贴满截图和链接。 “渠道、媒体、客户、资本、定价,五路同时来的。”苏念念依次点着方框。“渠道和媒体你都看到了,那六篇文章就差把我们名字写上去。但客户这条线更脏,” 她放大一段微信截图。“CodeSafe的销售直接约我们付费客户的技术负责人喝咖啡,拉人进什么「企业咨询委员会」。至少三家被接触过。” 手指滑到最后两个框。“VC圈有人放话,赛道格局已定,不建议再投创业公司。社区也在传CodeSafe要推免费试用,还没官宣,风先放出去了。” 她把手从屏幕上收回来。 “五条线,同一个时间窗口,同一个节奏。有人在统一指挥。” 韩路一看着她。 “都是你整理的?” “我又不是今天才知道这些。”苏念念的语气平淡。“一个月了。我一直在跟进呢。” 韩路一没说话。他盯着那张图看了几秒,然后闭了一下眼。 再睁开眼,视界打开了。 面板浮现。苏念念归纳的五条线,视界同样标了出来,协同度极高,所有向量指向同一策略中心。跟她的判断一致。 他没在上面停留,顺着关联线往深处走,找她看不到的东西。 几秒后—— 【CodeSafe核心检测引擎重构进度≈35%,架构缺陷未根治】 【接入鼎盛云后优先完成API适配与部署改造,核心能力改进延后】 【大项目误报率仍>25%】 【BugKiller技术优势:检测率/误报率/影响评估三项指标均领先,短期不可追平】 每一条都标得清清楚楚。 韩路一往下看。 【修复路径:——】 空的。 他盯着那一栏看了三秒。视界在那个位置闪了一下,像是在尝试生成什么东西,然后又灭了。 Lv.2的视界能给代码Bug开修复路径,改哪个文件、改哪一行、怎么改。但面对“品牌不如人、渠道不如人、资本不如人”这种系统级的竞争劣势,它给不出答案。 这不是一个Bug。这是一个他写不了补丁的问题。 韩路一关掉视界。 苏念念还在等他说话。 “技术上我们还是领先的。”韩路一说。“CodeSafe接入鼎盛云之后忙着做API适配,大项目误报率还是老问题。” 苏念念没问他怎么知道的。她早就习惯了韩路一偶尔冒出来的“技术直觉”。 “所以呢?” “但是没用。”韩路一站起来走到窗口。“企业客户做采购决策的时候,检测率排在评估表第四列。前三列是「品牌你听过没」「这公司会不会明天倒闭」「出了事谁来兜底」。鼎盛这两个字就是前三列的满分答卷。” 苏念念靠在椅子上,盯着天花板。 “那我们不打前三列。” 韩路一转过头。 “鼎盛云的生态是封闭的,他们做不了社区。”苏念念坐直了,重新打开电脑。“SDK全部开源。让社区自己写插件,VSCode、JetBrains、GitHub Action、GitLab CI。除了核心引擎不动,接口全打开。” “模型不开源。” “当然不开源,开源的是脚手架,不是大脑。”苏念念说。“鼎盛做得了渠道碾压,做不了社区生态。十五万企业开发者是鼎盛的,但插件生态可以是我们的。” 韩路一想了想,说:“成本的问题也要一起解决。加一个个人Pro,月费九十九。不限私有仓库、完整影响评估报告、优先队列。免费版扫描上限从每月六十次收到二十次。现在重度用户有多少?” “月扫描超四十次的,八百到一千个。转化15%,月收入多一万二到一万五。”苏念念说。“覆盖不了推理成本,但至少能止血。而且这批人用习惯了,也很在公司推团队版。” “可惜,这不是破局啊。”苏念念说。 韩路一看着她。“先活下去,我们会找到机会的。” 两人沉默了一会儿。 苏念念站起来收电脑。“明天出方案。SDK开源、个人Pro定价、免费版限额,三件套。” 她把笔记本塞进那个跟她人差不多大的双肩包。 “路一,你越来越像一个合格的CEO了。” 说完,她向门口走去。 …… 晚上九点。502。台灯。 手机上两条未读。 马小飞:“老韩,我今天刷到好几篇黑BugKiller的软文,要不要我做期视频怼回去?素材我都截好了。” 跨境达的李总:“韩总,最近有猎头联系我们技术负责人,说是CodeSafe在组建企业客户咨询委员会。你们这边……还好吧?” 回了马小飞:“先不用,等我再想想。” 停了一下,又加了一句“谢谢”。 回了李总:“一切正常。感谢信任。” 打开代码编辑器。v1.3的影响评估模块重构,苏念念上周提的需求,企业客户嫌大项目扫描慢。 敲了几行代码。删了。又敲了两行。 BugKiller后台数据看板挂在右下角。今日新增注册341。跟上个月差不多。新增付费团队:0。 注册还在涨,却没人掏钱。 他闭了一下眼。下午那份诊断报告的残影还浮在意识边缘,五条攻击向量标得清清楚楚,底下那一栏修复路径,空着。 就像一张CT片子,病灶标得明明白白,但开不出药。 显示器旁边贴着朵朵的蜡笔大瓢虫和林晚晴的棉布瓢虫画。一大一小。 手机响了。是顾司玥。 “明天上午九点方便吗?合规这块我梳理了一版框架,数据安全、隐私条款、责任免除,大的方向先跟你过一下,没问题的话我这边直接推进。” 韩路一顿了一下。“很急?” “以你现在的处境,很急。” 第三十五章 出事找谁 上午九点。博衡律师事务所。 顾司玥办公桌上摊着三份文件。韩路一刚坐下,她把最上面一份推过来。 “先看第三页。” 标准化的企业软件采购合规审查清单,某公司内部文档,logo和抬头打了码。第三页第四项被红笔圈出来: 供应商数据安全资质审查,是否提供第三方安全审计报告、数据处理白皮书、用户隐私合规声明。 “哪来的?” “三个企业客户的法务部。”顾司玥拧开保温杯。“措辞不同,但要求都是一样的。” 韩路一翻了翻另外两份。确实。 “BugKiller有这三样东西吗?” “没有。” “那法务审核你就过不了。”顾司玥喝了口水,语气跟念合同条款似的。“产品评估排在法务审核后面。这一栏空着,技术团队连试用的机会都没有。” 韩路一把文件放在桌上。 他没接话。 他打开视界。 三份采购清单的数据浮现出来,第四项的位置亮起橙色。橙色标出的是流程风险。 【WARNING:合规资质缺失→企业采购流程阻断点】 【影响范围:年营收>5000万的企业客户(约占目标客户池85%)】 韩路一往下看。 【修复路径,】 【①第三方数据安全审计报告(周期2-3周)】 【②用户代码数据安全白皮书(可与①并行)】 【③隐私合规声明(模板化,1周内)】 【预估成本:12-20万|修复成功率:95%+】 他盯着面板。 “你有方案了。” “约你来就是为了谈这个。”顾司玥从旁边拿出一张名片。白底黑字,中盾信息安全技术有限公司。 “博恒客户。做信息安全审计的,服务过十几家上市公司。”她说。“市场价起步二十万,联系人姓周,你自己去谈。” 韩路一把名片翻过来看了一眼。周彦,业务总监。 “行。” 顾司玥把另一份打印稿推过来。七页,标题,《BugKiller数据安全白皮书·框架》。 “用户代码过你服务器吗?” “过。云端推理,SaaS标准架构。” “那谁能看到?” “没人。传输端到端加密,推理完即时清除,不留存。服务器上包括我在内没有任何人能碰原始代码。” 顾司玥看了他一眼。 “你不需要看?” “不需要。模型训练的数据是我自己标注的,跟用户代码无关。” 安静了一秒。 “那就把这个写清楚。”她在第三页点了一下。“技术架构说明、数据流向图、第三方审计背书、合规声明。采购表上‘数据安全措施’那一栏,填上链接就行。” 韩路一翻完七页。每页都有执行项和时间节点。审计两到三周,白皮书同步推进。 “还有一件事。” 韩路一看向她。 “你那个竞品绑在鼎盛云上。我查了他们的服务条款和API文档。” “你连他们的API文档都看了?” “看文档是本职工作。”顾司玥语速慢了半拍。“鼎盛什么体量你清楚,云服务、搜索引擎、企业协作、广告系统。用户代码在那套基础设施上走一圈,经手多少中间系统、多少人有权限,他们自己未必说得清楚。” 她在打印稿上点了一下。 “你是独立SaaS,数据链路干净,审计起来简单。这是你的结构性优势。白皮书里的‘端到端加密、处理即删、零人工接触’你应该拿出来宣传。” 韩路一笑了笑。 “顾律师。你最近帮忙好像越来越多了。” “别自作多情。你是我增长潜力最高的客户。”顾司玥说这话的时候没看他,正站起来给绿箩浇水。“科技公司合规需求只会越来越大。帮你跑一遍全流程,以后同类客户就是现成方法论。我在投资自己的时间。” 韩路一没接话,把名片收进口袋。 “什么时候开始?” “白皮书初稿周五之前出,你和苏念念审技术细节。” 韩路一站起来。 “顾律师,谢谢了。” “份内的事。” …… 下午两点。Bug Café。 苏念念把笔记本电脑屏幕转过来。飞书文档,标题用红色加粗:《BugKiller应对方案v1.0》。 “看完再说话。” 韩路一从头翻到尾。四部分,执行项、负责人、时间节点,不写一个废字。 核心判断放在第一行: 「不跟鼎盛打资源战。做大厂做不了的事。」 SDK全面开源让社区写插件,鼎盛生态封闭,这条路他们走不通。影响评估护城河加固,v1.3扫描速度翻倍。合规配合顾司玥方案。最后一条是品牌,“BugKiller在企业客户眼里就是一个GitHub链接。要上云市场、要见投资人,得有个像样的脸。” 韩路一看完抬头。 “什么时候写的?” “没熬太晚,不用担心我。”苏念念端起杯子喝了口水,眼底有遮不住的黑眼圈。 “大项目扫描速度优化一倍,我预估两周。” “十天。” “影响评估模块要重写缓存层,” “十天。”苏念念看着他。“鼎盛每多一天免费试用,我们就多流失一天的观望客户。两周和十天差四天,四天可能差两个付费用户。” “……行。” 苏念念合上电脑。 “路一,说句实话。这套方案能撑多久我不确定。鼎盛要是真砸钱做免费,我们的付费转化还会继续跌。”她的声音有些低。 苏念念先回家了。 韩路一在角落老位置写代码,老周在吧台后面擦杯子。店里没几个客人,空调吹得桌上的餐巾纸角翘起来。 老周端了杯水走过来,放在韩路一笔记本旁边,顺势在对面坐下。 “最近不太对劲啊小韩。” “还好。” “还好?”老周把抹布搭在肩上。“这礼拜来的开发,一半聊的是你那个BugKiller。最近鼎盛在和你打对台?” 韩路一停下敲键盘。“你都听说啦。” 老周往椅背上一靠,翘起二郎腿,头看向窗外。 “我以前待过一家公司,做运维监控的。六个人,技术比Nagios好两代,客户用了都说牛逼。” 韩路一看着他。 “后来昆仑推了自己的监控服务,免费捆绑,技术稀烂。我们CTO说没事,产品好他们追不上。”老周说到这停顿了一下。“半年,客户走了七成。我们当时拼了命的迭代,但是没用。有个客户说,用昆仑全家桶,出了事找昆仑,用你们的,出了事找谁?” “后来呢?” “后来CTO带着四个人去昆仑上班了。”老周站起来,拿起韩路一的空杯子。“产品确实好。但好没用,得让人相信你。” 他走了两步,又回头。 “我也不是想教你什么,我也不知道怎么办。我就是说,这事我见过,光埋头写代码扛不住。” 韩路一看着老周走回吧台。 …… 晚上九点。502。 下午跟中盾的周彦见了一面。视界看到了对方的底价,八万。周彦要冲业绩,韩路一没砍到底,最后谈到十万。对方还多送了一项渗透测试。 韩路一打开BugKiller后台看了一眼今天的数据。新增注册294,比上周日均少了五十。付费团队没有新增。 收件箱里多了两封邮件。 第一封,一家小公司的技术负责人:“韩总您好,因公司Q3预算收紧,我们决定暂停BugKiller Pro订阅,待预算恢复后优先考虑重新开通。感谢理解。” 第二封,深圳一家独立游戏工作室:“产品很好,只是我们最近现金流有点紧,先暂停一下。等缓过来第一时间续上。” 两个客户。一周内。 韩路一关掉邮件,打开技术论坛。 首页有一篇帖子被顶上来了。标题:《BugKiller vs CodeSafe:一个独立开发者的真实数据对比》。 帖主是个做SaaS的独立开发者,ID眼生,韩路一没见过。他把自己的项目分别用BugKiller和CodeSafe跑了一遍,逐条截图对比检测结果,检测率、误报率、影响评估精度,三项数据摆在那里,结论一边倒。 帖子末尾一句话:“工具好不好,自己跑一遍。我的数据在这里,欢迎来查。” 评论区三百多条,清一色力挺BugKiller。 这个帖子不是韩路一安排的。他甚至不认识帖主。 他看了几秒,没有点赞,没有回复。关掉论坛,继续写v1.3。 影响评估模块的缓存层重构敲到一半,太阳穴突然抽了一下。 不是普通的疲劳。 像有什么东西在脑子里膨胀,从后脑勺往前顶,持续了一两秒,又消失了。 韩路一揉了揉眉心。手指碰到额头的时候摸到一层薄汗。 视界面板在意识边缘闪了几下,像信号不好的老电视。 他眨了一下眼。 面板右下角,经验值的数字跳了一下—— 200/200。 第三十六章 蓝图 面板右下角的数字刚跳完,疼痛就来了。 比上次猛得多。上次升Lv.2像电脑强制重启,扛一扛就过了。这次持续了十几分钟,流鼻血,视觉变形,枕头上洇了两块深色印子。而且不只是疼。感觉像有个施工队在大脑里开工,先拆东西,然后往里装。 韩路一从床上坐起来的时候,头还闷闷地胀,像高烧刚退。 鼻血已经止住了。 他出神的看着房顶上那根坏了半截的灯管,半年前就这样了。 他打开视界。 【Lv.3|精力:127/500】 精力上限从250跳到500。当前127,升级过程吃掉了一大半。 范围又变大了。Lv.2时他坐在502里,感知边界刚好覆盖这栋楼。现在还没下床,就能感觉到更远的东西。远得多。 他下了床,走到窗边。 数据节点铺满了视野。密密麻麻的灰色小点悬浮在夜色里,每个点是一个物件、一段管线、一台设备。全部折叠。上次从五米扩到五十米,满屏标签差点把他淹死,花了好几天才学会过滤。这次范围不知道翻了多少倍,但没有一个标签主动展开。 他试了试。弄堂口路灯杆上有个灰点,聚焦,标签弹开:【路灯控制模块|故障:光敏传感器漂移→白天偶发亮灯】。松开注意力,标签缩回灰点。看哪展哪,不看就收。 对面楼三层,一台空调外机亮着橙色:【压缩机轴承磨损|预计寿命:4-6个月】。楼上楼下还有几个人物基础面板,自动折叠成灰色,只露出姓名和年龄,他没展开。再远。弄堂拐角过去,Bug Café。老周早关了门,设备没断电。意式半自动咖啡机上挂着个老熟人:【加热模组温控偏移+2.3°C】。以前得坐在店里才看得见。 他试着再往外推。最边缘的数据点闪烁不定,像信号只剩一格。再远,空的。 两百米。大概。 他在窗边站了一会儿。弄堂安静下来了。灰色数据点浮在夜色里。 韩路一转身走到书桌前坐下。笔记本屏幕还亮着。v1.3影响评估模块的代码改到一半,光标停在第427行。他盯着屏幕,没继续写。 围剿。五条攻击向量。苏念念的方案。顾司玥的建议。老周的故事。 现在该怎么办? 他没有刻意去问视界。但这个念头刚一成形,面板上出现了他没见过的东西。 以前的视界像手电筒,照哪亮哪。对着一段代码,告诉他哪行有Bug、怎么改。对着一份合同,标红漏洞条款。对着一个人,给出基础资料和情绪。点对点。一个输入,一个输出。 这次没有输入。“现在该怎么办”。他没有对着任何人、任何代码、任何文件。视界接住了一个没有目标的问题。 大脑中那块新分区微微发热。 面板中央浮出一整块区域。不是标记,不是诊断报告,是蓝图。结构化的,分层的—— 【路径编译·启动】 【目标:BugKiller商业化存活路径】 【编译中……】 两秒。 【路径编译·完成】 【Step 1/5:合规资质补全】 【执行:第三方安全审计+数据白皮书+隐私声明】 【资源:12-15万+法律支持|周期:2-3周|成功率:96%】 【Step 2/5:产品差异化加固】 【执行:v1.3影响评估模块重构,大项目扫描速度×2】 【资源:全职开发10天|成功率:91%】 【Step 3/5:社区生态开放】 【执行:SDK开源+插件接口(VSCode / JetBrains)】 【资源:5天开发+社区文档|周期:2周|成功率:88%】 【Step 4/5:渠道突破】 【云供应商排他绑定→长期存活率34%(致命陷阱)】 【检测到非排他替代路径——需定向编译|预估消耗180+精力|当前精力不足】 【Step 5/5:融资】 【执行:天使轮/ Pre-A|估值区间500-1200万】 【成功率:64%(依赖Step 4路径选择)】 【—————————————————】 【当前存活概率:31%】 【五步完成后存活概率:待Step 4编译后确定】 韩路一盯着面板。 三十一。 精力面板在右下角跳了一下:【Lv.3|精力:94/500】。光看这一张清单,消耗33点。 他没急着关。从头又看了一遍。 步骤一,合规资质。顾司玥已经对接了中盾做审计,白皮书写了七页。步骤二,产品差异化。苏念念方案里的原话,“影响评估是护城河”。步骤三,社区生态开放。视界消耗33点精力编译出来的最优路径,有一半已经在进行了。 步骤四。 韩路一盯着那行红色的34%。 他研究过业内云服务商的合作现状。年保底三百万。首页推荐位。联合营销预算。 如果昨天有人把这份合同拍在桌上,他大概率会签。 他看了一眼右下角——94。替代路径要180。今晚跑不动了。 韩路一打开备忘录,把五步清单从头敲了一遍。面板上的信息不留存,关掉就没了。 打到步骤四那行的时候,他停顿了一下。接着写下“替代路径待编译”。 存了文件。给苏念念发了条消息:“明天上午见一下?我有些新的想法。” 窗外水果摊收摊,传来铁皮车轮碾过地砖的声音。 他准备关掉视界。 面板边缘闪了一下金光。 不是他主动扫的。Lv.3被动拾取,两百米全覆盖。 隔壁。501。 【林晚晴|创作天赋:前0.3%|视觉叙事能力:极高|商业价值实现比例:4.7%】 前0.3%。他扫过几百个人的面板,跑进前1%的一只手都数得过来。 韩路一转头看了一眼显示器旁边并排的两幅画——朵朵的蜡笔火柴人和巨大瓢虫,林晚晴的棉布画框,门把手上停着一只小小的瓢虫。 他翻回备忘录,在清单末尾加了一行。 关掉视界。精力面板消失前闪了一下:【61/500】。 第三十七章 太极 七点不到,韩路一就醒了。 视界打开,精力面板浮在意识边缘,【Lv.3|精力:500/500】。升级之后恢复速度快了不少,一觉睡满。 他把注意力对准了那个昨晚跑不动的问题。Step 4。渠道突破。定向编译。 念头成形。大脑深处那块新分区开始发热。 【路径编译·定向·启动】 【目标:BugKiller渠道突破:排他 vs多云中立】 【编译中……】 比昨晚的全局编译要久。五秒。十秒。面板上的数据结构像拼图一样逐块落位。 【路径编译·定向·完成】 【路径A:排他绑定(单一云平台)】 【长期存活率:34%(—)】 【风险:渠道依赖→定价权丧失→平台政策变更时无退路】 【路径B:多云中立(非排他·多平台同时入驻)】 【长期存活率:78%(↑↑)】 【最优执行序列:二线云(意向)→一线云(撬动)→反向收网】 【反序执行(先一线)成功率:23%】 【关键杠杆:多云合作达成前VC主动接触率12%→达成后67%】 【精力消耗:183】 右下角跳了一下:【Lv.3|精力:317/500】。 他把“34”和“78”写进备忘录,合上本子。 九点出头,门铃响了。 韩路一给她开门的时候头发还是乱的。她拎了两杯咖啡,在门口站了一秒。 “昨晚没睡好啊?” “想事情想的有点儿晚。”韩路一接过咖啡。冰美式。 “你有什么新想法?” “是关于渠道的。” 苏念念拉了把椅子坐下。 “你方案里写过要上云市场。”韩路一说。“你当时想的是找哪家?” “青岳或者天枢吧,口碑好门槛低。昆仑也可以聊,但条件肯定不好谈。” “如果他们要求签排他协议呢?” 苏念念想了想。“条件够好的话,排他也不是不能接受。” “不能接。” “……你昨天到底想到什么了?” 韩路一没有马上回答。 他喝了口咖啡,把杯子放下。 “签排他是死路,我们最多落到和赵文渊一个结局。” 苏念念看着他。 “我昨晚想了一宿,把账算清了。”韩路一说。“鼎盛把CodeSafe绑在自己的云上,看起来是优势。有了十五万企业客户零成本接入,渠道碾压我们。 “但反过来想,这意味着CodeSafe只能在鼎盛云上用。 “现在整个市场,经过验证的AI代码审查产品就两个。一个绑死在鼎盛,另一个是我们。青岳云、天枢云、昆仑云,这些平台上的开发者想用AI代码审查,有几个选择?” 苏念念楞住了。 “一个。” “鼎盛帮我们做了市场教育。” 苏念念把咖啡放在桌上,整个人往前坐了坐。 “你是说不是我们去找云平台,是云平台需要我们。” “鼎盛越绑越紧,其他云越没有替代品。它的渠道优势越大,我们对所有竞争云的稀缺性就越高。” “太极。”韩路一说。“它越用力推,越把我们推向它所有对手的怀抱。” 苏念念站起来在屋里走了两步,又走回来。 “具体怎么做?” “先找二线。青岳或者天枢,谁先接触都行。拿一份意向,拿着它去找昆仑。昆仑是鼎盛最大的对手云,它看到二线在接BugKiller会紧张,鼎盛有CodeSafe,青岳天枢有BugKiller,昆仑什么都没有,这个信号可以撬动昆仑。” “昆仑签了呢?” “那青岳和天枢就更不会落下了,三家我们都签。” “条件呢?” “分成,渠道推荐,首页流量,到时候再细谈吧。” 苏念念眉头皱了一下:“你这个方案听起来像在走钢丝。” 韩路一笑了:“本来就是。” “我担心两件事。”苏念念伸出两根手指,“第一,青岳天枢愿不愿意先给我们意向?就算他们给了,会不会把我们当枪使?拿我们去打鼎盛,然后反手也要排他。” 韩路一把她那两根手指按回去一根:“先说第一件,他们怕的是「没人用」。他们最需要的是一个能让开发者留下来的明星工具,鼎盛给他们做了市场教育,他们不接,我们就去找别家。” “那怎么保证我们不被当枪使?” “所以才要三家同期落定。”韩路一说,“不是我们去求昆仑,是让昆仑意识到:它再慢一点,就真的什么都没有了。它一旦上桌,就不会允许自己把牌局打成「绑定我」,那是给鼎盛送人头。” “如果他们自研呢?” “从立项到上线,至少要半年,鼎盛现在宣传的势头这么猛,自研来不及了。” 苏念念看着他:“你确定他们会按你的逻辑走?” “不确定。”韩路一说,“但我确定,签排他协议,我们会按他们的逻辑走。” 苏念念坐下来,翻开笔记本电脑,开始敲字。 “接触渠道。”苏念念头也不抬。“你有没有人脉?我倒是有几个前同事,但都不在相关岗位。” “不用绕一圈。”韩路一说,“中盾那边我有直接对接的人,销售和项目经理都在。弱关系反而好用,他们不在云厂商内部站队,只在乎成交。” “行。”苏念念敲了两下键盘,“那就从中盾那打开局面。” “谈判底线,分成要多少?保底呢?” “这个得算,取决于各家云的开发者体量和我们在上面已有的客户数。”韩路一想了想,“交给你了,说实话,定价这块我不太行。” 苏念念停下来看了他一眼,“你现在说话越来越不像程序员了。” 韩路一看向了天花板:“只当程序员不够用了啊。” …… “方案框架拉好了。”苏念念把屏幕转过来。 执行时间表、接触优先级、谈判节点、分成模型草案,四页。韩路一从头看到尾。 “还有一件事。”苏念念往下翻到最后一页,标题加粗:品牌升级。 “上云市场总得有个像样的品牌,BugKiller在企业客户眼里就是一个GitHub链接加默认配色的网站,谈云合作、见投资人,连个正经logo都没有。” 韩路一没接话。 他的目光移到了显示器旁边。 两幅画并排钉在墙上。左边是朵朵的蜡笔画,歪歪扭扭的火柴人,旁边蹲着一只巨大的红色瓢虫,比人还高。右边是林晚晴的棉布画框,锈迹斑驳的门把手上停着一只小小的七星瓢虫,翅膀微微张开。 瓢虫。 “我知道找谁了。” 苏念念顺着他的目光看过去,看到了那两幅画。 “隔壁那个画画的姐姐?” “她是自由插画师,走正式的商业委托,品牌视觉设计,按市场价付费。” “你确定?品牌设计和插画不太一样,我们可以找专业的设计公司。” “她就是专业的。” 苏念念走之前把执行方案终稿发到飞书群,韩路一看完点了个赞。 韩路一打开微信,翻到周彦的对话框。 昨天刚签完审计合同,今天就找人家要资源,节奏是快了点。但渠道接触越早越好,哪怕只是先摸个底。 “周总,想请教个事,中盾做安全审计服务的客户里,有没有云平台那边的?我们后续想聊聊云市场入驻。” 两分钟后,周彦回了条语音,韩路一点开听了一遍。 大意是:有的,青岳云、天枢云都是他们客户。不过韩总你这个时间点直接聊估计不太行,对方要看资质的,等你们审计报告出来,我帮你引荐,到时候拿着报告去谈,比空手强得多。 “明白了。审计那边尽快推,出了报告第一时间找您。” 周彦:“放心,两周半差不多,到时候我帮你约。” 韩路一退出对话框。 两周半,审计落地之后,才有资格上桌。路径编译给了方向,但棋子要一步一步摆。 手机响了,张浩然。 韩路一接起来。 “老韩,忙不?” “不忙,怎么了?” “有个人你应该见见。”张浩然的声音压低了一点,像在办公室偷打电话,“叫陆明洲,做FA的,华筹资本的高级经理。” “FA?” “Financial Advisor,帮创业公司做融资的。这哥们儿经历挺丰富的,上财出来先在德勤干了三年审计,考了CPA,后来跳去投行,再转FA,看过几百个早期项目。之前打球认识的,后来偶尔约饭。今天吃饭我随口提了你们的事,他当场就问了我二十分钟。” “问什么?” “产品技术路线、商业模式、现在什么阶段,我说你问我也不懂,你找他本人聊。”张浩然顿了一下。“他说周末有空,想先聊聊。不是那种正式pitch,就是喝杯咖啡。” “行,你把我微信推给他。” “发了。”张浩然说。“对了,这人说话比较直,别介意。” 挂了电话,韩路一看了眼微信,已经有好友申请了。头像是一张证券交易所的照片,昵称直接是本名“陆明洲 Frank”,签名栏写着“数字不会骗人”。 他通过了申请。 第三十八章 豪赌 韩路一敲了敲501的门。 门开了一条缝。朵朵先探出脑袋,喊了一声“韩哥哥”,又被林晚晴轻轻拉回去。 林晚晴出来的时候围裙上沾着蓝色的颜料。 “林姐,有件事想找你帮忙。” “什么事?” “品牌设计。我们公司的。Logo、视觉体系、UI风格指南,一整套。正式商业委托,按市场价付费。” 林晚晴愣了一下。 “怎么找我啊?” “我喜欢你的画。” “我主要做插画,品牌设计不是……”她停了一下。“我没做过完整的品牌项目。” “做过商业设计吗?” “接过散单。电商详情页、公众号配图。”林晚晴擦了擦手上的颜料。“不算品牌设计。” “想不想试试?” 朵朵在旁边喊:“妈妈画什么都好看!” 林晚晴没理女儿。她看着韩路一,安静了几秒。 “邻居嘛,不用花钱,我帮你画就是了。” “那不行。”韩路一说。“商业委托就是商业委托。你要是不收钱,我不敢提修改意见。” 林晚晴笑了一下。 “那预算多少?” “你报价。你觉得值多少就报多少。” “……我回去想想。明天给你报价单。” “行。”韩路一把BugKiller的网站链接发到她微信。“我是做AI编程的。” 他指了指朵朵那幅蜡笔画的方向。 “产品叫BugKiller。你画的瓢虫我很喜欢,我们可以还用这个元素。” 林晚晴眨了一下眼。 “瓢虫吃蚜虫呀。”韩路一笑着说。 林晚晴看了他一会。 “我试试。” 韩路一走出501的时候,朵朵追出来塞了一张纸给他。蜡笔画,是一只飞在天上的……蛇? 他把画折好放进口袋。 …… 周六下午,虹口一家独立咖啡馆。 陆明洲约的地方,说这家手冲不错。 韩路一到的时候对方已经坐在靠窗的位置了。他瘦高,穿着深蓝色Polo衫,戴一副金丝眼镜。手腕上戴着一块表,看着不便宜。 看到韩路一进来,陆明洲站起来。 “韩路一?我是Frank。” 两人握了握手。 陆明洲先点了两杯手冲,问韩路一有没有忌口的豆子。韩路一说随便。 “你们公司在浦东?”陆明洲问。 “老小区,办公室就是我住的地方。” “创业初期都这样。”陆明洲说。“我之前看过一个做SaaS的团队,四个人挤在loft阁楼里写代码,夏天空调坏了开窗户,蚊子比用户多。” 韩路一笑了两声。 “张浩然提过你好几次,说大学室友出来创业了,做AI方向的,技术很牛。我一开始根本没在意。技术很牛的创业公司太多了。” “那他吹牛了。” 陆明洲摇了摇头。 “前两个月那个直播。”陆明洲说。“BugKiller和CodeSafe的对比,我看了回放。一个个人开发者把斯坦福博士的团队碾压了。确实牛逼。” “你也看技术直播?” “我看数据。”陆明洲接过服务员端来的咖啡,闻了一下。“直播之后我查了BugKiller的社区,GitHub上的讨论区比很多成熟产品都活跃。Issue区有人自发写插件、翻译文档、提feature request。这种社区参与度不是花钱能买到的。” 韩路一也接过咖啡。 “后来又看到那个独立开发者写的对比帖,逐条截图,检测率、误报率、影响评估三项全面领先,评论区三百多条。”陆明洲喝了口咖啡。“那个帖子不是你安排的吧?” “不是。” 安静了几秒。陆明洲放下杯子,换了个坐姿。 “你现在月活多少?” “六万三,免费加付费。” “收入呢?” “一百四十七个团队用户,月收入四十二万。” “毛利?” “扣掉推理成本和服务器,60%吧。” 陆明洲在手机上划了两下。“留存率?” “社区87%,付费93%。” “87%。”陆明洲重复了一遍这个数字。“我做这行这么多年,能跑到87%社区留存的,很少见。” 韩路一看着他。 “你花了挺多时间研究我们。” “断断续续一个多月。”陆明洲没藏。“从直播之后就在关注。你们四月底公测,五月中直播之后数据起飞,七月鼎盛开始围剿,整条线我都跟着。” “然后呢?” “张浩然上周吃饭的时候提了你一嘴,我才知道原来他室友就是NullPointer。”陆明洲笑了。“所以不是他引荐我,是我等了一个月等到了一个机会。” 韩路一喝了口冰美式。 “你想帮我们做FA?”韩路一问。 一个FA跑来约创始人喝咖啡,聊数据,夸产品,怎么想都是来做生意的。虽然他也是第一次经历。 “不是。”陆明洲说。 “不是?” “FA是帮你们找钱,拿抽成走人。”陆明洲放下咖啡杯。“我不想做中间人。” 他往前坐了坐。 “你们现在的状况我看得很清楚。产品牛逼,社区也活跃,但鼎盛的动作把增长压住了,圈子里都在传「赛道格局已定」。你们现在估值被压到五百到八百万之间。” 韩路一没说话。 “但这些人看的是静态数据。他们没看到留存率87%意味着什么,没看到你的飞轮已经转起来了。”陆明洲说。“BugKiller的问题不是产品,是生存。活过这一关,估值得翻十倍以上。” “那你想做什么?” “加入你们。” 韩路一愣了一下。 “我有资本圈的资源和关系,有融资全流程的经验,能帮你们把财务、股权、融资整条线跑起来。”陆明洲说。“你们接下来要做的事,谈判、cap table升级、见VC,每一件都需要一个跟钱打过交道的人。” 韩路一开了视界。 【陆明洲|34岁|华筹资本·高级经理】 【情绪:冷静(隐藏:强烈兴奋)|核心动机:高回报押注】 他是认真的。 他不是来做生意的,他是来赌博的。 “你现在赚多少?”韩路一问。 “一百多点。” “放弃一百万来加入一个被围剿的两人创业公司?” “我过手过十几个亿了。最好的项目从我手上过一遍,然后进了别人口袋。”陆明洲说。“我要自己上一次桌。” 他顿了一下。 “热门赛道估值高,我出不起价。你的估值被鼎盛压低了,但产品好,有潜力,我相信自己的眼光。现在是你最低谷的时候,我可以帮你走出低谷。” 韩路一没急着表态。“你觉得我们现在最大的问题在哪?” 陆明洲掏出手机,翻到一张提前画好的股权结构图。 “注册的时候律师帮你们做了标准架构,两个自然人加期权池,现在够用。但你接下来要见VC的话,这个结构得升级。”他指了指图上几个空白的框。“创始人vesting,股份分四年成熟,是给投资人信号说你们拿钱了不会跑路。反稀释条款,防止后面的钱把你们稀释没了。ESOP发放机制、行权条件、退出规则,现在是只留了池子,但规则没写。VC的法务那不够用的。” 韩路一看着那张图。这些他确实没想过。 “还有一个。”陆明洲收起股权图,划到另一页。“你们现在月收入四十二万,增长被压住了。你可能觉得问题是鼎盛。但站在VC的角度看,问题是你没有一个能讲通的增长故事。从四十二万到四百二十万,甚至四千二百万,这条路在哪里?靠什么?分几步?每步需要什么资源?你如果回答不了这个问题,没有一个VC会坐下来听。” 韩路一没说话。视界给他指了路,但那是金手指的输出,不是一份能拿给投资人看的东西。 “这些是我能做的事。”陆明洲说。 “条件是什么?” “月薪一万五,够我还房贷的。加10%股权。” 韩路一靠在椅背上。视界里陆明洲的底线清清楚楚,5%。 “10%太高了。5%。” 陆明洲看着他。 “月薪一万五可以。但股权上,5%对应现在估值二十五到四十万,总包不低了。你刚才说的三个问题都是实打实的活,做好了后续融资轮才有期权增发的空间。5%是起点,不是终点。” 陆明洲笑了。“你不像是张浩然说的那种纯技术人。” “被逼的。” “5%加一个条件。”陆明洲说。“一年内源码科技完成不低于五千万估值的融资,期权池追加2%给我。做不到就没有。” “行。”韩路一说。“我让律师拟协议。” 两人又握了握手,陆明洲站起来扫码买单。 陆明洲出门后,韩路一给苏念念打了个电话。 “今天见了张浩然介绍的那个人。陆明洲,做金融的。” “怎么样?” 韩路一把事情经过简短的说了一遍。 “等等,他要10%?” “我谈到了5%,如果六个月能做到估值五千万的融资,再加2%。” 电话那头安静了一会。 “你怎么谈的?他开10%你直接砍一半,怎么跟菜市场买菜似的?” “跟菜市场买菜也没什么区别啊。没有人一上来就出底价的。”韩路一说。 “5%加对赌……你觉得这人靠谱吗?” “眼光不错,也有决断。” 苏念念沉默了一会儿。“这个……确实是我没想到的。” “协议让顾律师拟。我们再约个时间跟他见一面,你来看一下。” “行。”苏念念说。“你是老板,你说了算。” 挂了电话。正去地铁站的路上,又接到了周彦的电话。 “韩总,审计报告出了。青岳云那边我帮你约了,开发者生态部的梁宇,梁总监。下周二下午两点。” 韩路一发了条消息给苏念念。 苏念念秒回:“加油加油加油!!!” 第三十九章 犹豫就会败北 青岳云海城总部。 韩路一和苏念念提前十分钟到了前台。苏念念穿了条灰蓝色的连衣裙,头发扎得比平时高一些。韩路一穿了件白色polo衫,搭牛仔裤。 前台打了个电话上去,不到两分钟一个年轻姑娘从电梯里出来,胸牌写着「开发者生态部」:“韩总、苏总?梁总监在二十三楼等你们,我带你们上去。” 到了二十三楼的会议室,一整面玻璃墙,里面是一张四人桌,桌上放了两瓶矿泉水。看到两人过来,梁宇已经站了起来,他三十五六岁,短发,穿着藏蓝色衬衫。 “久仰久仰。”梁宇握手的力道不大,但速度很快,“周彦跟我提过好几次,终于见到真人了。” “梁总客气了。” “别叫梁总,叫我梁宇就行。两位要喝咖啡吗?我让人送两杯过来。” 苏念念笑了笑:“那来两杯拿铁吧,谢谢。” 梁宇翻开一叠打印文件,BugKiller的产品介绍,上面手写了一些笔记和标注。 “先说说我们这边。”梁宇说。“青岳云开发者平台去年上了工具市场,代码审查赛道一直在找人,我们之前聊过两家,都不太行,BugKiller我们内部评估过,直播回放我也看了。” “结论呢?” “你们的影响评估是我见过最好的。”梁宇语速不快,“检测率也高,我个人非常喜欢你们的工具。” 苏念念翻开平板,把审计报告和白皮书的摘要页推过去。 “这是中盾的数据安全审计报告,以及我们的数据安全白皮书。” 梁宇翻到审计结论那页,读了一会。 “端到端加密,处理即删,零人工接触。”他抬头,“这个很硬啊。” 韩路一打开视界。 【梁宇|36岁|青岳云·开发者生态部商务拓展(BD)总监】 【情绪:热情(隐藏:急迫)】 【核心KPI:Q3开发者工具生态完成率41%|内部压力:季度考核倒计时不到七周|BugKiller内部评级:优先接入|剩余障碍:品牌知名度偏低(直播后已上调)、企业资质待验证(审计报告提交后更新中)】 梁宇比他表现出来的急得多。 关了视界。精力掉了7点。 “合作模式你们想怎么谈?”苏念念问。 梁宇把打印文件翻到第二页推过来,合作条款一共两页半。 “我直接说方案,SaaS挂靠,产品跑在你们自己的服务器上,青岳这边提供入口、计费和用户管理。技术对接有标准SDK,适配两到三周。分成80-20,你们拿大头。” 他顿了一下。 “在这个基础上,我们希望做深度合作。作为交换,我们给保底月收入二十万,外加首年推广资源包。首页banner位、开发者邮件推送、技术沙龙联办,折算市场价一百到一百五十万。” “深度合作的定义是……”韩路一拿起文件,第四条是深度合作的条款。 “BugKiller在AI代码审查赛道上只入驻青岳云,不入驻其他云平台工具市场,期限三年,到期我们优先续约。” 韩路一和苏念念对视了一眼,都没说话。 “理解你们需要考虑。但坦白讲,代码审查这个赛道不新了,我们主要还是看中你们的AI属性,这种条件可不是谁都能拿到的。” 【独家为上级硬性指示(VP审批)|开发者生态部Q3完成率41%,考核倒计时不足七周|撤回风险:若BugKiller同期接触竞对云,青岳将改变态度】 “梁总。”韩路一把文件合上,“方案我们带回去研究一下。保底和推广资源都很有诚意,但独家协议涉及公司战略,我得跟合伙人和律师过一遍。” “理解。”梁宇站起来,“不过这份方案是我在内部争取了一阵的,窗口不会太长,你们尽快做决定。” “明白了。” “加个微信,决定了随时联系我。” 梁宇把他们送到电梯口。 电梯门合上,苏念念摁了一楼。 苏念念盯着楼层数字往下跳,轻轻的出了一口气:“条件比我预估的好。月保底二十万加推广资源包,三年独家,放在一个月前,我可能会犹豫。” “不要犹豫,犹豫就会败北。” “韩路一你讨厌啊。”她被逗笑了。 过了一会,她又说:“路一,刚才梁宇说「不止你们一家」的时候,我感觉你的笑没憋住。” “有吗?” “有。” 电梯到了一楼,两个人没走出写字楼,苏念念在叫车。八月的海城,快四十度了,热气从四面八方漫过来,像在蒸桑拿。 “他们比我们预想的还急。”韩路一说,“梁宇准备得太充分了。那条款不是临时拟的。他内部走完审批流程才来见我们。” “那我们的节奏呢?比原计划快还是慢?” “快!原计划是拿到意向去找天枢,现在青岳直接给了独家条款。这比意向书好用。” “上车吧。” 回到502。 陆明洲在韩路一的书桌前坐着,桌上是他自带的联想小红点,旁边放了一瓶矿泉水和一支钢笔。他加入源码科技一个多星期了,502的餐桌已经快变成他的工位,韩路一和苏念念进门的时候他正在改财务模型,头都没抬。 “青岳谈完了。” 韩路一把梁宇的条款文件丢在桌上。 陆明洲快速扫了一眼:“独家?” “保底月二十万,推广资源折算一百到一百五十万,排他三年。” “分成多少?” “20%。” 陆明洲拿起文件翻了两页,速度比梁宇翻审计报告还快,看完他抬起头:“保底二十万在行业里偏低,头部工具年保底每年三百万起。推广资源用的是自家标牌价,水分至少三成,实际价值七十到一百万。” 苏念念坐到另一把椅子上。 陆明洲把文件放下:“独家不签,这个我们之前讨论过了,问题是这份offer怎么用。” 韩路一靠在门框上,说道:“比我们预想的还好用。独家不是总监的提案,至少是VP压下来的硬指标,整个开发者生态部Q3都在赶进度,考核指标没到,他比我们急。” “你怎么知道是VP的意思?” “他没有决定权,加上考核压力,真有底气的人不会强调窗口期。” “如果独家是上面的硬指标……”他推了推眼镜,语速快了一档,“这张牌比表面值钱得多。你手上有一张青岳给的独家offer,不管你想不想接,天枢和昆仑只知道有人在抢。” 陆明洲抿了口矿泉水,说:“你知道谈崩了就什么都没有了吧。青岳不签独家,就没有流量推广,天枢昆仑都还没影呢。” “我知道,我有把握。” “行,”陆明洲把矿泉水放下,“我本来就是来赌的。” 苏念念打开平板,说:“天枢那边呢?” 韩路一想了想,说道:“BugKiller付费客户里有四十多个团队部署在天枢云上。好几个天枢的客户反馈过,问能不能做原生集成。” “客户需求!”苏念念的眼睛睁大,“最好的敲门砖。” “我整理一份客户需求汇总。”韩路一说,“不用太正式,就是真实的用户反馈截图。拿这个去见天枢,我们不是去推销的,是去帮客户解决问题的。” 陆明洲重新打开笔记本,建了一个新表。 “梁宇那边先别回复,既不答应也不拒绝,能拖多久拖多久。天枢那边一有进展就告诉我,各家的报价方案都发我过一遍。” 苏念念已经在打字了:“天枢那边谁有路子?” 韩路一说:“周彦不能问了。他帮忙约了青岳,跟梁宇有联系。我们同时找天枢的事不能让青岳知道。” 苏念念说:“我之前大厂的前同事有几个跳去了天枢,我去问问。你翻一下客户那边,四十多个团队在天枢上,总有人认识内部的人。” 韩路一打开BugKiller后台看了一眼工单记录:“有好几个CTO反馈过原生集成的需求,先从最积极的那几个聊起。” 陆明洲也抬起头:“天枢战投部我有人,之前帮一个SaaS项目融资的时候对接过。我问问。” “多线推,看哪条先通。” 韩路一打开电脑,开始整理客户需求。 三个人各忙各的,房间里安静下来,只剩键盘敲击声和空调的风声。 快到六点,陆明洲合上笔记本:“我先走了,回去吃饭。” 韩路一抬手示意,陆明洲收拾东西出门,502又只剩下两个人了。 韩路一问:“吃什么?” “随便。” 韩路一点了两份外卖,黄焖鸡和水煮牛肉,两碗米饭。他把水煮牛肉推到苏念念那边,苏念念拆开盒子,辣油味填满了房间。 吃饭的时候两人没聊工作。苏念念拿出手机来,打开了一个李子柒的视频下饭,韩路一瞄了两眼,快速把饭扒完又坐回了屏幕前。 八月的六点,天还亮得刺眼。 微信响了一声,是跨境达的李总发来的语音。跨境达是他们的第一个付费用户。 “韩总,又有人来挖我了,这次更离谱,CodeSafe不要钱,还送三个月鼎盛云代金券。 “你放心,我不走。咱们的产品好太多了。但说句实话,我们行业群里好几个人在聊这事了,估计有几家比我定力差的。” 韩路一回了个“谢谢”,切到BugKiller后台。 通知栏挂着一条红色提醒。 【退订通知】 【锐思数据· Pro年付→已取消】 第四十章 都在射程内 第二天一大早,韩路一接到了苏念念的信息。 “我之前那个在天枢云的同事,昨天晚上回我了,他上个月离职,自己创业去了,不太方便引荐。我再在朋友圈问问。” 死胡同。 韩路一又打开公司邮箱看了看官网合作通道的提交自动回复。到现在还没人联系。 在天枢云上部署的付费团队里,反馈过原生集成需求的有好几个。其中一个CTO最积极,他们是在临安做企业协同的创业公司,上个月反馈在天枢集成不通畅,特意在工单里说了:“建议优先适配天枢原生,我们可以配合内测。” 韩路一给他打了个电话。 “高总,我是源码科技的韩路一。” “韩总!真没想到,找我有事?”对方声音很大,背景吵吵嚷嚷。 “之前你们反应的天枢云集成问题,我们的团队在做了。这边想问一下,你在天枢认不认识开发生态或者BD的人?” “生态不认识。”高磊想了想,“我跟天枢技术那边比较熟,云原生架构组的组长,我们做容器化迁移的时候打过不少交道。要不我帮你问问他,看能不能帮忙牵个线?” “太好了,麻烦高总。” “哈哈,我就是问问,不保证啊。”高磊大笑几声,“技术和商务经常各干各的,你懂的。” 挂了电话,韩路一又翻起下一张工单来。 “战投那边回话了。” 是陆明洲发来的消息。 韩路一赶紧打电话过去。 “问了我几个数据。”陆明洲说,“订阅数,增长率,月收入。” “这是好消息还是坏消息?” “是个好信号。”陆明洲说,“问数据,说明他有动作。如果只是客气,最多说「我帮你转一下」,就没下文了。我一会把数据整理好发过去。” “行。” BugKiller付费客户群里冒出一条消息。 “问一下,CodeSafe企业版真的免费了?我们行业群好几个人在说。” 韩路一看到了,想回复,又忍住了。 苏念念在群里发了一句:“竞品动态不方便在群里聊哈,有疑问请随时私聊我~”然后开了三个私聊窗口。 韩路一又查看了一下管理后台。 【退订通知】 【锐辰软件· Pro月付→已取消】 【退订通知】 【鹏城云翼· Pro月付→已取消】 叹了口气,他切回编辑器继续写起了代码。 傍晚六点,陆明洲发来一条微信。 “通了。” 韩路一拿起手机。 “战投那边把材料转到了天枢开发者生态部,生态部商务负责人姓周,周明远,他回复了——” 陆明洲转发了一张截图。 “周五有空,韩总方便来一趟吗?” 韩路一看了一下日历。今天周二。 三天。 他把这事发给苏念念,马上电话就响了。 “怎么联系上的?” “陆明洲那边的关系。天枢战投转到了生态部。” “太好了!太好了太好了!”苏念念的声音像松了一口气,“我去准备天枢的差异化方案,他们跟青岳不一样,天枢云用户画像偏大中型企业。” 韩路一说:“v1.3版本快写完了,应该比以前快不少,我这今天晚上就把它上线,我们拿新版本的数据去见天枢。” 截止到周四晚上,一共流失了五个客户。BugKiller的日活曲线平稳上升,付费曲线转向下滑,两条线像剪刀一样慢慢张开。 韩路一出门取外卖的时候,看到门口放了一个牛皮纸文件袋。 上面贴了一张便签,是清秀的楷书:“品牌初稿,你先看看,不满意我再改。” 他把文件袋和外卖一起拿进屋,拆开。 一共三套完整方案。每一套都有配色板、字体选择、icon变体、简版UI示意图。 第二套的瓢虫造型最好看,几何化的七星瓢虫,翅膀微微张开,线条干净利落。底下附了标语:“Because every line matters(每一行代码,都值得被认真对待)”。 韩路一坐在餐桌上,翻看了半天。 给林晚晴发了条微信:“第二套完美,可以把资源发过来吗?” 林晚晴回了一个OK的手势。 收到后韩路一把资源包发在了【源码科技高管群】里:“品牌形象升级啦。” 【陆明洲 Frank】:“很有辨识度。” 【苏苏念念】:“太好看了吧!这套设计至少值十万啊!” 韩路一又跑去私聊林晚晴:“记得把账单发给我。” 又是一个OK。 …… 周五早上八点,韩路一在整理天枢见面的材料。 苏念念带了早餐来502和韩路一一起吃,两杯豆浆,一盒包子,两根油条。 进门坐下,刚把吃的在餐桌上摆开,手机响了。 来电显示:青岳-梁宇。 “韩总。” 梁宇的声音既不热情,也不愤怒。 “听说你们在跟天枢接触?” 韩路一也没打算隐瞒。 “我想多评估一下。” 电话那头安静了一会儿。 “那我们的独家方案先搁置一下吧。”梁宇说,“等你们想清楚了再聊。” 没等韩路一说话,对方已经挂了。 苏念念坐在餐桌对面,手里的肉包才吃了一半,赶紧嚼了几口才开口:“是青岳?怎么了?” “没事,都在射程内。” “你别逞强啊!他们反悔了?” “也不是反悔,想吓我一下。” 苏念念换了个方向:“天枢那边的消息怎么传出去的?” “云服务圈子就这么大,天枢评估我们,总会有人注意到的。” 韩路一想起在青岳会议室里视界的提示:【撤回风险:若同期接触竞对云,青岳将改变态度】。 都在射程内。 苏念念看着手里的包子。 “那现在是最坏的情况了?青岳反悔了,天枢还没谈上,连订阅数也在掉。” “不是最坏的,最坏的是签了青岳的独家,成长上限绑死在一家云上。”韩路一把天枢的方案文件推到苏念念面前,“都在射程内,相信我!” 苏念念看向他。 “青岳会回来的。”韩路一说,“先见天枢。” 窗外传来洒水车的声音。八月底的海城,早晨八点已经三十度了。 两根油条还在纸袋里,谁都没动。 距离和天枢的商务负责人见面,还有两个小时。 第四十一章 寸步不让 韩路一和苏念念从网约车上下来,比约定的时间还早十分钟。 苏念念走进大楼的时候抬头看了一眼招牌,“你有没有觉得,他们招牌比青岳低调?” “青岳是做C端起家的,招牌要醒目。天枢主要做企业客户,越低调越显得稳重。”韩路一猜测,苏念念点了点头。 电梯到十八楼,两人向前台报了名字。等了两分钟,一个穿浅灰色西装的男人快步走了出来。 “韩总,苏总?我是周明远,快请进。” “幸会。”韩路一和周明远握了握手,三人一起走向一个会议室。 周明远看上去四十出头,头发有些稀疏,语速比梁宇慢一半。 “战投那边把材料转过来,我看了。”他开门见山,“四十七个付费团队部署在我们这,这是个很好的基础。” “我们天枢云上的付费客户,好几家都提过原生集成的需求。”苏念念把平板推过去,“整理了一份反馈汇总,您看看。” 周明远翻了两页,合上了。 “数据源是客户自己报的?” “我们做的抽样调研。” “嗯。”他把平板放回桌上。 韩路一打开视界。 【周明远|42岁|天枢云·开发者生态部商务总监】 【情绪:谨慎(隐藏:兴趣)|核心关注点:客户留存率+生态完整性|内部评估:BugKiller对天枢云用户有实际粘性价值|谈判风格:务实,重视数据】 “苏总,可以把后台打开,让周总看一下实时数据。” 苏念念看了韩路一一眼,打开BugKiller后台,平台筛选切到天枢云,把平板递过去。 周明远接过平板,边看边向下滑动,在延迟监控那栏停了一会。 “这个管道延迟,大团队能到多少?” “八分钟。”苏念念说,“小团队三到四分钟,中型五到六分钟。非原生接入多了一层中转,每次构建都得等。大团队一天跑几十次,影响很可观。” 周明远转向韩路一:“韩总,青岳那边,你们聊到什么程度了?” “青岳给了一个深度合作的方案,我们在评估。” “青岳的风格我了解,上来就排他,保底换绑定。”他把平板还回来,“我们的思路不一样,我们要做最好的客户体验,所以我更看重BugKiller能给天枢云用户带来什么。” “理解。”韩路一说,“我们准备了一份合作方案。” 苏念念把平板切到陆明洲做的方案文档,递回去。 周明远滑到天枢专属适配那一节。 “这个缓存层是新加的?” “这周上线的。我们在缓存层针对天枢云的API做了优化,大团队延迟能从八分钟压到四五分钟。但要真正解决,还是得靠原生集成。” “方案发我邮箱一份,我带回去走程序,我老板就能拍板,不用层层审批。”周明远把平板递回来。“下周给你答复。” “期待。” 电梯里,苏念念呼出一口气。 “你刚才为什么突然让我开后台?” “他不信咱们的报告。”韩路一看着楼层数字往下跳,“是个务实派。” “你觉得能成吗?” “不是和你说了吗?都在射程内。” 出了天枢大楼,韩路一看了眼街对面。 “走吧,吃完再回去。跟明洲说一声,让他自己点外卖。” 苏念念发了条微信给陆明洲,两人拐进旁边一家面馆。 “你说周明远会不会今天就跟他老板汇报?”苏念念端起碗吹了吹。 “吃饭不聊工作啦。” 苏念念笑了一下,讲起昨天在小黄书上看到一个产品经理转行做烘焙的帖子,阅读量十万加,底下全是“我也想辞职”。韩路一说你现在不就是辞职状态。苏念念说我这叫创业,不一样。 面吃到一半,韩路一的手机响了。 是一个陌生号码。 “请问是源码科技的韩总吗?我是昆仑云开发者生态部的陈凯。” 苏念念的筷子停在半空。 “陈总,你好你好。” “是这样,我们注意到贵司最近在跟青岳云和天枢云接触,昆仑云在AI开发者工具这块也在布局,想问问韩总有没有兴趣聊聊?” “有兴趣,什么时间?” “下周三下午方便吗?我们周四在海城有个活动,我提前一天过来。” “好,我加你微信,具体时间咱们微信上对。就是这个电话对吗?” 韩路一挂了电话,转头看苏念念,明显憋着笑。 苏念念低头吃面,头都不抬:“吃饭不聊工作哦。” “所以你们不仅见了天枢,昆仑还找上门来了?” 回到502已经快两点了,苏念念把天枢和昆仑的事一口气说完,陆明洲惊讶的张了张嘴。 “两家都不绑独家?” “天枢明确不绑。昆仑还没聊条件,但他们主动找来的,姿态不会太硬。” “那就差青岳了。” “青岳会回来的。” …… 八月底的阳光透过梧桐树的枝叶在青砖路面上投下一片片碎影,沿街的老房子底楼全改了商铺,奶茶店和杂货铺挤在一起,空气里混着说不清的味道。松风茶社藏在一条弄堂尽头,门脸只有半间宽,门口挂着褪色的木牌。地方是陈凯让人订的。 韩路一一个人来赴约。 陈凯大概四十出头,头发灰白,梳了个大背头,穿一身灰色高级西装,看起来像金融人多过像互联网。 他给两个人都倒上普洱,然后把茶壶放到一边。 “韩总,我就直说了,鼎盛的CodeSafe气势太凶,昆仑不能什么都没有,我这次来是带着诚意的。” 韩路一打开视界。 【陈凯|41岁|昆仑云·开发者生态部高级商务经理】 【情绪:坦诚(隐藏:急迫)|核心动机:高层施压,一个月内必须落地AI工具合作|谈判底线:分成可让到92/8】 陈凯从公文包里抽出一份文件推过来。 “这是我们的方案。非排他,收入分成八五一五,月保底十五万,推广资源另算。” 韩路一端起茶杯喝了一口。 流量上来,分成可观,保底就没用了。保底不值得争,分成才是长期的钱。 “保底可以,分成我想聊聊。” 陈凯没预料到他不谈保底:“八五一五是我们标准条款。” “标准条款是给标准产品的。”韩路一说,“陈总,我要92%。” 陈凯拇指在杯沿上转了一圈。 “九零一零,我能拍板。“ “92%。”韩路一说,“这是我的出价,不会变了。” 陈凯拍了一下大腿。 “韩总,寸步不让啊,这个超过我权限了,得请示一下领导。”他说着站了起来,拿着手机走出门外。 韩路一静静的坐着。 几分钟后,陈凯回来了:“韩总,好消息,领导同意了。等我回去走流程,把新方案发你。” “合作愉快。”韩路一站起来说。 源码科技的高管们围在502的一张白板前。 天枢:非排他/二十万保底/ 85% 昆仑:非排他/十五万保底/ 92% 青岳:- 陆明洲出了一口气:“就差青岳了。” 韩路一看着白板上那个空白:“青岳会回来的。” 手机响了。 来电显示:青岳-梁宇。 502安静了下来,苏念念看到屏幕,坐直了身子。 韩路一接起来。 “韩总,上次的事……处理得有点急。” 第四十二章 刚才是我说话太大声 “韩总,上次的事……处理得有点急。” “梁总,请讲。”韩路一回道。 “合作的事,我回去跟领导又沟通了。”梁宇的声音很干涩,“排他条件可以放开,我们愿意重新谈一版。” “欢迎,梁总,我们约个地方。”韩路一说。 “不用不用,韩总给我个地址,我现在过来。” 挂了电话,韩路一把地址发过去,很快梁宇回了信息。韩路一抬起头:“他一小时后到。” 苏念念清了清嗓子,举起手机假装贴在耳边,压低声音:“韩总,对不起,刚才是我说话太大声了……哈哈哈!”还没说完,她自己先绷不住笑了,手机差点掉桌上。 韩路一也笑了起来:“一会儿可别这么嚣张,不然真谈崩了。” 苏念念白了他一眼:“我知道。” 陆明洲默默站起来把白板上的字擦掉了。 梁宇比约好的时间早了五分钟。 门响了三声,苏念念起身去开门。 梁宇站在门口,穿着一件藏蓝色短袖衬衫,手里拎一个黑色公文包,胸口已经被汗透了一大片,正在微微喘气。 “梁总,不好意思,草创阶段,条件比较简陋。”韩路一说。 梁宇笑了笑:“没事,当锻炼。” “苏总你见过了,介绍一下,这是我们公司的CFO,Frank。”韩路一指向陆明洲,两人握了握手。 梁宇接过苏念念递过来的水,目光扫过房间,在白板前停了停,他在上面看到些没擦干净的痕迹。 他把水放下,在餐桌前坐好,打开公文包。 “韩总,我带了一份新的方案,你先看一下。” 梁宇觉得韩路一看他的眼睛似乎亮了一下,对方已经接过方案低头看了起来。 快速看完,韩路一抬起头:“梁总,非常有诚意,我这边只有一些小要求。”说着韩路一拿起笔在方案上写了几笔。 梁宇拿回来看了起来。 非排他合作协议,月保底十五万,收入分成88/12,这些都没动。 推广资源包:首页banner位轮播从三天改成十天、开发者邮件推送从季度改成月度、技术沙龙联合举办每年一次改成季度一次。 梁宇刚止住的汗一下又出来了,房间里只有老式空调的嗡嗡声。 过了好一会,梁宇开口了:“我带回去走流程,尽快给你答复。” “合作愉快。”韩路一说。 梁宇站起来,把文件装进公文包。 韩路一送他到楼下。走到单元门口,梁宇停了一下。 “上次那个电话,确实是我判断失误。” “梁总在那个位置做那个决定,我理解。”韩路一伸出手,“来日方长。” 梁宇握了握,转身走了。 梁宇来之前,源码三人已经商量过了,青岳的企业用户体量太小,既然签约,就要用他们的优势在个人开发者中打开市场。现在这个结果,战略目的达到了。 韩路一上楼回到502,陆明洲已经在白板上把数字重新写上了。 天枢:20万保底/ 85% 昆仑:15万保底/ 92% 青岳:15万保底/ 88%+推广 直接订阅:10万 ——————————— 月收入合计:60万 苏念念举着手机对着白板拍了一张。 “别发朋友圈啊。”韩路一说。 “发给顾律师。”苏念念又白了他一眼,“三份合同得审。” 陆明洲清了清嗓子,两人都看向他。 他在50万下面划了道线,转过身来。 “三家云上架之后,按现有付费用户规模和增长趋势估算,分成超过保底之前,收入每月增加五十万。我们大部分客户会迁移到云平台,剩下的直销渠道的付费客户,大概每月十万元。但是接下来的增长才是大头,我们观察一下趋势,下个月我出个报告。” 陆明洲在白板右边画了个简单的公式。 “给SaaS公司估值,VC一般看的是ARR乘数。ARR,Annual Recurring Revenue,就是年度经常性收入,可以简单的把月收入乘以十二。” 他写下:60万× 12 = 720万 “保守按月入六十万算,ARR七百万。这个赛道现在热,给五到八倍不过分。” 700万× 5~8 = 3500~5600万 “也就是说,源码科技现在值三千万到五千万。” 苏念念盯着白板上的数字。 “三个月前注册资本一百万。”陆明洲敲了敲白板,“这叫增长溢价。但估值是估值,要变成真金白银,得让VC看到增长曲线能持续。当然,这只是一种估值模型,我们的增长加速也没有考虑进去,回头我出个完整的估值报告。” “还有件事得提一下。”陆明洲把白板笔插回去。 韩路一看他。 “咱们得招人了。” “这事我也想说。”苏念念接过话,“三家云的对接都需要人手,产品加运营我一个人快顶不住了。开发也得招几个,总不能一直靠你这个CEO吧?” “最少招两到三个开发,一个财务出纳,一个运营。”陆明洲掰着手指头,“加上我们三个,六七号人。” 他环顾了一圈客厅,“还得租个办公室,你家呆不下了。” 韩路一站起来走到窗边。对面楼的阳台上有人在收被子,楼下的梧桐树被风吹得沙沙响。 他手搭在窗框上,指腹蹭了一下窗台上积的薄灰。 “远郊找个共享办公空间。”他说,“便宜,工位够。” “招聘呢?”陆明洲问。 “出纳给你来面。”韩路一说,“其他的岗位我和念念来,咱们一会写一下JD(Job Description,职位要求)。” 陆明洲看了眼腕表,拎起包。 “六点了,我得走了。” “明洲哥——”苏念念抬头,“你就不能有一次加个班?” “不能。”陆明洲拉开门,头也没回,“老婆等我回去做饭。” 门关上了,502又只剩两个人。 韩路一看向苏念念:“要不你也早点回去?别显得我是黑心资本家。” 苏念念朝他做了个鬼脸:“我也是合伙人!怎么,舍不得请我吃外卖啊?” 韩路一站起身来:“今天不吃外卖了,咱们下馆子去。” “真的啊,吃什么?” “酸菜鱼?” “那我要吃变态辣!” 第四十三章 四人公司 韩路一早晨出门的时候,正好501的门也开了。 林晚晴蹲在门口,正在帮朵朵调书包带。朵朵穿着白色校服衬衫,领子塞进去了一半,书包比她整个后背还宽,背上去晃晃悠悠的。 “路一哥哥!”朵朵一看见他,蹦了一下,“我要去上小学了!” 韩路一蹲下来跟她平视:“哇!你都要上小学了!” “一年级三班!”朵朵举起三根手指。 接着朵朵转了个圈让他看书包,书包侧面挂了个手工瓢虫挂件,红色的布里面填了棉花,黑点大小不一,针脚歪歪扭扭,看起来像是朵朵自己缝的。 “我缝的!妈妈没有帮我!”朵朵弹了一下瓢虫,“跟你的那个像不像?” 因为朵朵的书包太大了,韩路一忍不住伸手提了提,没想到出乎意料的轻,是空的。 林晚晴看出了韩路一的疑惑:“今天开学,要领课本回来。” 朵朵扯着林晚晴的手往楼梯走:“妈妈快走快走,迟到了!” “来了来了。”林晚晴被拽着走了两步,回头冲韩路一摆了摆手。 母女俩的脚步声顺着楼道往下,两人的声音飘上来。 “妈妈,学校会有幼儿园老师吗?” “嗯……会有老师。” 楼道安静下来。韩路一锁好门,拎包出门。 早高峰的二号线,韩路一被夹在两个西装男之间,一手抓吊环,一手回消息。半年前他也是这么通勤的,不过那会儿是去鼎盛上班,现在是去源码上班。 地铁还是同一趟地铁,只是距离更远了。 今天还约了顾司玥,三份合同审完了,中途下车取一趟。 咖啡馆在地铁站出口左转,工作日早上人不多。顾司玥坐在靠窗位置,面前一杯咖啡已经见底了,手边还放着一杯没拆封的冰美式。 韩路一在她对面坐下,她已经把三份合同拿出来摊在桌上了。 “都审过了,改了两处。”顾司玥翻开第一份,指尖点在标注的位置,“青岳的合同,把推广的条款细化了一下,包括banner的位置,时长,防止对方玩文字游戏。” 翻到第二份。 “天枢的数据归属条款,「合作期间产生的数据」,这种写法上了仲裁庭可以被随意解释。什么叫产生?谁产生?在哪儿产生?我加了限定句,你看一下。” 韩路一翻了翻,每处修改旁边都贴着铅笔批注的便签纸,字迹工整,逻辑链条画得清清楚楚。 “其他没问题,约时间签字吧。” “顾律师,靠谱。” “别夸,算钱的。” 韩路一把合同装回袋子:“那不一样,合同签完请你吃饭。” 顾司玥已经拿起外带杯站起来了。 “签完扫描件发我。” “收到。” 韩路一给自己点了一杯美式外带,再上地铁,到办公室的时候已经快十点了。 张江共享办公三楼,8人间的独立办公室,门口右手边挂着BugKiller的瓢虫logo,红底黑点。 窗外不再是菜场弄堂了,而是高架桥和塔吊,张江的天际线。 他把包搁在自己位置上,两个显示器全开着代码,桌上孤零零的一个机械键盘和一个电竞鼠标,十足的资深开发工位,完全不像CEO。 对面陆明洲向他问了声好,两台显示器上满是报表,终于不用摊在餐桌上了。 苏念念出去接咖啡了,她对面的墙已经变成了巨大的看板:待办、进行中、已完成,一共三列,被彩色便签贴得密密麻麻,字迹小而圆,每张右下角都标着日期。 靠窗坐着周莉,陆明洲推荐的,他前同事的老婆,做了八年财务,昨天刚入职,桌上已经码了一排编好号的文件夹。 开发和运营还在招,现在是四人公司。 “韩总,苏总,来一下?”陆明洲站起来走到白板前。 韩路一和苏念念都走过来。 “我的估值模型更新了,给你们同步一下。” 陆明洲在白板左边写下现状:“目前月收入三十八万,CodeSafe攻势的失血基本止住了,这个月开始有回升。” “我拉了过去三个月的注册和付费数据。”他在白板上画了一条曲线,“自然增长,月均新增付费八十个团队左右。” 他在曲线上方画了第二条。 “上云之后平台自带流量,结合三家的开发者体量,按最保守的转化率估,这个数字至少翻三倍,半年内月收入破百万是有机会的。” 他换了支颜色的笔。 “上次估值我用的是已有数据,ARR乘数五到八倍。现在三家云的条款落地,增长预期已经明确了,估值可以给到八到十倍。” 白板右侧,他写下一行: 估值区间:6000万—8000万 陆明洲把笔放回白板上,转向韩路一:“我下周约了两个风投喝咖啡,韩总,你和我一起去?” “我们要融资吗?”苏念念问。 陆明洲看向韩路一。 韩路一沉默了一会儿才开口:“先不急,现在BugKiller花钱的地方我看得到,融了资往哪花我还没想清楚。” 陆明洲说:“先混个脸熟,让他们知道我们是干什么的。” 韩路一点了点头,没有说话。 陆明洲的电话响了,他向两人示意了一下,走出去接电话了。 苏念念凑近韩路一,小声的问:“他是不是有点儿太急了?” 韩路一看着苏念念,轻轻的摇了摇头。 陆明洲快步走了回来:“韩总,你来看一下这个。” 他把手机递过来。 屏幕上是鼎盛集团官方公众号,置顶推文—— “鼎盛云宣布:CodeSafe正式成为鼎盛云内置开发工具,所有鼎盛云用户即日起可直接使用,无需注册、无需付费、无需安装。” 不只是免费。 自动接入。 用户连选择的步骤都省了。 “鼎盛云有多少开发者用户?”苏念念一边说一边拿出手机。 “十五万家企业客户,”陆明洲说,“至少三百万开发者。” 三百万人,从今天开始,打开鼎盛云就有CodeSafe,连“要不要试试BugKiller”这个念头都不会有。 韩路一把手机递回去,看向白板。 增长曲线,估值区间,破百万的预测。 还没来得及擦。 陆明洲收好手机,看向韩路一。 “下周,要不取消?” 第四十四章 游戏发展国 韩路一意识到苏念念和陆明洲都在看他。 “不用取消。“ 他的脸上看不出情绪:“去聊聊吧。” 陆明洲消化了一下,说:“行,材料我重新调一版。” 他走过去把白板上的数字擦掉了。 韩路一也走回自己的工位,打开电脑搜索起刚才的新闻。 CodeSafe单次代码扫描的推理成本是多少?BugKiller的成本他清楚,不便宜。CodeSafe的模型架构更重,只会更贵。永久免费,自动接入,三百万开发者,每人每天扫几次?这笔推理费谁出?拿云服务的利润补?那等于整个鼎盛云在养一个代码审查工具,图什么?不可能只为了针对他BugKiller。那就不是冲着他来的,是冲着生态来的,CodeSafe是赠品,就是为了让开发者留在鼎盛云。这样看情况没有一开始想象的那么糟,BugKiller的客户里在鼎盛云上的本来就不多,如果鼎盛要打生态战,昆仑天枢青岳三家反而是最应该着急的。 脑海里乱糟糟涌出一堆念头,最后也没有结论,这时候新闻页面已经加载完了,韩路一打开视界。 【鼎盛云·CodeSafe免费捆绑策略|核心目的:提升CodeSafe日活用户数】 就这? 跟刚才想的都没关系,就为了做高日活。 但做高日活干什么? 视界没给答案。 韩路一把苏念念和陆明洲叫过来又开了个小会。 “对我们的影响没有想象中大,而且会把我们和三家云绑的更紧。”韩路一说。 “定价会有压力。”她说,“人家免费了,我们月费三千。技术领队要买我们的产品,老板会问:「怎么不用免费的?」” “就像微软的Copilot,虽然不好用,但也是个AI。”韩路一说。 说完冷场了,苏念念和陆明洲都没get到笑点。 “所以重点不是产品好不好,是让用户自己感受到差距。”苏念念接回刚才的话题,“得有人专门做这件事。另外社区建设也要做好,好好利用青岳的活动机会,再叫马小飞拍几条视频宣传一下。” “先招人吧。”韩路一揉了揉太阳穴,总结道。 招聘广告挂出去三天,已经收了七十多份简历。 韩路一和苏念念面对面坐着,一人一摞打印简历做初筛。 “这个。“苏念念举起一份,“自我介绍八百字,项目经验两行半。“ 韩路一瞄了一眼:“写小说的?“ 简历拍到左边。 “这人连公司名都没改,「贵司腾云科技」。” “大概是脚本投的。” 翻了几份,苏念念忽然笑出声,把一份简历转过来给他看。 精通Office全家桶,擅长团建策划,热爱广场舞。 “投的什么岗位?” “后端开发。” 两人都笑了。 韩路一翻到下一份的时候,打开了视界。 面板弹出来的瞬间他就后悔了。 【张伟|31岁|后端开发·7年|简历真实度:68%|项目经验夸大程度:中偏高|核心能力:Java/Spring中规中矩|短板:分布式经验几乎为零(简历写“熟悉”)|情绪锚点:焦虑(三个月未就业)|离职原因:绩效末位淘汰(简历写“团队解散”)|薪资心理底线:14K|谈判风格:被动偏回避|谎言概率:简历整体偏高|竞业状态:无|婚姻:已婚育一子|房贷剩余:127万……】 一份简历,四十多个字段,从技术能力到房贷余额全给列出来了。 他又扫了一眼旁边那份鼎盛P7的简历,还是前司的同事: 【陈建业|35岁|后端/架构·12年|简历真实度:94%|核心能力:大型系统架构设计|管理经验:5人团队|隐藏动机:过渡期,六个月内大概率跳走|风险:已在面另外三家|期望薪资弹性:极低|性格特质:控制欲强,习惯主导技术决策|团队适配:只服从技术强的领导……】 视界给的信息都很有用,但是也太全了。韩路一要判断的只有一件事:这个人值不值得约面试。但视界把所有的信息全摊在面前,看简历反而比不开视界更累了。 他又翻了两份。每翻一份,面板就刷一整屏。技术能力和短板埋在一堆「薪资弹性」「谎言概率」「情绪锚点」中间,得自己挑。 像什么? 像一个API返回了完整的JSON,他只需要三个字段,其余全是噪音。 这个不能自定义一下吗? 他放下简历,闭上眼,开始想在视野里找到“设置”键。 念头一动,一个类似代码编辑器的界面弹了出来。 他愣了一下。 【精力:437/500】 直接掉了50点。 原来视界是可编程的啊? 他试着“写“了一条指令:输出字段只保留核心能力、短板、工作风格、团队适配、稳定性、隐藏信息,过滤掉个人隐私。 他重新扫了一眼那份P7的简历。 【陈建业】 【核心能力:大型系统架构】 【短板:需主导权,不适配小团队】 【工作风格:强控制型】 【团队适配:低(需更强leader)】 【稳定性:低(过渡期,六个月内大概率离开)】 【隐藏:同时面三家】 七行。比刚才干净多了。 韩路一玩心大起,又做了一番更改,再看同一份简历。 【陈建业】 【技术S|协作C|稳定D】 【特技:大型系统架构】 【词条:控制狂|过客】 下一份—— 【李婷】 【运营A|协作A|稳定S】 【特技:无】 【词条:亲和|自驱】 再一份—— 【赵磊】 【技术A|协作B|稳定A】 【特技:分布式专精】 【词条:独狼|不粘锅】 韩路一又回去把刚才的广场舞大哥的简历翻出来—— 【牛亦凡】 【技术D|协作A|稳定C】 【特技:广场舞】 【词条:串台|团魂】 嘿嘿,好玩。 “你笑什么?”苏念念抬头看向他。 “我感觉自己在玩《游戏发展国》。”韩路一说。 苏念念平时也玩游戏,知道韩路一在说什么:“要是开公司真像玩模拟经营游戏就好了,你又看不见属性面板。” 韩路一没接话,接着低头看简历了。 【精力:337/500】 有点费精力,但是有点上头啊。 第四十五章 是活的NP老师! 嘀嘀嘀!嘀嘀嘀! 姜亦心从被窝里伸出手,在床头柜上摸了一圈才抓到手机,七点十五,准时。 她把闹钟按掉,眯着眼在床上刷了会小黄书。 然后翻身下床,洗漱,戴上隐形眼镜,对着镜子快速画了个淡妆。 平时出门她都是素颜,但今天不一样。 今天要去见NullPointer老师! 室友从床上探出头,睡眼惺忪:“这么早出门干什么呀?” “面试。”姜亦心抓起包,头也不回地跑出门。 室友挠挠头:“面试?她不是下周要去天枢入职了吗?” 是啊,下周一。 姜亦心站在地铁口,风吹起她的刘海。校招拿了三个offer,她精挑细选了据说WLB最好的天枢,还特意申请延迟入职,理直气壮地享受了人生最后一个暑假。 结果昨天同学群里有人发了链接:BugKiller在招人呢。 她就不得不来了。 说起来不好意思,她是NP老师的脑残粉。NP老师每发一篇博客,她都反复研读,还推荐给系里的同学,有人一度以为她在传教。和CodeSafe的直播对战她全场看完,结束之后激动的睡不着觉。 地铁摇摇晃晃,姜亦心靠着门刷手机,NP老师的博客已经两个月没更新了。 创业这么忙的吗? 张江高科站出来,她跟着导航走了十分钟,终于看到那栋不起眼的共享办公楼。 坐电梯到三楼,她找到了那个红色瓢虫logo。 她掏出手机,比了个剪刀手,和logo自拍合影,发给闺蜜:“我到啦!NP老师我来啦!” 闺蜜秒回:“祝你好运,脑残粉。别忘了下周一去天枢入职。” 她没回,面试到早了。 她按了门铃,来开门的是一个年轻姐姐:“你也是来面试的吧?” “嗯。”姜亦心点头。 “先坐一下,韩总和苏总正在面试呢。”姐姐指了指旁边。 没有专门的等待区。办公室墙边摆着几把折叠椅,其中一把上坐着个人。姜亦心环顾四周,没看见面试的房间。 走到折叠椅上坐下,她旁边那位大哥秃顶的厉害,正愁眉苦脸地盯着手机。 看着就是个满级老开发。 姜亦心坐下,把包放在腿上。这地方跟她想象的不一样。 NP老师的公司……就这? 她也在几家大厂实习过了,高大上的写字楼,落地窗,绿植,穿着文化衫的年轻工程师走来走去讨论代码。现在她坐在共享办公室的走廊里,旁边的饮水机发出咕噜咕噜的声响。 她偷瞄旁边的大哥。 大哥正好也抬起头,俩人对上眼。 “您好,”姜亦心主动搭话,“您也是来面试的?” 大哥上下打量她,眼神里带着点审视:“鼎盛,P7,十年经验,带过团队。你呢?” 姜亦心没反应过来,这是在,报菜名? “我……刚毕业。” 大哥嘴角扯了扯:“小公司,估计问的问题都不专业。” 姜亦心眨眨眼。 不专业你还来? “下一位面试者,陈建业。”一个声音传过来。 “不是什么好学校吧?”大哥站起来,整理了一下衬衫领子,“这种地方也就是你们没经验的才会考虑,有机会还是去大厂,那技术,不一样。” 姜亦心一口老槽堵在胸口不吐不快,转过头去假装没听见。 大哥走了,脚步声在走廊里回荡。 姜亦心又观察起来,墙面是块大看板,贴满了便利贴,五颜六色。她眯着眼看,似乎是产品需求拆分,用不同颜色区分优先级。 看起来……好像也没那么不专业? 又偷瞄了远处的工位,机械键盘和电竞鼠标,那个桌子,是开发的吧? 掏出手机刷了会。 “你是姜亦心吧?” 她抬头,一个穿米色针织衫的漂亮姐姐站在面前,笑得很甜。 “我是苏念念,请跟我来。” 这不是NP老师的合伙人吗?亲自来接? “用过BugKiller吗?”苏念念边走边问。 这问题不在姜亦心准备的八股文范围内:“用、用过,我是付费用户……” 苏念念带路,顺手从抽屉里拿了瓶水塞给她:“会议室在外面,共享办公就这毛病,见谅。” 姜亦心接过水,才发现面试房间不在公司里面,是走廊尽头一间共享会议室,门上贴着一张“源码科技-面试中”的A4纸。 房间很小。 韩路一坐在桌子一侧,旁边和对面各有一把空椅子。 “姜亦心?请坐。” 是活的NP老师! 姜亦心在对面坐下,腿有点抖。 苏念念坐在了韩路一旁边。 “我是韩路一,源码科技的CEO兼CTO,这是苏念念,首席产品兼COO。” “我是姜亦心!”喉咙也有点发干,“NullPointer老师你好!” 韩路一眉头动了动,眼睛很亮。 “先考察一些基础知识,数据结构这块……”他突然问了个很具体的问题,精准戳中姜亦心的知识盲区。 完了。 她张了张嘴,脑子里一片空白。她本来以为会,但是被问住了。 韩路一看着她,没催。 她磕磕巴巴地答了一半,自己都知道不对。 韩路一没放过她:“这个场景,数据量上去以后会出什么问题?” 姜亦心愣了一下,一般这时候面试官会换题,也有的会直接说答案。 她盯着桌面想了几秒,脑子里有什么东西闪过去:“会……内存溢出?如果同时处理太多请求……” “对。”韩路一点点头,“怎么解决?” “分页加载?或者……用队列异步处理?”她说得不太确定。 韩路一没评价,只是在本子上写了什么,然后问了下一个问题。 下一个问题,又精准地踩在她另一个薄弱环节上。 姜亦心脑子嗡嗡的。 完了,这个我不会。 咦,这个他怎么不问?我会啊! 不是……我本来是学霸的呀。 韩路一问了四五个问题,每个都像长了眼睛,专门往她不会的地方钻。 最后一个问题,她答上来了,而且答得还不错。 “苏总,”韩路一转头,“你有什么想问的?” 苏念念一直在旁边听着,这时候开口:“如果让你给BugKiller加一个功能,你会加什么?” 姜亦心讲了“用户视角”:“代码检测的实时提示,就是边写边报,不用等保存。” 赶紧又切回“开发者视角”:“当然这个功能对性能开销很大,需要做取舍,可能不适合所有场景……” 苏念念笑了笑:“不用紧张,这个功能我们正在考虑。” 接着又问:“期望薪资?” 姜亦心深吸一口气。 “我有个天枢的offer,32万,下周一入职。”她说得飞快,“我就是来看一下……” 韩路一的笔停住了。 苏念念低头看了眼桌面。 此刻的沉默震耳欲聋。 韩路一合上本子:“好的,我们会考虑的,感谢你来面试。” 苏念念去叫下一个面试者了,姜亦心透过打开的门看到,是个戴眼镜的男生,看起来很紧张。 她走出写字楼,阳光很好。 拿出手机来给闺蜜发微信。 【小姜(马上入职版】:“啊啊啊啊啊啊,我见到活的NP老师了!” 闺蜜秒回。 【大刘(牛马版)】:“怎么样?真人帅吗?” 【小姜(马上入职版】:“超帅的!撕漫男!” 【大刘(牛马版)】:“面试难不难?” 【小姜(马上入职版】:“(哭)都没答出来,我被碾压成渣了” 【大刘(牛马版)】:“(抱抱)乖,往好处想,至少你不用因为收到offer纠结了。” 第四十六章 叽里咕噜说什么呢 出租车在内环高架上飞驰。 韩路一盯着窗外,陆明洲坐在旁边,膝盖上摊着笔记本电脑,屏幕上是密密麻麻的表格。 “对方是启禾创投的合伙人,林征。”陆明洲说,“启禾创投是早期基金,规模不大,十几个亿的量级,林征主导过三个成功退出。” 他顿了顿:“小基金投得早,三个退出算不错的战绩,说明他眼光和运气都不错。” 韩路一“嗯”了一声,脑子里还在想着下个版本的迭代。 “先模拟一下。”陆明洲打断韩路一的思绪,“如果他问了,你们和CodeSafe比有什么优势,你怎么答?” 韩路一想了想:“我们基于抽象语法树做深度静态分析,能识别代码语义层面的隐藏Bug。CodeSafe是全量大模型,在大型代码库误报率高。” “停。”陆明洲摆手,“对方听不懂「抽象语法树」,也懒得知道什么是「语义层面」。” “那我怎么说?” “你要说:「我们有技术壁垒,CodeSafe只是表面功夫。」然后再补一句,「我们的准确率是行业平均的三倍,用户留存率能证明这一点。」” 韩路一皱眉:“他不是投科技领域的吗?” “投资人习惯的是翻译过的语言。”陆明洲用手指敲了敲电脑,“他们听的是信号。「抽象语法树」是噪音,「技术壁垒」才是信号。” “然后呢,第二题?” “现在CodeSafe在鼎盛云前面内置了,你们打算怎么应对?” 韩路一回忆着苏念念的话:“我们要做开发者社区,社区黏性是我们的护城河。” 陆明洲点头:“这句可以,但还得加强一下,你要加一句:「社区即数据,数据即模型,未来可以训练专属垂直大模型。」” “什么?” “这是现在的风口。”陆明洲笑了笑,“只要提到「大模型」,对方耳朵就会竖起来。” 韩路一沉默两秒:“咱们没用大模型。” “将来准备用也可以。”陆明洲说,“现在行业的热点是这个。” “那不是骗?” “投资的事怎么能说是骗呢?”顿了顿,他又说:“再说了,你真不打算用?” “到时候再说吧。” 陆明洲看出韩路一的兴致不高,他把电脑合了起来,又说了一句:“韩总,我这么问可能有点儿冒昧,但是到时候VC也会问的——” “你和苏总是恋爱关系吗?” 韩路一皱眉头:“什么意思?” “意思是,”陆明洲推了推眼镜,“他会评估公司有没有结构性风险,如果合伙人是情侣,分手就等于管理层分裂,投资人最怕这个。” “不是。”韩路一说。 “最近也不会是?”陆明洲追问。 韩路一看向窗外。 “不会。” “那咱们就统一口径:你们是业务合伙人,没有私人关系。” 出租车沿着延安路往西开,过了静安寺,在越洋广场门口停下。璞丽酒店的入口藏在竹林后面,门童穿着中式立领制服过来开门。 “这种场面还是头一次。”韩路一站在旋转门前。 “会习惯的,”陆明洲说,“放心,有我兜底。” 长吧在璞丽酒店一层,三十二米的吧台贯穿整个大堂,晨光从侧面落地玻璃洒进来。 韩路一和陆明洲等了二十分钟。 陆明洲发了几条微信,是助理回复的:“林总在处理上一个案子,请您稍等。” 林征出现时穿着polo衫和运动西裤,像刚打完高尔夫。他身后跟着个年轻女孩,手里抱着文件夹。 “抱歉抱歉,迟到了。”林征坐下,“源码科技是吧?BugKiller,我听说过。” 女孩从文件夹里抽出几页纸递过去。林征接过,低头扫了两眼,抬头看韩路一:“韩总是什么学校毕业的?” 韩路一一愣:“交大。” “还行。”林征点点头,在本子上写了什么,“工作了几年?” “五年。” “都在鼎盛?”林征笑了笑,“我看材料,你离开鼎盛的方式……对创业公司来说,行业声誉风险怎么解决?” 陆明洲刚要开口,林征抬手制止:“我想先听听韩总的看法。” 韩路一看着他:“林总这是什么意思?” “好,换个问题。”林征靠在沙发上,“你们这个产品,日活多少?” “八千。”韩路一反问道,“开发者工具问日活有什么意义?这本身不是高频场景,我们的月活是两万。” 林征没理会:“付费率呢?” 陆明洲赶紧回答:“百分之一点四。” 林征笑了一声:“也就是说,两万个用户,只有两百个付费?” 他看向陆明洲:“Frank,这数据你也敢带出来见投资人?” 陆明洲表情没变:“早期产品看增速……” “增速?”林征打断他,“鼎盛云的事,你们听说了吧?够人家塞牙缝的吗?” “这种背景下出来融资,”林征摇摇头,“说实话,我不看好。” 陆明洲开口了:“林总,我补充一下我们的增长曲线——” 然后他开始说黑话。 月环比、留存率、CAC、LTV、ARR增长斜率。 林征和陆明洲你来我往,越聊越快。 韩路一脑袋嗡嗡的,好像旁听了加密通话,他们叽里咕噜说什么呢? 他打开了视界。 淡蓝色的界面展开,锁定林征。 【林征|38岁|启禾创投·合伙人】 【情绪:敷衍(隐藏:优越)|核心诉求:快速结束|投资意向度:3%】 【核心判断:小工具型项目,赛道拥挤,天花板低】 【风险评估:鼎盛入局=项目死亡】 韩路一站起来打断了两人的加密链接:“今天就到这吧。” 三个人惊讶的看着他。 “现在没什么好谈的。”韩路一面无表情,“等我们有阶段性进展了再说。” 他说完就走,没等任何人回应。 陆明洲朝林征点了点头:“林总,不好意思,我们再联系。”说完赶紧跟了上去。 一直到坐上出租车,两人谁都没开口。 司机在听交通广播,主持人正在播报天气。窗外开始下雨,雨滴斜斜地打在玻璃上。 韩路一打破了沉默:“老陆,我知道你急着证明自己的价值,现在每天做管理财务,你可能觉得屈才了。” 陆明洲说:“韩总,我不是……” 韩路一举起一只手:“让我先说完,咱们现在没那么大资金压力,也不急着做高估值。” 韩路一看着陆明洲的眼睛:“你要是心里有疑虑,我可以做主以五千万的估值回购你的股票。” “韩总,我对源码科技有信心,”陆明洲说,“也对你有信心。你的意思我懂了。” “你放心,我们会把源码做上市,有你发挥的舞台。”韩路一说。 司机从后视镜往后面瞥了一眼,并不奇怪,在海城这种地方,到处都是这种创业者。 “说实话,我也没想到。”陆明洲叹了口气,“以前做FA的时候,林征还挺客气的,位置不一样了啊。” “他对我们没兴趣。” “韩总,我看出来了。”陆明洲说,“但你至少等我说完啊。” “上赶着不是好买卖,没必要。” “有必要。”陆明洲转头看他,“融资不是只看这一家。圈子很小,你今天甩脸走人,明天整个浦东的投资圈都知道你「难搞」。” “我难搞没关系,只要数据好,他们会来找我们的。” 出租车拐上高架,雨刷器有节奏地摆动。 雨下的更大了。 第四十七章 她也这么想 出租车到张江共享办公楼下的时候,雨已经停了。 韩路一推开公司的门,就听见一个熟悉的大嗓门从里面传出来。 “不是,你们这墙上贴的啥?全是英文?苏念念你们创业也太卷了吧!” 马小飞正蹲在苏念念的看板墙前面,一张一张扒拉便利贴。 苏念念靠在桌边,抱着胳膊看他:“你别动我的看板。” “我就看看,就看看。”马小飞把一张便利贴举到眼前,“这写的「P0 blocker」,啥意思?” “求求你上两天班吧马小飞。” 韩路一走过去,马小飞抬头一看,嘿嘿一笑,然后上下打量了一遍:“韩总,下次换身西服,不然拍出去都没人信你是老板。” “大老板才不穿西服呢。”韩路一又想起刚才林征的做派,“刚才见那个风投合伙人,就像刚从球场上下来。” “什么球?篮球?” “高球。” “不愧是韩总,品味提升的就是快。”马小飞站起来,竖了个大拇指,然后环顾了一下四周,说,“卧槽,说真的,你们这办公室可以啊,张江啊!鸟枪换炮了!比你的出租屋强多了!” 陆明洲跟在韩路一后面进来,冲苏念念点了点头,径直回到工位坐下。 苏念念和韩路一打了个招呼:“谈的怎么样?” 韩路一说:“不怎么样,谈崩了,一会儿跟你细说。” 马小飞插进来:“老韩,先带我去喝杯水,苏念念我们一会再来找你啊。” 走到茶水间,韩路一递给马小飞一听冰可乐,给自己倒了一杯水。 马小飞的注意力已经被墙上的瓢虫logo吸走了:“这谁设计的?真漂亮,有科技感。” “一个设计师朋友。”韩路一说。 “女的吧?”马小飞回头,一脸“我懂”的表情。 “你来干嘛?”韩路一懒得理他。 马小飞说:“苏女神叫我来的啊,给你们拍宣传视频,社区建设嘛。” “需要我配合吗?” “那个一会再说。”马小飞凑近韩路一,压低了声音,“快闪被鼎盛收购了,你知道吗?” 韩路一喝水的手停住了:“你哪来的消息?” “老周跟我说的,36度的那个老周,还没官宣,但基本实锤了。”马小飞说,“破产重组了,鼎盛开了个打包价。” 韩路一放下杯子,没说话。 “你表情不对啊。”马小飞盯着他,“这不是好事儿吗,丁仁打铺盖走人了,没人追查你了。可惜落到鼎盛手里了,可鼎盛和你也没仇啊。” “我总觉得哪里不对。” 韩路一掏出手机给顾司玥发了条消息: “快闪被鼎盛收购了,举报那块有没有法律风险?” 消息发出去不到一分钟,顾司玥回了: “监管渠道举报人身份受法律保护。除非对方以诽谤罪主动起诉并申请法院调档,不会直接暴露。我们的举报已经被证实,就算起诉也不会受理。” 过了几秒,又来一条。 “别担心,出事了找我。” 韩路一回了个“好”,把手机收进口袋。 “给谁发信息呢?” 马小飞不知什么时候凑了过来。 “法律顾问。”韩路一说。 “上次那个女律师吧。”马小飞又是一脸“我懂”的表情。 韩路一喝了口水,没看他。 “嘿,我就随口一问。”马小飞换了个表情,“但是说真的,苏女神怎么跑你这了?不是「帮」你看产品吗?” 他在“帮”字上加了个重音。 “她自己要来的。” “我说的不是这个,”马小飞说,“大学那会儿,整个系都觉得你俩能成,系花系草嘛,天造地设,怎么就没成呢?” 韩路一皱眉:“别瞎说,让别人听见了误会。” “就咱俩你怕什么?”马小飞不以为然,“再说,我又不是瞎说,那次你俩——” “马小飞!”韩路一压低声音。 “行行行。”马小飞举手,“就问一句,你们现在到底什么关系?” “好朋友。”韩路一说,“跟咱俩一样。” “跟咱俩一样?你被裁那会儿,”马小飞把声音放低了一点,“她可是主动来找我打听你的事。” 韩路一没接话。 “你们俩别光闲聊了,过来聊聊项目的事。” 苏念念的声音从两米外传过来。 马小飞秒切频道,转身迎上去,嬉皮笑脸:“苏总!我正要跟你说呢。” 韩路一站在窗边,雨已经彻底停了,云还没有散,路面还是湿的,反射着灰白色的天光。 马小飞已经拉着苏念念坐下来,开始掰扯他的社区内容方案:“现在的开发者科普,要么太硬核看不懂,要么太水没营养,我是技术和趣味都有,垂直赛道做了十几万粉,太对口了。” 苏念念说:“内容要体现产品,但不能像广告。” “你这要求是老甲方了,这我懂,”马小飞一拍大腿,“硬广等于反效果,我的做法是把Bug案例做成故事讲,程序员最爱看什么?别人写的Bug。你们帮我提供真实案例,我来包装,三分钟一条,保底十万播放。” “十万?”苏念念挑眉。 “最少。”马小飞竖起一根手指,“开发者群体的内容消费量被严重低估了,信我,专业的。” 苏念念看了韩路一一眼,韩路一点了下头。 “行,你回去写个策划方案发给我。”苏念念说,“模板、频率、分成方式,写清楚,记得给折扣啊。” “收到!”马小飞啪地立正,“苏总办事就是利索。” 马小飞收拾东西准备走。 苏念念拦住韩路一:“路一,发出去的offer都接了,但这些人面试的时候我都在场,怎么说呢,你确定吗?” 韩路一知道她在说什么,新招的三个开发,苏念念和他之前讨论过,有点分歧,但他看过牌了。 “李婷汇报给你,开发我直管。”韩路一说,“放心,我有数。” 马小飞说:“韩总,都招人了?牛逼啊,有漂亮妹子吗?” 韩路一拉住他:“别八卦了小马哥,走吧,我送你下去。” 电梯门关上,马小飞又问了一句: “朋友,你确定,她也这么想?” 第四十八章 拯救世界的第一天 入职第一天,姜亦心特意比上班时间提前了半小时。 天呐,我真是疯了撕了天枢的offer来创业公司!家里人知道了会骂死我的! 算了,少掉的年薪就当花钱追星了,让我这个老少女也疯狂一把。 姜亦心输入邮箱里的一次性密码,推开门,前台没人,准确说,没有前台。几张办公桌,几台显示器,墙上贴着上次合影的瓢虫logo。 工位上已经有人了。 一个男的,脸上好多痘痘,穿一件蓝色格子衬衫,坐在靠窗的位置,盯着屏幕一动不动。 他抬头看了姜亦心一眼,点了个头,继续盯屏幕。 完了,这位不会是传说中的大佬吧。 气场这么沉稳,专注度拉满,眼神里全是代码。别人上班是打卡,人家上班是修炼。看看他坐的座位,后排靠窗,这不是主角位吗? 姜亦心找了个空座位忐忑的坐下,也不敢去打扰心目中的大佬,只好默默的玩手机。 【小姜(奋斗版)】:天呐,来早了,整个办公室只有我和一个不知名大佬! 闺蜜没回,现在是她的站会时间。 到了快十点,人陆陆续续的来了,苏念念过来和姜亦心打了个招呼,说今天有三个开发入职,等人齐了一起办入职手续。 这时候门又开了,一个男的,穿红色格子衫,头顶反光明显,双肩包带子垮一边,踩着点进来的。 是那个满级大佬。 他扫了一眼办公室,目光掠过姜亦心,毫无反应。 不是,你不认识我了? 面试的时候你可不是这个态度啊,不是说小公司你看不上吗,怎么不止面试还入职了呢。 算了,大度一点,毕竟现在是同事了。 十点半,韩路一到了。 没有入职仪式,一人发了一台MacBook、办公室门卡之后,姜亦心开了她职业生涯的第一个会。 站在两个格子衫身边,她觉得自己画风有点不对。 韩路一站在白板前面,说了一句“欢迎”,然后直接进正题。 “当务之急是三家云平台适配,一人领一个。” 简洁!不愧是NP老师。 秃头大佬——叫陈建业,第一个开口:“韩总,我来统筹一下吧?这种多平台并行的项目,需要有人拉通协调。” 韩路一没看他:“不用,各领各的。” 姜亦心暗自摇头,面试的时候就一股子“我来教教你”的劲,上班了还这样。 韩路一接着说:“昆仑云比较复杂,交给陈建业;青岳云给赵磊;天枢云,姜亦心。有什么不懂的随时来问我。” 姜亦心一震。 不要拷打我啊。 姜亦心偷瞄一眼韩路一,他表情没有任何异样。 痘痘大佬——赵磊,开口了:“韩总,青岳那边需求边界能明确一下吗?没有文档不好开展工作啊。” 韩路一:“一会我和你详细讲。” 赵磊点了点头。 十一点,姜亦心去茶水间接水。 撞见陈建业正在打电话。 “这破地方连个正经的项目管理都没有,分活分得稀烂。” 姜亦心悄悄竖起了耳朵。 “还要我去带新人,那女的刚毕业的吧?天枢的适配给她做?开什么玩笑。” 秃头大叔你说什么呢??? “算了,我先看看能不能把CI(自动部署)流程搭起来,不然这项目根本没法推。” 不愧是大佬,虽然不尊重人,本事还是有的。 姜亦心悄悄退出茶水间,没让他发现。 刚回到工位,韩路一走过来了。 “姜亦心,天枢的适配我带你过一下CI工具。” CI工具? “你刚毕业,天枢的接口比较规范,正好适合你学习,我先带你跑一遍流程。” 好的!NP老师要亲自带我! 等等。 秃头大叔刚才在电话里说什么来着? “这破地方连CI都没有。” 那NP老师现在打开的这个面板是什么? 自动化测试、代码审查、部署流水线,三个板块,流程图画得清清楚楚。 不是,CI明明就有啊。 秃头大叔不靠谱啊,吃枣药丸。 午休的时候,赵磊端着杯子走到姜亦心身边,压低声音:“小姜,跟你说个事。” 痘痘大佬要传授经验了。 “天枢那边需求有变动,记得留邮件,群里说的不算,口头的更不算。” “好的赵哥!” “还有,接口文档韩总给你之后,第一件事,确认版本号,别回头人家改了接口,锅扣你头上。” 谢谢你,不背锅侠。 过了一会儿,苏念念走过来。 “小姜,SQL你熟吗?帮我跑个数据。” 我不是SQL Girl!我offer上写的是后端工程师! 心里很狂,嘴上很怂:“会一点。” 苏念念要的是BugKiller近一个月的用户Bug提交分析,按用户分组,看提交频次和代码特征分布。 姜亦心盯着结果看了一会儿。 哪里不对。 有一批用户组,Bug提交密度异常高。不是那种偶尔提交几个的正常开发者,是持续、密集、几乎不间断。 更奇怪的是代码风格。 这批人的代码长得一模一样。变量命名规则、缩进习惯、错误模式,像一个模子刻出来的。提交时间也不像正常开发节奏,不是集中在工作时间,而是零星分布在全天,像有什么东西在反复试错。 “苏总,这批用户有点奇怪。你看这个Bug密度……” 苏念念看了看,皱了皱眉。 两个人交流了一会,没什么头绪。苏念念建了个文档把数据放了进去。 五点半,快下班了。 韩路一在飞书群里发了一条消息。 “下周云开发者大会,青岳给我们留了展位,我和苏总过去。运营人手不够,需要一个开发过去现场帮忙,闲下来可以逛逛展会,学习一下,自愿报名。” 群里安静了好一会,没人回复。 两个假大佬带不动啊,只有靠我小姜拯救世界了。 姜亦心:“我去。” 韩路一给那条消息点了个赞。 苏念念的私信马上到了。 “展会地址和时间表发你了。” 附言:“到时候别傻站着,多逛逛竞品展台,学学别人怎么吹。” 收到! 闺蜜的信息终于回了。 【大刘饿死了】:天呐!忙了我一天!午饭都没顾上吃!晚上去吃海底捞? 【大刘饿死了】:入职第一天怎么样?大佬牛逼吗? 【小姜(奋斗版)】:看错了,不是大佬,是不背锅侠。 【小姜(奋斗版)】:被当成SQL Girl了,但是我发现了一个案件。 【大刘饿死了】:是什么?侦探小姐! 【小姜(奋斗版)】:有一批用户,代码写的特别像!提交数还多,是不是流量攻击啊? 【大刘饿死了】:啥?AI写的呗。 【小姜(奋斗版)】:啊? 【大刘饿死了】:现在AI写代码火得很,很多代码小白也在用。我昨天试了,做个大差不差,就是有时候藏个bug找起来很烦,小白可能解决不了。 姜亦心锁了屏,起身去找苏念念。 第四十九章 氛围编程 苏念念盯着屏幕上的用户增长曲线,手指无意识地转着笔。 曲线还在涨,但不够快。 BugKiller上线四个月,付费团队两百多。这对一个创业公司来说不算差了,但她觉得以他们的产品实力应该做的更好,这是作为COO的责任。 真正的压力是CodeSafe。鼎盛云内置,免费,BugKiller的定价变得极为尴尬。CodeSafe不仅夺走了鼎盛云的用户,而且给其他云的用户锚定了心理价位。 BugKiller的画像变成了:好用,但是小贵,对于大部分不是刚需的团队来说,宁愿选择不买。 这已经不是技术的问题了。 这是用户心理的问题。 姜亦心抱着MacBook走了过来,脸上写满了“我很兴奋”。 “苏总,下午那批异常用户,我有个想法,我们去会议室说?” “好。”苏念念起身,也拿起了电脑。 到了会议室,姜亦心把电脑往桌上一放,屏幕上是打开的csv文件:用户ID、提交时间、代码片段、错误类型,各种原始数据堆在一起,密密麻麻。 “我按你说的跑了一遍,”姜亦心指着屏幕,“确实有问题。这批用户的代码,变量命名、缩进风格、甚至错误模式都高度一致,和正常程序员的个人习惯完全不同。我猜他们是AI生产的代码。” 苏念念扫了一眼表格,没看具体内容,先问:“数据量呢?” “占总活跃用户的17%,但贡献了32%的提交量。” “好。”苏念念打开飞书,“下次给我数据,先做这一步——” 她把csv拖进飞书多维表格,选了几列做透视,系统自动生成了图表。三十秒后,屏幕上跳出三个面板:提交频次趋势图、代码特征分布饼图、用户行为时间热力图。 姜亦心愣了一下。 “原始数据是原材料,”苏念念说,“但人脑处理不了几千行表格。做商业智能(Business Intelligence,BI)的第一步,是把数据变成人能一眼看懂的模式。时间分布、行为聚类、异常标注,可视化不是为了好看,是为了让决策者能一眼抓住重点。” 她指着热力图:“你看,这个时间段集中,比你在表格里翻一千行提交记录更直观。” 姜亦心盯着屏幕,眼神从困惑变成恍然。入职第一天,她学到了真正的第一课。 “现在我们有可视化面板了,下一步是做什么?” 姜亦心眨眨眼:“什么?” “看用户数据,不要只看他们做了什么,要看他们是谁——这叫用户画像。” 苏念念把屏幕拉到用户注册信息那一栏,手指点了点。 “注册邮箱后缀,你看。” 姜亦心凑过来,目光快速扫过。 “……公司邮箱居多,但不是互联网公司。有消费品的,有广告公司的,还有……地产?” “再看提交时间分布。” 姜亦心切到时间热力图。 “集中在工作日下午两点到五点?这不是……” “不是程序员的工作节奏。”苏念念接过话,“正常开发一般上午状态最好,提交高峰在上午十到十二点,下午三四点还有一波。这批人的高峰在中午一两点,持续时间短,像是趁午休在搞。” 姜亦心翻开用户分享的代码样本。 “苏总你看这个注释:「实现用户点击按钮后弹出确认框,确认后调用后端接口提交订单」。” 苏念念看了一眼。 “这不是代码注释。这是产品需求文档。” “对!还有这个:「页面加载时显示加载动画,数据返回后替换为列表」,写代码的人不会这么写注释。” 姜亦心的语速越来越快。 “再看错误类型:变量未定义、括号不匹配、函数名拼错,全是基础语法问题。真正的程序员就算水平差,也不会密集犯这种错,除非……” 她停下来,抬头看苏念念。 “他们根本不是程序员。” 苏念念没说话,但心里暗暗夸奖,引导到第三步的时候自己接上了,悟性好。 “那他们是谁?”姜亦心自问自答,开始在注册信息里挖职位字段。 五分钟后,两个人对着屏幕上的饼图沉默了。 产品经理,28%;运营,22%;UI/UX设计师,18%;市场,12%;其他非技术岗位,20%。 没有一个是程序员。 “他们用AI写代码,”姜亦心慢慢说,“然后把AI搞不定的Bug丢给BugKiller修。” 苏念念站起来,走到白板前。 “不只是修Bug,你想想,这些人为什么要用AI写代码?” “因为……他们有想法,但不会编程?” “对,产品经理想做个原型验证需求,运营想做个活动页面,设计师想把设计稿变成可交互的demo。以前这些事都得排期找开发做,现在AI让他们自己动手了。” 姜亦心接上来:“但AI写的代码不一定对,跑起来有Bug他们又看不懂。” “所以他们用了BugKiller。” 苏念念在白板上画了一条线,左边写“AI生成”,右边写“Bug修复”,中间画了个火柴小人。 “这批人不是程序员,是用AI创造产品的人。编程对他们来说不是工作,是实现想法的手段。AI降低了门槛,但没降到零,中间这段gap,就是我们的机会。” 她在白板中间写下两个英文单词。 Vibe Coding。 “氛围编程?”姜亦心念出来。 “对,不用懂每一行代码,凭感觉、凭想法去创造,AI负责写,出了问题——” “我们负责兜底!”姜亦心抢答,“那他们写错了怎么办?不得找我们修吗?这就是给普通人的技术保险啊。” 苏念念转头看她。 这个比喻好——保险,给的是安全感。用户们不需要懂什么叫变量未定义,他们只需要知道:出了问题,有人兜着。 “对,这就是我们的价值。” 手机响了。 来电显示:妈妈。 苏念念看了一眼白板,说了声不好意思,走出去接电话。 “念念,周末有空吗?李阿姨那边介绍了个男孩子,银行的,条件蛮好的,去见见?” “不去,忙。” “你天天忙忙忙,忙到什么辰光?都二十七了,再拖下去好的全被挑走了晓得伐。” 苏念念把手机换了只耳朵。 “你爸说了,实在不行,你当年那个外地小孩,带回来让我们看看也行。” 苏念念的手指收紧了。 “当年就是你们不让的。” 电话那头顿了一下。 “当年是当年嘛,你倒是带个男朋友回来啊?” “外地人、没房、没户口,这些都不讲究了,”母亲语速变快,“你肯找就行,别单着就行。” “妈,我在开会。” 挂了电话,苏念念深深的吸了一口气。 姜亦心低着头翻数据,很识趣。 “刚才说到哪了。” “技术保险。” “嗯。”苏念念拿起马克笔,在Vibe Coding下面画了三个箭头,“这个市场有三个特征。第一,用户基数大,任何有想法的人都是潜在用户;第二,付费意愿强,他们买的不是技术服务,是时间和确定性;第三,增速快,AI工具越普及,这个群体越大。” 她看了一眼姜亦心飞速记笔记的样子。 “走,跟我去找韩总。” 第五十章 救命稻草 苏念念和姜亦心从会议室出来,其他人已经都下班了。 只有韩路一在工位上,面前两块屏幕,一块开着代码,一块是用户后台。 苏念念站到他旁边,把刚才的分析讲了一遍。 韩路一听完皱起了眉。 “让不会写代码的人用AI写代码?” “纠正一下,是帮他们实现想法。” “那有什么区别?AI生成的代码质量你不清楚?让这些人批量生产垃圾代码,然后全丢给我们修?BugKiller的算力会被拖垮。” “数据已经在这了,17%的用户贡献了32%的提交量。而且这批人的个人付费率比程序员高得多,他们离不开BugKiller,不像程序员自己能修Bug。他们已经在用AI生成代码了,没有我们,他们写的Bug更多。” 韩路一靠回椅背。 “BugKiller是给程序员用的,这是我们的根基。” “那根基也快打到头了,CodeSafe免费、原生集成,专业程序员凭什么掏钱买BugKiller?两百个付费团队之后增长已经放缓,这不是平台适配能解决的。” “那是因为适配的平台还不够多,等云平台全部打通——” “打通之后呢?国内专业开发者总共几百万,但真正的增量在这些不会编程的人身上,几千万,甚至几亿。” 韩路一沉默了。 BugKiller从第一行代码开始就是为程序员设计的。每一个功能、每一个交互,都建立在“用户懂代码”的前提上。面向Vibe Coding用户,意味着重新思考产品逻辑、交互方式、定价策略,几乎是另起一条线。 “念念,这些人是来试着玩的。”韩路一的语气低沉,“今天用AI写个网页,明天觉得麻烦就不用了。留存率不会高,付费意愿也不会强。” “你怎么知道?” “因为他们不依赖代码生存。程序员离了BugKiller,代码质量下降,项目延期,这是刚需。产品经理离了AI写代码,回去写PRD就是了,生活不受影响。” “错。”苏念念往前走了一步,“对程序员来说,BugKiller是优化工具,没有也能活,只是慢点。对这些人来说,BugKiller是救命稻草,代码跑不通,他们一点办法都没有。谁更愿意付钱?” 她说:“看这批用户的复购率。” 姜亦心一直在旁边听着,手里还攥着那沓打印出来的数据,闻声赶紧把数据放到桌子上。 韩路一低头看去。 非技术用户群的三十天复购率93.2%,专业程序员用户群82.7%。程序员的数字已经不错了,但这批“不会写代码的人”硬生生高出十个百分点。 韩路一抬头:“转化率呢?复购高是一回事,新用户愿不愿意掏钱是另一回事。” “还没算出来。”苏念念没遮掩,“这批用户进来不到两个月,样本量不够,下一步我会做。” “韩总,这里还有,”姜亦心把翻开下面的几张纸,“这是我找到的一些需求工单。” “有个用户在工单里写,「能不能加一个Plus档,99的不够用,又不想买2999的」,还有这个,「程序员的工具配置起来太麻烦了,能不能一键运行啊」,都是付费用户的真实反馈。” 韩路一看了看,说:“今天太晚了,先下班吧。” 姜亦心识趣的后退了半步:“好的,我先走了,韩总再见。” 她转身回去收拾东西了,脚步轻快。 苏念念看着她的背影,等脚步声远了,才低声说:“我明白你为什么录用她了。” 韩路一抬眼看她。 “技术好不好我不知道,产品上有点天赋。”苏念念顿了顿,“用户工单她自己翻的。” 韩路一点点头,换回刚才的话题。 “让我想想。” 走出韩路一的工位,走廊尽头,苏念念掏出手机。 来电记录里“妈妈”还排在最上面。 她把手机塞回口袋,回工位收拾东西。 …… 海底捞的红油锅咕嘟咕嘟的冒着泡,番茄锅里漂着几颗番茄,香气直往鼻子里钻。 姜亦心涮了片毛肚,七上八下,捞出来蘸满香油碟,一口下去眼睛都亮了。 “我今天跟苏总学了数据分析。”她边吃边讲,“你知道什么叫用户画像吗?就是不看用户干了什么,先看他们是谁,太厉害了。” “你这个老板听起来有点东西?” 闺蜜大刘,刘昊宇,咬着鸭肠,含含糊糊地说。 “不是有点东西,是很有东西。”姜亦心放下筷子,伸手比划,“又温柔又飒,白板上画战略的时候那个气场,我当场就变成她脑残粉了。” “那NullPointer怎么办?” “我同时是他俩的脑残粉!” “那你们公司其他人呢?” 姜亦心撇撇嘴,夹了块肥牛丢进锅里:“别提了,同期进来的两个格子衫,一开始以为是大佬,其实都是奇葩,只能靠我奋斗小姜了。” “刚入职就挑大梁?” “那可不。”她得意地扬了扬下巴,“下周还要去云开发者大会呢。” 刘昊宇的筷子停在半空,眼睛都瞪大了:“开发者大会?我靠,我们总监才能去那个展。” “嘿嘿,羡慕吧?”姜亦心笑得眼睛眯起来,“和我的两个偶像一起。” “那你到时候可得多拍点照片,让我开开眼。” “放心,给你带纪念品。” 刘昊宇举起酸梅汤杯子,认真地看着她:“祝你们公司早日上市,姜总一路升迁,到时候把我招过去当小妹。” 姜亦心倒了杯水跟她捧杯:“行啊,到时候给你安排个首席拎包官。” “去你的。” 两人笑成一团。 …… 办公室里只剩下韩路一一个人。 他把姜亦心留下的数据翻了又翻。 视界。 半透明的光幕浮现在眼前,显出只有他能看到的数据。 【用户群分析完成】 【群组标签:非技术背景创作者】 【月均增长率:34.7%】 【增长曲线类型:指数早期】 【预测付费转化率:11.3%(行业均值3-5%)】 【风险提示:当前产品交互未针对该群组优化,流失率偏高风险】 他关掉视界,走到窗边,天黑了,张江的写字楼一栋栋亮起了灯。 第五十一章 不用排期 海城世博展览馆,云开发者大会。 九月底的海城还很热,馆外的阳光白得刺眼,一进门空调冷风劈头盖脸。韩路一眯了下眼睛,适应了几秒。 展馆很大,三个主厅打通,少说几百个展位,人流密得像二号线。头顶的巨型横幅写着“AI Redefine Everything”(人工智能,重新定义一切),下面是各种展台的灯光和音响在互相较劲。 BugKiller的展位在C区,靠角落。只有一张长桌,两个易拉宝,四台演示用的笔记本电脑,和一些纪念品物料。跟隔壁那些搭了巨型电子屏幕、请了咖啡师现场做拉花的展台比起来,显得寒酸了些。 “不错。”苏念念环顾了一圈,点了点头。 姜亦心倒是很兴奋,拿着手机拍了好几张展台的照片。上周新入职的运营李婷已经在调试演示电脑了。 远处A区正中央,CodeSafe的展位占了差不多两百平,巨型电视屏滚动着技术参数和客户商标墙,十几个穿西装的销售分散在展位各处。 韩路一看了一眼,收回目光。 “我去竞品区转转。”韩路一把工牌挂到脖子上,“念念你守着,有事发信息。” 苏念念点点头:“去吧。” 韩路一往B区走了。 B区是AI工具扎堆的地方。 第一个吸引韩路一注意力的展台,主屏上四个大字:人人可造,下面一行小字:“让每个人都能创造软件”。 展台前围了不少人,工作人员在演示怎么用自然语言生成一个小程序,台下有人举手:“我不会写代码,能用吗?” “当然可以,我们就是为您设计的。” 韩路一往前走。 第二家,口号是“零代码,全场景”。第三家,“你的想法,AI来实现”。第四家更直接,“告别程序员”。 他放慢脚步,整个B区都在打同一个概念:AI编程。名字不一样,东西都大差不差,目标用户不是开发者,是编程小白。 路过一个展台拐角,两个背着电脑包的人靠在柱子边聊天,胸牌上写着“海狸科技”。 “现在连产品经理都用AI写原型了,写一堆bug甩过来让我们擦屁股。” “我们那边更离谱,运营自己写了个数据脚本,差点把测试库删了,要不是DBA发现得快——” “迟早出大事。” 韩路一脚步一顿。 这些人的愤怒他太熟悉了,他自己就是这么想的。 往回走的路上,他经过一个AI编程助手的体验区,一个穿灰色polo衫的中年男人坐在体验台前,一脸认真地跟AI对话框打字,旁边放着一杯星巴克。 【目标身份:张涛|44岁|联合利华品牌经理】 【编程经验:无】 【当前行为:尝试用AI生成自动化周报脚本】 【使用动机:每周手动整理六个城市的销售数据,耗时4小时+】 韩路一关掉视界。 张涛刚刚完成输入,点了“运行”。 报错了。 张涛皱起眉,把报错信息复制粘贴回对话框,又发了一遍。 韩路一没再看,转身往C区走。 回到BugKiller展台的时候,展台前围了五六个人,姜亦心站在演示电脑后面,手指在触控板上滑动,讲解的十分熟练:“……这里可以看到,BugKiller把所有潜在问题按风险等级排列,红色的是必须修的,黄色的是建议优化——” 一个扎马尾的女生举着手机录像,旁边站着个戴眼镜的中年人,手里拿着笔记本在记,还有一个穿白T恤的年轻女孩,一直在点头。 “请问,我用AI写的代码,你们也能查吗?”白T恤女孩问。 “当然可以。”姜亦心切到另一个界面,“不管是自己写的还是AI生成的,我们都能检测。其实我们现在很多用户就是用AI写完代码之后,使用我们的工具跑一遍——” “那你们能保证查完就没问题了吗?” 一个声音从人群后面插进来。 韩路一循声看去,一个三十出头的男人,寸头,黑色卫衣,胸前挂着鼎盛的工牌,双臂抱在胸前。 姜亦心愣了一下:“我们不能保证百分之百没bug,但……” “那不就结了。”寸头往前走了一步,带着一种居高临下的意味,“这些人连代码是什么都不懂,你们帮他们查一遍就敢上线?” 白T恤女孩的笑容僵住了。 寸头瞥了她一眼,又转回姜亦心,“你们这个产品的定位有问题,AI写代码本来就不靠谱,你们检测一遍告诉他们「大概没问题」,他们就真拿去上线了,出了事谁负责?” 姜亦心张了张嘴,没接上话。 “说白了,你们不是在解决问题。”寸头的声音越来越大,“你们是在纵容问题,有了你们兜底,更多不懂的人会觉得「反正有工具帮我查」,然后把垃圾代码扔到生产环境里,你们是帮凶。” 周围都安静了。 姜亦心的脸涨红了,嘴唇动了动,没说出话来,她看向李婷,李婷也是一脸茫然。 “出了事他们自己负责。” 韩路一从展台侧面走出来,站到姜亦心旁边。 “但我想问你,你觉得AI写的代码,永远都是垃圾吗?” 寸头愣了一下:“至少现在是。” “对,现在有问题,所以需要我们查。”韩路一指了指身后的演示屏,“查完告诉他哪里有风险,他把问题贴回给AI,AI改,再查,再改。三轮下来,代码能跑了,能用了,解决了他的问题。” “我刚在B区看到一个用户尝试用AI写自动化周报,他要的东西很简单,六个城市的销售数据自动汇总。买个BI工具,年费几千,九成功能用不上。找外包,报价两万,工期两周。用AI写,半小时,成本几十块。” “半小时写出来的东西能用?” “查完改完,就能用。快,便宜,完全按他的需求来。”韩路一看着他,“一旦过了质量线,你告诉我,AI写的跟你写的有什么区别?” “区别只剩一个。”韩路一没等寸头说话,接着说,“他不用等你排期。” 短寸头沉默了几秒,转身走了。 韩路一站在原地。他刚才的每一句话,都像是在对上个星期的自己说。 “谢谢。” 白T恤女孩抬起头,声音不大。 韩路一转向她。 “我是做服装的。”她抿了下嘴唇,“小品牌,公司一共六个人。库存管理一直是手工记表格,上个月用AI写了一套库存系统,我自己看不懂代码,测了半个月都不敢上线。后来找到BugKiller帮我跑了一遍,才敢用。” 韩路一说:“上线多久了?跑得怎么样?” 白T恤一笑:“很好。” 姜亦心的眼眶都红了。 旁边几个人重新凑近了展台,扎马尾的女生又打开了录像。 韩路一拍了拍姜亦心的肩膀,退到展台侧面。 “还挺热闹。” 苏念念不知道什么时候回来了,手里多了一沓竞品宣传册,靠在展台边上看着他。 “刚才出什么事了?” “没什么,有人来踢馆。” 苏念念扫了一眼展台前围着的人,又看了看姜亦心红着眼眶但声音很亮的样子,没再追问。 韩路一沉默了一会儿,说:“念念,你是对的。” 苏念念偏了下头。 “这个市场比我以为的大。”韩路一看着B区的方向,“而且快。” 第五十二章 兔死狐悲 下午五点,B区的人潮已经散了大半,工作人员开始收撤展架,喇叭里报本次展会感谢词。韩路一和苏念念正在展台收宣传册,姜亦心和李婷蹲在地上往纸箱里放物料。 “韩总!” 是青岳的梁宇,穿着白衬衣和灰色西裤,西服搭在左手上,右手拿着瓶矿泉水。 “晚上有安排吗?展会方今晚有个小范围晚宴,十几个人,外滩那边。天枢的周明远也在,还有几个互联网方向的创始人——我有个名额,韩总感兴趣吗?” 韩路一说:“梁总这么客气。” “上次的事,我一直想找个机会。”梁宇话没说完,嘿嘿干笑了两声,“非正式的,开开人脉。” 韩路一把手里最后一叠册子放进箱子,对苏念念说:“你们先收,我晚上不一起走了。” 苏念念手里正拿着一本竞品的宣传册在翻,头也没抬:“哦,好。” 梁宇在旁边听着,赶紧说:“韩总,坐我的车?” 地方定在外滩茂悦,私人包间,房间外还有个小露台,正对着黄浦江。 到的时候,长桌边已经坐了八九个人,服务员在倒红酒,有人在讲一个他没听完整的笑话,笑声刚落。天枢的周明远站起来打招呼,梁宇给韩路一挨个介绍,几位都是各细分方向的创始人,做人力资源软件的,做财务自动化的,做智能客服的。 看着都比韩路一年长些。 韩路一在靠窗的位置坐下,窗外是外滩的夜色,对岸陆家嘴的灯一簇一簇,黄浦江的水面是暗金色。 梁宇特意坐在韩路一旁边。 韩路一对面是一个中年男人,微胖,穿着粉红色的polo衫,看到韩路一坐下点了个头:“幸会幸会,董飞,做在线教育的。”操着一口广东口音。 “你好,韩路一,做软件的。” 陆陆续续又坐下几个人,最后进来的人,韩路一没有料到,是CodeSafe的赵文渊。 从上次直播之后,两人就没见过面,突然看到,韩路一觉得他苍老了很多。 赵文渊在门口扫视了一圈,看到韩路一在看着他,轻轻点了下头,然后他在角落唯一剩下的位置坐下,没和任何人打招呼,拿起面前的水喝了一口。 酒过一巡,话题松开了。 有人抱怨今年融资的事,“机构都在等,没一个给钱,说是观望,其实在逼你让步”,引来一片附和。做财务软件的创始人说他上个月刚拒了一家的TS(Term Sheet),条款里有棘轮,他没接,对方倒好像他做错了什么一样。 “棘轮加清算优先权,是这两年机构的新标配,”周明远摇了摇酒杯,“签之前一定要把最坏情况算清楚。” 桌上有几个人没接话。 韩路一没听懂他们在说什么,默默的喝了一口茶。 聊着聊着,有人提到AI编程的事。说到一半,另一个人接话:“我让技术团队研究了,结论是不行,现在的水平差的还有点远。”有人附和,有人反驳说已经有产品跑出来了,但也说不清楚商业模式到底是什么。几人讨论了几句,没有结果。 韩路一认真的听着,没发表意见。 董飞接过话头:“韩总,你是技术出身吧?你怎么看?” 韩路一笑了笑:“我也看不太懂。” 董飞也不在意,接着说:“我看这轮AI的浪潮是真的,我这个在线教育也要拥抱AI了。我现在让团队放开了用,不用在乎预算,就是要抢个先行者。” 韩路一点点头,附和了一下。 两人又闲聊了两句,加了个微信。 赵文渊全程沉默,有人介绍“这位是CodeSafe的赵总,斯坦福的博士,谷歌回来创业的”,他也只是点头回应一下,并不说话。 【情绪:落寞(隐藏:心灰意冷)】 大约七点半,服务员上最后一道甜品,有人起身去洗手间,包间里的声音散了一些。 赵文渊走到韩路一身边。 “韩总,抽烟吗?” 韩路一不抽烟,但他知道这句话是什么意思。 韩路一和董飞、梁宇招呼一声,和赵文渊一起走向阳台,有两个创业者正从阳台进来。 阳台在包间外侧,江风比屋里凉些。 两个人靠着栏杆站着。 韩路一先开口:“赵博士,最近比较累?” 他真的很好奇,上次直播输了,赵文渊提前离场,但他走的时候还斗志昂扬。现在CodeSafe背靠鼎盛,发展的如火如荼,他怎么看着死气沉沉的。 “我出局了。” 赵文渊开口就是猛料。 韩路一等他说下去。 “我现在还是CodeSafe的创始人,”赵文渊说,“纸面上是。” 楼下马路上汽车驶过的嘈杂声远远的传上来。 “每一次签合同我都认真看了,”他继续说,“可是不知道在什么时候,我已经没有决定权了。” 和鼎盛合作之后,董事会决议做下一轮融资。 赵文渊不想融,但他说话不算了。 他也看明白下一步是什么了:CodeSafe要被收购了,鼎盛和鼎盛旗下的投资机构在董事会里已经是大头,估值怎么定,是他们说了算。 然后他才弄明白合同里有一条:清算优先权。 “如果估值按三千万算,投资人拿完他们的,剩下的才是我的……乐观能有两百万。” “辞职创业,前前后后折腾了小两年,”赵文渊说,“最后到手的钱,还没我在谷歌一年的股票多。” 他说这话的时候声音沙哑。 “你懂这种感觉吗,”赵文渊看着江面,“不是钱的事。就是突然明白了,我以为我在创业,其实我一直在给别人打工,只是股权的那一列写了我的名字。” 韩路一靠着栏杆看着他,胸口涌起一股悲凉。 “小韩,我年长你几岁,托大叫你声小韩。”赵文渊说,“我真羡慕你啊……” 两人站在那,江风一直吹过来。 “我不是想来诉苦的,”赵文渊把两手按在栏杆上,“今晚见你,是有话想说。” 他看着外滩的灯光。 “你知道他们拿CodeSafe在干什么吗?” 韩路一知道这时候他什么都不用说。 赵文渊会告诉他的。 第五十三章 通话中 赵文渊的声音被江风吹散了一些。 “CodeSafe现在有多少用户你知道吧?” “三百万左右。”韩路一说。 “三百万开发者,每天都在提交代码,”赵文渊说,“每一次提交,CodeSafe都在查Bug。” “查Bug不是产品的核心功能吗?” “是啊,”赵文渊冷笑了一下,“每查一次,服务器都留一份。” 韩路一没说话。 “鼎盛要做代码生成,这些都是喂给大模型的养料。用户以为自己在用免费工具,实际上鼎盛拿到免费的训练数据。” 江风又大了一些,两人的衣服在风中簌簌作响。 “用户知道吗?”韩路一问。 “用户协议里有一条,大概在第三十几页,什么「为改善产品体验,可能收集使用数据用于模型优化」,”赵文渊说,“谁会翻到那里?” 韩路一想了想,他看过BugKiller的用户协议,但没看过CodeSafe的。 “我是写代码出身的,”赵文渊双手撑着栏杆,“我也做开源,但是这个事儿……可真他妈脏啊。” “这才是我今天想告诉你的。” 韩路一看向他。 【情绪:愤怒(隐藏:自责)】 【谎言概率:0%】 【表述内容与已知事实无冲突】 安静了几秒。 “赵总,谢谢。”韩路一说。 “别叫我赵总了,不是了。”赵文渊转过头看着他:“小韩,我有个问题,一直想不明白……你的模型到底是怎么训练的?” 韩路一没回答。 “我认真研究过你们的产品,”赵文渊说,“检测精度不该到那个水平,还有那个影响评估……除非你有特别好的数据源,或者什么新的训练方法。” 韩路一笑了一下:“赵博士技术也不差,你应该已经意识到问题在哪了,也知道该怎么改。” 赵文渊盯着江面看了很久。 “想改,也改不了了。” 他抬起手狠狠的搓了一下脸。 “回去吧,创业这条路,希望你走的比我好。” 回到主桌的时候晚宴已经到了尾声。 甜品盘基本没怎么动过,几个创始人站起来互换名片和微信。 董飞走过来拍了拍韩路一的肩膀:“韩总,咱们都在海城,有空多走动,来我办公室喝茶。” 韩路一说好的好的。 周明远在门口跟人说完话,看到韩路一点了下头,算是告别。 梁宇走过来:“韩总,我送你回去?认识路。” 韩路一摆摆手:“梁总太客气了,今天天气好,我去江边吹吹风,下次再聊。” 韩路一走出酒店的大门,街道嘈杂的声音和外滩的夜风同时扑过来。 他边走边掏出手机,给陆明洲发了条消息。 “老陆,方便吗?打个电话。” 两秒钟,陆明洲的电话拨过来了。 “展会完去了一个创业者晚宴,碰到一个人,被投资方的条款坑了,”他简短地说了情况,刻意没提名字,“融资时签了清算优先权,结果公司被低价收购,投资方先拿完,创始人没剩多少。” “优先清算加drag-along,”陆明洲秒懂,“标准套路,他签的时候估计没看懂。” “什么意思?” 陆明洲知道韩路一没有金融背景,这正是体现他价值的时候,在电话里开起了金融小课堂。 “Drag-along就是强制跟售权,简单来说,大股东说卖,小股东只能跟着卖,多少钱是大股东和收购方谈的。 “清算优先权复杂一些,投资方投资的时候说好了,退出的时候先把自己的本金甚至双倍利润拿走,剩下的才轮到创始人分。要是收购价被压得很低,到创始人手里基本就剩不下什么了。 “假设投资人投了500万,要2倍优先清算权。公司后来卖了800万,没有1000万怎么办?投资人拿走800万,创始人归零。要是卖了1500万,投资人拿1000万,创始人分剩下的500万。” 韩路一消化了一会,又问:“那棘轮又是什么?” “棘轮是防稀释条款。估值跌了,投资人股份自动增加,创始人吃亏。”陆明洲回答。 “这种霸王条款,为什么签?” “不签就没钱。放心,咱们融资的时候我会盯着。” 挂了电话,韩路一沿着外滩往北走。 黄浦江对面陆家嘴的灯密密匝匝的亮着,东方明珠的圆球在夜色里泛着粉紫色的光。 他想起赵文渊说“投资方”时的表情。 快闪被鼎盛收购了,CodeSafe也是,背后都是同一个人,王志远。 低头处理晚宴没回复的消息,顾司玥下午五点多发的: “软件漏洞精准定位和影响评估,这两个申请的专利通知都下来了,需要你配合补一些材料。” 韩路一回了一条:“刚看到,约个时间?” 秒回:“还在办公室,打电话吧。” 电话接通。 “顾律师,不好意思,这么晚了。” “没事,”顾司玥的声音哑哑的,“你们的专利申请通知下来了,进入实质审查了。” “嗯。” “审查官发了意见稿,有几个技术特征的描述需要你配合确认,补充完整了才能继续推进。” “你把清单发我,我哪天带着资料过来?” “等一下,”顾司玥说,“我把审查意见拿出来,给你对一下。” 韩路一听到她站起来的声音。 椅子轮子在地板上滑了一下。 脚步声,两步,三步。 砰! 一声闷响。 什么东西散落的声音,文件夹?纸张? “顾律师?你没事吧?” 安静。 “顾司玥?” 电话没挂,也没有声音传来。 韩路一看了一眼手机屏幕。 通话还在继续,计时器在跳。 01:12……01:13……01:14…… 他保持通话,划出软件准备叫车,走到路边的时候,正好一辆出租车亮着空车灯开过来。 韩路一扬了下手,车停在他面前。 拉开后门。 “陆家嘴,和合大厦。” “放心吧。” 出租车驶上延安东路隧道的入口。 韩路一把手机放在耳边听了一下。 还是安静的。 他没挂电话。 “师傅,麻烦快一点,很着急!” “好嘞。” 05:44……05:45……05:46…… 隧道里的灯光一节一节闪过去。 第五十四章 临界点 顾司玥把车停进和合大厦地下车库。早高峰的电梯要等三轮,她靠在大理石墙面上,闭了一会儿眼。 博衡律师事务所在十九楼,晨会时间是八点半。 穿过开放办公区,有两个实习生正站着聊天,看见顾司玥过来,立马站正了。 “顾律,早上好!” 顾司玥冲他们点了点头,径直去茶水间拿了一杯咖啡,走进会议室。 十二把椅子围着一张椭圆桌,三把已经有人坐了,正在聊天。主位空着,上面放着打印好的周报,那是方正平的位子。 顾司玥走到自己的位子上坐下,拿出电脑来开始办公。 陆陆续续又进来几位合伙人,方正平是最后一个进来的。方正平是博衡的主任,五十四岁,乌黑的头发梳得一丝不乱,一身高级定制的蓝西装。 方正平看了眼手腕上的百达斐丽:“人齐了,开始吧。” 周报分发一人一份,从他左手边,每个高级合伙人依次汇报上周进展和本周排期。 轮到顾司玥。 “上周结案两件,回款一百四。盛辉医疗的专利侵权案一审胜诉,对方应该会上诉,二审材料已经在准备。另外,青岳云的品牌商标授权在推进,本周约了对方法务——” “多大标的?”方正平抬手打断了她。 “三千二。” 方正平翻了一下面前的表格,“恺明,你手上青岳的数据合规到哪了?” 王恺明翻了一下手机:“在推进,预计下月出结果。” “这样,”方正平说,“青岳那边的业务还是统一归口比较好,客户来回对接两个团队也麻烦。恺明,商标授权那个也一起跟了吧?顾律把材料整理交接一下。” 每一句话都挺合理。 “三千二百万的审查量不小,”方正平语气很温和,“你手上事也不少,分出去减减负。” “好。” 散会前方正平又加了一句:“另外,恒达的融资租赁合规审查堆了两个月了,还没人接。顾律,你手上刚好腾出来了,帮忙接一下?” 恒达是出了名的难缠客户,每份意见书要改七八轮,费率压到行价六折,难回款,还动不动半夜催活。堆了两个月没人接,因为这是大家公认的屎活。 “好。” 顾司玥合上笔记本,端着咖啡走回自己的办公室,路过助理小周的工位,小周递过来一叠牛皮纸袋:“顾律师,方主任的助理送过来的,恒达的材料。” “谢谢。” 推开办公室的门,桌上已经有两摞文件了。她把恒达的材料放在第三摞旁边,坐了下来。先处理青岳的移交,合同文件按版本整理成压缩包,修改记录导出,移交备注写了四行:合同背景、当前进度、未解决的三处歧义、对方法务的联系方式。 【发送】 接下来是恒达的融资租赁材料,大致翻了一遍,把任务拆好,基础尽调让实习生跑,合同条款审查发给团队里的高级律师,自己留了架构意见和风险备忘录。 分完活她揉了揉太阳穴。 小周敲了敲门:“顾律师,给您续一杯?” “麻烦了。” 小周没有立刻走:“您脸色不太好,要不要——” “没事,昨晚睡晚了。” 第二杯美式续上了。 中午,小周帮她从楼下的全家便利店带了份鸡蛋三明治,她边吃边看邮件。 趁着还在午休,她登进自己的私人网盘,里面有一个加密文件夹。 她打开一个表格,调了几处财务预估,存盘;又打开一份文档,把昨晚查到的租金行情补进去…… 咚咚咚—— 她迅速关掉浏览器,扬声道:“请进。” 沈予微拿着一杯奶茶靠在门框上:“听说早上又被截了?” 顾司玥没抬头:“青岳的商标授权,转给王恺明了。” “统一归口,”沈予微走进来在她对面坐下,语气里带着点嘲,“方主任最爱这四个字,老肖在的时候他可不敢。” 老肖,肖建国,博衡的创始合伙人,前主任,去年刚退休。顾司玥升高级合伙人就是老肖点的头。 “老肖退了快一年了,”顾司玥打开恒达的表格,“别老提。” “我就是替你不值!”沈予微吸了一口奶茶,“你一年创收顶他们两个,结果好活往外分,烂活往你这塞。” “都是活。”她看似不在意。 沈予微看她不想接这茬,便了站起来,说:“行吧,注意身体,你看着状态有点差。” 门关上之后,办公室又安静下来。 恒达的合规审查继续推,同时盛辉医疗的二审答辩要定稿,还有一份商标无效宣告的法律意见书要出,三件事在屏幕上叠了七八层窗口,她在里面切来切去。 中间接了两个电话,一个是盛辉医疗的法务总监沟通二审策略,一个是团队律师请示答辩状的证据编排。 下午五点出头,她打开源码科技的文件夹,给韩路一发了一条消息: “软件漏洞精准定位和影响评估,这两个申请的专利通知都下来了,需要你配合补一些材料。” 她低头接着做别的工作。 中间沈予微探头进来:“走了啊,明天见!” 她抬手嗯了一下,眼睛没离开屏幕。 八点半,走廊里的灯都熄了,只有消防指示牌亮着绿光。 做完最后一份恒达的材料,把邮件发给项目负责人,她靠在椅背上闭了会儿眼。 手机有消息进来,是韩路一:“刚看到,约个时间?” “还在办公室,打电话吧。” 几秒钟后电话进来了。 “顾律师,不好意思,这么晚了。” “没事,”她说,嗓子有点紧,清了一下喉咙才继续,“你们的专利申请通知下来了,进入实质审查了。” “嗯。” “审查官发了意见稿,有几个技术特征的描述需要你配合确认,补充完整了才能继续推进。” “你把清单发我,我哪天带着资料过来?” “等一下,”她说,“我把审查意见拿出来,给你对一下。” 纸质文件在桌旁的资料柜里,她站起来要去拿。 刚走几步,眼前突然一黑。 砰—— 手机不知道什么时候从手里滑了出去。 她嘴唇动了动,没能发出声音。 第五十五章 九个月 韩路一推开车门,手机还贴在耳边。通话计时器跳到11分47秒,那头什么声音都没有。 大堂只剩一个值班保安在刷短视频,抬头扫了他一眼。 电梯里他把手机切到免提,除了电流底噪,什么都听不见。 十九楼走廊黑着,只有最里面一间办公室透出灯光。 推开门的一瞬间,他听到手机里传来了自己的脚步声。 一个手机躺在地板上,屏幕亮着,显示“源码科技-韩路一”。 顾司玥侧倒在文件柜旁边,地上散了一圈文件夹。 【顾司玥】 【体温:38.7度|连续工作:13小时|脱水:中度】 【诊断:病毒性感冒,过劳,体位性晕厥,非危急】 韩路一呼了一口气。 挂断电话,蹲下去把她抱起来,放到办公室角落的皮沙发上。她的脸烧得通红。 他迅速跑下楼,去便利店买了退烧贴、布洛芬、矿泉水。 回来的时候顾司玥已经醒了,靠在沙发扶手上,眼神还没完全对上焦。她看清是他,第一反应是皱眉。 “你怎么进来的。” “门没锁。”韩路一把矿泉水拧开递过去,“电话里听见你摔了。” 顾司玥接过来喝了一口,然后她的视线扫了一圈,落在办公桌上。 电脑还亮着。 韩路一顺着她的目光看过去。 【目标人物·核心状态】 【规划进行中:独立开设律师事务所】 【客户资源积累:未完成|启动资金:未就绪】 【预计窗口:6个月内】 韩路一没等她开口,走过去把笔记本电脑合上了,然后退回来把退烧贴撕开放在茶几上,布洛芬搁旁边,问道:“能自己喝吗?” 顾司玥伸手把东西拿过来。 韩路一在旁边蹲下去捡地上散的文件,按右下角的编号排好,放在了桌子上。 窗台上还是那盆绿萝,叶子又蔫了,旁边放着个马克杯,里面是小半杯凉透的咖啡。韩路一去茶水间倒掉咖啡,接了杯温水回来,也给绿萝带了一杯凉的。 “专利的资料,”顾司玥的声音从沙发上传来,又低又哑,“我回头发你邮件。” “不急。叫家人或者朋友来接你?” 顾司玥拿起手机,翻了两下,拨了出去。 “予微,嗯,还在博衡,你能来接我一下吗……嗯,没事,感冒了。” 挂了电话,顾司玥说:“四十分钟。” 韩路一点点头:“布洛芬吃了,等半小时看看退不退烧,我在这等你朋友过来。” 顾司玥没说话,靠回沙发闭上了眼。 韩路一在对面的椅子上坐下来翻手机,半小时后顾司玥额头上开始冒薄汗,脸色没那么红了。 她睁开眼,烧退了一些,眼神比刚才清了,外面传来急促的跑步声。 “司玥?司玥?” 韩路一站起来,沈予微正好出现在门口,简单交代一下,韩路一往外走去。 “韩路一。” 他回过头。 顾司玥看着他。 “……谢谢。” “应该的。” 他拉上门。 韩路一没回家,今天的展会和晚宴对他触动很大。 他叫了辆网约车沿着世纪大道往东,去张江。凌晨一点,路上几乎没有车。 整个楼都是黑的,他回到自己的工位上,大概搜索了一下,下载了市面上最火的AI编程软件。 安装,打开,右边的聊天框弹出来,光标闪了两下,他输入了一行提示词:写一个用户登录模块,包含邮箱验证、密码加密、session管理。 回车。 屏幕开始滚动代码,一行接一行,从上到下铺开,像打字机。 十五秒,几百行代码铺满屏幕,完整的登录模块写好了。 他没动键盘,看着代码从第一行滚到最后一行。 这就写完了? 他没开视界,而是把生成的代码丢进BugKiller。 五个Bug。 他看了一会,主动展开视界。 【AI生成代码·趋势分析】 【当前平均准确率:62%】 【预测(12个月):3个月→72%|6个月→78%|9个月→85%|12个月→89%】 【市场临界点:准确率>85%时,用户行为将从“辅助检查”转向“生成优先”】 9个月后,用AI生成代码的人就不会再用BugKiller了,他们会直接问大模型。到时候还会有几个开发者用BugKiller? 毕竟是相关从业者,大模型刚出来的时候韩路一也研究过一段时间,那个时候的感觉是“华而不实”,幻觉严重,满嘴胡话,像一个爱骗人的学渣实习生,你让他写代码,改起来比自己写还累。 后来他经历了裁员、创业,这六个月的时间一闪而过,每天睁眼闭眼就是工作,完全没有关注大模型的进展。 现在突然一看,准确率已经达到了62%。 进展的太快了,虽然现在还不如程序员,但是以这种发展速度,一场巨变就在眼前,所有的程序员都要失业。 视界验证了他的猜测。 他想起B区那些做AI编程的大小展台。 他想起那些不懂代码,却想用AI编程解决实际问题的用户。 他想起晚宴上聊着看不懂看不懂的创业者们。 他想起董飞,他不会编程,都敢all in AI。 他想起赵文渊站在阳台上,江风吹过他落寞的神情。 他想起在鼎盛无数个通宵达旦改代码的自己,那时候他不知道自己是为了什么,只想把手头的推荐系统做到极致。第一次做出一个小而美的软件BugKiller,被鼎盛的打压一步步推着走到现在,他还不知道怎么把自己定位成一个创业者。 直到这一刻,他才意识到:他想创业!即使创业是一条风险重重的不归路!AI的变革就在眼前,像滔天的巨浪席卷而来,无数创业者蓄势待发。 他们这些没挂的都敢玩,我他妈为什么不敢!? 他打开代码编辑器,把BugKiller开了一个分支。 他把核心引擎拆出来,再把开源的代码生成框架拿过来装上,配了一个图形界面。 他要做一个给非开发者用的,漏洞检测和修复建议嵌入的AI工具生成平台。其他人9个月之后才能做到的水平,他靠BugKiller现在就能做到。 他进入了心流模式,全神贯注在眼前的代码上,视界全程开启,给出的最优建议他全部采纳。 整个办公室回荡着机械键盘噼里啪啦的声音。 【精力值:187/500|状态:亢奋|建议:休息】 视界的提示,韩路一忽略不看。 终于,最后一个改动结束了。 gitmit -m“feat: vibe-mode v0.1” 代码生成后自动使用BugKiller模型检测,所有Bug和修复建议加入下次生成提示词再次运行,直到成功。 所有的代码和逻辑都隐藏在图形界面后面,用户只需要在对话框输入想要的功能就能创建出独属于自己的软件。 韩路一看向窗外,天空露出一丝鱼肚白。 他再次输入了那行提示词:写一个用户登录模块,包含邮箱验证、密码加密、session管理。 几十秒后,一个完整的登录页面弹出来。 打开视界,一道绿色的提示框弹出来。 【0 Bugs】 这一刻,整个AI编程行业还在讨论未来。 韩路一已经领先全世界了九个月。 第五十六章 韩老师,你是神吗? 姜亦心到的时候,办公室里只有韩路一。 他的工位在最里面,双显示器亮着,机械键盘噼里啪啦作响,昨天那件蓝色衬衫还穿在身上,皱巴巴的。 “韩总早!” 韩路一回头看了她一眼:“来得挺早。” “来补补昨天的进度。”姜亦心把咖啡杯换到左手,右手下意识扯了扯衣角,低头往自己工位溜。 打开电脑,先点开昨天的提交记录。 陈建业的提交在最上面——【feat:昆仑平台层适配完成,接口封装、命名规范、边界处理】,时间戳昨晚十一点十七分。 她点进去看了一会儿。 分层清晰,接口封装干净,注释写得跟教科书似的。变量命名规范到变态,连临时变量都用了完整的camelCase。 她想起代码评审时陈建业挑她毛病的那副嘴脸,撇撇嘴。 秃头大叔虽然嘴欠人品差,写代码是真的牛逼。 姜亦心瞟了一眼韩路一的方向。 桌上是楼下早点摊卖的油条和豆浆,衣服都没换,这是通宵了吧? 卷王,真他妈卷。 她突然意识到什么,低头看看自己,特意早起一个小时来补进度,结果老板来得更早。 他是老板,卷是为了自己公司,我卷是为了谁? 社畜何苦为难社畜。 正纠结着。 “小姜,先别补了。”韩路一拍拍自己旁边的椅子:“来,坐这。“ 姜亦心端着咖啡走过去,凑近才看清右边显示器上的界面。一个简陋的输入框,白底黑字,上面写着:描述你想要的功能。 这是什么?1995年的复古网页? “韩总您通宵写的?” 韩路一往键盘那边点了点:“输个你想做的功能。” AI编程啊? 姜亦心犹豫了一下。 昨天展会B区,她也体验过三四家AI编程工具,上周也试过用国外的AI编程写小功能。AI写的代码大概什么水平她清楚——能跑,但一定有bug,变量命名乱七八糟,边界条件基本不管。 她打字:写一个在线聊天软件。 回车。 屏幕上出现一个圆形加载中的图标,等了好几十秒,感觉速度比她体验过的工具都慢一些。 好尴尬啊,一会我应该做什么表情才能不伤韩老师的面子啊…… 终于,生成完毕,一个聊天界面弹了出来,有对话框,有聊天记录,上面可以设置昵称,旁边还有个二维码。 哦,能运行吗? 姜亦心拿出自己的手机,扫码,手机里也打开了一个一模一样的聊天界面。 她打字:“测试测试” 电脑屏幕上的界面也显示“测试测试” 姜亦心瞪大了眼睛。 不是,等等。 我刚才干什么了? 她回头看了看韩路一面无表情的脸。 韩老师,你一定在心里偷笑吧!你是在装逼吧? 姜亦心消化了一会儿,开口道:“韩总,您昨晚……通宵做的?” “嗯。“韩路一微笑着点了点头,“等人来齐了一起说。“ 韩老师,你是神吗? 九点多,人陆续到场。 苏念念最后进门,扫了一眼韩路一的衬衫,皱了皱眉,但什么都没说。 韩路一起身站到白板前:“人齐了,来来来开个短会!” 姜亦心想起入职第一天——他也是在这开会,没废话,直接分活。 “看屏幕。” 韩路一打开那个简陋的界面,开口说道:“上周苏总和我交流过,现在BugKiller有很多非开发者用户,这是一个很大的蓝海市场,我们应该在这里进行布局。我决定把公司下一阶段的战略重点放在这方面。这就是我们的第一个产品——Vibe Mode。” 他的手指向屏幕。 姜亦心偷偷看了一圈,在场的众人脸色各异。 陈建业双臂抱胸,嘴微微撇了一下。 陈磊面无表情。 苏念念的从皱眉变成若有所思。 陆明洲欲言又止。 李婷看着有点不明所以。 刚才已经看过成果的姜亦心偷偷的掐自己的大腿。 不行,忍笑忍的好辛苦。 这就是装逼打脸的快乐吗,怪不得这么多人喜欢看网文啊! 韩路一当着所有人的面开始打字:写一个带购物车功能的电商页面,包含用户登录、商品列表、结算流程。 回车。 办公室安静了好久。 一个电商页面弹了出来,韩路一操作着进行了从登录到结算的流程。 所有人都怔怔地盯着屏幕。 陈建业喃喃地说:“提前做好的吧?” 等大家消化了一下,韩路一开口:“三件事。 “第一,适配继续做,但从今天开始全员用AI辅助开发。工具都给你们装好了,不会用的来找我。” “第二,我们的下一个重点,BugKiller新方向——Vibe Mode,AI生成代码加自动检测修复,面向非技术用户。”他顿了一下,“代码检测是我们的护城河,但只做检测是死路,要往前走一步。” “第三,”他看向苏念念,“非技术用户怎么定价、按什么收费,下周给我一版。” 苏念念点头。 “从今天开始,所有人都用AI生成加BugKiller的工作流写代码,自己的适配工作就是最好的测试场景,散会。” 说完,直接回工位。 姜亦心去茶水间接水。 走廊拐角,陈建业的声音飘过来—— “又变了,昨天还云适配云适配,今天又搞什么AI生成……这种公司一天一个方向,我跟你说……” “这就不是技术问题,是管理的问题,你说一个正经公司能这么搞吗?今天拍脑袋明天换赛道……” 姜亦心端着杯子退回去,没让他发现。 这一幕好熟悉! 上次他也在这个位置打电话,说“这破地方连CI都没有“。结果CI就在那摆着,他根本没看入职文档。 这次他又在这说“一天一个方向”。 秃头大叔,你又要被打脸了。 她憋着笑,绕路从另一边回了工位。 姜亦心打开天枢适配的代码,准备按韩路一说的用AI辅助。 韩路一走过来。 “小姜,天枢适配用AI辅助收尾,赶一下进度,收完之后,你跟我做vibe-mode核心。” “好的韩总!” 韩路一走后姜亦心悄悄拿出手机。 【大刘(青春版)】:起了吗? 姜亦心低头打字。 【小姜】:大刘,装逼真的太爽了!我以后也要装逼! 【大刘(青春版)】:? 第五十七章 开物 韩路一刚坐下,耳机还没戴上,苏念念就站到了他旁边。 “有件事得跟你说,来会议室。” 路过姜亦心的工位时苏念念脚步没停:“小姜你也来。” 姜亦心赶紧把手机收起来,快步跟上去。 三人进了共享办公区角落的小会议室,韩路一找个椅子坐下,打了个哈欠。 苏念念关上门,直接站到白板前面。 “你昨晚做的东西,虽然技术上很惊人。” 韩路一点头。 “但是——” 来了。 “界面太糙了。”苏念念把手机摊在桌上,屏幕上是刚才的生成页面,“你对着程序员,功能强大就够了,人家自己能读代码。但你面对的是开奶茶店的小姑娘,是摆地摊的大爷,是做自媒体的博主。” 她划了两下手机:“界面、交互、上手引导,这些东西对技术用户是锦上添花,对非技术用户至关重要,你现在这个界面,我都不想点第二次。” 韩路一没反驳。 通宵赶出来的,能跑就不错了,他确实一行CSS都没碰。 姜亦心在旁边缩着脖子不敢出声。 苏念念继续:“而且名字也不行。” “vibe-mode,我知道你是想呼应氛围编程,但你跟一个开奶茶店的小姑娘说vibe-mode,她以为你在放DJ。” 姜亦心没忍住,笑了一声。 韩路一说:“那你觉得应该怎么做?” 苏念念在白板上写了三个词: 体验。信任。品牌。 “你知道iPhone为什么赢了黑莓吗?” 韩路一摇摇头,他用的是国产安卓。 “黑莓能收邮件,能打电话,能上网,当时硅谷的高管人手一个。iPhone刚出来的时候连复制粘贴都不行,但乔布斯做对了一件事,就是把iPhone做的连老太太都会用。” 她转过身面对两个人。 “AI编程现在就是2006年的智能手机,功能有了,展会B区那些工具一个比一个能写,但没有一个产品让普通人觉得「我会用、我敢用、我想用」。” 韩路一盯着白板上的三个词。 “谁先做到这个体验,”苏念念说,“谁就拿到AI编程的iPhone时刻。我们不只是做一个好用的工具,我们要做一个让人信任的工具。” 韩路一举手:“同意,先从哪开始?” “名字。”苏念念很快,“vibe-mode绝对不能用,BugKiller我就不喜欢,得起一个用户一看就懂,又能代表我们愿景的名字。” 她在白板上划了一块区域,写了个大大的问号。 “来,头脑风暴。” 韩路一说:“Jarvis?” 苏念念瞪他一眼:“治治中二病。” “那……BuilderX?” “像一款手机壳。” 韩路一:“……” 苏念念自己写了两个——“造物”,“灵机”。 韩路一摇头:“造物有点太大了。灵机……灵机一动?” “也不行。”苏念念自己否了。 姜亦心坐在旁边,张了张嘴,没出声。 韩路一又蹦了一个:“Smarte。” 苏念念懒得看他:“你是不是只会起英文名?” “……职业病。” 安静了十几秒,姜亦心突然开口。 “天工开物。” 苏念念和韩路一同时看她。 姜亦心被两道目光钉在椅子上,手指在桌面下绞了一下,但还是继续说了。 “《天工开物》,明朝宋应星写的,讲的就是……怎么把复杂的技术变成普通人能用的东西。开物,开启万物。用户不需要懂代码,只要说出想法,开物帮他把东西做出来。” 会议室安静了几秒。 苏念念念了两遍:“开物……开物。” 韩路一拍板:“就这个。” 姜亦心松了一口气。 苏念念转向白板,把问号擦掉,写上两个字:开物。 然后在下面拉了一条线,写了一排关键词:首页、生成界面、结果展示、错误引导、品牌色、字体规范。 “名字有了,产品还需要一整套UI设计体系。”她指着白板上那排词,“这些东西我可以出需求,但得有人画。” 韩路一想了想:“找外包?” “一套完整UI体系,外包起步十几万,而且沟通成本高,品质不可控。”苏念念皱眉,“最怕的是改需求,这个阶段产品形态还在变,外包给了你第一版,改一次加一次钱,改三次等于买个新的。” 姜亦心听到“十几万”,咽了口口水。 苏念念看向韩路一:“你邻居那个姐姐,能不能让她来做?” “我去问问。” “如果她愿意,我先出一版产品需求文档给她。”苏念念说完这句,在白板上写了个“待定”打了个圈。 讨论快收尾的时候,姜亦心举手。 “韩总,有个事我一直想问——” 韩路一看她。 “开物用的大模型……是别人的吧?” “嗯,开源的代码生成模型。” 姜亦心接着说:“那BugKiller的检测引擎,也是公开产品,其他公司也能调用。” 她停了一下,像是在组织措辞。 “所以……别人用同样的开源模型,加上BugKiller或者别的检测工具,不就能做出一样的东西吗?” 苏念念的目光从白板移到韩路一脸上。 “能。”韩路一说,“能抄,谁都能抄。每个创业者都会被问这个问题,如果巨头做了和你一样的产品,你怎么办?” “告他?” “告没用,你要跑得比他快,我们今天能跑通全链路交付,能比别人领先至少半年。” 韩路一指了指白板上苏念念画的闭环流程图。 “生成、检测、修复、再生成,这个循环看着简单,但到底怎么做,全要摸索。别人想抄,这些路也得走一遍。” “那半年以后呢?别人追上来了呢?” “半年能做很多事了,用户是有迁移成本的。” 韩路一举了个例子:“你手机里有个app,用了大半年,里面存了你所有的东西,隔壁出了个功能一样的,你换吗?” 姜亦心想了想:“不换。” “所以快点做!”韩路一拍了下手。 姜亦心回去工作了,苏念念给白板拍了个照,也走出会议室。 只剩下韩路一一个人坐在会议室里,闭上眼睛。 “你知道他们拿CodeSafe在干什么吗?” “鼎盛要做代码生成,这些都是喂给大模型的养料。” “真他妈脏啊。” 第五十八章 备注 青岳云销售事业部Q3复盘会,16楼大会议室。 投屏上各团队KPI完成率从高到低往下排,VP张阳坐主位,一个团队一个团队过。 渠道合作部,91%;大客户服务部,87%;中小企业部,76%。 数字念过去,张阳偶尔抬头点评两句,语气平稳,像在念天气预报。 轮到开发者生态部。 “生态部Q3,整体完成率,53%。” PPT停在这,会议室里十几个人鸦雀无声。 梁宇坐的位置背靠窗户,阳光从背后打进来,显得他脸有点儿黑。几个同事偷眼看他,他看着屏幕上自己部门的数字,没动。 PPT继续往下翻:“新签合作伙伴12家,标准合作方案12家,深度合作0家。” 零,单独挂在屏幕上。 “重点项目BugKiller,签约方式标准合作方案,月保底十五万,分成88%。”张阳念完这行,目光从平板上移开,扫了一圈,没落在任何人身上。“这个项目方向判断不错,合作伙伴产品数据有亮点,下个季度重点看看实际转化,保底花出去了,得看到开发者增量。” 四平八稳,滴水不漏。 在座都是老人,中译中很熟练:你梁宇判断对了,但没谈下来最开始的独家方案,希望你能证明这钱花的值。点拨的很重了。 投屏翻到下一个团队。 梁宇依旧没动。 散会他没急着走,等人走得差不多才出门。 电梯口,大客户服务部总监许峰靠在墙边看手机,他的部门做了87%,现在正春风得意。互联网这些大厂,指标订的狠,完成80%就算过关,53%确实有点难看。 终于等到梁宇过来,许峰收起手机,笑了一下。 “老梁,辛苦辛苦,你们生态部的活最难干,一时半会儿看不到回报。” 梁宇露出笑容:“嗨,我们苦点累点,也是给你们打工了。” 许峰跟了两步,语气随意:“我听说Q4预算要重新评估?咱们提前准准材料,别到时候被动。” “多谢提醒,我也听说了。”梁宇笑着点头,“下次请你喝茶。” 他走进电梯,按了关门,许峰没进来。 电梯门关上,梁宇脸色铁青,小声说了一句:“他妈的小人得志。” 梁宇一毕业就进了青岳云,从商务开发专员做到生态部总监,中间经历过三次架构调整、两任直属VP、一次裁员潮,整整十二年,他还在这栋楼里。 一次季度复盘不好看,不至于让他伤筋动骨。 生态部和许峰的大客户部不一样。大客户做的是存量生意,维护关系、续约提价、守住地盘,每个季度交数字就行。生态做的是增量,在生态工具的池子里钓小鱼,等小鱼变大鱼,平台才能收割。这个过程快则一两年,慢则三五年。53%放在大客户部是灾难,放在生态部叫投入期。 但PPT不替你解释,屏幕上只有数字。 而且现在大环境变了,不是五年前蒙眼狂奔的时候了,全社会都在讲降本增效,很多企业在做去云化,一年砍几百万的预算,整个云市场增速放缓,业绩压力一层传一层。以前他生态部炙手可热,现在是大客户和渠道合作耀武扬威。 电梯到了二十三楼。 这个季度没拿到好看的数字,但他也有收获。 源码科技,更准确地说,源码科技的CEO,韩路一。 三个人的创业团队,他给的独家条件不算差,任谁想都是签了。 结果他不仅不签,转头跟天枢谈了,跟昆仑也谈了,三家云,一家独家都没给,每一家都签了。 梁宇入行十几年,过了几百家合作方,这操作换他来不一定敢。 他犹豫了几天,低头回去谈,对面和没事人一样。 他后来和周明远、陈凯私下对过,这小子谈判的本事简直神了,摸着你的底线谈。 上周晚宴,全桌聊AI编程,和这个赛道离得最近的就是他,韩路一坐那儿吃菜,只听不说,董飞问他,他说看不懂。 谁信?梁宇见过太多创业者在饭局上使劲,恨不得名片两面都印PPT,这人年纪最小,话最少。 老练的他见过,这么年轻就这么老练的,少。 韩路一是不是池中的金鳞?只等风云化龙? 说曹操曹操到,手机响了。 是韩路一。 “梁总,忙呢?有个事请你帮忙。” “你说。” “展会参会者名单,青岳手上有吗?能不能帮忙推一些非技术背景的参会者?” 非技术背景的,他要来干嘛? “非技术的?” “有个新方向,想找点用户内测。” 梁宇没再问,“有个新方向”,就是不想说。 名单在市场部,展会数据走活动运营系统。他直接调得走跨部门,提申请,市场那边先问一轮“商务调这个干嘛”,再等审批。正常时候打个招呼就搞定。但刚才那个会开完,他的权重又掉了一格。跨部门要数据,对面掂量的不是工号,是你上个季度考核的评分。 路径不止一条。 “名单是有,但想调起来有点麻烦,”梁宇说,“这事归市场部管,我也得打申请才行。” “那能不能麻烦梁总引荐一下?”韩路一没犹豫。 “嗨,韩总,这话说的。这忙我肯定想帮,你看,要不换个方式,我出一个联合触达,以青岳合作伙伴的名义给目标人群发邮件。你们写内容,我这有权限直接发,回复的人你们直接对接。” “行。” “人群画像的具体要求呢?” “非技术背景,展会B区停留超过十分钟的,最好是活动上试用过的。” “那你把内容尽快给我,我这边过一下数据,给你个数字,最快能赶上下周一的邮件。” “梁总,太感谢了!” “韩总,别客气。还有,邮件得带青岳logo和合作伙伴标识,我要报活动量。” “没问题。” “回头联系。” 茶水间只有他一个人,梁宇把手机放在窗台上,看着楼下的车流。 忙能帮,但不能轻易帮,得让人记你的好。 联合触达走他部门的预算和系统,活动量能报。韩路一那个新产品上线跑出来的数据,转化、留存、反馈,都是他Q4汇报时的现成素材。 梁宇拿起手机,翻开通讯录。 韩路一,备注还是两个月前写的——“BugKiller/创始人/三人团队”。 他把备注全删了,添加为VIP联系人,按了保存。 第五十九章 收音机(求追读) 基本痊愈之后复诊方法亦是如此,其他地方的医师没X光机,也只能望尘莫及。 给他发短信的是一名代号为001的人,这是他的大哥给他派来救援他的。 哪怕是白鹤那个老家伙,实力魂斗罗,速度上也只是超过封号斗罗许多,不可能达到如此惊人的程度。 又过了近半个时辰,斐孤辰亲自端了一碗乌鸡汤过来,还捎带着带了几个边塞地区不常有的烧麦给她搭配着吃。 程逍闻言,看向赵熙然的眼神染上几许刮目相看,这时才明白过来,原来她是来面试翻译官的。 程家琮听见这话回头望了眼病房里躺着的人,确认是22床没错。 四人从通化城门进入城内,其时太阳早已落山,天就要黑了。只见八街九陌,人潮熙攘,华灯初上,车水马龙。 顿时间,杀猪般的叫喊从沈浩轩嘴里喊了出来,面色吓得惨白,两腿一软,当场一墩子坐到了地上。 赵熙然买了一个纪念品,一转身就看到了程逍,对方眼里的意味太明显,她想忽视都难。 进到屋里,只见灯光通明,亮如白昼。七八张赌桌都挤满了人,人声鼎沸,乱哄哄的一片。 而现在,随着天山童姥死去,灵鹫宫的最高权限拥有者死去,灵鹫宫开始按照被制造的时候,就被输入的指令,开始排斥出所有灵鹫宫内的生命。 “现在还没有事,这阵才刚刚启动,威力还没有显露出来。”乐云烟安慰达无悔说。 重要的地方自然是有守备的,六个彪形大汉就在这里当守卫,看护着两间民房。不过这还真没什么大不了,林家仁早有准备,商店老板就是这种时候使用的道具了。 王培震惊鬼震惊,但是好歹也还是一个出道多年的好江湖了,怎么可能就这样的认输呢? 看到张涛发笑,乌谭的内心更是悲愤无比,奈何实力差距摆在那里,实在是无可奈何。对于张涛,诺澜秋雪很是尊敬,他也不敢再次得罪,唯有将这满腔怒火压抑在心中。 hz市十分出名的古玩一条街,京城琉璃厂的另外一家分号,这里说是分号,其实还不如说,是那里的一些名店,将分店开到了这里,取名和氏园。 “呀!春燕姐早来了!”福生一进来,立刻的打了一声招呼。不过瞬间便看到了史春艳那有些夸张的装扮,嘴都没有合上便猛然的一愣。 总之林家仁奇迹般的没有被爆头,而是被集火攻击了躯干。剑刺刀砍,即使他的铠甲再能抗,林家仁也是受到了力的传递,更何况到后来铠甲破损,他的上身更是受到了七七八八的伤害。 翻了个身就要坐起,忽然看到对面一堆干草上一个男人面带笑容的坐着,不知道他已经以这个状态看了自己多久。 今天她上半身穿着一件白色的翻领衬衫,下半身穿着一条浅青色的职业紧身短裙,酥胸高耸挺立、芊芊纤腰盈盈可握。 毕竟,论修心养性的本事,他还是比不上无尽岁月磨炼的南蛮巫神。 顾沉光和顾南城因为身份关系还有些顾忌,但是顾家二世祖可就没那么多顾忌了,一听说有人敢骂自己侄子是野种,就那暴脾气。 尤其是黄化,身为蔺岳的死忠之一,此时当再次听到这个名字,他的眼底无比复杂,如他此时的心情一样。 江亭柳差点笑出声来,不过为了保持“准掌门”的架势还是忍住了。 君慕浅看见其中东胜神州、东海、须弥山以及昆仑虚在裂开的过程之中,又渐渐地组合到了一起。 当初自己打算收购一些企业的股票,自己收什么,邓奉就来抢什么,实在是让自己有些恼火,毫无意义,这间谍就应该出现在了自己新招的那一批员工当中。 听着邹珂在自己身旁叨叨絮絮,杨恒瑞忽然有几分恍惚,心中涌起一抹暖意,仿佛自己有了家一般,第一次感受到了亲人的关怀。 试想一下,一个销售冠军突然离职,作为公司方,是不是得问明原因并想办法挽留,这才是正常的操作。 肖一竹回家发现不对劲,立刻便想起江亭柳来,他匆匆忙忙服了一颗解毒丹便直奔江家,万幸还来得及。 安静的石廊中响起善意的哄笑,哪怕是在昏暗的火光中,江亭柳也注意到肖一竹的脸红得要滴出血来了。 “不错, 看起来十分的整齐、干净又赏心悦目。”黄张氏见此, 脸上也露出满意的神色道。 没有外力的干预,灵魂适应的速度太慢了,一夜过去上涨进度连20%都没有。 “可能是吧,但是有一样东西,你可不可以先给我?”陆毅顿了顿,说道。 只是当赫洛突然跑到婴面怪虫前面的时候,不禁让怪虫愣了一下。 “你们两联手我就怕了吗,即便是你们整个武盟全都出手,又能奈我何?”许川一脸藐视,再次出手。 所以魇魂只能在那三天时间内积累力量,要么灵魂枯竭而死,要么积累完成,条件成熟直接夺舍术师。 斯坦博士说枪炮模式下,这把枪可以自动吸收对方的空气,然后凝聚成空气弹储存起来。 首先映入他眼帘的是,一排排整齐的帐篷,还有来来往往甲胄齐整的士兵。远处还有一块巨大的平地,好些士兵正在大声呼喊着,整齐的进行操练。 所以说,要做个好人,但凡是有点良知的人,都不会轻易对好人下手。