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