Software management plan
Research software plays a crucial role in academic research and has become a key output of many research projects. A software management plan helps to implement best practices during software development and ensures that software is accessible and reusable in the short and longer term. It also contributes to the reproducibility of results and stimulates collaborative work on open-source software for research.
The Netherlands eScience Center and NWO, the Dutch Research Council, have taken the initiative to form a working group to develop (national) guidelines for software management plans. This working group – composed of five experts in research software, representing different research organizations in the Netherlands, and roles within those organizations – started their work in December 2021.
The initiative resulted in the publication of the Practical guide to Software Management Plans in October 2022. You can read more about the process leading up to the guide in this blog. The DCC is currently evaluating the adoption of these guidelines for TU Delft research software.
The Intermediate Research Software Development course from The Carpentries is a good resource to learn the core principle of intermediate-level software development and best practices collaborating in a team.
Further reading
Software Development Plan: A quick start on building software development plans.
How to Learn Software Design and Architecture: A step-by-step guide to learn software design and architecture, and best practices.
Fundamentals of Software Architecture: A comprehensive textbook to guide software developers on software architecture, available online.
Software Development Life Cycle: A guide on how to follow the software development lifecycle (SDLC) systematically, and different SDLC methodologies.
Software Architecture - Design and Evaluation: A detailed research report about software architecture design and evaluation.
Software management
Software Management Overview: An overview of software management and main tasks involved with managing a software.
Software Management Plans: A detailed documentation about software management plans, including up-to-date templates.
Writing Software Management Plans: A guide from the Software Sustainability Institute on how to write research software management plans.
Research software sustainability
- A Framework for Understanding Research Software: A proposal for categorizing different types of research software, and a framework for sustaining research software.
Developing open source software
- Producing Open Source Software: A comprehensive textbook for software managers and developers on how to start running open source projects and maintain them.
Software Architecture diagrams
C4 model is a popular approach to draw good software architecture diagram that software development teams use to communicate efficiently. It is easy to learn and adopt into existing projects as well as design new projects from scratch. It provides a set of hierarchical abstractions and diagrams to visualize software architecture in a notation independent manner.
While a marker and a whiteboard is more than enough to get started with the C4 model, the C4-PlantUML library provides an easy-to-understand language to create C4 diagrams with PlantUML. The library is handy with macros, snippets and a VSCode extension.