下一章 上一章 目录 设置
98、带教老师 比‘丢给护 ...
-
手环发布会开完之后,佐伊的生活并没有变成那种“项目结束、功成身退、从此岁月静好”的童话。她值完两轮班,又飞去瑞士和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的床位调度系统,但是系统架构能力目前——以佐伊的标准来说——一言难尽。
佐伊第一次和他们开会的时候,把Jotish那份文档和她的补充模块一起投在屏幕上。她从病理生理学基础开始讲,讲完之后问他们有什么问题。Natilim问了临床试验的终点设计,Ale问了医疗数据清洗应该如何处理缺失值。佐伊一一回答,语速比她平时慢,每讲完一个点都会停一下,看一眼他们的笔记本,确认他们跟上了。她想起自己小时候跟着安东尼查房的那段时间,麦克斯会在查完房之后,把她喊回办公室,问她“有什么问题”,然后坐下来一个概念一个概念地讲。现在轮到她了。
她深吸了一口气,把翻页笔翻到下一页。
但“不要太快”这件事,对她来说比写代码难多了。
她的大脑是一台并行处理器——看到一个问题,脑子里同时跳出答案的逻辑推导、相关文献的结论、以及这个问题的底层原理和其他相关学科的交叉点。她的语速在她觉得“正常”的时候,实际上已经是普通人语速的一点五倍。她需要刻意地、一个字一个字地放慢,像她当年在DSMB会议上对着临床专家讲统计分析时一样——不是因为她不懂那些术语,是因为她需要确认对方也懂。
与此同时,Jotish难得有了点导师的样子。
他带的那两个后备人才——一个是从能源板块调来的数据分析师,另一个是运输板块的初级架构师——每周二周四下午被叫到他的办公室里,坐在他对面,把他布置的阅读材料从头到尾汇报一遍。Jotish还是一如既往地不近人情,汇报里任何数据引用不准确都会被当场打断,任何逻辑推断上的跳跃都会被追问到假设源头。但他不再像以前那样骂完就走。汇报结束之后,他会靠在椅背上,端起那杯永远凉得差不多的咖啡,把刚才讨论的问题拆开揉碎了重新讲一遍——从历史背景讲到技术演变,从理论假设讲到工程实践,语速很慢,像是在讲一个已经在他脑子里编排了很多年、终于找到听众的课程。
有一天下午,佐伊去Jotish办公室送材料,推门的时候听见他正在给两个学生讲Beacon早期数据库架构的设计缺陷。他讲到一半,看见佐伊进来,停了一下,然后用马克笔指了指她。“你们知道她十岁时写的第一个数据库审计脚本吗?那个脚本到现在还在跑。她那时候连SQL的语法都要一边写一边查手册,但设计逻辑比很多现在在业界工作了十几年的DBA都清晰。”
佐伊把材料放在他桌上,面无表情地说了句“那是我九岁写的”,然后转身走了。Jotish对着她的背影端起咖啡喝了一口,对着两个学生说:“看见没有,这种人对自己的要求从九岁起就不正常。你们不用学她——你们应该先学好怎么把需求文档看懂。然后再谈别的。”
两人面面相觑,一个学生在笔记本上飞快地写了几笔,另一个低头看了看自己面前那份被Jotish改得密密麻麻的数据库设计方案,默默翻开了下一页。
有一天傍晚,佐伊坐在安东尼办公室的沙发上看文件,那天她盯着屏幕看了很久,久到安东尼交完班推门进来,她还保持着那个姿势,一个字都没敲。
安东尼把白大褂脱下来挂在衣帽架上,从抽屉里拿出自己的杯子,倒了一杯水,然后在她对面的办公桌后面坐下来。他看了她一眼——她的眉头微微皱着,嘴唇抿着,手指悬在手机屏幕上方,像是想打字但不知道该打什么。
这个表情他认识。她从小就是这样——遇到一个她觉得“不应该需要解释”的问题时,会在脑子里把所有可能的解释路径都跑一遍,然后发现每一条路径都建立在太多她认为是“默认已知”的知识基础上,多到她不知道该从哪一层开始讲起。
“怎么了?”他问。
佐伊抬起头。她的表情是一言难尽的——不是生气,也不是烦躁,是那种“我不知道该怎么把这句话翻译成另一个星球的语言”的无奈。“Natilim,就是那个我最近在带的工程师,他问我,为什么高危药剂要单独建库,他认为这增加了系统复杂度和维护成本,他还说药品红绿灯系统为什么不能在权限层面直接分层,一定要物理隔离。他还问我,能不能把高危处方的数据结构优化一下,让它和普通处方共用一个表,加一个字段区分就行。你听听他在说什么,一个字段?一个字段?!”
NHS指定的红绿灯系统,是病房里用来区分不同危险等级药品的视觉标识系统以及存储控制系统。那些高危药品从存储到调配到核对,每一步都必须是物理隔离的,因为人都会犯错——护士会疲惫,药剂师会走神,医生在凌晨四点被叫醒时会把毫克看成微克。权限可以被盗用,软件逻辑可以被绕过,但物理隔离是最后一道防线——一扇需要两个人的手里的两把钥匙才能打开的门,比屏幕上任何一个密码输入框都要可靠。护士不会把肾上腺素和生理盐水放在同一个抽屉里,同理你也不会把高危药剂和普通处方的算法放在同一个数据库里共享。这些知识她已经内化了太久,久到她忘了“不知道这个”是什么感觉。
安东尼正在喝水,听见这个问题,杯子在嘴边停了一下,然后他慢慢把杯子放下。他没有笑——但嘴角有一个很淡的、被压住了的弧度,“你怎么说的?”
佐伊低下头,手指在手机屏幕上悬了很久。然后她把手机放下,看着安东尼,语气里带着一种她自己可能都没意识到的、近乎委屈的困惑。“这种……我七岁就知道的常识……我想把他丢给护士长骂三天,他应该就懂了。”
她停了一下,把PICC抱起来,捻了捻猫耳朵。
安东尼把手里的杯子放在桌上。他没有立刻接话,而是靠在椅背上,看着她。
佐伊坐在沙发上,抱着猫,神情里有一种——我需要向他解释整个监管体系才能回答一个关于数据库表结构的问题的——无力感。
“我的意思不是他不能问,”佐伊说,声音比刚才轻了一点,像是在和自己对话,“我的意思是,我不知道该怎么回答,才能既不说‘你怎么连这都不懂’,又把所有需要讲的东西都讲清楚。这道题的答案太长了,长到我不知道该从哪里开始。”
安东尼靠在椅背上,两手交叉在胸前。“你小时候,大概七八岁,问过我一个问题,”他说,“你问为什么多巴胺和肾上腺素有不同的适用情况。”
佐伊抬起头看着他。
“我当时也不知道该怎么回答你,”安东尼说,“不是不懂。是这个问题太大了——从药理学机制到临床适应症,从剂量滴定到副作用管理,每一条展开讲都能讲一节课。如果讲得太简略,你会追问;如果讲得太深,你那时候还听不懂。所以我选择了一种最笨的方式——我把课件发给了你,然后把你能问到的老师全介绍给了你。”
“所以你的建议是?”
“发课件。发法规原文。发完整的审计要求文档。让他自己看。”安东尼顿了顿,“他看完了如果还有问题,让他带着具体的问题来问你。那时候你再回答,就不用从零开始。这也是带人。不一定非得是手把手从头教到尾。给他地图,让他自己走。”
佐伊把PICC放在膝盖上,拿起手机,开始打字。她打了很长一段,没有责怪,没有反问,只是把她刚才对安东尼说的那些话——关于高危处方的监管要求、关于物理隔离的审计逻辑、关于“为什么一个字段不够”——一条一条地敲进消息框里。然后她转发了几个链接和电子文档,并且加了一句话:“这些是法规原文的链接,还有一份欧盟监管审计要求摘要,你看完有具体问题再问我。”她把消息发了出去,然后把手机放在茶几上。
“发了?”安东尼问。
“嗯。”
“对他来说,这总比‘丢给护士长骂三天’好。”
佐伊嘴角弯了一下。她把PICC从膝盖上拿起来,放在沙发扶手上,让它的脸正对着安东尼的方向,“多亏Lesong主任教得好。”