Write the test first

Write the minimal amount of code for the test to run

Let the error messages guide your development.

Write enough code to make the test pass

Refactor

Repeat for new requirements

Key Concepts