Test driven development

We use test driven development (TDD) for all new code we create. This includes creating new functionality within an existing project.

TDD requires the test to be created first, not after the implementing code is created.

This video by Dave Farley, gives a good primer on how to approach test-first TDD: