A Collaborative Framework Toward Minimizing Pain Points in Research Software Development - Du, Ange (My University, 2025)
Modern scientific and engineering research increasingly relies on software for data processing, analysis, and simulation. However, research software is often developed ad hoc, with limited regard for sustainability or reproducibility, as researchers (domain experts) untrained in software engineering practices and developers new to the domain theories must both tread unfamiliar waters. While existing solutions (e.g., documentation template, software life-cycle, CI/CD, formal methods) aim to bridge this gap, they often assume large, specialized teams, leaving small research groups underserved. Building upon our experience from research software projects, this thesis proposes a practical framework to empower small teams of domain experts and developers—particularly those transitioning from scientific or engineering backgrounds—to collaboratively build robust, sustainable research software. The framework addresses common pain points, such as evolving requirements and researchers’ limited technical familiarity, while fostering practices that benefit both immediate project needs and long-term maintainability. Central to the approach is structured requirements elicitation, where developers guide domain experts through targeted questions about theories, typical uses cases, computational problem scale and possible tests. The answers directly inform modular design, verification, and documentation, all supported by our GitHub template for a seamless development process. Key recommended practices include: (i) theory should be documented with structures and notations that ease its transition into code, (ii) early introduction of continuous integration, (iii) low-level design documentation via code-embedded comments (e.g.\ docstrings), and (iv) performance-aware modularization suitable for the problem scale. By prioritizing clarity, flexibility, and developer-domain expert collaboration, this work aims to elevate research software from disposable tools to sustainable, peer-review-ready assets. The thesis reviews past studies on research software, examines our own software projects, details our methodology, and proposes a preliminary experiment design that would serve as a means to the proposed process and techniques.
Minimize Pain Points in Research Software Development
Keywords: research software; software engineering; GitHub template; documentation; document-driven development; project management