I was asked to explain the concept of abstraction in software and IT infrastructure to a group of people who had limited technical capability. It needed to be simple and relevant to every day people who aren’t familiar with the seven layer model of the Internet and network abstraction
Here is what I came up with.I decided to base the story on transport and comparing walking to cars to flying as abstractions for travelling.
Ground The base level of physical environment. The ground is everpresent and does not change.
Walking. Your feet hit the ground and you feel the impact. The relationship between you and the ground is immediate and intimate. You are in touch with the weather because your face can feel it. It is an immediate experience.
Consider walking as “movement as a service”
Bicycling. You can still feel the world around you but the feet can’t feel the ground. Your mind knows that the ground exists but your butt and hands are getting the feedback on the ground conditions. You are moving faster than walking.
Bicycling is still “movement as a service” but abstracted from the ground or walking through the use of a bike.
Driving. A car is a higher level of a abstraction. You body is no longer in touch with the phsyical environment. Movement is delivered via pedal press and ultimately the engine. Compared to walking, a car is a complex technology that requires capital to acquire and has operating costs such as fuel and maintenance.
However cars also provide high scalabality of ‘movement’ by transporting many people and can be more efficient than walking.
Airplane The most extreme form of abstraction. Speeds are very high, high scale and require massive investment to own and maintain. When flying, the concept of “ground” is barely even relevant at that height and speed.
Abstractions Limitations Each level of abstraction creates constraints. A bicycle or car require roads or paths to travel where walking can go anywhere. While a bicycle can go on paths that a car cannot, a car can further and faster. A car needs maintenance, fuel and roads.
An airplane requires an airport and has even more restricted path options and requires you to use the available interface of the airport.
Abstractions have Value
In computing, a computer or the network or some other part is the “ground”. The protocols that connect your computers are abstractions from the physical cables. For the the protocols, the networking industry has standardised on seven layers of abstraction.
Using a car to transport yourself to the shops is a useful abstraction. It is fast, comfortable and conventient. The decision to buy and own a car or plane or bicycle implies that you understand the limit the abstractions place upon you.
Even if you don’t think about them.