Quality Assurance is often seen as the job of the "Testers", performed when the development is complete. The reality is that you can't easily add quality to software. Discovering issues after initial development can be costly and risky. How can tools and processes help us discover and resolve issues sooner, during design and development? Can we do this cost-effectively? Is this the job of agile test-driven development or a traditional quality assurance discipline?