How good should your enterprise software be?
A lot of businesses make a lot of money selling software that users hate. What the hell! That doesn’t make any sense and also I don’t like it. I like using software that makes me happy and I wish I lived in a world where that was directly and obviously incentivized. Why isn’t it?
The basic explanation as I understand it is that, for enterprise software, the people who buy the software and the people who use the software are two different groups. The decision to adopt (without loss of generality) Salesforce is made by someone in the C-suite but that person will never use Salesforce directly.
Any frustration that comes with actually using Salesforce will only be experienced by line workers four five below them. If the line workers are having a terrible time, that is mostly invisible to (or ignorable by) the person who signed the Salesforce contract.
For B2C software the incentives are more aligned: if users hate your software they will switch to something else. But the incentives in enterprise are not aligned at all, which is why at your job you have to use Concur, or whatever.
Is this intentional? A lot of enterprise software really is terrible to use. Maybe big companies understand that the extra effort (i.e. time and money) required to make their products nicer to use won’t result in significant additional revenue and so they simply don’t try.
That might actually be true in some cases, but I can think of another less conspiratorial explanation that involves three factors:
- Most of the companies that sell lots of enterprise software are large
- Large companies are good at things that can be measured easily and bad at things that cannot (because of you know what)
- Product quality is hard to measure
In practice, the causal chain that leads most large software companies to produce terrible products goes like this:
- A large company needs a standardized performance evaluation process to try and combat favoritism and legal risk
- A standardized performance evaluation process needs to be based on (ostensibly) objective criteria: things that can be observed, quantified, and measured
- Work that does not meet that criteria is by definition not valuable to the company and will not be rewarded with bonuses, promotions, etc.
- Employees do exactly what the company incentivizes them to do, i.e. ignore product quality in favor of more measurable output (however tangential to real business impact)
Because of this, there is actually a causal, inverse relationship between an enterprise software company’s growth and the quality of products it is capable of producing. Growth, often fueled by success, robs a company of its ability to produce a high-quality product. You either die a hero or live long enough to become the villain[0].
One sure sign of this transition is product issues only (though not always) being fixed when customers directly complain. Of course, customer support cases can be measured in all sorts of ways[1] so this model of work is legible to the company. If you’ve ever used bad software and wondered ‘how can it be this way?’, the answer is probably that it worked poorly to begin with and has only been improved based on the complaints of the largest customers.
Is this sort of behavior actually optimal for companies, or is it just one emergent behavior among many of large organizations? Unfortunately I think in a lot of cases it is optimal. Certainly if your business is already stagnant or in decline then it makes little sense to invest in product quality.
Is there any way to avoid this fate? I think so, but I’m not sure.
I think the other option is to make the best software in the world. This option is more difficult and as a result is rarely pursued successfully, but there is some evidence that it works[2]. The challenge is that quality is holistic: if part of your product sucks then in some important sense the whole thing sucks. Quality is felt by users as an absence of bad experiences rather than some mean or median.
A corollary of this is that product quality (and its benefits) don’t accrue incrementally but instead exhibit weak-link behavior. This is why it is impossible for a typical ‘data-driven’ organization to achieve: incremental improvements do not yield incremental results. Intermediate points on the product quality spectrum are not ‘stable’ in an organizational sense; high product quality is a Schelling point (this is another way of explaining why quality is a holistic attribute).
Because growth makes it effectively impossible to maintain this high-quality position, companies that do it are necessarily small (and remain small). Basecamp is probably the canonical example. Small companies also benefit from the subjectivity embedded in the ‘best software in the world’ target – if you are serving a niche and don’t need to make $100M in revenue to be profitable, then you have more flexibility to create an experience for your users that meets that apparently high bar.
Unfortunately for users, there doesn’t seem to be an easy solution for the ‘enterprise buyer’ problem. In theory, a prominent usability ranking system (like a Carfax for software) could incentivize even large companies to invest in product quality but in practice this seems too vulnerable to capture to work effectively (e.g. Gartner).
Maybe AI can do something about all this? A boy can dream.
[0] If you’ve been using Slack over the last ten years you’ve watched this happen in real time.
[1] Though you cannot easily measure customer cases that never happened in the first case.
[2] I’m being a little funny, I understand that Apple is mostly a B2C company (though they have certainly captured some professional/enterprise markets). Most of the real examples of this are smaller companies like Basecamp (because growth directly causes quality decline). Apple is notable for (mostly) continuing to deliver quality software at a large scale across decades.