Write unbiased tests and “don’t waste your time coding”... I recently read Test-Driven Development by Example by Kent Beck. This is one of the books that define Test-Driven Development (or TDD for shorter). In summary, TDD is the concept of writing tests before writing the code itself. You write the smallest test, the test fails. You make the smallest update to code, the test succeeds. You refactor the code. By writing tests first, developers can validate their understanding of the business requirements and ensure that every code is testable and the tests are unbiased. Also, TDD increases the confidence in the code. There is less fear of changing a code when you know that the tests have your back. If a change breaks the code, an existing test will immediately fail. In the first step of TDD, the test is the most important part that you write. Which means that while you're writing your test, you only add interfaces in the code but no implementations and you move on