Speakers
Description
Software development and research are naturally driven by different incentives. While the main aim of software development should be the generation of a robust and easily maintainable product, the daily life of a researcher is dominated by the quest for insightful analysis results and publication deadlines.
We present an approach to solving those conflicting incentives through collaborative development that we have used to develop several research software products. In this approach, two different entities work together closely: The bioinformatics support unit of the Robert Koch Institute (RKI) and the applied computer science bachelor’s and master’s study programs of the HTW Berlin University of Applied Sciences.
The bioinformatics support unit provides consulting and analyses to other research units within the RKI. The bioinformaticians working there are fully qualified and experienced computer scientists with the knowledge and skills necessary for high-quality software development. Their performance however is primarily measured by the quality and speed of the analyses they perform for the internal customers. Accordingly, prior experience with in-house software development has shown that clean software development practices are hard to sustainably implement in this environment.
On the other hand, the HTW has access to a large number of computer science students with a high interest in software development in and of itself. Those students in their diverse projects and final theses are fully shielded from pressures resulting from the requirements of biological research projects at the RKI. As such, they are a perfect resource for developing research software that is solely focused on robustness and maintainability. However, there are two challenges to overcome when working with computer science students who want to develop research software: Firstly, access to realistic questions and data are hard to come by, and developing software that solves a self-posed problem using simulated data is not very satisfying. And secondly, students are only available during the short time-frames defined by the duration of their projects.
Given that those challenges and opportunities show a high potential for synergy, RKI and HTW have established a cooperation for research software engineering. In short, the daily challenges and requirements concerning analysis software are discussed in semi-regular joint meetings. Work packages and research questions (such as the comparison of different algorithms) are jointly defined and prioritized. Then, those are given out to students at the HTW in the form of projects or final theses. The results are continuously combined and evaluated at the RKI, and flow back into the work package definitions. In order to create a sustainable and continuous environment in which those work packages can be integrated, a single position is co-financed by the RKI and the HTW to supervise and coordinate the entire process.
In this way, a new quality control pipeline was developed that is currently productively used at the RKI, a legacy analysis pipeline was refactored and containerized, and a novel analysis pipeline is being developed. We hope that our experiences – both positive and negative – will encourage others to enter and profit from similar synergetic relationships.