Is high-quality software more expensive than low–quality code? Yes, of course! But can you accurately assess the quality yourself? It is kinda like buying a second hand car: there are great second hand cars, and cars that fall apart as soon as you drive off the lot. Unless you’re a trained mechanic, you’re probably not able to tell the difference until your engine starts smoking on the highway. Research on this phenomenon goes back to a revolutionary paper in 1970, and explains how we can make sure you buy quality without overpaying.
The Market for Lemons
In his 1970 paper “The Market for Lemons: Quality Uncertainty and the Market Mechanism”, economist and Nobel prize winner George Akerlof describes the mechanisms in the second hand car market that ultimately lead to quality degradation and market collapse. In 70’s American slang, a lemon is a car that you think is decent quality, but breaks right after you buy it. A peach on the other hand is a high-quality car.
If you’re like me, you cannot tell a lemon from a peach. For me, that’s actually part of the reason for not owning a car. If I were to buy a car, I’d be far more interested in the audio installation and board computer interface, than engine maintenance and the state of the timing belt. I would just assume cheap cars are shit, and expensive cars are great. And that’s how they get me…
George dubbed this phenomenon information asymmetry: the buyer has less information about the product or service than the seller. Because of this asymmetry, the only way a buyer can compare cars is by looking at the price, and ultimately buyers are willing to pay about the average value of a lemon and a peach.
They don’t give out Nobel prizes easily, so of course there is quite some math and statistics involved in all this, but let’s (for the sake of argument) assume you’re a car salesperson and you have a shitty car for €100 and a decent car for €200. A customer walks in your shop and has about €150 to spend. If you’re worth your wage as a salesperson, you’d make sure to sell your shitty car and make a nice margin (you might even get a bonus). You’ll save the €200 car for someone that won’t be fooled into buying a wreck.
Here you see how you can get rich off shitty lemon cars. The result of this dishonest type of business, ultimately, is that honest businesses are being pushed out of the market: dishonest businesses earn more on lemons and buyers that just compare prices will always favor an overpriced lemon over a rightly priced peach. The result: market collapse.
Conditions for a lemon market
So what makes a market sensitive to this type of sales? Wikipedia conveniently lists the 5 requirements that produce a lemon market:
- Asymmetry of information: sellers can assess quality of products better than buyers
- Incentive to pass low-quality off as high-quality: e.g. because high-quality is more expensive
- Sellers can’t credibly prove quality: sellers cannot prove the car won’t break down soon
- Buyers are sufficiently pessimistic about seller's quality: who’d trust a second hand car salesperson anyways?
- No effective public quality assurances: so there is no regulation, no trustworthy quality certificates, no trial-by-media, no effective guarantees or warranties
Apocalypse of the software industry
Unfortunately, the software industry meets the conditions for a lemon market to some extent as well, but there are some differences (and solutions) we’ll explore later. Information asymmetry poses the biggest challenge for software agencies. Oftentimes, software agencies are approached by customers that want to launch a digital product, but don’t have in-depth knowledge of software development. Consequently, these customers cannot assess the quality of the deliverables. To put it in American car slang: they can’t tell lemony software and peachy software apart.
Besides that, the software industry has a reputation for budget overruns and security flaws and developers have no way to assure a client upfront about the quality of their deliverables. The painful result of this is clients have a hard time trusting software agencies, the same way people have a hard time trusting second hand car traders.
Clients then, naturally, resort to haggling about the only thing both they and the software people understand: money. If all developers say they provide quality solutions and clients cannot hold them to it, project cost is the only thing setting one agency apart from the other, pushing high quality providers out of the market and leaving customers with overpriced, low-quality software. Full circle.
Looking at solutions
Clearly, the market for second hand cars suffers from this mechanism, but why is the market for new cars perfectly fine? The same information asymmetry is true, regardless of whether the car is new or used.
The difference obviously lies in two reasons. Firstly, car manufacturers give better guarantees (due to consumer protection laws). Secondly, car manufacturers have a reputation to hold high. Porsche will never (knowingly) pass off a crappy car as high-quality. Imagine the headlines. They’d be out of business in no time. Second hand car traders are not limited by this: they can just set up their swindle somewhere else, or change their name.
In the software industry, this lies a little more nuanced. Giving quality warranties on custom software development is maybe not impossible, but it would likely push prices of quality software even higher, because the deliverables are not standard and super complex. However, good software agencies should uphold their good reputation at all cost, because this will ultimately set them apart from budget competitors. And new customers looking for a development agency should therefore, instead of selecting solely on price, look at reputation or ask for references. This is way more indicative of the quality they’re gonna get.