What if we considered Mike Cohn's Testing Pyramid a strong statement about application architecture, not a test ratio edict? Could we explicitly design with testability in mind? Should we? What are the real benefits of popular approaches from the past decade, such as TDD, IoC, AOP, and MVx? Gary Pedretti explains how to bring all of these approaches together in a stable, rock-solid whole.