When Abstractions Break

May 08, 2024

An abstraction is a mental shortcut. Good abstractions save you the time and effort of learning about something in order to focus on a larger picture. You probably use abstractions all the time. Instead of learning about auto repair you go to a mechanic. It would seem odd to need to conduct diligence against your dentist beyond checking their credentials. Yet in fields without robust supply of providers the abstractions tend to break down. To have a successful procurement you need learn the underlying art and conduct greater diligence.

Why It Matters

A broken abstraction changes the cost-value proposition of outsourcing to insourcing. Or for an individual from hiring someone to doing it yourself. Or from using a pre-made solution to building it yourself.

A Few Examples

  • Customizable Off the Shelf Software (COTS) is often built on existing tools to make them easier to use, but as you become more advanced of a user you learn both the COTS and the underlying (usually) open source technology.
  • “Convenience” libraries designed to let you use a tool written in one programming language by knowing only another. In the worst cases a person new to the project and tool knows neither language and has to learn them both 😵.
  • No or low code tools that turn into critical infrastructure often surface bugs or issues with the underlying code.

How to Assess Durability in Software

  • 2^n of the number of configuration or run time options is the number of scenarios where things could go wrong. The more software or a library does or claim it can do, the more likely it is to break.
  • The higher the monthly active user count is the more likely bugs or issues will have already been surfaced and fixed or will be fixed.
  • Update frequency: look at the version history. Chik-Fil-A has already updated its mobile app 8 times in 2024 and all it does it let you order a chicken sandwich.
  • How long has it been around? A new start-up’s product is less likely to be durable than say an established professional tool like Photoshop.

Want to get posts like this in your email?

This work by Matt Zagaja is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.