In order to delight my customers, I need:
- A hypothesis of what they care about and any breakdowns they are trying to overcome and functionality I believe will help them with both
- A tight feedback loop that allows me to demonstrate stories and functionality and make decisions to pivot or persevere based on their feedback
- 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:
- A fully populated automated testing triangle including unit, acceptance & end-2-end test suites
- Many sets of eyes in the code as it is being developed:
- Promiscuously chosen developer pairs
- Pair switching for code reviews
- Product Owner driven "Whole Team" demo's
- Fully Socialized QA
- Defect Prevention rather than defect detection orientation
- Generalizing specialists and blurred roles
- QA Testers included as part of developer pairs
- "Whole Team" ownership of quality
- "Whole Team" exploratory testing as a foundational part of my weekly cadence