Sunday, August 11, 2013

Customer Delight

In order to delight my customers, I need:
  1. A hypothesis of what they care about and any breakdowns they are trying to overcome and functionality I believe will help them with both
  2. A tight feedback loop that allows me to demonstrate stories and functionality and make decisions to pivot or persevere based on their feedback
  3. Confidence in the codebase so I can know and can automatically verify that changes, large and small, will not break other functionality, services and systems
I get confidence in the codebase through:
  1. A fully populated automated testing triangle including unit, acceptance & end-2-end test suites
  2. Many sets of eyes in the code as it is being developed:
    1. Promiscuously chosen developer pairs
    2. Pair switching for code reviews
    3. Product Owner driven "Whole Team" demo's
    4. Fully Socialized QA 
      1. Defect Prevention rather than defect detection orientation
      2. Generalizing specialists and blurred roles
        1. QA Testers included as part of developer pairs
      3. "Whole Team" ownership of quality 
  3. "Whole Team" exploratory testing as a foundational part of my weekly cadence