When talking about unhelpful abstractions most of the people around me probably think of C++, or that one case where that serialization system you were using had this one really annoying performance problem that you couldn’t solve because it was going through 4 layers of indirection to make things ‘easier’. Or maybe that’s just me?

In my experience however people apply abstractions much more broadly in their lives with far greater impact. For example, people talk about companies or upper management. Neither companies nor upper management actually exist, they are just abstractions we create to talk about things more conveniently. As in software, inappropriate abstractions can be harmful. Saying “upper management made a stupid decision” turns a concrete problem into something that you cannot possibly have any influence on, because upper management.

Maybe this is a helpful abstraction for companies with 100000 employees, but what I have found so far is that even at companies with 300 or 5000 people there is plenty of complaining about upper management doing weird things. This inhumane abstract upper management machine sure seems evil! By abstracting away from the people that actually make these decisions, it just becomes hard to talk to them. In the end, upper management does not exist: There are people that make decisions and you can go talk to them. It’s like classes in C++: They don’t actually exist. There are just functions that write to memory, and you can disassemble them to get something that doesn’t have classes.

As an aside: When there is a conflict we are often surprisingly quick to abstract away the human on the other end. The more abstract and less personal you can make your opponent, the easier it is to dehumanize them and justify whatever you are doing, and that’s absolutely not the right mindset if you want to cooperate with people that you work together! Us vs. them is an abstraction, because what exists in the end are just people that you can talk to. Remember: Nobody is the villain in their own story and even Bill Gates occasionally has diarrhea; there are just people that stumble through an ever complex world without much idea of what they heck they are doing in the short 80 years they have on this planet.

In my life so far it was usually straight-forward to reach out to, cough, upper management - and it has always been appreciated. Figure out who upper management actually is and raise your concerns instead of participating in building unhelpful abstractions. I had coffee with the CEO at Paradox more than once. I’m frequently talking to VPs at Unity. Never once have I been turned down. I do realize that this might be different in other cultures and other companies, but there are always two sides to a conversation and a conversation certainly won’t happen if I don’t ask for it.