If we want research software to be replicable and reusable, yet with little budget, we should follow five best practices from open source development: 1. Have a repository such that others can find and download your software 2. Be able to build software (and results) from scratch such that others can understand how your results came to be 3. Have automated tests such that you (and others) can ensure quality, especially after changes 4. Make your software extensible, notably by using object orientation and applying the open/close principle – open for extension, closed for changes 5. Have plenty of examples that show how to use your software. One great environment to achieve this is Jupyter Notebooks, where you can combine text and executable code all in one (examples!) showing how your final result cam to be (build!) Plus, they allow you to include assertions (tests!) as well as arrange software in an object-oriented fashion (extensibility!). Of course, you can also put them in a repository :-)