Title: "We'll do it Live!" - Why you should test your software in production
Abstract:The most valuable type of software testing happens with production workloads, within a production setting. Thus, developers should limit the amount of time that they spend on pre-production testing, and optimize for shipping software to production as soon as possible.
All pre-production software is happy; every software project in production can be unhappy in its own way. With software there are many factors that can lead to unhappiness, and unfortunately we human developers can only imagine a subset of these. Production traffic and production infrastructure are the best tools that we have for revealing flaws in our software, and so developers should optimize for shipping software to production as quickly as possible. When you’re building or improving a service that customers rely on (like PagerDuty), shipping software to production can be an intimidating task. One of the things that makes this task less intimidating is extensive testing in pre-production, sometimes with representative load. However, this is can be expensive in terms of time, and it can often be a source of false comfort. This talk will argue that the most valuable type of software testing happens with production workloads, and that with the right safeguards, this should happen within a production setting. This will be illustrated with examples from real-life software projects. This talk will examine what you’ll need to have in place for effective production testing - an organization that takes DevOps seriously, is able to move quickly, and an architecture that is capable of limiting the “blast radius” of production software failures.