The Curse of the Invisible Abstract
Depression is an illness that, luckily, has been coming ever more into a social awareness over the past years. Yet, still it is fighting against groups of people who really don't want to acknowledge it, who dismiss it outright or claim it not so severe ("just smile a bit").
The core issue (if we leave aside any deliberate malicious intent) is the Invisible Abstract. If the same person with depression had broken their leg, no one would even think about telling them to "just walk a bit, it'll be fine". Even if they never had a broken leg before, they can see its condition, they can roughly imagine what it means to have your bone split and why this is a serious issue.
The depression is Invisible as it's a chemical issue inside the body's boundaries, not causing a perceivable physical alteration. At the same time it's Abstract because its effects are hard to grasp when one does not have first-hand experience. This combination makes it easy for cynics and empathy-drained individuals to dismiss it.
The principle behind the struggle for acknowledgement against these forces can be seen in various other locations as well. Take software engineering.
It rarely happens in modern days that you have a waterfall project (planning the entire application up-front, implementing it, and then you're done and can go have a milk-shake). Instead, everyone wants to be agile. Do fast and many iterations over the software in order to quickly discover what works and what doesn't. (Although it may sound like it, this is absolutely not an advocacy for waterfall project management).
Upsides rarely come without downsides. You implement some feature and then change it and change it and change it until it may fit the business need, but was (on a technological level) never intended like that and the engineers already have nightmares about how to connect this to the next feature that's looming on the horizon. Congratulations, you have tech-debt. Not because the engineers were lazy or incompetent, but because quick and numerous (significant) changes always eventually lead to tech-debt.
And the name is deliberate. You either go and pay down your tech-debt or at some point go tech-bankrupt. It's like bridges: you can skip the maintenance for a couple of decades, but at some point they'll be broken beyond repair, and you have to tear them down and rebuild them from the ground up.
This is where we encounter the Invisible Abstract. While for the engineers, it's quite visibly tangible, other stakeholders tend to not have a concrete understanding of what "having tech-debt" means or why you need to get rid of it (and how should they, if they haven't been engineers themselves once?). Just like with depression, the core issue is hidden somewhere on a server that the stakeholders have never seen before, while on the outside it seems to all work fine.
In contrast, if the website wouldn't load, users couldn't sign in or there was a big green rectangle over half of the screen, then everyone would agree about the application's broken leg.
But there's one occurrence where the indifference about the Invisible Abstract drives me nuts: big-tech platforms. I've tried to put into words what the issue here is in my previous post, so I'm not going to re-iterate that, but instead look at the social behavior on a meta level.
When we look at the platforms themselves, their companies spend a lot of money to make sure that you don't encounter any broken legs. And although we (as a society) technically know about privacy and democratic issues with these platforms, we can't seem to grasp them.
If you're using WhatsApp, you most likely gave Meta access to your phone's contact list. With that they build huge "who knows who" graphs and can do all sorts of nefarious things in the future. But if I were to ask you to give me access to your contact list, you sure as hell wouldn't allow that. I'm a tangible threat to your privacy, whereas Meta is an Abstract conglomerate of people and servers that you've never seen and where you don't really know (or want to know) what these nefarious things are and why they would target you, out of all people.
It's an Invisible threat that might even seem unrealistic to manifest (although things like political manipulation are already happening).
After the Chaos Computer Club (together with other individuals) established the Digital Independence Day at the 39C3, Linus Neumann correctly remarked that this endeavor is not a technical, but a social one: getting people to truly understand the issue and steering them to alternative solutions. The right communication is key here and the downfall of Twitter probably the best showcase.
Also, communication is at the heart of eliminating tech-debt, too. But how do you communicate that you need to fix this piece of code? Some detailed tech-explanation is not going to do it. Software engineering (just like probably any other intellectual discipline) is already a mystery box for outsiders. Throwing around technical terms (even if accurate) is not helping. Engineers and stakeholders have to speak a common language and have to have a common mental concept. Otherwise, this divide will persist.
So, how do we fix the Invisible Abstract when it comes to tech-debt? We probably won't have a silver bullet and need to solve each to the two separately.
To overcome the Invisible, there are attempts to measure tech-debt and make it observable through numbers. Especially management works with numbers all day. They should understand that, right? But what does it mean that this tech-debt metric is at 50%? It at least shows that the issue is bigger than 3 months ago, but does it contribute to an intrinsic understanding of why we need to get rid of it?
No, to defeat the Abstract, we perhaps need to utilize metaphors like the corroding bridge. Paint simple pictures in peoples heads. But if all of that doesn't help, maybe, as engineers, we should try explaining tech-debt with "our code has depression" in the future and see if this will change stakeholder's understanding & attitude towards it.