手环发布会开完之后,佐伊的生活并没有变成那种“项目结束、功成身退、从此岁月静好”的童话。她值完两轮班,又飞去瑞士和ITER开了一次碰头会。
ITER那边的研究团队在核聚变装置的数据监测上遇到了一个和医疗手环类似的信号处理问题——高温等离子体环境下,传感器采集到的信号里混杂着大量电磁干扰,信噪比低到让人头皮发麻。
碰头会开了整整一个下午,佐伊把PlusCare手环的自适应滤波算法框架做了分享,ITER那边的信号处理工程师听完之后在白板上画了一张新的降噪流程图,佐伊站在旁边看了一会儿,拿起马克笔,在上面加了一个反馈环。
那个工程师盯着那个反馈环看了几秒钟,然后用带法语口音的英语说:“这个闭环收敛速度会比之前快百分之四十。”
佐伊把马克笔的盖子盖上,放回笔托里,点了点头。
然后Jotish总算把他那份拖了很久的后备人才培养计划写完了。
说“拖了很久”其实不太公平——老头在PlusCare冲刺NHS评审的那几个月里把这件事的优先级排在了所有技术评审之后。
佐伊催过他一次,他哼了一声说“在写”,然后继续端着咖啡杯在技术中心的走廊里溜达,像一只在领地里巡视的老猫。佐伊后来就没有再催。她知道Jotish的“在写”是真的在写,只不过他写东西的节奏和佐伊从脑子里往外倒文本的节奏不太一样。他的文档没有一句废话,但每一句都是从他脑子里那些盘根错节的记忆里慢慢抽出来的,像从老树的根系里提取某种需要时间和耐心的东西。
他交稿那天是三月最后一个周四。邮件正文只有一行字:“写完了。你们看看。要改自己改。”附件是一份二十来页的PDF,页边距很窄,字体很小,没有任何排版修饰,但目录清晰得像他年轻时写的代码结构——从计算机科学基础到分布式系统架构,从数据分析方法到技术管理的软技能,每一章下面都列了必读书目和实操项目。
佐伊和Vital在工作室里一起看了这份文档。
佐伊翻到第三章——算法设计与验证——的时候停住了。Jotish在这一章的开头写了一句话:“好的算法不是写出来的,是磨出来的。磨的过程中你可能会把同一个函数重写几十遍,每一遍都比上一遍短。直到有一天你发现它已经短到不能再短,但能处理的情况比第一版多了无数倍。那时候你才真正理解了它。”
她想起自己十几岁时坐在这个工作室里,对着IDE把预警系统的特征提取函数重写了不知道多少遍,Jotish站在她身后,端着咖啡,看了一会儿,说“再短一点”,然后走了。
“这老头,”她说,“写文档比写代码还像诗。”
Vital在旁边翻到硬件部分。第五章——传感器与信号处理——里面有一整节是Jotish写的关于硬件-软件协同设计的方法论。Vital从头看到尾,然后靠在沙发背上,看着天花板。“他把我以前和他吵过的那些架,全写进去了,”他说,“但他把结论写成了‘建议’,不是‘教训’。这老头怎么忽然变得像导师了。”
佐伊从屏幕上抬起头,看了Vital一眼。“他一直是导师。他只是以前觉得‘导师’的意思是把问题丢给你自己解,解不出来再来找他。”
“现在呢?”
“现在他大概意识到,有些东西需要趁他还在的时候就写下来。”
两个人沉默了一会儿。工作室里只有服务器风扇的低频嗡鸣。然后Vital把文档翻回目录页,在公盘里新建了一份共享文档,标题改成“PlusCare后备人才培养计划——补充”。
佐伊把键盘拉过来,点开共享文档,两个人一起开始打字。
佐伊在医学数据分析那个模块下面加了三门“必修课”。第一门是病理生理学基础——不是那种医学院一年级通识课的水平,是能看懂临床试验终点设计、能理解疾病自然史对数据分布的影响、能在临床医生提出需求时知道他们真正在说什么的水平。第二门是临床试验设计与统计推断——她写了推荐教材,写了建议的练习方式,还标注了一句“最好找几个真实的三期临床数据集自己跑一遍”。第三门是医疗器械法规与质量管理体系——主要包括欧盟MDR、NHS的HTM标准,还有ISO与FDA的。
Vital在硬件模块下面加了两门。一门是“从传感器原理到量产——良品率、环境测试、供应商管理”,另一门是“硬件-软件接口设计——时序分析、中断处理、数据缓冲”。他还在备注里写了一句:“建议学员在学完这两门课之后,亲自去生产线上蹲至少一周。不是因为生产线需要你,是因为你需要知道什么叫‘图纸上的公差和现实中的公差之间的差距’。”
四月的第一周,三人组开始分头带人。
Vital分到两个医学基础最好的年轻工程师,一个叫Liyade,一个叫Floffe。
Liyade毕业不到两年,画电路图的速度快但layout习惯不好,走线像在画抽象派油画,她在帝国理工拿了MBBS/BSc双学位(内外全科医学士及理学学士),最后研究生去读了个医药工程,并一脚踩进了医疗科技的圈子。
Floffe在手环硬件组待了三年,做传感器测试很扎实,对医学数据的理解也有不错的基础。但对系统集成的认知,还局限在单个模块层面。
Vital第一次和他们坐下来聊培养计划的时候,把Jotish那份PDF打印出来,翻到硬件那一章,用马克笔把几门必修课圈了出来。
“你们俩医学基础好,所以优先跟我为主。这些是你们接下来要学的,”他说,语气和他在港口现场分配调试任务时一模一样,“不是看看文档就行。每门课都有实操项目,做完一个才能到下一个。我会检查。”他顿了顿,看着Liyade,“你的第一项任务是把上个月那个I2C总线的layout重画一遍。不是改改就行,是从头画。画到信号眼图睁开为止。”Liyade点了点头,手指在笔记本上飞快地记。
Floffe在旁边翻着那份打印件,目光停在“硬件-软件接口设计”那门课上,眉头微微皱起来。
“Vital,”他问,“这一门为什么是必修?”
“因为你不懂软件的人在写接口时在想什么,他们也不懂你在想什么,”Vital说这两句话的时候眼神似乎透过这份文件看着自己的回忆,“然后你们两边就会互相甩锅。我和佐伊为这种事吵了十二年了。所以,它现在是必修课。”
Floffe几乎认命的点了点头。
佐伊带了两个——一个是Puls那边调过来的数据工程师,叫Natilim,做预警系统后台维护做了几年,对算法原理有一些理解,但是对临床规律和医疗系统的的认知还不及医学生的大一通识教育;另一个是BeaconCare信息中心的架构师,叫Ale,对医疗系统相对比较完整的理解,写过BC的床位调度系统,但是系统架构能力目前——以佐伊的标准来说——一言难尽。