Many scientists spend time developing and using software, however many are not taught how to do this efficiently.

Williams et al. (2012) have compiled a comprehensive list of best practice advice for scientific computing, which can be summarised into 10 points that should be considered when programming.

  1. Write programs for people, not computers
  2. Automate repetitive tasks
  3. Use the computer to record history
  4. Make incremental changes
  5. Use version control
  6. Don't repeat yourself (or others)
  7. Plan for mistakes
  8. Optimize software only after it works correctly
  9. Document the design and purpose of code rather than its mechanics
  10. Conduct code reviews

Future-proofing your code will mean that your colleagues, referees and your future self will all be able to understand, reuse, and edit your programs. Following these best practice guidelines ensure that you protect your data from editing mistakes and major modifications that could severely alter your code.