I’ve been thinking a lot recently about what makes computer services and products sticky — what makes users and customers come back again and again to what you’ve built. There are lots of ways to summarize it, but when it comes to systems that help technical people run their own systems, they come for the features, but they stay for the uptime.
Bells and Whistles
Features — and promises of features — are what initially attracts users to your system. Quicker problem-resolution times, enhanced communication between teams, better resource planning. Countless systems and service offer this.
Uptime is a Feature
But as customers use your system, and if it has been well designed and tested, another factor comes to into play. Over time they begin to notice that every time they reach for your service, it’s there. It doesn’t let them down. And slowly — but surely — they begin to value that reliability over many of the features that initially attracted them to your service.
But users must return to your system again and again before they begin to appreciate this characteristic. It takes many months for a reputation of reliability to be built. But it’s often lost after a user suffers 3 or 4 outages (customers almost always accept 1 outage). Life isn’t fair for us software developers and system designers when months of trust-building can be lost in a matter of hours.
The same applies to software, not just systems. Software doesn’t quickly gain a reputation as something that Just Works. It takes months — sometimes years — to be known as a product that doesn’t suffer regressions and doesn’t break existing installations. And it can take just as long to build a company culture that places a high value on this kind of quality — a shared vision that we do not ship crap. A surprising amount of software written today doesn’t achieve this goal.
But the way to get there is always the same.