Blog

What if your website had business hours?

In "Being on-call sucks", I wrote about how having an on-call person or rotation is required for any software service running 24/7. While reviewing the draft, my friend Michael L. pointed out that while most websites are up all the time, some are not - for example, B&H Photo doesn't accept orders on Saturdays for religious reasons. So what if our software business had limited hours instead, like a physical-world store?

In e-commerce, people like to estimate the cost of an outage by dividing revenue of a time period by the duration of the outage. For example, Gremlin claims that Amazon would lose over $200,000 for every minute of downtime, by dividing annual revenue by the number of minutes in a year. But this is an overestimate - it's not like every single customer in that minute instantly abandoned their cart and churned. Do would-be B&H buyers see the store is closed for the Sabbath and go somewhere else for their purchase? Probably a few of them do. But surely some of them also return at a later time, for the same reasons they chose B&H over other electronics retailers. The B&H website is not giving up 1/7th of total revenue by being closed one day of the week.

Not accepting orders on Saturdays reminded me of an anecdote from the Google SRE book, where they found that the "Chubby" service was so reliable that users assumed it would never be down, which could cause huge issues when it did fail. In response, the SRE team would intentionally trigger minor outages if there hadn't been one in a while. This way, users would always have to consider their Chubby-is-broken fallback plans. In the same way, B&H has trained their customers that the online store will not always be available. If it's down, just come back tomorrow.

There are a couple other sites without the expectation of 24/7 availability. Low-Tech Magazine will go down if its solar-powered battery dies, but that's an ideological choice (not to mention, a fun engineering challenge and effective marketing bit). Kingdom of Loathing, one of my favorite games growing up, has nightly maintenance windows - short daily ones, and a longer weekly one. And... that's about all that I found. These examples don't provide urgent services and have pretty unique offerings. In other words, your customers are able to wait for your website to be open again, and ideally, you offer something that they wouldn't go to a competitor for.

With a website like that, imagine if we scaled servers down to zero for scheduled weekly downtime - think about the cloud savings! Here's a ballpark estimate: Shopify offers a basic plan for $29/month, and they're probably not forwarding it directly to Google Cloud Platform, so that's an upper bound on their cloud costs for one e-commerce site. That means that in exchange for every potential sale in 24 hours, we can save a whopping $1 for every scheduled day off (contrast $174 in federal minimum wage alone for a real-world cashier, let alone other employment costs).

Also, we still want somebody to be notified for unexpected issues. How much of a pay cut would you be willing to take for the perk of 1/7th less on-call time? ...okay, fine. I can see why websites are open all the time.

workBobbie Chenon-call