One of the advantages of acceptance test driven development (ATDD) is that it helps a team to agree on the objectives before diving into coding. The clearer the acceptance tests, the fewer misunderstandings there are likely to be. Every misunderstanding wastes time and adds cruft to the software.
Releasing frequently gives an opportunity for feedback and correction. Small corrections early on can prevent the need for large corrections later.
1. Well-articulated acceptance tests and frequent releases:
2. Poorly articulated acceptance tests:
3. Longer times between releases exaggerate the deviations:
4. Without any vision or objectives:
This often happens in start-ups where a product idea is hazy and the team is basically chasing every hare that runs past. Eventually they might happen to catch one, but it's a pretty inefficient way to work.