In a recent presentation, James Shore
- Programming Errors: Test driven development, pair programming, energized work.
- Requirements Errors: On site customers, customer examples, Bring testers forward, customer reviews.
- Design Errors: Slack, simple design, incremental design, refactoring, fix bugs promptly.
- Process errors: root cause analysis, fix your process, exploratory testing.
http://jamesshore.com/Blog/Alternatives-to-Acceptance-Testing.html
http://jamesshore.com/Agile-Book/no_bugs.html