Building IT Solutions is Like Going to the Beach
Preface - Metaphors Are Always Wrong
Comment sections are full of more or less well intended metaphors. One of the most popular ones is comparing X with a car. Of course there is no shortage of people that explain en detail why these metaphors are wrong.
I think those comments often miss the point of a good metaphor. A metaphor is by definition an abstraction, or you could call it a model. The whole purpose is to emphasize some parts and ignore other parts. Of course a model can work better or worse for a given purpose. I hope my metaphor paints a relatable picture for people working in IT and for people in other professions.
The Law of Complexity
The law of conservation of complexity, also known as Tesler’s Law states that
[..] every application has an inherent amount of complexity that cannot be removed or hidden. Instead, it must be dealt with, either in product development or in user interaction.
So the law is a bit like the law of thermodynamics: Energy can not be created or destroyed, it can just be transformed. Nevertheless, in a more common sense, energy can be used efficiently or can be waisted. So there is a physical limit how much energy is at least required to lift a stone, but we can build a machine that consumes 10x (or even more) energy.
I think, the same applies for complexity. While there might be hard lower limit of complexity for each given problem, building and using a solution (application) can add an arbitrary amount of new complexity. This complexity can manifest on the development side, or on the user interaction side - in the worst case on even on both.
Travelling to the Beach
Let’s say we start a business that offers a shuttle service from the city center to the beach. Naturally, there are a lot of different ways to accomplish this mission. There are different factors, for instance:
- how far away are the 5 closest beaches?
- how long does it take to commute there by car/bus/train/bike/etc?
- how much time and money are our customers willing to spend?
- do we offer a one-size-fits-all solution or individual packages?
- how sure are we that the customer really wants to go the beach (and not just get out of the city)?
- how does our service differ from similar offers?
You get the drill. There are a lot of questions that are worth to think about, even the problem looks rather simple. Let’s look on the poblem through the lense of Tesler’s Law.
There is definitely one beach that is the closest to our start point by beeline. So we have a lower limit by distance. Let’s assume there is a big mountain between us and the mentioned beach. We can now shift the ‘complexity’ between our customer and our business. For our business execution it is most convenient to use the existing road that goes around the mountain. This enables a rather low price for the customer, but costs a lot of life time for each traveler and this cost occurs on each execution. We could also decide to blast a tunnel into the mountain. That will cost (our) time and money in the beginning, but will save time and energy on all trips once the tunnel is completed. Or we could charter a helicopter and save maybe even more time for travelers. The higher speed requires more energy and adds a lot of new complexity, so the overall utility might be somewhere in between bypassing and blasting the mountain.
Of course the different options depend on the resources that our business and our customers have available. Building a tunnel requires a big upfront investment by us. If the investment pays off, we can offer a good service with a reasonable price and our competitors might have a hard time to copy this strategy. But the stakes are high and the risk is mostly on our side.
If our target group is mostly millionaires craving for exclusive adventures, the helicopter might be a better bet. We have to invest some money, but helicopters can be rented. Try to rent a tunnel for a massive mountain!
Or we just use the existing road. That is as low risk as it can get, but the experience will probably be somewhat underwhelming for all people involved. Our customers know they get a non special offer, we know we offer a kind of commodity and the amount of competitors will be rather high. Additionally, there is the risk of some guys disrupting our business model with a tunnel or a helicopter.
Pitching to the Tech Giants
Let’s imagine our business is looking for a strategic partner. We pitch the different options at a Silicon Valley conference to Apple, Amazon, Google and Tesla. Who chooses which option, what do you think?
I imagine the result something like this:
- Apple: We offer the travel by helicopter. The best product is only good enough for our customers. And we want them to experience a sense of high class. The helicopter must be white.
- Google: We take the road and offer rides for free. The revenue will be made by ads that we place next to the road. And in the car. And at the beach. And in the sea. And…
- Amazon: We are able to invest a lot of money and operate on a loss for a long time. We might start on the road and build a tunnel in parallel. After that we would like to blast away the soil, so the sea comes closer to the city. There are some legal questions, but we gonna sort that out.
- Elon Musk: We have this Hyper Loop concept laying around here… Or we just invent something more extreme.
To be continued…