2012 年 3 月,一群志同道合的软件开发者聚集在牛津大学并参加了一个研讨会,这群开发者的职业的共同之处是:通过写代码/开发软件来支持科学研究。但他们的职位各有不同,而且没有清晰的职业道路,于是这群人创造了一个术语来描述自己的工作:研究软件工程师(research software engineer,以下简称“RSE”)。
十年后的今天,RSE 社区已经遍布英国、欧洲、澳大利亚和美国。谢菲尔德大学 RSE 小组负责人、英国研究软件工程协会前任主席 Paul Richmond 在接受《自然》杂志网站采访时指出,尤其在英国,至少有 31 家大学拥有自己的 RSE 小组,这表明这一工作的重要性日益增加。
但从现实的角度看,在互联网高速发展的时代,作为 RSE 在学术界能赚到的钱,也往往不如在科技大厂里做一名码农来得多。《自然》的这篇内容也因此在 Hacker News 上炸出了好多 RSE 们现身说法。
RSE 是做什么的?
本质上,RSE 做的事情就是建立软件来支持科学研究。但他们通常没有自己的研究问题——他们是通过开发软件工具来帮助其他人做很酷的事情。因此,他们每个人做的事情并不绝对,比如为现有的软件增加功能,解决 bug,又或者从头开始建立一些东西。但他们并不只是坐在电脑前写代码,写代码只是 RSE 角色的一部分,他们必须是良好的沟通者,能够将自己融入到一个团队中。
按照 Richmond 的说法,几乎每一个科学领域都需要运行软件,因此 RSE 会发现自己几乎可以从事任何工作。在 Richmond 的职业生涯中,他一直致力于开发用于成像癌细胞和模拟行人交通的软件。作为博士后,他其实从事的是计算神经科学的工作。“我对这些特定的研究领域了解不多,因此我需要与肿瘤学家或神经科学家或任何人密切合作以开发所需的软件。”
最初许多 RSE 都是博士生或博士后,他们从事软件工作以支持自己的项目。但他们意识到,比起实际的研究工作,他们更喜欢这部分工作。因此,RSE 肯定具备在工业界工作的技能,但他们选择了在学术界的前沿科学环境中茁壮成长。
“当然,博士学位不是必要的。”Richmond 说,“我鼓励任何对研究感兴趣的有经验的开发人员考虑将 RSE 作为一个职业。”
缺乏相应的认可和奖励
RSE 工作的一个重点是开发高质量的软件。但 Richmond 坦言,在过去,研究人员并不被激励去使用或创造好的软件。好消息是,这个情况正在发生变化。“许多期刊现在要求研究人员公开软件代码,而且需要遵循 FAIR 原则:可查找、可访问、可互操作和可复用。最后一个词非常重要:好的软件是研究‘可复用’的一个重要组成部分。”
Richmond 强调,他希望可以看到 RSE 在学术环境中是平等的。软件贯穿整个研究过程,但教授往往才是获得大部分认可和声望的那个群体。实际上软件可以产生与某些研究论文一样大的影响,甚至是更重要的角色。如果 RSE 能够获得他们应得的认可和奖励,那么 RSE 这个职业将会更有吸引力。
Richmond 的这些话透露了 RSE 职业存在认可和奖励不足的现实问题。而在技术论坛上,不少人随之对学术界展开抱怨。
一名自称在生物科学领域有 10 年以上经验的研究工具开发者分享道,自己的实验室制造了最先进的显微镜、硬件和图像分析软件,他也觉得学术界的工作确实很棒,能与来自世界各地的非常有趣的人一起工作,对项目也拥有完全的创意控制权。但在薪酬、期望和福利方面,永远不会得到像软件行业那样的高回报,当超过 30 岁时,可能仍在支付进入这个领域所需的学生贷款,而且仍然住在同一个糟糕的公寓里。“学术界,至少在生物科学领域,仍然是一座象牙塔。”
有人直言,“在学术界工作的一个严重现实是,你基本上是以较低的报酬为业界工作,而他们有一天会转过身来,拍拍你的肩膀,然后以数百万美元的价格出售你的工作。”“说实话,你越是接近应用领域,情况就越糟糕。在那里,你已经跨越了你的更‘纯粹’(和收入较少)的同行所认为的‘科学界限’,但实际上做出的东西将使人们的生活更美好。由于这也更靠近能看到你的工作是如何使别人发财的地方,就会很难让人不想跳槽,去成为另一头赚得盆满钵满的人。说实话,这是个令人不安的情况。”
也有人认为是关于地位的问题,“RSE 总是被认为不如研究人员(研究科学家),他们据称提出了“大创意”,而 RSE 只是执行被告知要做的事情。实际上,这条线要模糊得多。没有想法的实施就没有创新和迭代,RSE 工作同样重要。但除非这种观点改变,否则没有人愿意成为 RSE。”
RSE 职业发展还任重道远
“离开学术界后,我工作量变少,得到的报酬更高。在一个人屈服之前,理想主义可以持续很长时间。”
不少观点均指出,从职业道路选择和竞争性薪酬的角度来看,RSE 这个职业很难有好的前景。“如果你拥有材料科学、物理学、化学、生物学等方面的博士学位……并且对 Python(或类似)有相当的了解,也许可以花一年的时间做博士后。在那一年之后,认真考虑转到一家科技公司。”
但也有人对学术界始终抱有憧憬:“我放弃了对对抗性算法和生成对抗性网络的研究生研究,因为我意识到我可以得到 6 位数的报酬来制作商业软件并利用空闲时间做任何我想做的事情。像许多其他潜在的有前途的学术软件工程师一样,我有一个家庭要抚养,我要过上自己的生活。科学确实需要更多的研究软件工程师,但在科学能够支付软件工程师至少基本的最低收入之前,这种情况不会改变。当这种情况发生变化时,我会考虑从我离开的地方再度开始。”
另一方面,有观点不认为科学家需要研究软件工程师。“PI(首席研究员)通常喜欢承担项目中的任何角色,包括软件设计。他们不喜欢交出事情并让人们构建现代的最佳实践软件。你开始谈论源代码控制、包管理器、工业中使用的一种他们甚至从未听说过也不太关心学习的语言等等,然后你就会被问到‘为什么你不能直接用 Python 或 C 编写,因为这是我唯一熟悉的两件事,然后将其压缩并放在 USB 驱动器上’。”
学术界还是工业界,这个问题始终没有固定答案。不少人指责学术界普遍存在资金不足且官僚作风的问题,一位自称在学术界和工业界都待过的 PI(首席研究员)直言,前者可以通过拨款申请来解决,后者必须被容忍,直到政治家/活动家解决它。他进一步解释道:学术界的钱和奖励在大多数情况下不受 PI 的控制(例如在德国,这是政府层面的决定,每个人的报酬都是一样的),所以他们往往有两种选择:与普通人共事或找到既聪明且有理想主义的人......
同时,该 PI 在评论区顺带发布了一则 RSE 招聘,寻找愿意与之一起使用最佳实践(尤其是使用 Rust)构建研究软件(本地和 AWS 云)的人。一位用户随之留言打趣道,这很可能就是当前难以招到 RSE 的最佳证据。
参考链接: