Quais são os efeitos esperados do test-driven development em projetos de desenvolvimento de software?