The Azimuth Project
Azimuth Code Project charter (draft statement)

Philosophy

Many papers in climate science present results that cannot be reproduced. The authors present a pretty diagram, but don’t explain which software they used to make it, and don’t make this software available, don’t really explain how they did what they did. This is a problem, because scientific results need to be reproducible. Any software that is used deserves to be versioned and published alongside any scientific results.

All of this is true for large climate models such as General Circulation Models as well—but the problem becomes much more serious, because these models have long outgrown the extent where a single developer was able to understand all the code. This is a kind of phase transition in software development: it necessitates a different toolset and a different approach to software development.

Motivation and Objectives

Many sciences rely on computer code for simulations and analysis of data. Since results in science should be reproducible, the code used for published scientific results needs to be published as well. Therefore, one objective of this project is to

Show how computer code can easily be versioned and published along with any scientific results that are based on the code, by example.

Scientific results belong to humanity, therefore

All code used in science should be open source, everyone should be allowed to use it.

A basic paradigm of science is that in principle, it should be possible for every fellow scientist to understand what another scientist has done. Therefore, any used code needs to be as easy to understand as possible. This project will therefore

Show how code can be documented

and

Show how code can be structured using established paradigms from software engineering, by example,

in order to make it as easy as possible for others to understand it.