理不清的项目

国庆长假,我原本计划看看学生的数据,把几个快毕业学生的小论文构思出来。当然,这种事情说起来并不光彩,也应该是我和团队的耻辱。论文应该是学生自己完成,导师应该是帮忙看看,更重要的事情是方向和讨论。只是现实中,真正能够理解意图、完成数据整理、分析并形成论文框架的学生寥寥无几。就这个假期而言,我原本以为主要任务是帮他们分析分析数据、尝试构建小论文,最后却发现,绝大多数时间都花在了尝试理解他们的文件。假期接近尾声,真正完成的事情,实际上就是整理了几个学生的项目文件夹。

实际上,从建立团队开始,我就在科研项目管理上花了大量时间。制定了科研项目管理办法,做了示范案例,编了手册,也专门做过讲座。团队还建立了一套基于群晖 NAS 的科研项目管理系统,每个学生都有对应的项目文件夹。一个项目怎样建立目录、原始数据放在哪里、文件怎样命名、实验信息怎样记录,包括项目结束以后按照什么标准整理和验收,都有相对完整的要求。关于这套东西,我甚至准备出一本书,今年暑假书稿已经基本完成。理论上,一个科研项目在任何时候被任何人打开,都应该能够比较快速、准确地知道:这个实验做了什么,数据从哪里来,各个文件是什么,不同文件之间是什么关系。至少不应该只有项目负责人本人知道里面装的是什么,因为我始终坚信人的记忆是不可靠的。

理想很丰满。国庆第一天,我就开始接受现实教育。

假期第一天,我先打开了一个三年多以前已经完成的项目。负责这个项目的学生今年 6 月已经毕业,我想着如果再拖下去,这个项目大概率就要永远沉睡在 NAS 里了。这个学生以后估计也不会再从事科研——当然,这也可能只是我的个人偏见。所以趁着假期有时间,我准备把它重新捡起来,争取把数据分析了,把文章写出来,也算给这个项目一个交代。一大早打开项目文件夹,才发现事情远没有想象得那么简单。文件命名非常混乱,各种文件也散落在不同的位置,数据之间的关系几乎不可能直接捋清楚。有些文件很难判断到底是什么,有些数据看不出来是怎么测定的,更不知道对应哪一次实验。三年前学生自己可能一眼就明白的东西,三年以后再打开,已经颇有一点科研考古的味道。看了一阵以后,我只好把项目停下来,联系学生,让她重新整理,并问她能不能来办公室找一下我。当时她人在外面,第二天倒是来了一次。我们一起看了一遍,结果问题依旧:现有的资料还没有整理到能够让我理解这个项目的程度。最后只能让她回去继续整理。然后,假期马上结束,再一次毫无音讯。按照目前的进度,大概率只能看看春节我还有没有时间了。至于她会不会主动把这个项目重新打开,我暂时不抱太大的希望。又一声叹息响彻四壁。

第一个项目走不下去,我开始看第二个学生的项目。这个项目是今年做的,实验也相对简单一些,情况比第一个好,但数据和文件的整理仍然存在不少问题。比如叶片水势这一列,正常情况下应该是负值,但数据中会夹杂一些不可能的正值;还有一些数字,小数点的位置一看就值得怀疑。 于是,本来应该进行的“数据分析”,很快变成了先确认“这些数据到底对不对”。一个异常值究竟是实验现象,还是录入错误?一个小数点不对,到底是测定出了问题,还是整理数据的时候出了问题?如果项目记录清楚,这些问题可能几分钟就能确认;如果记录不清楚,就只能一项一项往回追。 前前后后反复核对了将近两天。好在这个学生比较勤快,也一直跟着整理,最后总算把数据整理到了基本可以分析的程度,文章的框架也大致搭了起来。因为还有一部分数据没有测完,目前还不能真正成文,不过粗略算下来,我觉得稿件应该已经完成了大约五成。

第三个学生的项目又稍微好一些,不过问题依然不少,只是从比较明显的问题变成了许多小问题。文件名多一个字母、少一个字母,同一个处理在不同文件中用了不同的名称,实验信息写得不够完整。这些事情单独拿出来似乎都不严重,问一句、改一下也就过去了。但一个项目里如果到处都是这样的小问题,理解成本很快就会累积起来。你需要不断停下来确认:这个文件和那个文件是不是一回事?这个名称是不是指同一个处理?这一批数据究竟对应哪一次实验?好在这个学生也比较配合,所以一边核对、一边整理以后,数据基本过了一遍,论文的前言、材料与方法等部分也推进得差不多了。等到第四个学生的项目刚刚打开,假期已经要到头了,明天要出差了。按照前三个项目积累下来的经验,我对假期里还能取得多少实质性进展,已经没有太高期待了。

几个项目连续看下来,一个问题变得非常明显:真正消耗时间的,很多时候并不是实验设计,也不是统计分析,而是项目没有被整理成一种“别人能够读懂”的状态。README 是一个很典型的例子。我们一直要求每个项目建立 README,目的就是让别人打开项目以后,能够快速了解项目做了什么、文件如何组织、数据放在哪里,以及实验过程中有哪些需要特别说明的事情。但实际看下来,几乎所有学生普遍不安要求整理 README。有的确实建了这个文件,但里面的信息非常有限,读完以后,对于理解项目并没有提供多少帮助。

其实,README 最重要的读者从来不是今天的自己。今天的自己当然知道实验做了什么,也知道某个缩写是什么意思。README 真正服务的是半年以后、一年以后甚至三年以后的自己,也是导师、合作者以及未来可能接手这个项目的人。我也无数次跟学生强调,一个科研项目整理得好不好,也许有一个很朴素的判断标准:不是“自己现在能不能看懂”,而是“一个没有参与过这个项目的人能不能看懂”。

这几年的经历看,当前研究生培养中一个很现实的问题是制定规则是一回事,让研究生按照规则做事是另外一回事,而且是最难的一件事。至少对我们团队而言,科研项目怎么管理、数据怎么放、文件怎么命名、README 怎么写,我们有制度、有案例、有手册,也讲过很多次。

这可能和科研项目本身的特点有关。今天少写一条实验记录,实验照样能继续;今天随手给文件起了一个名字,明天自己还是看得懂;README 少写几句话,短期内似乎也没有任何损失。问题往往要到半年、一年甚至几年以后才暴露出来。到了那个时候,最熟悉项目的人可能已经毕业,很多当时“我肯定不会忘”的细节也早就忘了。科研项目管理的麻烦就在这里,不遵守规则的成本往往不是即时发生的,而是延迟支付的。

项目文件整理混乱当然不等于学术不端,这完全是两个层面的问题。不过,一个数据来源清楚、实验过程有记录、文件版本可追溯的项目,至少更容易复核,也更容易及时发现错误。反过来,如果几年以后连一个数据是怎么来的都很难说清楚,那么无论有没有更严重的问题,至少说明这个项目给自己和团队留下了巨大风险。那些看起来琐碎的文件名、README 和目录结构,其实也是科研可重复、可检查和可追溯最基础的一部分。

现在 AI 越来越聪明,未来这些项目可能直接交给 AI,让它帮助整理、检查甚至分析。可这几天看完这些文件以后,我反而觉得,AI 越强,项目本身整理清楚可能越重要。AI 可以帮你读几百个文件,可以总结 README,可以检查数据中的异常,甚至可以根据已有信息推断文件之间的关系,但它没有办法可靠地知道那些从来没有被记录下来的事情。一个叫 final.xlsx 的文件到底 final 在哪里,一列没有单位的数据究竟测的是什么,一个缩写究竟对应哪个处理,如果项目里没有留下信息,AI 也只能猜。人猜错了叫记错,AI 猜得很像真的,我们现在还有一个更时髦的词,叫“幻觉”。

又是一篇苦水文,奈何我其实还是没有拿到答案。唯一越来越确定的是,无论以后 AI 有多聪明,科研项目最终还是要留下清楚、真实、可追溯的记录。