how to write research software
Research Software often needs to be built on, handed off or used by more than one person. To better enable the reuse, distribtution and updateability of software we can use packaging, testing, documentation and version control. Here we have collected the resources available to help and automate this.
Currently our only focus language (though more are on the way) we provide links and tutorial for various tools, packages and software that can support the development of reusable research code.
About me
I am on my fourth postdoc project since 2018 and every time I change project I am aware that I am leaving a collection of code behind me which if the work is to go any where will need to be used or updated by someone else. Often in our haste to produce research we forget to produce code which can live without us. Even our own code can be hard to read and use after a couple of years. I have over time learned that taking time to write:
well organised and complete documentation to remember how it works
testing to ensure compatibility and correctness
packaging to make moving code and installing it easier
version control for tracking changes
These all make life easier and are not nearly as hard as we think they are with modern tools.
How to write Research Software
This website will cover tools, approaches and good practise for coding research software with:
IDEs
Documentation
Testing
Version Control
Packaging and Distribution
If there is sufficient demand we also offer "clinics" on request to help with particular problems relating to tools and methods discussed here.
IDEs
Idle (packaged with python)
Documentation