Developing sustainable scientific software for the needs of the scientific community requires expertise in both software engineering and domain science. This can be challenging due to the unique needs of scientific software, the insufficient resources for modern software engineering practices in the scientific community, and the complexity of evolving scientific contexts for developers. These difficulties can be reduced if scientists and 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 scientific 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 the needs of an user-group while maintaining core development. We mitigated these issues by utilizing an Agile Scrum framework to orchestrate the collaboration. This promoted communication and cooperation, ensuring that the scientists had an active role in development while allowing the developers to quickly evaluate and implement the scientists' software requirements. While each system was still in an early stage, the collaboration provided benefits for each group: the scientists kick-started 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 some difficulties of scientific computing by collaborating and can address emergent concerns using Agile Scrum methods.
翻译:为科学界的需要而开发可持续的科学软件需要软件工程和领域科学的专门知识。由于科学软件的独特需要,科学界现代软件工程实践的资源不足,以及开发者不断变化的科学背景的复杂性,这具有挑战性。如果科学家和开发者合作,这些困难可以减少。我们提出了一个案例研究,由超级诺瓦预警系统的科学家与多信使天体物理学可扩展网络基础设施项目的软件开发者合作。合作解决了科学软件开发的困难,但给每个团队带来了额外的风险。科学家们担心依赖外部系统,在开发过程中缺乏控制。对于开发者来说,在支持用户群体的需求的同时维持核心发展存在风险。我们通过利用Agile Scrum框架来协调合作,缓解了这些问题。这促进了通信与合作,确保科学家们在发展中发挥积极的作用,同时让开发者能够快速评估和满足科学家的软件需求。每个系统仍处于早期阶段,合作为每个团队提供了好处:科学家们利用科学系统启动其发展,同时保持核心发展。我们通过使用一个软件开发者利用一个案例分析方法来改进其发展。