DevOps is a good thing. In today’s Application Economy, after all, it’s important to get new code into production quickly, because that new code empowers you to deliver more value to your customers than your competitors do.
But a differentiated customer experience is not just about cool app features. It’s also about great performance. That’s why companies embracing DevOps must make sure they focus on Ops as much as Dev.
Performance is central to the customer experience. The coolest app in the world won’t do you much good if it’s too slow or is even occasionally unavailable.
Most observers agree that customer tolerance for subpar performance is diminishing. This diminishing tolerance is often ascribed to psychology and culture. People, according to this line of thinking, are somehow becoming inherently less patient as their expectations for instant gratification are relentlessly raised by high-performance sites such as Google and Facebook.
This is only a partial truth. The rest of the truth is that customers actually need mobile apps to be fast because of when and how they are using them. People with high disposable incomes tend to lead very busy lives, so they often try to accomplish tasks in small increments while they’re waiting for a boarding call or a lunch order.
If you help them squeeze in a to-do list item during these short-lived opportunities, you can be their friend. If you fail, however, you become their enemy.
Performance is hard
Unfortunately, great app performance can be even more difficult to achieve than functional app differentiation. One reason is that end-to-end app performance often depends on a complex set of variables—especially in IT environments with lots of technical debt. A mobile front end can depend on dozens of back-end systems. These back-end systems all respond differently to app-generated workloads, depending on their individual configurations and tolerances.
Also, app performance is highly variable. It depends on how many customers are active at any given moment, which operations they are trying to perform, what other workloads your back-end systems are processing at the same time, and so on.