Best practices for scientific computing
This paper is a must read for scientists who write software as part of their research, but are not themselves software engineers. I’m not going to repeat the paper, but list some major points that should be kept in mind when developing scientific software alongside research.
- Write programs for humans, not computers.
- Automate as much as possible, especially repetitive tasks.
- Use the computer to record history.
- Make incremental changes, with constant revision and evolution.
- Use a version control tool.
- Don’t repeat yourself or others. It’s ironic that I’m repeating this message from the paper.
- Plan for mistakes in your software or its output.
- Optimize your software after you have it working correctly.
- Document the design and purpose of your software, not its mechanics.
- Collaborate with others.