Test-driven development Think about the code before writing it! The TDD Cycle: Test Fails Test Passes Refactor