Scientific Software
From charlesreid1
Scientific software
Outline of what to do for this page: https://charlesreid1.github.io/scientific-software
Template
General template is:
- Anecdote
- Principles, things that you should have or see or put into place
- Examples of specific tools
- Links to Charles Reid wiki for those tools - installation, setup, usage, etc.
Anecdote
- Illustration: What does good X look like? alternatively, what does bad X look like?
- Illustration: What exactly does X provide to a group of scientific software developers? what is the fallout from not using X and therefore having bad Y?
Principles
- What are the three things you absolutely must have or must know about this thing
- Beware of traps - how to improperly implement this, in a way that basically gains you nothing
How it helps
- Three things it helps you avoid, three things it helps you do, three ways it makes life easier
Tools
- In general, what kind of tool will help you do X
- Specifically, what tools help you do X
The List
Version control - the basics
Track issues, features, bugs
Version control - beyond the basics
Mailing lists for communication
Checklists for repeated tasks
Barely sufficient, source-centric documentation
Configuration management tools
Tests - Write Early and Run Often
Pair programming
Formal release process
Continuous process improvement