Lightning talk: Nobody could have predicted this

This is a lightning talk I gave at the fantastic Mailchimp Chats meetup on May 21st, 2019. The theme of the evening was “failure and possible redemption in software companies.” I chose a topic I’d already been thinking about: what we expect from design documents, and how much they can tell us about weaknesses in our systems. I don’t mean massive requirements specs, just the kind of RFCs that many of us write to explain what we want to do. What can we learn about failure from reading these documents?

I don’t really talk about it in here, but I think design documents catch more organisational problems than technical ones. They let us understand what everyone else is doing and why. They set our expectations for supported use cases. The technical weaknesses we catch are often along the lines of “you’re depending on a system whose team provides only best-effort support” or “that service is about to be deprecated” or “are you sure we have enough capacity?”, all of which are as much to do with humans as technology.

But design documents can also tell us how the system is intended to behave, and that means we can try to guess how it will fail. Somewhat. A bit :-) That’s what this talk is about.