I recently gave a talk on unit testing to some of the others in my centre, and the most shocking realisation I came away with was just how many software development concepts I take for granted.
So I wanted to to write up a little bit about some of the more important concepts that I think are useful to be aware of.
- Why care?
- Reproducibility and replicability are the point of science.
- Trustworthiness: bugs that invalidate their results are what keep computational scientists up at night.
- Time spent working with bad code is time not spent doing science.
- This isn't supposed to be a comprehensive guide to any of these topics.
- Two types of errors: expected and unexpected.
- Errors Should Explain What Went Wrong