Developing sustainable software for the scientific community requires expertise in software engineering and domain science. This can be challenging due to the unique needs of scientific software, the insufficient resources for software engineering practices in the scientific community, and the complexity of developing for evolving scientific contexts. While open-source software can partially address these concerns, it can introduce complicating dependencies and delay development. These issues can be reduced if scientists and software developers collaborate. We present a case study wherein scientists from the SuperNova Early Warning System collaborated with software developers from the Scalable Cyberinfrastructure for Multi-Messenger Astrophysics project. The collaboration addressed the difficulties of open-source software development, but presented additional risks to each team. For the scientists, there was a concern of relying on external systems and lacking control in the development process. For the developers, there was a risk in supporting a user-group while maintaining core development. These issues were mitigated by creating a second Agile Scrum framework in parallel with the developers' ongoing Agile Scrum process. This Agile collaboration promoted communication, ensured that the scientists had an active role in development, and allowed the developers to evaluate and implement the scientists' software requirements. The collaboration provided benefits for each group: the scientists actuated their development by using an existing platform, and the developers utilized the scientists' use-case to improve their systems. This case study suggests that scientists and software developers can avoid scientific computing issues by collaborating and that Agile Scrum methods can address emergent concerns.
翻译:为科学界开发可持续的软件需要软件工程和领域科学方面的专门知识。这具有挑战性,因为科学软件有其独特的需求,科学界用于软件工程实践的资源不足,而且根据不断变化的科学背景发展起来十分复杂。开放源代码软件可以部分解决这些关切,但可以带来复杂的依赖性和延迟发展。如果科学家和软件开发者合作,这些问题就可以减少。我们提出了一个案例研究,由超级诺瓦预警系统的科学家与来自多信使天体物理学项目可扩展网络基础设施的软件开发者合作。合作解决了开放源代码软件开发的困难,但给每个团队带来了额外的风险。科学家们担心依赖外部系统,在开发过程中缺乏控制。对于开发者来说,在支持用户群体的同时维持核心发展存在风险。通过创建第二个Agile Scrum框架,与开发者正在进行的Agile Scrum进程平行进行。这种协作可以促进交流,确保科学家们在发展中发挥积极的作用,并使开发者们能够评估并实施他们各自在开发过程中所关注的问题。对于外部系统缺乏控制。对于开发者来说,合作提供了一种支持用户群体在使用软件开发过程中使用的方法。合作,从而改进了他们现在的软件开发者们的系统。提供了案例研究。 提供了一种研究。通过研究方法来改进他们所使用的软件开发者们所使用的方法。提供了一种研究。