8 APRIL 2022
The necessity of abstractions, why a family sedan is a race car in disguise and how technology grows
When you drive a car, ride a bicycle, turn on the hot water in the shower or use a computer, it would be quite unusual to ask the question of, ‘how does this actually work?’
Why is that? Well, because we are surrounded by a vast array of systems, processes and technologies that we often do not, will not or can not understand on any reasonable level, yet find incredible value in having them in our lives.
Here’s the fun part: material things do not become comprehensible and useful to us because their complexities somehow magically disappear. The underlying complexities are what allows those things to deliver their value — they become comprehensible to us as soon as we decide for ourselves to see less of the objective reality.
“Our evolved perceptual systems transform the interconnected, complex multi level world that we inhabit not so much into things per se as into useful things. That is the necessary, practical reduction of the world… We perceive not them, but their functional utility and in doing so, we make them sufficiently simple for sufficient understanding… Absent that, we drown in the complexity of the world.”
- Jordan Peterson
In the world of computer science, there is the terminology of ‘abstraction’ that is a useful analogy to continue exploring this idea further.
Abstraction is a process of pushing the smaller, less important details out of sight to focus more attention on the details that are deemed to be of greater importance.
When you get into the driver’s seat of a car, the components of the car that are likely to be most important to you are the steering wheel, accelerator and brake pedals, windscreen visibility, fuel, seat and harness. This awareness is the necessary minimum required to drive a car from point A to point B, to make use of the car as a vehicle for transportation.
When you get into the shower and turn the handle clockwise, the components of the shower experience that are likely to be the most important to you would be water temperature, flowrate and quality.
In the former example, just because we do not need to think about how the fuel we pump into the car actually gets to the engine, how the force we exert when we physically press onto the brake pedal transfers all the way through to the end result of slowing down the car, or how turning the steering wheel actually allows us to manoeuvre left and right, does not mean those components magically disappear from reality.
We do not need to think about how shower water actually comes up to the desired temperature or where the clean and usable water actually comes from, because the how that delivers these end results are abstracted away from what we immediately perceive.
A good reminder of the existence of such abstractions is within situations where things go wrong, like when the water temperature gauge in the car you are in suddenly goes to maximum or when you have to shiver your way through a cold shower because it seems like the hot water had gone for a walkabout on that particularly busy morning. These moments are critically disruptive to the paradigms and models we build up in our minds of the worlds we interact with. When things no longer work as they had previously, we are then forced to dig into the underlying mechanics of how things went wrong and then to deal with them accordingly.
Generally, the further down the stack we have to dig, the more complicated things get — this brings up an interesting perspective on utility also.
An engine is a complex component in and of itself, but has very limited utility if not coupled with a transmission and the rest of the vehicle. To unlock its utility, it becomes necessary to stack this complex component with other complex components, to ultimately arrive at what can be understood and perceived as a ‘car’ — at the highest levels of the stack.
The higher the stack, the more utility is unlocked, at the cost of greater complication (e.g higher surface area for ways of things to go wrong).
And yet, from the point of view of the end user, things are at the greatest states of utilisation when the layers of complexities are most abstracted away. The more user friendly a system or process is, the easier and simpler it feels to interact with and comprehend.
Situations like these are also made more difficult by the fact that the ability to look underneath the surface, to take action and mend those detected problems is a skill in itself, not a birth right.
It would be an impossible task for any single human being to be ‘full stack’ competent across all the systems and processes that one comes across. So what happens when your car breaks down and you are not equipped to mend the problem yourself? Typically, we would have to outsource such tasks to specialists who develop specific knowledge within the lower levels of the stack. Some mechanics might be subject matter experts in fuel systems, or chassis design, while others might be able to do a bit across all of the available domains.
This also leads to another observation: a mechanic can do all that a driver of a vehicle can do, but the driver cannot do all that a mechanic can. Developing competency within the lower levels of the stack could predispose one to develop further competencies in the higher and less complex levels of the stack, as the domains are more often than not tightly interconnected. This also means that participants entering at the higher levels of the stack will not be equally equipped in the capacity to dig their way down the stack. It is easier for competence to flow upwards than downwards.
And because I have a personal interest in cars, I will wring out this analogy with one last example.
It is easier to understand the fundamentals of how a car works from looking at a McLaren F1 GTR race car than the neighbourhood family Toyota sedan.
Why? For the same reason that technology propagates up from highly advanced, niche sectors like Formula 1 and aerospace engineering to the abundant and accessible material goods that we get to use in our everyday lives.
Start from the bottom to understand what is at the core. Technology begins at the lowest levels of the stack and abstracts its way upwards into more complicated, accessible and usable forms.
New technologies begin by making concerted efforts towards solving the hardest problems (e.g pain points) available — these are the domains where opportunity is most ripe. This chart is a ‘S-curve’, which is typically used to showcase the trajectory of technological innovation over time.
The X-axis being labelled as ‘effort’ detracts from the fact that the greatest investments of effort/resources in the rise of a new technology are often heavily biased to be nearest to the point of conception.
Another way to think of this could perhaps be like the chart below. In the beginning, a company starts off in a position where most of the odds are stacked against them as they venture out to tackle the hardest problems they are most equipped to overcome. The first prototypes are often targeted to a niche audience with barebones features. Over time, the product evolves to become richer in features and attuned to the end user, as the company continues to ship and make more customers happy.
As the company matures, the intensity of the problems they face also shifts. This is not to say that problems completely disappear of course, as we all know that a problem solved just creates room for the next in line, but the intensity would be subject to change. As the company succeeds, hard problems make way for ‘easier’ problems.
To the lines of striving towards ‘maximising reward at lowest possible effort’, the typical human tendency is to seek out maximum utility at the cost of minimum complication in life.
But as we have seen above, more utility is unlocked at the price of greater complication.
When we set off in the beginning, we accumulate for ourselves the little things that bring us great utility. Once there is sufficient utility on a particular layer of the stack, we progress upwards and onto the next. At each rung, we continue to accumulate greater and greater utility that enables us to do more — but what is harder to recognise is the fact that the higher up we build the stack, the more complicated our lives become as the result of having more and more moving pieces.
As with the model of the car before, the higher the stack is built, the more utility is unlocked, but at the cost of having a greater surface area of ways for things to go wrong.
Unlike the process of growing technology, where the end user experience at the very highest of the stack feels effortless and least constrained, it can be extremely stressful and demanding to lead a life that is balanced on top of a very high stack.
Yes, having more things in our lives often unlocks more utility, more options for us to do things, but at what price?
"That was what made travelling appeal to him - he always made new friends, and he didn't need to spend all of his time with them.
When someone sees the same people every day, as had happened with him at the seminary, they wind up becoming a part of that person's life. And then they want the person to change. If someone isn't what others want them to be, the others become angry.
Everyone seems to have a clear idea of how other people should lead their lives, but none about his or her own."
- Paulo Coelho
Do you have questions? Feedback? Let’s talk.