Generative AI is making us louder, not smarter
You're viewing a Gemini article on the web
It's much better to view it on Gemini!
I want to talk a bit about the prevalence of generative AI tools in software development. Whenever I talk to other engineers about this (and yes, I am finally considered an "engineer"), they either hate generative AI to its very core or they consider it a "force multiplier" that allows them to work more efficiently. One thing I'm not hearing much, though, is that it is making anyone work smarter or better.
I have the misfortune of working with Atlassian tools daily. These are - in my opinion - a collection of the most heinously designed, disastrously underperformant misery traps ever created by humans. Each page load is an exercise in frustration, each day starts with me wondering where they have moved basic functions to, each design decision is baffling. But they're all-in on generative AI, which I'm assured is smarter than all of us by a country mile. So what gives? Why are these tools still... awful?
When you look at what generative AI is, you see that it is a tremendously powerful tool that can produce code at a rate impossible for humans. Business leaders salivate over this. Imagine how much more code we can get out of the monkeys if they can just prompt this machine to write hundreds of lines! New features! Huzzah! Surely, our competition who are doing exactly the same thing will be bested by our superior use of the magic parrot.
It's certainly true that I'm seeing a lot more features in Atlassian products. I would argue, however, that they are none of them good or useful. In most cases, they are simply an attempt to justify their ludicrous investment in generative AI. The "create" button in Confluence now opens a Rovo prompt by default. The "create" button in Jira now opens a form with only half of the fields displayed by default. They have moved basic functions to new places with barely a hint as to why. I spend my whole day dreading the moment I have to actually open one of these tools. So what gives?
What happened to excellence?
The biggest problem facing most SaaS platforms, in my view, is a complete lack of drive to be excellent. We have many excellent SaaS tools out there; they have been pushed all the way to the most performant they can possibly be by engineers who really cared about the craft. But with more and more generative AI startups on the market, and more incumbents getting more entrenched in their usage of generative AI and agentic tooling, the quality of software is not getting better. If anything, it's far worse.
Some of this is the tendency of generative AI to "regress toward the mean" rather than pushing for excellence. You can absolutely prompt an AI agent toward excellence, but this requires two things:
1. The person prompting the machine must be an expert in the field to validate that what it's doing is actually the best approach.
2. The person prompting the machine has to actually give a shit about engineering practices and accessibility over just rushing features out.
The new blood
We are missing on both fronts with these AI-based startups, who hire only AI-pilled "prompt engineers" and insist on the use of AI for all things. When you do this, you will inevitably end up with a platform that 1) looks identical to everyone else's, 2) makes exactly the same decisions and mistakes as everyone else's, and 3) uses the exact same tooling as everyone else's.
We seem to be stuck in a forever loop of people building every tool with the pattern of "React-based SPA plus JSON-based RESTful[citation needed] API". This pattern is certainly fine for some things, but is it always best? Does it allow you to push for excellence? This is doubtful, but it is how everyone will end up building things because it is the mean; it's the thing for which the AI has the most stolen training data.
And while I am seeing many more companies pop up, they don't seem to be going anywhere meaningful. With a few notable exceptions, they seem to appear and then simply be absorbed or fall apart. I see a lot of apps being made, both for mobile and for the web, but then quickly abandoned. It feels like the "democratisation" that generative AI (allegedly) introduced to coding really only stretches to the initial ideation phase. It hasn't actually instilled in people the ability to maintain and continue to care past the initial flash of inspiration, and this is what separates engineers from hobbyists. Are more hobbyists able to make software now than before? No. You always had the ability to learn how to make software, it just took more time to get a result. But when you got that result, you understood it, and you also had time to think about whether it was worth it.
This last point is actually important. A while back, I wanted to learn Go. I made a project called "Eigakanban", a free and open source alternative to Letterboxd written in Go. Initially, I learned a lot. The project was fun. But the more I got into the weeds of what would actually be required to make the project useful, the more I realised it wasn't actually a project that needed to exist, nor was it one I cared to complete. That's fine. I got from it what I wanted and left it happily. I feel like generative AI is simply removing the learning aspect of this and leaving more corpses. Storing these corpses isn't free, either. Every abandoned project has costs associated with it for the forge that hosts its body, especially as AI labs crawl forges, desperate for new data, and can't even be bothered to do so efficiently because I guess their agents aren't smart enough to come up with obvious improvements.
The incumbents
Incumbents on the market are facing tremendous pressure to be "AI-forward", to show that they are adopting the new technology and using it to increase development speed apace. The issue with this is that the incumbents don't have that many product ideas. Codebases are not generally set up to work with massive changes to the pace of development, and nor are product teams. While business leaders might say "you have generative AI now, so I expect to see a 10x increase in feature releases", this is a bit like asking nine people to have a baby in a month. Product ideas still require ideation, planning, and actual user research to not be a complete failure. Are we seeing more features released? Absolutely. Are they good? No.
Circling back to Atlassian, I don't give a single shit about tighter integration with Rovo. Rovo is slow, it's pretty poor as an automation tool, and quite frankly it takes me longer to prompt and poke Rovo to write a document than it would have taken me to just write the damned thing myself. Who, then, is this for? I can only guess it's for people who get a dopamine rush out of watching a computer generate lots and lots of text. Forgive me, but as someone who used to work as a Windows sysadmin, watching a machine generate a lot of text gives me only dread.
If generative AI were actually so smart and good at what it does, surely the Atlassian team could speed up their services and reduce the absolutley catastrophic amount of bloat their apps introduce. But they don't seem to want to do that. Instead, they move essential functions around without a single thought to how disruptive it is, and their apps still can't load in under five seconds. In a just world, where quality is prized, they would be cast out immeditately.
Now, maybe things like interface changes are a good thing. After all, UX design is a living field of research. Maybe their research told them these changes were good and necessary. But let's put on our engineering hats for just a second and ask: could we do this in a way that doesn't disrupt existing workflows?
As a thought exercise, let's just assume for the moment that we're using Jira. Jira is a very important tool in many companies, and it powers a lot of workflows. Therefore, introducing UI changes is a dangerous prospect. Moving buttons and form fields can be hugely disruptive for power users who live in the tool. So what could you do to avoid this? Maybe UI changes get tagged with a date of creation, and only accounts that were created after this get the new behavior by default. Maybe you allow existing users to opt-in to the new layout, giving them all the reasoning for the change and allowing them to choose? Would this be a lot of effort? Absolutely. Would it be more effort than shoving an AI chatbot into the page creation form of Confluence? I fail to see how. Besides, your AI can do all of this for you, right?
Artificial Intelligence or Apathy Inducer?
Generative AI has really fostered apathy in many engineers. Some just want to do their job and go home. Honestly? More power to them. If your boss is insisting you disengage your brain and go all-in on agentic programming, feel free to do so. Just make sure you re-engage it elsewhere. As Sally Hall recently wrote:
Apparently, I can’t isolate the way I solve problems at work from the rest of my life. Even if I can justify using it on my work project (a big if), I’m not a character in Severance. What I do at work affects my whole brain. Getting into the habit of handing AI tedious tasks and asking it to explain things I’m not familiar with instead of trying to figure them out myself seems to have decreased how much work I’m willing to put into hard things outside of work. How far will it creep into my life? When does asking Cursor to pass the right props into the right React components turn into outsourcing talking to my kids to ChatGPT?
The brainrot introduced to engineering by generative AI tools is evident. I have used these tools myself, and I feel myself getting stupider and more frustrated the more I use them. Entering into a loop to get the bot to do something the right way (or, indeed, at all) can feel very productive, but when you sit back and look at the result you realise that hours have passed and you haven't actually done all that much. The bot might generate a lot of code, but you no longer have the ability to validate that it's any good. Meanwhile, the world is screaming at you that this is the way things must now be, and that any attempt to stop and think about things is an affront to progress.
While writing code and making software is all well and good, and is absolutely something an AI agent can do, it is by far the least important part of the whole process. There need to be myriad decisions made before a single line of code is written, but the more people use these tools the less they seem to be willing to sit and think about it. In fact, generative AI has infested every step of software production. Engineers are pressured to (or choose to) use generative AI tools to write their plans and specifications, then feed those back into their agents to write the code and the tests. I do think that most of us are able to spot when these bots generate laughably stupid ideas, which happens fairly frequently, but will the next generation of software developers have this ability? If they don't learn things by reading, discussing, building, and suffering, and instead only ever prompt a bot, what happens then?
I foresee an era where "software engineers" do not deserve their title. Engineering requires precision and clarity; if something goes wrong in a building or a machine or a road, people can be hurt or killed. This isn't directly true of most software outside of medical tech and mission-critical software, both of which mostly seem to be free of the plague of AI, but we do rely on software for more things in our lives than ever before. If the engineers are apathetic, no longer driven to do things the right way or - worse - unable even to tell what the best approach is, then we are in serious trouble. Apathy is deadly, and generative AI is pushing it.
They're turning us on one another
I fear that this apathy is spilling through into everything in the software industry. Business leaders bellow and roar about how smart they are for employing the use of generative AI tools (just like everyone else), and software developers are expected to toe the line. Any dissent is jumped upon. See the recent fiasco of Bluesky CTO accusing any developer who doesn't use AI tooling as "delusional or lying".
This is a tremendously stupid thing for the CTO of a company to post. It's insulting and unnecessary, and while I agree that the dogpiling he was responding to was also wrong, he has outed himself as someone who frankly does not care about his craft. Bluesky adopted agentic tooling very early, but its performance sucks horribly. If it were so good, this would not be the case. Unfortunately, improving this requires people who really give a shit and don't spend all of their time "O-facing" at the bot generating the code. This received a pretty frosty reaction on Bluesky from many, and Mr. Frazee decided to double down, repeating his insult and definitely not getting mad at the observation that his site has got meaningfully less stable and performant since the introduction of agentic tooling.
Can generative AI speed up developers? Of course, it can. It's tremendously powerful. Is it right to say every developer must use it, or that those who don't are dishonest or stupid? Absolutely not. If people don't want to use these tools for any reason - the notable cognitive impacts; the disastrous environmental impacts; the frustrating loop of misunderstanding and corrections; the sudden feeling of loss when the services inevitably go offline; the complete destruction of curiosity; etc. ad nauseum - that is their perogative.
The push for LLMs and agentic coding, and the argument that it "democratises" software development (which, again, you could absolutely learn to do at any time) can be seen as a cynical attempt to reduce the importance of expertise and to make it easier to fire expensive engineers to replace them with cheap juniors, as Baldur Bjarnason notes in his excellent article on the matter.
React, Electron, and LLMs have a common purpose: the labour arbitrage theory of dev tool popularity
Paul Frazee's post is representative of the kind of damage these tools cause. Developers - particularly those close to business leaders - are insistent that the tools are inevitable and that you have to sacrifice everything you know to use them. This has started something of a civil war among developers, where one side screams that the tools are worthless and stupid and the other screams that they are the only way to work.
If generative AI were actually performant locally, I would probably fall in the middle. As it stands, they are a money sink attached to ruinous hardware deployments and fundamentally poor businesses who are desperate to make you believe that their shitty software is dangerous, inevitable, powerful, and that their crappy vibe-coded harness that begs LLMs not to make mistakes pretty please is a 30 trillion dollar market. They also do not seem to be doing anything new. Even the recent announcements from OpenAI about mathematical proofs turned out to be overblown at best and downright theft at worst.
Look at what they need to do mimic a fraction of our power
We used to actually care, at one point. When the web was slower, speed and performance were prized above all else. Well, that and novelty. The slowest sites on the web back in the day were usually gif-laden jokes that were only slow due to having large images and animations. They were fun and generally harmless, adding flavour to the nascent web. But the serious websites that actually had a function were carefully tailored, in the best cases, to deliver optimal performance across even dialup internet connections.
A famous example of really fantastic (possibly over-) engineering is the McMaster-Carr hardware website. It's not a pretty site, but the number of hacks that have been implemented to make the whole site fly without sacrificing functionality is frankly astonishing. Nowadays, this site would be just another React SPA and its performance would suck. That's just the way it goes. As Rich Hickey noted, libraries like React are "easy", but not "simple". They may flatten the curve of writing complex software, but it always comes at the cost of hidden complexity and worsened performance.
Simple Made Easy - Rich Hickey
Is there any reason we can't reach for the stars of high performance again in web development? The web is so much more capable, and internet connections so much faster, that we should surely be zooming from place to place with nary a thought about the underlying data transfer. And yet, I find myself interacting every day with terminally underperformant sites and services. GitHub is atrocious these days, GitLab is heavy, all Atlassian services frankly need to be Old Yeller'd behind the shed. So what could you do?
If generative AI is so smart, surely we can turn its prodigious talents onto the task of reinvigorating the drive for excellence in engineering. I would like to see more developers prizing performance over ease; I want to see more server-side rendering of content with minimal JavaScript tooling to create websites that feel snappy and accessible, while not sacrificing interactivity. We have these tools already. Web components have made writing interactive elements trivial, standardized templating functions can be used to share templates between server-side and client-side render functions, and modern APIs like the popover API replace much of what libraries like React were intended for.
So why the lack of push for excellence? I believe that business leaders frankly do not see performance as critical, because they fundamentally don't respect users or their time. Agentic tooling gives them permission by allowing them to focus on providing services for bots rather than humans, so human time and focus becomes less of a concern. A bot won't get annoyed by how shit your website is, but a human will. Instead, they focus on introducing more features, quicker. They increase the noise, and reduce the quality. They don't give a single shit, and it shows.
In the end, these people will probably decide to just get rid of all platforms and websites in favour of APIs that serve agents directly. No more documentation hubs, just Markdown files. No more human-centric web interfaces and native apps, just JSON endpoints and MCPs. Ultimately, the capitalist class just hate people, and this is giving them a convenient excuse.
Don't take my brain, Sam
In an ideal world, we would prioritize the fundamentals over the flashy. I had an idea once for a company where developers were paid to think about problems and come up with novel solutions, but the moment they started writing code the clock would stop and they would not be paid for the time. It was a hyperbolic example, of course. I value coding as a practice. But it was an interesting exercise in thinking about how to prioritise the thought over the output and force engineers to be conservative with the time they spent on faffing around with code.
Writing code is not the bottleneck in software development, it's actually the fun part. It's not surprising, therefore, that the introduction of generative AI as a code generator is causing many to feel dismayed and devalued. Even if they still do the majority of thinking around it, the expressive part of it is being ripped away from us by people who never understood it. Sam Altman wasn't lying (for once) when he said "we see a future where intelligence is a utility, like electricity or water, and people buy it from us on a meter". It's just that first, he has to take intelligence away from you so he has something to sell. That's what these tools are intended to do and - unfortunately - it's working.
Tell me what you think.