Failover Fails

One of my favorite quotes is from Mitch Hedberg:

An escalator can never break — it can only become stairs. You would never see an “Escalator Temporarily Out Of Order” sign, just “Escalator Temporarily Stairs. Sorry for the convenience”. We apologize for the fact that you can still get up there.

I’m reminded of this quote whenever I travel because so many apps on my phone don’t fail over this gracefully. My favorite historically have been foursquare’s. Whenever it couldn’t tell where I was, it would say “A surprising new error has occured.” or “must provide il or bounds”. Let’s forget for a second that these are the most unhelpful error messages ever and get to the bigger problem. foursquare (and most other apps) are designed only for a fully connected, localized experience. This is in a world where, even in cities, 4G connections can be intermittent, and GPS quality is sketchy at best, especially inside. Apps break all the time because of these issues, and it’s not excusable.

As we move towards always in the cloud, total internet and GPS reliant services, software makers need to think about these alternate states and design better experiences for them. It will be a long time before a wireless connection is reliable anywhere in the US, let alone internationally. It will be a while before GPS tracking works well in many places. Connections may be slow. Batteries may be low. Available storage my be low. I like to think of it like testing for different browsers and devices. If you aren’t testing for different connection states or with/without certain pieces of key information, you’re not testing right.