· Patrick · MovieApp · 3 min read

What Happens When Things Go Wrong

Things will go wrong, but we can control how we respond to them.

Things will go wrong, but we can control how we respond to them.

As we work towards launching our closed beta, the team had to decide: what happens when things go wrong? When things go wrong our users will suffer, which is definitely not part of our vision of de-shittifying the internet, but what can we do about it?

When it comes to software errors and the effects they can have on users, I’m reminded of a situation I walked in at home one afternoon in the late ’90s. My mom was trying to print something on the family computer. She had clicked the print button, waited, clicked it a few more times. Opened another document, tried to print that. Returned to the original document and attempted to print that several times. And yet, the printer, which she had turned off and on a few times, never would even start to print.

I told her I’d fix it, and observed Microsoft Word dutifully send the print job to the spooler, opened a message that said the job was printing which disappeared after a second or two. It was all perfectly normal behavior… and yet the printer just would not spit our any prints. Looking over at the printer I noticed that the printer was out of paper. I opened a fresh pack of paper and put a fistful in the tray, et voila! the printer started printing. And then it kept printing. In fact it printed another copy for each time my Mom clicked Print, and then another for each of the other document she tried to print. Bewildered for a moment, we looked at each other and laughed. Then a bit angrily she asked why it simply couldn’t tell her that the printer was out of paper… to which I could only shrug.

1. Making sure users know what’s going on

The first thing we want to do when things go wrong is make sure the user knows what’s going on. We don’t want them furiously tapping a button as the UI sits there apparently unresponsive. We want those errors, after maybe a behind-the-scenes retry or two, to bubble up to the user. The user should be presented with a clear error code - this makes error reports simpler, and community resources effective (e.g., How to fix Error Code #ABC_123) - as well as a meaningful message in the user’s preferred language.

2. Complete logging with error code and correlation information

The second thing we want to do when things go wrong is be able to quickly identify where in our app things broke down. The sooner we can identify where things broke down the sooner we can develop a fix, test it, and ensure it never happens again through automated testing.

3. Making errors automatically monitored, easy to report… and track!

Finally, errors should be monitored automatically as part of our observability strategy, the least a driver can do is keep their eyes on the road, right? And for users who have the experience or drive to help improve the overall quality of the product, reporting issues should be as simple as filling out a form or sending an email, and just as easy to track afterwards.

We can’t overstate our appreciation of users that submit bug reports enough, as they are taking time out of their day to improve things for everyone.

Final thoughts

Our commitment to our users and a frictionless experience is just as important, if not more, when things go wrong, which is why we’re building in a comprehensive error strategy from before the closed beta goes live.

Photo by Erik Mclean on Unsplash
Share:
Back to Blog

Related Posts

View All Posts »