Businesses don’t write and release software for the intellectual stimulation. They do so to meet a need that the business has. Sadly, as we all know, no software is without bugs, and no process is without edge cases, missed opportunities, and the normal sprinkling of errors. This means that each release is the fruit of a risk assessment that has determined that the risks of release outweigh the costs of failure to push to production. Because we’re human, that assessment is colored not just by actual risk, but the fear of risk.
Canary releases, feature toggles, vigilant monitoring, and clearly defined rollback procedures are all technical approaches to mitigating this risk, but what else can we do? In particular, what can testers contribute over the lifetime of the project to keep the risk as low as possible? Over the course of this talk, we’ll recast the software development lifecycle as a conversation about risk. We’ll discuss the position of testers in a team, the role of testing, and the place that automation has in the conversation that is software development as a mechanism for assuaging the fear of risk.