by bcrl | 2025-08-30 01:34:29+00:00
Shooting the messenger won't fix or prevent a code quality problem.

Edit: Let me explain why I am of this opinion. Of late my life is being made miserable by poor quality software. There seems to be an entire generation of programmers that are skipping the whole part of the design process where one explores the problem space a given piece of software is meant to fit into. In doing so, they are willfully ignoring how the user will experience their software.

This includes networking products that have no means of recovery when the cloud credentials are lost. When the owner of the product loses their credentials and no longer has access to the email address they originally signed up for, the only solution is a manual reset of every single device in the network. Have you every had to spend hours taking a ladder into a building to rip down a dozen access points that are paperweights because there's no way to recover from this?

Take LLMs. They're great at filling in reams of boilerplate code where the structure is generally the same as everything else. So much of the software industry is about building CRUD apps for your favourite corporation, and there's not a lot of thinking throughout the process. But what happens when you're building a complex application that involves careful performance optimization on many core CPUs and numerous race conditions with complex failure modes? Not so good. And the person driving the LLM isn't going to patch the security holes in the "vibe code" they submitted to the Linux kernel because they don't even know how it works.

Or LLMs that skip off the guard rails and feed desperate individuals information on how to kill themselves?

What about the Full Self Driving vehicles that drive at full speed into emergency vehicles parked on a road with lights flashing that the most naive of drivers would instinctively slow down for while approaching?

What about search engines that have prematurely deployed "AI" features that hallucinate search results for straightforward queries?

How about the world's largest e-commerce website that can't perform a simple keyword search for an attribute of a product (like the size of an SSD)? When I specify 8TB, I mean products that are 8TB, not 512GB!!!

How about CPUs that lose 10-20% of their touted performance gains at launch because of bugs that are "fixed" by software and microcode updates after launch?

What about the email service that blocks emails that are virtually identical to every other email sent to a mailing list because it wasn't delivered using TLS? Oh, but the spammers that have SPF + DKIM + ARC + whatever validation get to have their messages delivered because they have put an Unsubscribe link in the headers.

How about the online advertising platforms that push scams on the elderly with ads that are ephemeral to prevent anyone from sharing a link to what they just saw and report it?

So if I say there is a problem with a software developer being clueless about features they have implemented, it is a valid criticism that is based in facts about the way their software was designed and how it functions.

There are still people who value their reputation enough to put in the effort to explore the problem space and anticipate the user's needs to avoid issues like this, but I fear that they are going to be pushed out of the industry because they're not fast enough in the race to foist the "next big thing" onto an unsuspecting public.

We need simple, reliable, functional software that meets the needs of its users. And we're losing that.

It's a sad state of affairs that we have to deal with in 2025. We have truly entered the age of "Fuck you" software that ignores what it does to its users and actively harms them.