为什么科学需要更多的研究型软件工程师? - nature


2012年3月,一群志同道合的软件开发人员聚集在英国牛津大学,参加他们所谓的合作研讨会。他们有一个共同的职业--编写代码以支持科学研究,但有不同的工作头衔。而且他们没有明确的职业道路。与会者创造了一个术语来描述他们的工作路线:研究型软件工程师(RSE:research software engineer )。

十年后,RSE协会在英国、欧洲大陆、澳大利亚和美国兴起。在英国,至少有31所大学有自己的RSE小组,这表明这个职业的重要性在不断增加:

RSE是做什么的?
从根本上说,RSEs建立软件来支持科学研究。他们通常没有自己的研究问题--他们开发计算机工具来帮助其他人做很酷的事情。他们可能为现有的软件增加功能,清除错误,或者从头开始建立一些东西。但他们并不只是坐在电脑前写代码。他们必须是良好的沟通者,能够将自己融入到一个团队中。

他们从事什么类型的项目?
几乎所有的科学领域都是在软件上运行的,所以RSE可以发现自己在做几乎任何事情。在我的职业生涯中,我从事过癌细胞成像和行人交通建模的软件。作为一个博士后,我从事计算神经科学的工作。我对这些特定的研究领域了解不多,所以我与肿瘤学家或神经科学家或其他什么人密切合作,开发所需的软件。

为什么这么多大学支持自己的RSE小组?
一些处于学术梯队顶端的高权重研究人员有能力雇用自己的RSE。该工程师可能致力于维护一个已经存在了10年或20年的单一软件。但是,大多数研究小组只是偶尔需要--或者能够负担得起--一个RSE。如果他们的大学有一个RSE小组,他们可以雇用一名内部工程师,每周一天,或一次一个月,或任何他们需要的东西。这样一来,RSE小组就像一个核心设施。大学试图确保该小组有一个稳定的工作流程,但这通常不是问题--不缺项目可做。

RSE还做什么?
工作的很大一部分是提高对高质量软件的重要性的认识。RSE可能会培训一个博士后或研究生,让他们自己开发软件。或者他们可以举办一个关于良好软件实践的研讨会。从理论上讲,培训50个人可能比在一个项目上工作更有影响力。在实践中,因为忙于支持研究,RSE们往往很难抽出时间进行教学、指导和宣传。

主要研究人员(PI)是否理解对RSE的需求?
这是很复杂的。在过去,研究人员并不总是被激励去使用或创造好的软件。但这正在改变。许多期刊现在要求作者发表代码,而且这些代码必须是FAIR:可查找、可访问、可互用和可复制的。最后一个词非常重要:好的软件是研究可重现性的一个重要组成部分。我们向首席科学家解释,他们需要可靠的代码,这样他们就不必在六个月后收回他们的论文。

谁应该考虑从事RSE工作?
许多RSE开始时是博士生或博士后,从事软件工作以支持他们自己的项目。他们意识到,比起实际的研究工作,他们更喜欢这部分工作。RSEs当然有在工业界工作的技能,但他们在学术界的前沿科学环境中茁壮成长。

大多数RSE拥有博士学位--我有一个计算机图形学的博士学位--但这不一定是一个要求。一些RSEs最终走上了终身职位;我最近被提升为教授。其他许多人作为实验室技术人员或服务人员工作。我鼓励任何对研究感兴趣的有经验的开发人员考虑将RSE作为一个职业。我还希望看到更多来自代表性不足的群体的人加入这个领域。我们需要更多的多样性来发展。

你对有希望成为RSE的人有什么建议?
试着在一个开源软件上工作。如果可能的话,在一个合作的环境中做一些培训。如果你有问题,可以和正在工作的RSE交谈。考虑加入一个协会。英国研究性软件工程协会很乐意为人们提供有关进入该领域或如何在工作申请中脱颖而出的建议。在美国的人可以联系美国研究软件工程师协会。

如果你是一个博士生或博士后,给自己一个挑战:试着说服你的导师或PI,他们真的需要接受好的软件技术。如果你能改变他们的想法,那就说明你有成功的激情和动力。

你对这个行业在未来10年的发展有何设想?
我希望看到RSE在学术环境中是平等的。软件贯穿整个研究过程,但教授们往往得到大部分的认可和声望。一款软件的影响力与某些研究论文一样大,有些甚至更大。如果RSEs能够得到他们应得的认可和奖励,那么这条职业道路就会更加明显和有吸引力。

doi: https://doi.org/10.1038/d41586-022-01516-2