Abstractions Gone Wild!
Abstraction is often seen as the technique of simplifying a concept down to base commonalities, for convenient reuse in additional contexts. Mainly because that’s what it is. Emphasis on “convenient”.
It’s a process meant to make things smoother on the surface, with the frantic paddling underneath already done for the user of said abstraction.
Now this is going to sound basic, but it’s an important distinction - there are two main problems with abstractions: when they’re done badly, and when they’re done too well.
The Good
Some excellent examples of this, just for illustration, are:
The Bad
Doing things badly is an obvious option. It happens when the inner workings are hidden from you, but the layer on top doesn’t cover what you need to do.
A wildly frustrating example of this is the clunky mismatch of Bluetooth support in my car’s stereo system, which shows me the name of the last track my phone played rather than the current one, has an interface to jump through a song that tells me it’s unsupported when I try to use it, and frequently forgets which phone it was last connected to, especially if it was mine.
The abstraction is meant to be “play songs and have a nice time on any connected device”, but instead the abstraction fails to understand levels of support, or do any checks for functionality. It assumes a bunch of things that are clumsy to assume, and those manifest for me as annoyances.
But that’s expected - if a thing exists then a human will do a thing poorly. The real harm, I believe, comes when you implement an abstraction so well that you not only hide the inner workings, but you hide any hint of the existence of any layer further down.
An abstraction usually comes from an intent to do good, and in true Sod’s Law form these can result in the worst outcomes.
领英推荐
The Graduate
Take for example, the busy team. Any busy team that is busy. They’re low on resources, so they need another pair of hands. Management does what a lot of resource-low leadership does and says “here’s a university graduate, mould them as you need”.
The graduate didn’t learn processes the exact way the company does them. The graduate’s not even heard of half this stuff. The graduate, as it happens, doesn’t respect the “let’s hire cheap graduates for cheap” ethos and isn’t that keen on - or good at - learning the systems.
So “as a shortcut” the graduate gets their work finished for them, “just for now”. Just to get us caught up. Hmm, the graduate did this task entirely wrong and we’ve had to redo it but the graduate will see what we’ve done, pick out the valuable bits and learn everything they need in time, right?
Years pass. The graduate is now a veteran. They’ve settled in, learning here and there but not generally being given large or complex tasks.
What could have been a great employee is now someone who’s been abstracted from their job. A bit of abstraction is needed when onboarding someone, so that they don’t fully drown, but that needs to end quickly to apply some sort of learning curve, where learning may occur.
The Ugly (ah, we got there)
Time to put my Old Person Hat??on: modern tech has increasingly abstracted us from its workings, in a way that has been detrimental to society.
I know generations have said that for generations with the advent of new technology, but unlike “TV shows/loud music/rebellious art/action movies/video games are bad for you”, it’s actually the new technology that I’m pushing for.
The aim of modern interfaces is to well-meaningly “make stuff easier”, which moves the user away from what’s really going on. We should want us and our kids to know what lurks beneath the surface of the buttons they push, and I’m not just saying that because I had to fiddle with graphics card settings in BIOS just to launch certain games in DOS.
If all you see are the top-level icons that do a few set things on your smartphone, tablet, car screen et al then there’s so much you aren’t getting to touch. These Michael-the-Rodent interfaces disguise the complexity of what’s really happening, and now the idea of the “whizzkid generation” - waaaaaaay ahead of their parents in understanding computers and that - turns out to have been a fleeting notion, swept away in the winds of Instagram and TikTok’s all-encompassing UI vision of a simpler world.
Young adults who grew up on these interfaces are going to college/university/office jobs and having to quickly learn basic computering-type skills. I never thought I’d see folk younger than me on a course about how to use Windows, Word and Excel just so they can operate in the world, but they missed out on that education via osmosis. That education was never available to ossify in their minds.
Too good an abstraction sets humans up to fail and when you cover up knowledge, that’s the ugliest abstraction of all.