3. The Test-driven-development (TDD) approach