Mary Poppendieck opened STAR East this morning by asserting that "Your development and testing processes are defective". Mary has long been a proponent of lean software development. She maintains that if you routinely find defects during verification you have a defective process, because defects are caused by a system which allows defects - not by developers - and are a management problem.

Mary offered four suggestions for putting your software development process on a diet:

  1. Eliminate waste. Focus on what adds value for your customers and drop everything else.
  2. Don't tolerate defects. Inspect to prevent defects, not to find them. Don't just log bugs but rather fix them as soon as you find them.
  3. Don't batch and queue. Don't leave bugs lying around; either fix them or Won't Fix them the moment they come in. If you have requirements churn then you are specifying too early, and if you have test-and-fix cycles you're testing too late.
  4. Optimize the whole. Optimize the whole product, which is not just software but a comprehensive solution that solves a customer problem. Optimize your whole team: Dev and Test and Program Management, not just Dev or Test or PM. Optimizing for point productivity drags down overall productivity. Counterintuitive though it may be, letting one group go idle for awhile will often speed up overall throughput.

This sounds simple, but it's really complicated. It sounds complicated, but it's really simple. So what's stopping you?