At the Netherlands eScience Center we aim to share as much code as possible between our diverse research projects. We also want to share our code with research communities. One of the reasons why we do this is to increase sustainability of our software, by extending its life beyond the life of our projects.
How to practically approach this goal? What makes software easy or hard to take and reuse for your own project? What makes it easy to contribute to and to improve it? It's not enough to put open source license on our software. We must minimize the friction of software reuse and contribution. This is why we recently designed a checklist for code developed at the eScience Center. It has been largely influenced by open source software community standards. Some of the decisions are arbitrary (like the choice of GitHub as code hosting service). We want the checklist to be easy to follow, without long discussions on implementation. We would be very keen to to get some feedback on it from research software developer community.