Conclusion
In this paper, we examined the pain points existing in today’s research software development process as shown by several previous studies, with some also corroborated by our own experience. We proposed a framework tailored toward smaller research teams with limited resources. This framework aims to facilitate communication between the developer and the domain expert, and elicitation of requirements. By cutting down overhead in a document driven development process, we hope to arrive at the Minimum Viable Product (MVP) faster, without sacrificing quality and sustainability.
While it may be still be an uphill battle to market such a framework to individual researchers and developers, we believe that it would be beneficial for organizations, such as university departments, to adopt such a framework as a standard practice for their research software development. Research software engineers could find this framework helpful in their interaction with clients of their services. This framework will hopefully allow them to better preserve the works of previous researchers and offer a better chance for future researchers to build upon previous efforts.
Future Work
The logical next step is to validate our proposed framework through experiments. This could take the form of surveys to better understand research software team structures and their pain points, and case studies that follows the development process of real-world research software projects. To expand the sample size, mock meetings of the information gathering process could also be conducted between real developers and domain experts. This does not preclude the possibility that some pairs may choose to progress the one-off meeting into a real project.
Another direction that is becoming increasingly more relevant nowadays is to explore the scenario where the domain expert is the developer. As software programming has become more accessible with the rise of many assistive tools, how to enable these individuals to produce high-quality, sustainable software is an important question.