Test-driven development (TDD) is a programming technique developed over the last decade that purports to generate "clean code that works". TDD turns around the basic approach of traditional software development, where requirements are turned into code (that is later tested and debugged), by emphasizing instead that the requirements be turned immediately into unit-tests that drive the actual code development! This revolutionary approach has proven to be quite successful in the software engineering community but its usefulness has not been tested (no pun intended) in the scientific modeling community. We create this blog to address this and other concerns.
Our approach will consist of developing examples of modeling with TDD starting with very simple models and working our way up to more complex (real life?) earth system models. As a result several blog entries will consist of code snippets whose objective will be to shed light into the TDD approach. We also hope that throughout this process we will generate a good dose of lively discussions that will allow us to gain insight on a subject matter, modeling with TDD, that is largely unexplored. Of course questions, comments and critiques are strongly encouraged.