As developers we spend a lot of time dealing with error cases. We write code to handle them or leverage our type systems prevent them. These are fine strategies but they don’t cut to the core question – why do the error cases exist at all? Can we get rid of them? In this keynote, Michael Feathers will explore the idea that error cases are often missed design opportunities.