Checklists help you write good quality software. What exactly constitutes 'good quality' depends on the specific application of the software, but typically covers things like documenting the source code, using continuous testing, and following standardized code patterns.
There are many checklists available. We find that the most useful checklist are those that
- Allow for a granular evaluation of a software package, as opposed to just pass or fail
- Explain the rationale behind each item in the checklist
- Explain how to get started with implementing each item in the checklist
We recommend that you include the checklist as part of the README, for example as a badge or by including the checklist as a Markdown table. The point is decidedly not to show perfect compliance, but rather to be transparent about the state of the code while providing the necessary guidance on which aspects could be improved.
One of our favorite checklists that meets these criteria is the Badge Program developed by the Core Infrastructures Initiative, but there are many other checklists to choose from. Here is a list of some candidates:
- Core Infrastructures Initiative (online, interactive)
- Deutsches Zentrum für Luft- und Raumfahrt Class 1, Class 2, Class 3 (MarkDown)
- Software Sustainability Institute's software evaluation checklist (Google form)
- CLARIAH checklist (PDF page 38-42)
- EURISE (MarkDown)