IT's reliance on artisans to do the backend work has kept it from progressing to its own industrial age.
Revolution via Evolution
A Wardley Map is a strategy tool that allows you to create a map of the state of the business landscape, enabling better communication and more informed decisions. Wardley Maps have an evolution axis that shows how everything moves from invention to commodity (see Figure 1).
Figure 1 - Wardley Maps evolution stages. (Source: Finding a Path.)
The assumption is that under pressure from the competition, every product moves toward being a less-differentiated commodity that is then cheap and easy to produce. This allows others to create new genesis products on top of it, for example, as the TV came with the commoditization of electricity.
This commoditization has evolved as expected for end-user IT. In Windows and macOS, you have “windows.” They move with a click and drag from the top bar. You close windows by clicking on an x button at the top. There are folders and files in both, menus are at the top, copy/paste is under the edit menu, and so on. The same applies to mobile phones; there are few differences between an iOS and Android phone, but after a couple of days (weeks for my mum), you can get used to the other system and proudly say that it is intuitive. (It is not.) All is normal under the evolutionary sun.
Behind the IT scenes, however, there is chaos that has existed for at least 25 years. The issues I had when I started in IT are still the same. They may be cheaper, but they are just as complex.
Consider, for example, programming languages. You could expect two or three programming languages to become the standard and that the evolution would occur around those. Instead there are hundreds of languages and more come out each year.
In fact, there has been a regression. For example, databases all used to be relational (i.e., like Excel), with some exceptions for specific workloads. Now, look at the AWS offerings for databases shown in Figure 2.
Figure 2 - AWS database offerings, 2021.
Where is the standardization and commoditization? (By the way, all the various types of database shown in Figure 2 existed 20 years ago.)
There is an immobility with IT. As of 2021, I can pass very advanced certifications without much study because most of the knowledge I need is 20 years old. The hard part is learning the new names for old concepts.
How can we explain this stasis? Consider the words of Henry Ford: "If I had asked people what they wanted, they would have said faster horses."
The big cloud companies like Amazon, Google, and Microsoft are all customer-driven, so they provide faster horses but never the equivalent of a "car." Until cloud vendors see their customers as nerds like me, who enjoy learning new complex stuff and connecting it in strange ways, things will not get better.
Simplicity is Hard
The central aspect of evolution toward commodity is simplicity. For example, electricity is widely standard, and how to use it is simple; it is the real plug-and-play. All refrigerators will have the same temperature for cold (32ºF) and freeze (0ºF); if that is not the case, you call for repair. People build better products on top of this type of simplification. When you buy frozen peas, the best-before date assumes the same standardized temperatures.
Simplicity requires focus to make things more straightforward for the target audience, often the end user. As a rule of thumb, the simpler something is for the end user, the more complex it is for the people embedding simplicity in the product.
The problem is, engineers are terrible at simplification; they like to add options and buttons. Consider most TV remotes or washing machine programming. Even in the world of AI, users still have to manually check the label on each piece of clothing and select the right program. And let’s be honest, we all use the fast washing cycle. Just give me one program and a green (OK to wash) or red (don’t put it in the washing machine) label. If the cloth is red, I’ll take it to a pro.
Backend IT is made of engineers, and engineers (I include myself in that group) do not understand the concept of simplicity. In the last 20 years, things have gotten cheaper, not simpler. Even configuration file formats for configuring software are in continuous flux (really?!): first text, then INI, then XML, then JSON, now YAML. All are doing the same job, making the work of anyone configuring anything a nightmare.
The backend complexity can stay but should evolve towards becoming more like a commodity. Organizations should recognize a new class of IT end customers — the "I have a great idea but not tech knowledge" type. We must recognize the opportunity cost of innovation when we don’t allow people who have great ideas that involve IT to implement at least a minimum viable product without the need to hire a software consultant. Successful companies like Roblox, Nintendo, and Minecraft all based their business models on a new type of customer: "I have a great game idea but not tech knowledge."
What would be your idea?