> We’ve reached a point where an update to macOS — or to any app I rely on, really — is a source of dread rather than excitement. I now expect the new version to be worse.
I actually relate to that. It used to be cool and exciting to update to see what new things are coming for free. I was just looking up what Fedora Workstation 45 might bring.
Updates on phones, TV's, cars and non-Linux operating systems on PC's/laptops are downright scary to me now. What will they add that I don't want? What more connectivity to the external world are they going to wire in?
MacOS lost everyone's trust by ruining the experience, but even before it happened that trying to resize a window makes it feel like life will be at 80 years-old, hunting a tiny invisible border, even before that there wasn't anything exciting.
What Microsoft I think did (and I can't prove it), before I moved off of Windows 11, was to bundle all changes in "required security updates." So you have no choice but to update (or go through special settings to turn it off, or just defer it), but when the machine comes back you have a new Welcome prompt to some new connectivity to something nefarious. AI features I never asked for, that's the most recent dark pattern here.
Yep, this 100%. When I see a "pending update" notification or icon somewhere, the first thing I think is "I don't want to update, they're just going to break something new". I _hate_ updates now. Doesn't matter what software it is, with the small exception of video games. (Except Dead By Daylight. Behavior, the devs, are the most hilariously incompetent devs on the planet, but at least their incompetence is confined to their own game.)
The only software I've been excited about an update for in years has been games, that seems like the only category where devs actually add features people are excited about. For example, the latest KCD2 patch added a fun but brief new quest [0].
Not universal though. Besides your example, even for single player games patches can be basically malicious. I've had Fallout 4 locked on updates for like 3 years at this point, everything Bethesda has added has degraded the experience for zero upside. But I can't think of any software besides a game where I have been anything but dreading an update in years. Slack wants to update? Great, it'll probably break/degrade my work flow in some minor way, and they're one of the lesser offenders on my work machine.
Maybe this is because video games can always add more features. Realistically, what useful feature could even be added to Word? I want to write text. It lets me write text. Program done. I dont see why Word would ever need an update other than maintenance or a security patch.
> > We’ve reached a point where an update to macOS — or to any app I rely on, really — is a source of dread rather than excitement. I now expect the new version to be worse.
You know what software doesn't fill me with dread to update? FOSS.
Proprietary software isn't built for users anymore. But (some) FOSS still is.
Exactly, though it's mostly community software and not corporate backed oss. Zig has been taking an interesting direction, emacs is still getting features after 50 years, ladybird is turing out nice, and a ton of other things
Ubuntu is still annoying with it's daily popups asking to update the system and then most times requiring a system restart. In some ways it is worse than Windows.
The funny thing is that there’s a relatively high amount of hype this year around iOS and macOS being a stability and performance release with very few features, on purpose.
Look up some beta impressions or try the public beta yourself. Apps launch faster and a whole bunch of random stuff is fixed and smoothed out.
So not only are we getting a really great performance and stability release in the height of the AI era, disproving this “AI isn’t making software better” claim, but we now can make a pretty solid connection to the DRAM shortages being one of the biggest performance and efficiency motivators of the last few decades.
Why do you think Apple cares to make apps launch 40% faster? It’s because they don’t want to be selling iPhones that are losing money because they’re packed with expensive RAM and storage.
I just can’t agree with you that this software is anywhere near the kind of misery you’re describing.
To head this off at the pass, I’m not even a macOS user…I switched off to Linux last year. I also didn’t like Liquid Glass and oddly I got tired of the notch more than anything. I also just needed more storage in my computer and didn’t want to pay Apple 3x more than street pricing for 2TB.
I agree with you but I think it's worth pointing out that this is a new occurrence.
It's not just the performance of software but the UI and features themselves. The constant UI redesigns leave legacy users disoriented. It seems like they often just change things for the sake of changing things. On iOS three main pain points for me that used to be better are:
1. Search. It finds the settings for an app but not the app itself. Or the search doesn't even find the setting even though I have typed the name of the setting in word for word.
2. The timer. Previously I would set a timer and see the result on the lock screen. Perfect. Then they added a control to stop the timer from the lock screen. So timers are accidentally stopped after brushing the lock screen by accident.
3. Turning Caller ID on and off. Sometimes it just lags out and doesn't do anything.
> disproving this “AI isn’t making software better” claim
one company deciding a feature freeze is not disapproving anything, in fact, it means things have gotten so bad, apple who used to have higher standards for their releases, had to pull the brakes and fix their shit
> was to bundle all changes in "required security updates."
Kind of...Cumulative Security Updates on Patch Tuesday still do not contain new OS features, and on pro editions of windows you can at least, last time I used Windows (maybe this changed?), still skip quality updates & feature updates.
What Windows does do is tie all the "connected experiences" crap to out of band updates via the store/AppX packages which background update automatically, so when you reboot after a patch windows will run its post update OOBE and push all those features agian/turn them on. So technically not bundled with security updates, but a dark pattern that disrespects users nonetheless.
Not exactly the same, but Microsoft shipped the "Backup" or some similar name software that is actually just a OneDrive client in a Windows 10 LTSC update. LTSC is specifically for not getting such feature updates. They also changed the folder icons in the graphical shell at some point.
> bundle all changes in "required security updates."
And that is why i have setup a managed organization setting in windows to stop automatic updates (which includes security updates). I manually vet each individual security update, and download and apply them myself. I don't let windows update on its own.
Similarly to android. I don't let it update, unless i know i need the update. And i'd like to do the same with apps too, but companies have put in things to prevent people like me - deprecating old versions and forcing users to use newer versions (things like whatsapp, or youtube are prime examples).
Counterpoint: I have been running Fedora Linux on multiple systems for about two decades, including on my daily drivers, and it's been pretty much solid.
I'm using Ubuntu and Fedora daily. Ubuntu is the one causing trouble all the time, Fedora rarely. That's why companies choose the worse system, Ubuntu. Worse is certainly not better
I’ve had a little bit of this excitement when an update comes out with Zed. Updates are frequent, and while it’s totally usable it’s still immature enough as a full IDE that the improvements are often something that will directly improve how I use it. So that’s been nice. But this is the only example I’ve had where I’ve felt this in years and years
The removal of window chrome was a gigantic mistake and we're all paying for it every day. Having to tolerate the extra mental overhead caused by the removal of such affordances in UIs every single time I use a computer makes me wonder whether we're all actually dead and in hell... Like that old SMBC comic where a guy in heaven stubs his toe every hour, and realizes it's actually hell. That's what this is.
I get to say a lot of "i told you so" to my wife these days. She used to call me an old man for being a stick-in-the-mud and not updating my phone's apps. When I have them working the way I want: why would I want to update things and risk changing that?
These days she's swearing up a storm whenever an update breaks or removes things.
Tesla just released an infuriating update which adds an incomprehensible number of UI nags to start self driving, despite there being a hardware lever that already does so.
There's even a big button that says "Start Self Driving" in the valuable visual real estate where the speed limit once was.
I can relate too. I reached a point (as a software engineer), that shitti functioning software annoys me so much. Functions that are just annoying that no one really asked about, functions that are so bad designed that I really ask myself who the beep is really responsible and accountable to sign off this crap.
AI should help us really make this small but time consuming implementations better too, not just shipping more and more crappy stuff.
> AI is here, time to create something new and shiny.
The AI we have in 2026 cannot do that or it'd have already been done. I use AI daily: it saves some time. But it produces an infinite amount of insecure, unnecessary, sloppy-pasta.
And that sloppy-pasta doesn't make software any better.
The answer, of course, is that the taste-making apparatus inside the typical tech company is now entirely imposters (non-technical, non-power-users), who continue to LARP as visionaries.
The people who notice broken or degraded behavior (devs and power users) and conceive of good designs are not in charge of what goes into the product.
So you shouldn't expect it to get better, only to continuously change so that the imposters can point to a difference that they were responsible for, knowing that upper management also has no idea whether that difference was actually an improvement.
The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
All of this was obvious decades ago, but now everyone wants to have a do-nothing job at a tech company, and to help their friends get one too.
The result is imposters everywhere; "imposter syndrome" was brought into the vernacular to normalize a lack of expertise.
"No one knows what they are doing, it's okay to not know how to do your job". That's what your (product) manager tells themself in the mirror each morning. Turns out: skill predicts quality, and an org ships quality proportional to the skill of the decision makers.
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users.
It’s not surprising that this sentiment is popular on a message board filled with engineers but I’m not so convinced by it. Nor do I think the current state of tech companies is acceptable, to be clear. But there needs to be some level of management outside of the engineers themselves. A lot of talented lead engineers I know are terrible people managers, or ineffective project managers. And that’s fine, because there are other people to do those tasks.
If your utopia is a bunch of engineers given freedom to do whatever they want, however they want to do it… I suspect the dream and the reality will not match up. In the scenario you’ve outlined I strongly suspect you’ll have infrastructure on its third rewrite, full of power user features and tweaks… and near-zero adoption from newcomers. Product fit is a thing that needs to be managed!
The OP is right most production code is full of errors, and suffers from code bloat and feature creep that impacts UX.
Is this really the best we can do? It strikes me as unacceptable to ship errors to production, yet it's commonplace.
Code quality matters, and being in touch with users/dogfooding matters. But that can only address the underlying problem by eliminating the low-talent developers who win by numbers.
How to solve the relevant problems is not something hiring and recruiting teams can assess. So, hiring process uses proxy metrics like having a HS and CS degree, years of experience, brand name companies, list of tools, "best practices", trends, etc.
Teams of self-congratulating code monkeys using all the latest 'industry standard' libraries and tools, don't accept responsibility for their errant code. Instead, they blame (the user, his browser, the library), make excuses, minimize "all software has bugs". They can't fix the bugs they've created for themselves, but it can't be their fault, after all, they're doing what everyone else is doing.
The answer is to send them packing. Hire by talent, not by proxy of a hiring team (who don't know how to think/use the aforementioned proxy metrics to gauge talent).
Intelligence cannot be taught, but it can and is discriminated against. That is another problem with these faux 'team-player' follower types. Anyone on the team pointing out the code is a disaster and an attitude to fix it is not going to last. He'll be fed pushback of the same crap excuses for why things must be done the way they're done.
When a talented developer does deep dive analysis to identify root causes, most on the team don't get it. The scary bugbear of coherence is too hard and threat to the team's shared narrative.
Again, the only way to solve that problem is to send them packing.
Yeah I hate that you’re right. Blender is an example of OSS software which is actually a joy to use and they have product designers. But I think there is a massive gap between good and bad product people. No product person would be better than bad ones, but for truly great software you probably want some good ones.
That being said lots of good OSS exists purely built by engineers so I think it’s really the case that good product people help a lot and bad ones hurt a ton.
I'm not totally convinced by OP's whole point, but I want to point out an issue with this argument of yours:
> lot of talented lead engineers I know are terrible people managers, or ineffective project managers.
A lot of people who can read are also terrible manager, but that's not an argument to put illiterate people in charge. Not every engineer has what it takes to be a good manager, and that's fine since you don't need this many manager anyway, but I'd argue that for a management jobs, understanding the craft of the people you're managing is as important as literacy, because the most important role of a manager is make decisions and you cannot make good decisions about things you don't understand.
That being said, engineering is only half the takes in software, the other half being Design and you cannot have a manager that is merely an engineer without design skills (otherwise your product is going to have the user-friendliness of Arch Linux).
> A lot of talented lead engineers I know are terrible people managers, or ineffective project managers
Ok but non-technical “managers” are way worse.
Has more to do with role focus and hours in the day. I would rather have a dev dedicated to PM than a “manager” larping as one cringily trying to keep up with us totally ineffective to lead a technical team.
Tech companies are anything but technical anymore since they got rid of all the talent.
The real.answer is that people stopped making things with care and genuine interest.
Everything should be delivered in the fastest way possible, in the shortest time possible, on the tightest budget possible.
This is a recipe for creating a mess, in which AI has now pushed the limits and we are seeing how failure is now per-default embedded and shipped to users, who are now beta-testing products continuously.
> Everything should be delivered in the fastest way possible, in the shortest time possible, on the tightest budget possible.
because companies that did this is rewarded with more users and more revenue (than a hypothetical competitor that didnt). Darwinian natural selection is about survival of the fittest, not survival of the "best looking" or "best performing". And the determination of fitness is by the actions of consumers, not what they state verbally.
We have been beta-testing the outcome of incompetent software production processes long before AI. But LLMs do accelerate the slop production. And if what you're shipping is going to be a bloated buggy mess anyway, then LLMs really do make you more "productive".
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
I feel like there's this one random comment on HN that should be adopted on its merits alone, but everyone will ignore for no good reason. This will never happen because entrenchment and bureaucracy will strangle every product organization and every organizational reboot attempt.
It's probably the right solution, but the resistance built into organizations assembled by bad decision makers cannot be overcome. Maybe the best you can do is try to find a legal way to spin-off a competitor with a truly fresh start.
I've worked with good product people. They come up with good ideas, have great suggestions, leave latitude for implementation issues to guide some of the design, and work well in the constraints. It is kinda amazing because you might be given a good idea/ticket, and it just flows smoothly and naturally (building on top of existing good product design of course)
Having them around is like 100000x better than having just random engineers be doing product design. And "oh just listen to your power users"... come on folks, surely we know about designing our software into a corner right?
I'm saying all this but am very sympathetic to the pain brought by bad product people (or just like ... mid product people. It's a hard space)
Wasn't this the whole point of agile and self organizing teams?
Then managers with 10 different PM* acronyms in their email signature got hired in, with no engineering experience, to lead product and software teams?
> I feel like there's this one random comment on HN that should be adopted on its merits alone, but everyone will ignore for no good reason.
Because it's populist slop, just like how every long enough discussion about government incompetence will lead to someone proposing all political leaders should be paid minimum wage to fix the problem.
Don't forget, the entire Web 2.0 winner ecosystem of companies that make up our modern Internet was founded by Engineer GodKings who leveraged their product prowess to gain a distribution advantage: Facebook, Dropbox, Slack, Stripe, Github, Whatsapp, Instagram etc. They were also the ones who transformed their companies to what they are today, nobody forced them to do this. Contrary to populist opinion, it's not because they were stupid or brainwashed, it's because the proposed scheme has known, predictable downsides that a leader actually has to reckon with while internet commenters only have to worry about preserving their egos.
Don't blame it all on entrenchment and bureaucracy. Rather show me the engineers who want to become management.
I have thought of the same solution myself before and came to the conclusion that I, for one, wouldn't want to be leading anything even if I had some ideas on why the product sucked.
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
This will just lead to massive selection bias. If all you care about are power users go for it. Otherwise you end up with a complicated system that is going to put off new users.
You can even have different power users who likes different parts of the software. Now it's totally possible to end up with extensive subsystems that don't really gel with each other
My anecdote for this is the the recentish redesign of Musescore. Tantacrul, the ux designer/product manager for Musescore has an hour long video on how he redesigned the interface and UX of the software. He is also a musician so you can call him a power users if you want but that was not the users he had in mind when redesigning the UX
> This will just lead to massive selection bias. If all you care about are power users go for it.
Simple things should work. The types of errors described in the article about feature creep and errors with simple user flows are all too common.
Just surf the web with the developer console open. It's not just "an error was thrown", but the kinds of errors and how they manifest. A rejected promise after localStorage access was blocked, after user clicked a submit button on a form that went through twenty seven delegation calls of Angular js using backspace-escaped method names to handle invalid HTML, and now the form can't submit because they did it using the latest tools, as per their resume. Crap like that. The level of quality of production web code is the cause of the poor user experience and outright failures. It is unacceptable and its cause is directly traceable to the design decisions and skills employed in its production.
There are good PMs out there watching in horror as their peers make changes and features that are obviously doomed (to anybody with a functional brain). I also write as much code as the median engineer on my team (skews junior). Please don't write off the entire profession based on many (most?) being awful - if you work with a good PM some day I promise you will find there is an important point to the job.
Part of me wants to agree with you; I've seen a lot of lousy PMs in my career. But when placed in the driver's seat with the same mandate to bring in more customers and revenue (or else), I've also seen developers drive products straight into the ground just as hard.
It's a nice fantasy about nerds being able to do better at everyone else's but that's all it is, a fantasy.
Yup. This is basically what Steve Jobs argued throughout the 1980s and 1990s, and championed as a philosophy. Adopting it, took Apple from being a struggling tech company on the verge of bankruptcy, to the dominant personal consumer technology maker it is today.
A reason is different performance metrics. One bonus depends on "make number go up". The other realizes that making "number go up" degrades the experience for the product as a whole.
An example. I worked for many years at a major satellite TV company. The customer support department were spending a lot of time and money handling customer calls due to signal loss because of inclement weather, and they wanted something done about it.
Department X pushed for removing the 1-800 support number from the on-screen-display, because of the "quick win". No visible phone number means some customers would just give up. Who cares that this would frustrate customers even more.
Department Y pushed for reworking the UX flows around helping the user troubleshoot the problem, point them to their DVR recordings or alternative shows on broadband if connected, and automatically rebook the interrupted shows.
Traditional engineers are "better" at making things work in a functional sense (eg: aircraft) whereas product people are optimised to make "better" selling products (eg: Labubus - functionally useless but Black Friday riot desirable)
Devs and power users create something like libreoffice or thunderbird. They are incredibly resistant to any change for any reason and hang on to what they already know rather than what’s best.
The reality is most people actually like the stuff Apple and such are putting out and like modern UX more. The only bad stuff is deliberate enshitification which is pushed by financial incentives rather than product people being incompetent.
Mostly agree and would add that product managers should be responsible for the commercial success of their products. That means spending more time deciding what market to be in, how to differentiate, how to price, how to drive adoption.
For the most part these are not strengths for devs and power users.
If software is solved then the power users can be in charge because there is no technical moat. Competition should thrive as imposter-ware flounders, but it doesn't seem to be the case.
I've actually had the opposite problem much more often: Managers who were promoted due to their skill as a developer who have no skill in management or leadership.
I see where you're coming from, but my experience says (TLDR): lack of dogfooding.
In my current job, I'm building a system which has replaced the "SaaS" we used before. Not only was it fairly expensive, and sluggish, it was also not good, and in some parts even bad. And that fits a pattern I've seen before: that SaaS product, a survey platform, was built by a company that builds software, but doesn't use it. Engineers nor management are involved in making actual surveys and processing the results at any scale. The result is a system that requires bizarre hacks to make the system do what you need it to do. OTOH, I work right next to the people that use my software, and some of which have a lot of experience. We're small, independent, there's not much management involved, and everyone is aligned, and we all talk to each other.
Not knowing what your customers actually need is one of the big faults of software engineering, and in large companies, architects, engineers, and management can be quite far removed from their customers' experience.
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
One of my absolute favourite features on KDE Plasma with Wayland is the global setting to control what can steal focus. It works wonderfully, and I always miss it when I have to use my work mac or windows computers.
Yeah the obvious answer to software getting worse is to switch to FOSS. Use Linux/KDE. It's been great for a long time and only ever gets better. It's as if Windows 7 just continued to slowly iterate and add useful polish.
NixOS has a longstanding issue where library loading (and therefore program start, particularly GUI programs that load a lot) is n^2, but programs still all start in ~1 second or less on my n100 minipc. I still found that to be annoying enough to look into why it seemed so slow (and learned about the loading issue). Can't imagine things taking so long that you actually switch to another task. The same minipc can easily handle my 4k 240hz HDR monitor as well, and the whole experience is completely smooth.
The computer also just obeys me. It does exactly what I tell it to, and nothing more.
> It's as if Windows 7 just continued to slowly iterate and add useful polish.
That's a pretty good description of it, I even have KDE laid out the same way I did on Windows 7 (or more accurately I guess on KDE going back even further since Linux has been my main OS since the 90's with Windows relegated to gaming).
To this day - Taskbar shows window titles, only shows window titles for windows on that screen, there is no grouping, there is no ordering except order opened etc.
I think autonomously in terms of which physical screen a window is on and when it was opened relative to others so I know exactly where to look/it'll be - the Mac style (and Linux/Windows style at least out the box) defaults of hiding all windows for an application behind it's icon in the dock never made sense to me, I have widescreens why do I want a doc that only takes up 40-50% of the horizontal space?.
> The computer also just obeys me. It does exactly what I tell it to, and nothing more.
Is the biggest benefit and point. You can toss whatever UI/workflow style you want on top of pretty much any distro. I absolutely cannot stand the loss of user agency on modern software/operating systems. I have to use both macOS and Windows at work and I hate them almost equally (I hate windows a little more than I hate macOS, but because of Microsoft's behavior, not because of the UI).
I feel like every piece of commercial software and OS now is like Blizzard "You think you do, but you don't"
I actually had to backpedal on my gaming PC from Kubuntu recently, I'm sad to say. The support for the RTX 5080 is just too rough. Every game install was chased by an hour of debugging with Claude to figure out which version of proton to use, which launch arguments to use, which between-system-and-gpu shim profile to use.
I grant: The process is much more enjoyable than doing similar things on Windows. Kubuntu treats you like an adult and will tell you what's going on, and being able to copy the sometimes esoteric nonsense in those logs into Claude and get actionable information while not remotely understanding the underlying tech is fan-bloody-tastic.
That said it was death by a thousand cuts. Some friends I hadn't heard from in awhile asked if I wanted to get on Warhammer Space Marine 2 and luckily, I had it installed! ... and was able to play after a mere 35 minutes listening to other people have fun on the call, while I was trying to figure out why the game would only launch to a black screen.
So yeah, I wussed out and went back to Windows. I'll probably try again in a few months, and hope the GPU support is better. But that's also explicitly riding on nvidia to do, and they're busy selling shovels to the AI gold-rushers.
> NixOS has a longstanding issue where library loading (and therefore program start, particularly GUI programs that load a lot) is n^2, but programs still all start in ~1 second or less on my n100 minipc. I still found that to be annoying enough to look into why it seemed so slow (and learned about the loading issue). Can't imagine things taking so long that you actually switch to another task. The same minipc can easily handle my 4k 240hz HDR monitor as well, and the whole experience is completely smooth.
The problem is that I can't still buy a laptop at Media Markt, or similar consumer store, with a Linux distro pre-installed, and if I could, it would be OEM Linux, just like they do with Android, WebOS, Netbooks, whatever.
Outside Internet places like HN, most consumers aren't going to Tuxedo, System 76, or building their own Linux PC.
Thus commercial OS platforms keep winning, and the owners are anyway the ones that sponsor most FOSS projects.
Miss Windows 7 by the way, it was when I gave up on The Linux Desktop.
I've spent 6 months in KDE after years on Windows, and KDE is crap in both UX and number of bugs. I love the idea of open source, but there's a long journey ahead to even match the state of Windows 2000.
I so want to agree. I have been a Linux user for almost 2 decades now and I still can’t close apps by throwing my mouse on the right top corner and clicking. It works on “KDE apps” and but not on Firefox so I am guessing GTK apps.
The idea that I need to have window decorations and the “GTK window decorations” configured separately is just …
Anyway, the point is it’s never going to be consumer friendly. Office systems managed by IT teams can switch to Linux no problem. People just complain about “weird work computer setup” and move on. But personal laptops aren’t going to be an attractive proposition.
It is interesting how Linux and FOSS in general is just providing a better UX these days. I have to think its because without profit motives, people do things for passion and maybe that leads people to write code the right way instead of the "it works" way.
I use KDE on Bazzite. It has a couple killer UI features over Windows. It can label bluetooth devices (so I can have blue dualsense controller, pink dualsense controller, white dualsense controller, etc.). No clue why this doesn't work in Windows lol. Also the super/win + arrow keys are more predictable, super pgdn is minimize and super pgup is maximize, so I never find myself accidentally minimizing windows when trying to move them to a corner. My wife was able to easily install and play the Sims with all her mods as well. I also use Bazzite specifically because it's atomic - so when I make the mistake of giving into temptation and updating shit once every month or so, if it's broken I can just revert it.
But I will say I've had a ton of failure to wake up from power saving issues (resolved by just disabling pretty much every power saving feature, which I was gonna eventually do anyway because I want to be able to remote into the machine), and VLC can cause the UI to lock up because of some XWayland nonsense that they're still trying to fix (I just use Haruna, KDE's default mpv-based player, and it's mostly fine). It's a little silly and was quite frustrating that Linux is still dealing with this shit. A more minor (but still irritating) issue is that each taskbar has its own set of pinned applications (instead of just being identical like in Win10/Win11), so if I change the order on one I need to manually go change it on the others.
Overall, I like it because it's good for development and creating other stuff, the filesystem is fast as fuck (way better than WSL) it's obviously less actively antagonistic than Windows 11, Photoshop has gotten worse so I've switched to Krita which works great in KDE, and I've not been surprised negatively by anything after dealing with the previous paragraph's issues, but a non-technical user might struggle to deal with maintaining it.
I think this is less a "macOS lacks the feature to prevent focus stealing" and more they never even imagined the scenario where it takes time for the app to open. Instead of even considering that a user may add inputs while waiting for launch, potentially signaling that they are no longer requesting focus from the program they clicked on, they simply designed for the optimistic case where there never IS time for the user to give these inputs before their intention of opening the program is completed. Not saying it's any less bad from a user's perspective, but I think there's a difference in mindset here.
In my experience (admittedly a bit dated now) Mac apps always take a few "bounces" to launch and be ready. There are a lot of nice things about MacOS but snappy application launches isn't one that stands out for me.
Having owned a good number of Macs and one hackintosh in the past, that would be very bizarre assumption to overlook. App icons bouncing while something loaded was never a rare thing.
IMO, nothing should ever steal my keyboard focus. As soon as I've typed a single character, whatever happened before, too late for you.
Seems like the programmers at LinkedIn never imagined that the network isn't reliable, and can't invalidate the session on actual logout; it only happens when whatever page is replacing the logout page finishes loading.
Is it could be a bug (IMO yes, a credential disposition / security bug), or it could be a "feature tax" to keep the tracking context hot for whatever page you logged out of LinkedIn to avoid being tracked...
It’s probably the lack of distinguishing between a window obtaining focus because the application just launched and the window of a running application requesting focus for some other reason.
Nevertheless, the OS could conceivably track whether there was any focus change since the process was launched or since it received the last key-press or mouse-click event, and only allow the focus change when there wasn’t (and otherwise use a non-focus-stealing notification mechanism).
A fantastic feature, but unfortunately currently broken (as in over- rather than under-zealous) for prevention levels other than 'Low': https://bugs.kde.org/show_bug.cgi?id=509990
This is the absolute perfect encapsulation of the Linux problem and the Linux appeal:
Yes, it has the magical setting to fix all of your problems and frustrations, and yes it’s a finicky broken bitch to actually get working for your use case.
The single most soul-crushing experience I have on today's tech is the whoopee cushion.
I type this on a touch device that randomly Cheevers the words. (It literally changed "changes" just now. Henceforth, my word for this shall be Cheevers.) it Cheevers the words. It offers suggested words that you can tap to complete the word you're typing, and milliseconds before your finger makes contact with the screen, the suggested word flips to Cheevers and your finger taps that.
Now with the new improved iOS Liquid Glass, and possibly with janky web app development kits, buttons can move as you try to click on them. UI animation was supposed to help the user. But helping the user is hard.
Pop ups. The web needs more pop ups. More "Are you enjoying this app?" in your face.
But on the desktop, I recall complaining to a Windows (the OS) developer about stealing focus... in 1995. At the time, classic macOS tended not to do this, but it happened quite often multitasking on Windows, and I couldn't offer any constructive feedback, no obvious solution.
The sheer unpredictability, at 100 millisecond time scale... a few hours of this and I'm literally shaking. Because it affects muscle response, a startle reaction. Keeps firing away at the limbic system.
If I wanted slot-machine online gambling levels of simulation, I'd go to a casino. I hate this stuff. I hate where "engagement" metrics and the quest for more clicks has brought us.
This doesn't happen on Windows. Slack loads in the background and the taskbar icon just pulses when it's ready. I have to switch to it manually from whichever app I'm working in as Slack loads.
These are the small but extremely user-centric quality of life features that I like about KDE. Most applications I use aren't KDE based (Firefox, VSCode, emacs, movie) but KWin, Dolphin, Plasma panels have unmatched ease whih grows on you.
I never understood the OSes/desktop environments that stole focus by default. So many secrets/credentials have been shared because of that. Just give me a blinking notification that the app/window is available in the notification/taskbar/appdock area ffs. Yes that is one more click/alt-tab but that is much better imho. At least ask for preference on first ever login.
That is definitely needed. On Mac it is really infuriating how stuff (auto update etc) just take focus/pop up crap. I am literally never interested in it and am confused why I cannot just say [x] Force apps to mind their own business. We have f’ing notifications for this; why does it need a dialog window?
Maybe it's a hazy memory, but from 2007-2011 my main computer was a MacBook Pro. I swear in that era, when an app wanted attention it would bounce in the dock endlessly.
That was annoying, but it let you finish doing what you were doing until you were ready to switch focus.
I've really enjoyed how this started happening on windows that some pop ups steal focus during full screen gaming; extra satisfying is that "game mode" is set to prevent that. It's like a little minigame to boost my aggression level.
My "favorite" aspect of the Slack web app, which might have been fixed, as I haven't seen it recently, is if you typed up -> r (I believe it's r) to open the emoji picker, typed a few characters (e.g. "eyes") and pressed enter. Well, if the emojis hadn't loaded by then (and apparently they're loaded fresh every time), they would pop in and often, the a different emoji would be picked than the one that was visibly highlighted when I pressed enter.
My Arch Linux KDE Desktop with the Haswell i7-4770S CPU (from 2013) actually feels snappier than MacOS on my MacBook Pro M4. Sure, the MacBook has far superior performance overall, but if you just want to move some windows or get a response from a right-click, it just feels slower.
I am doing my best to implement a rule with apps where the third time in a single session you bother me about something that has absolutely nothing to do with the workflow I opened to app for, I uninstall the app. I don't want to update my spreadsheet app, I want to work on this spreadsheet. I don't want to tour the new features from the last update, I want to work on this spreadsheet. I don't want to sign in in order to access an AI companion (which I also don't want), I want to work on this spreadsheet. I damn sure don't want to leave a review in the app store for you and at this point you don't want me to either. You want me to work on this spreadsheet.
Between that and this insane thing MacOS does where when I click an app in the dock any random app opens up (and, per above, begins barraging me with things designed to "direct" my attention) I'm ready to switch to something whose primary feature is not acting like the dev team spent the last ten years trying to arbitrarily bump the number of features up and ending up with a giant pile of buggy features that nobody asked for.
And for my final gripe, at least for the next 15 minutes, trying to teach a computer how to do what I mean instead of what I say was a mistake. I learned computers back in the day where there was no attempt at interpretation of intent and instead the machine did exactly what I told it to, and that's how I prefer it because it simplifies the problem space when the machine is misbehaving. I told it to do the wrong thing. That's the only possible answer. But now there seem to be so many layers attempting to interpret meaning from actions that the problem space expands to make room for the idea that I told it to do the right thing, but it guessed that I meant something different and then did that instead. As an example, just trying to highlight something in my Mac's terminal app so that I can copy/paste it. I click the terminal app on the dock, and focus switches to that terminal app but also docker desktop, which is on top of the terminal and doesn't go away when I click into the terminal. Instead I have to interact with docker desktop. So I minimize the app I never asked for, and actually have access to the terminal. I'm using the built-in touchpad and have to select an entire line, so I start from the right with one finger, click and drag. But another finger, or perhaps the heel of my hand, gets close to the touchpad and MacOS is SO EXCITED TO HELP that it decides to interpret that as a right click which results in my selection getting interrupted halfway to bring up the right click menu, whereupon I'm presented with the option to do several things with this approximately 40% of a CLI command including: search for it in webster's dictionary, convert it to spoken word, convert it to Chinese (my choice of traditional or simplified), or try to open it in finder despite it being a portion of a command and not a file.
All of this points to a Goodhart's Law situation where someone decided the size of the pile of features was the measure of the quality of a piece of software, rather than how elegantly it does the job the user bought it for. AI has also significantly increased the speed with which a feature that no one asked for and that doesn't work correctly can be delivered.
On Windows, UWP was supposed to solve this (by blocking apps from taking focus directly, but having the OS/shell create an app window immediately on launch and give focus to it) but most apps aren't UWP apps.
I think there is a law of the universe which says it must happen right after you've mentally decided to type enter but before your fingers have finished.
How would that global app ban help? You do want the application to steal focus when necessary. It's just in this case the user has made the decision to not wait for startup and switch to another app. Aggravating step - he was typing.
Is this workflow part of the Kwin settings? It's not interrupting typing part of the settings?
Any app should be ready to accept focus. It should never steal focus. When I start an app, and wait for it to launch, I am attempting to give it focus. I can withdraw that intent at any time by doing something else (e.g. switching apps) and the launching app should finish launching and wait in the background.
>You do want the application to steal focus when necessary
No I don't. We recently switched to Zoom at work. Meeting notifications steal my focus (Windows 11 device) and it's fucking terrible. Nothing should ever steal focus.
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
I still don't understand how a full focus stealability debounce is not the norm. If I am in the middle of writing, or interacting with one UI bit in any way, no other app should be able to steal focus, full stop. Add an annoying popup if you want, make angry computer noises, flash icons, I don't care. 99.9, if not 100% of the time, it's completely unrelated to what I'm doing and can absolutely wait. While some OSs have something along these lines, they also give the tools to bypass it (I'm looking at you, Cisco AnyConnect! Being connected after clicking on connect is not an emergency!)
Imagine you're working in a terminal and an app decides to steal STDIN. Why do we accept that for a GUI?
Yes! Few things piss me off more. It boggles the mind that this behavior is the norm, and it happens all the time! There are practically 0 situations in which I want something to automatically steal focus.
Curiously, macOS is capable of putting a recently opened app out of focus. It happens consistently on my laptop when I haven't rebooted it for a while. It may be a bug, but it could be a feature, especially when it's conditioned by the user clicking in another window before launch completion.
For me, macOS seems to put opened apps out of focus when I have started doing something else since launching them, or when they were launched from elsewhere than the active app (eg by a terminal that's not in the foreground).
For some reason I have to deal with the opposite problem and have to click twice on a new window to get keyboard focus. Many times I'll switch windows (eg. from Messages to the browser), start typing and accidentally end up sending someone a message instead- even though the messages tab is completely out of view.
You can't really debounce it easily due to how the OS event queue work across processes and windows. One fix could be to not bing the focus to newly open windows (like you could in X11) but that's not what users want.
You don't know that until you ask users. That would be a much more useful question than those boring "tour guide on first login" or "please activate cortana/copilot" or "do you want to sync to onedrive" stuff one gets notified on some major desktops.
My preference is focus follow mouse, no focus stealing on new window opening.
I agree that software becoming worse (in some sense) but I don't blame AI.
My experiences as a user haven't really changed. Streamers fail to cast to TVs. Browsers are devices which reliably and efficiently propagate red console text and 500s from companies to you. I still see bluescreens on public touchscreens.
Uncle Bob nailed one reason why the industry isn't getting better: the growth of programmers is exponential, such that half of all programmers have less than n years experience (5?).
I offer two additional reasons:
Firstly, you hone your skills doing individual algorithms on a single thread, where it's OK to get it wrong and change it as many times as you like.
When you get a job, you don't even realise you're in a distributed system and the getter/setter model you practiced on is woefully inadequate for interacting with partner systems, cqrs, event-sourcing, auditability, idempotency or whatever else is required.
In short, 10 years of practicing writing for-loops and data-structures will not translate into building a system that customers can access via their phone and multiple tabs of a browser, at the same time as a database schema is being updated.
Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
It seems like the languages have been increasingly targeting the beginner segment (C++ -> Java -> JS -> Python), while the tasks have been getting more complicated (b2b distributed systems, 24/7 uptime, millions of users, resistance to hackers, machine learning, etc.)
> 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
And then when the MVP is done, it magically becomes the shippable product. Then just when the team is getting to grips with how to improve the product, management does a reshuffle and moves teams around. "EXCITING NEWS GUYS, congratulation to Jimmy Whatevs for being promoted to SENIOR Director, he will now head-up the cross-functional-operations team which will be folded under the product-support division."
> And then when the MVP is done, it magically becomes the shippable product
There is a reason for this: no one cares about bugs. Cramming down features for sales to close the deals is all that matters.
Ran into a bug? Who cares, people will just refresh the page or restart their computers. Average consumers already treat their computers like appliances, they happily wait 15 minutes for a page to load and are willing to swim in an ocean of ads.
If we want quality software, it has to be tied to the bottom line somehow. So far, it doesn't seem to be the case.
> Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
100% agreed on ProductManager-ism/MVPitis is a cause of so much of this.
One can "do agile" a bit less literally & stupidly.
For a lot of software infra or even user facing apps, you really can plan out more than a sprint or two. This might be the MVP, but there is prior art in the space / competitors / devs with experience on the team. You probably should think about what the app should be capable of 3/6/12 months out.
When you follow a GPS for directions, you generally take a look at the overview first, make sure it's not driving into a lake or taking you to a similar address in another state. My car even shows me the next 3 steps on the path as I go, I like that.
Agile should not mean blindly "take 1 step and only then contemplate what step 2 to take once you complete that 1 step". And yet that is how MANY shops implement it in practice.
Uncle Bob already became part of the problem by some of the stuff he wrote in Clean Code (like using mutable instance fields instead of method parameters). Luckily he isn’t perceived as very relevant anymore.
> it seems that nontechnical POs have captured the software lifecycle
Yes, this dynamic has indeed been screwed up in many teams!
In my perspective, you can’t be a good product manager for a technical product without being somewhat technical yourself. You simply won’t understand your product well enough.
The only dynamic where that works is if the product manager acts more as a supporter and challenger to a team lead by an EM or technical lead, but then product manager is probably not the right title.
I generally agree that software has been getting worse, and AI isn't the cause, necessarily, but certainly is accelerating the decay.
Maybe a corollary to the growth of programmers is that pride/artisanship in the work decreases. Bugs happen more when the engineers dgaf, or aren't as dedicated to the craft. Software was pretty solid when I was a teenager (I'm thinking Windows, MSN Messenger, Flash, CDs, general web usage), complaints about tech/bugs weren't as common (or when they did happen, they were major, like BSOD). But I could just be romanticizing the past... idk.
In any case, say we were master woodworkers and we took pride in handcrafting great beds, but now the machines can make beds 150% faster at a 70% defect rate. There's 3 new problems: 1 is obviously that 30% of beds are shit, 2 is that woodworking as an industry is on the decline (expertise vacuum), and 3 is that the master woodworkers are disillusioned, their motivation and utility is decreased.
I believe that in time, the beds will get better, sure (the machines will improve). But in the meantime, huge numbers of people get shit sleep.
As an old greybeard now, you're romanticizing the past.
Past software was just as horrible, we just tended to use it for less things and incorporated its failures into our lives transparently. We'd reboot Windows every day so problems wouldnt stack up. We'd use less of the features, and use far less multimedia components like video and sound in the software. Flash was always a giant insecure piece of crap, it may have been better than other similar software but its issues were legion.
Artisanship takes a back seat to the business peoples demands, and the business oriented people have been melding with software people for decades. Still, classes of bugs we used to have all the time are not very common anymore.
But watching large software projects fail over and over again, even when craftsmanship is demanded, often times the only way that good stuff gets in is the unpaid heroics of developers passionate about the project, who want it to be good. There’s so… little space for that nowadays, because there is so little stability in people’s lives.
You can build software fast, but the more time you take the more you can be confident about it being correct.
This was true already before AI code generation, but AI code generation means the definition of “fast” has shifted like crazy. An experienced engineer can now build in an hour what would have taken them a week.
But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
Unfortunately for people who like their software to be correct (stable, performant, bug free, etc), it seems like way too many software developers right now are happy to take the gains of the former but ignore the tradeoffs of the latter.
(at the same time software quality for mainstream consumer goods like the kind of thing OP complains about in their post has been down the drain for a long time now, and it seems likely many of the examples they give are pre-AI)
> An experienced engineer can now build in an hour what would have taken them a week.
From what I've seen, I don't think so if we're talking about like-for-like quality. Maybe as an absolute best case scenario, but more typically it's more like you can build in an hour with AI whereas without AI it might take you 2 or 3.
Even thats highly task dependant, and doesn't scale as you'd expect (eg 1 hour == 2 hours, but 1 month =/= 2 months), and at times even using AI can slow things down, at its worst case more severely than at it'd speed you up at it's best.
Now if you're willing to throw like-for-like out the window, that 1h==1w could be achieved easily, maybe even more. But then again, I feel like I could do a lot more in an hour if I didn't care about quality either, not as fast as AI but much faster than I am currently.
I think I can say I got some 10x speedup with the recent, more powerful models (from Opus 4.5 on). But then again, I am just building CRUD websites, although sometimes there are some challenging tasks like some fancy graphs/plots to show, and some API integration in the backend, etc... but these are the use cases that models are really good at. I have 0 worries about scaling: my apps are internal, so you can think of 10-15 concurrent users at most, usually 5 or less, and 100 or so users in total, which eliminates the whole class of complicated scaling problems. 99% of the devs are probably on the same boat: our day-to-day problems are not complicated, dont need any deep algorithm or data structures knowledge, and models speed up this type of work a lot. Of course, they get very limited on complicated problems
> From what I've seen, I don't think so if we're talking about like-for-like quality. Maybe as an absolute best case scenario, but more typically it's more like you can build in an hour with AI whereas without AI it might take you 2 or 3.
The real problem is that the current paradigm in software design is to aim for the bottom of the barrel or a minimum working thing that can make some money and then move onto the next thing. I think in a way AI is a direct outgrowth of that mentality, because so little emphasis is placed on the final 5% of polish that brings software to the level of amazing.
It's much more evident in photography, which is what I started doing after I quit software. You can see that people are editing photos faster and better with AI, at least at first glance. But the end result is almost always sloppy compared to someone who takes time to think about their edit. I think that basically characterizes AI: yes, it makes things faster (or so I'm told, I've never used an LLM), but it also SHIFTS the emphasis onto rapid prototyping of superficial things.
Can those things be polished? Maybe. But it doesn't change the fact that less and less polishing will be done and people will focus more on creating new, superificial things in the long-term and we'll lose a lot of potentially great, hand-crafted things. Not to mention that AI adoption will likely accelerate even more levels of frameworks, which in turn means more hardware upgrades.
Really depends on the engineer, domain and circumstances. I find the best multiplier from AI when working with tech I’m familiar with, in a specialty I’m less familiar with, on a brand new project. I have the vocabulary to describe what I want and how to do it but the details I’d need to spend hours learning are handled for me.
There are absolutely projects I’d done in a week a few years ago that could be done in 3 hours now. But if you need to work with that code for the foreseeable future you’ll need to actually read the generated code.
> You can build software fast, but the more time you take the more you can be confident about it being correct.
> ...
> But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
You're partially correct - what gives confidence is duration in the field. No matter how long you take to build something, seeing it work in the field for 3 months gives me more confidence.
And break ux for users often and piss them. There are short reversibile decision that can be taken fast, important decision requires a lot of thinking before changing to often and alienating your users
People get promoted, get bonuses based on some shiny new tool they developed. Every year, they create something 'new', claim lots of features. Their managers/directors/VPs also encourage this because they need some 'winning' and 'automation' slides to brag about. Nothing gets solved. In fact, things get worse. The new tool and old tool and oldest tool all coexist with 20 other tools developed for the exact same thing in a different org. Each org (SVP reporting to CEO) is MASSIVE and everybody wants headcount and success stories. All these things will be happening at the same time. Those who are capable of making the biggest mess get the biggest pay and bonus, they get promoted and they move nearly year 1 - 2 years, within the same company or to another. Repeat. The ICs (individual contributors) who have values and explain why this is a bad idea are usually moved to Support or Ops roles or migration projects from old to new.
I've seen perfectly working systems continuously being replaced with worse and worse tools. Most of the new tools require a lot of people from several departments, just a guy who understands business and develops a perfectly working PHP/CRUD is a no-no. It has to be replaced with a complex monster with react, apis, mongo crap. And on kubernetes. Hybrid cloud.
Coding has been solved, but for who? Only for those cowboys who create POCs and get big bonuses. The 'product' they make is largely irrelevant. Sure, they can make it faster and claim to be masters of AI. Again, bigly bonuses, because now the incentives are driven by mandates from C-suite/VPs who are desperate to claim successfully using AI. There is very very little that can be realistically solved with AI. People have tried and the first thing they do is replace perfectly working internal search tools with AI or AI chatbots. Think about something like your people portal, for a large company, this would be thousands of document. The AI driven search portals are a million times worse than the earlier full-text-search engines that are usually pretty accurate. After that, they will be lots of dashboards generated for executives. Its as if execs have any clue about the business, they know nothing about the business and now they get thousands of dashboards tracking millions of meaningless metrics.
AI is an enshittification accelerator. And the enshittifiers (individually as people and collectively as companies run by scumbags) are richly rewarded for this 'success'.
As a non-technical person compared to the rest of HN, I think this has always been the problem of software made for non-technical audiences. The design was driven by programmers’ heuristics and trends in technology stack (e.g. if a company can hire a lot of JS devs bc JS is trending, they will choose JS even regardless of whether JS is the best choice for the problem).
There was a brief stint of UX, ergonomics and HMI getting traction in enterprise, and, imo, the biggest technological achievements in consumer software has been in the realm of UX in twenty first century. But it lost its importance, I suppose, as you don’t need to make good software to make money off consumers.
Whatever capabilities AI gives to programmers in terms of speed of development, etc, doesn’t change the fundamental behavior —- commercial software is not developed for humans. It is developed for investors, markets, around operational needs, based on CEOs whims, developers’ personal itches, relying on approximation of human experience that gets regurgitated through layers of commercial processes of product managers, UX researchers (who, if present at all, often don’t get invited to the conversation until there are buttons to move in a GUI of an already existing product). Where human experience is considered, it’s from the perspective of our natural weaknesses with the goal to exploit them to maximize profits. Hence why 21st century tech gave us all the dark patterns, feeds, social media, LLM chatbots, etc.
Even when I talk to individual engineers who are committed to creating something good, wholesome, something that they can be proud of -— many think and reason about the problem in a way that sounds like they are trying to engineer human experience the same way one would engineer instructions for machines.
It will never get better, IMO. AI only exemplifies what already exists.
I think the UX and stability related quality will drop at such a bottom low, that some crazy companies will revive the arcane practice of UX and even study it with users.
I am not super optimistic that it happens fast, but we will end up in a situation that everything becomes tedious, annoying and broken. Companies who will do it right will inspire the whole ecosystem. It will be satirical to see the full circle happening, but it's inevitable if we want to keep going with digitalization, even if it means to bring back more hardware buttons.
I am adjacent to UX as a field, and, IMO, it’s in deep crisis itself. I don’t know when or how “ergonomics” in tech became “how to sit in front of a computer” and “design” became “creating visual assets” but even people who work in the field often reduce their jobs to simplified and corporate-optimized simulacras. I am less confident about what’s happening in academia but based on my casual browsing, it’s not better.
You need good experts to do proper research, and those haven’t been able to learn, practice, or improve their craft in any serious manner for a while.
people have been complaining about software going downhill ever since hand crafted assembler was replaced with C and a compiler. it's the classic "old man yells at clouds".
It's all too easy to dismiss valid concerns as it's just the boomers/somethings complaining about "back in my day" and everyone getting on their lawn.
Software definitely improved for many decades, then at some point started going downhill. Where that happened is up for debate. But UI/Software/Quality is NOT one of those "oh it's just the new generation complaining about the old days" or old people "reminiscing".
Software quality is tied to the market incentives and always has been. AI isn’t going to make someone care about writing robust software and that is why we don’t see better software all of a sudden. The market doesn’t rewards apps that don’t break on every update, it doesn’t reward cobbling together multiple independent solutions, as opposed to using Microsoft as a one stop shop. If people could have gotten away with this in the early days of computing they would have, but computers were too low powered, and the knowledge too scarce.
There is a saying
Any idiot can build a bridge that stands, but it takes an engineer to build a bridge that barely stands
We found the limits of what it takes to make software stand, and what software paper cuts people are willing to deal with
"Software quality is tied to the market incentives and always has been."
Yes -- but. The market is irrational especially in a time of mania or panic. The AI phase we are in has mania, bubble aspects. There is no rational calculation about what is happening to software quality and is that good for customers or the industry (or individual businesses). We are too far into FOMO. It won't stop until it STOPS. Uh oh.
A friend of mine works in a niche software field at a small company. It was recently acquired and the whole technical team was laid off because the new director of engineering determined that they could replace the whole team with AI. All of the people who wrote the product were dumped as well as the whole cohort they had trained. Everyone.
Given doing better costs money, and people don't want to pay for better, leaving that place is hard. We've seen the same play out with physical goods - the cheapness of just-good-enough-but-right-now-cheaply outcompetes quality, which costs and takes time.
The problem is that the cost curve for completeness/correctness goes asymptotic at 90-99% so the cost up building complete/correct software is never worth it from a revenue perspective, and only happens if there is significant liability risk from defects.
So what's our (literal or metaphorical) breaking point here? How much more does things need to break before people just say "enough" and stop consuming into the declining quality?
I feel like the only real answer is "we just don't know". But in an attempt to actually answer this, I think the breaking point are different for different groups of people.
If you are struggling to pay the bills, you probably could care less about software's 'decline', you're just trying to survive. Maybe if something catastrophic happened it would be enough to put you at that limit, but software could stand to get much worse before then.
If you are forced to interact with technology a lot everyday, then what might be a paper cut for someone every once in a while, could be literally hundreds a day for you. In that case you are probably very near or at that threshold already.
As a society, I don't think we would see cracks until we start to see multiple community scale disasters related to poor software, or small disasters in highly visible areas like healthcare, planes, etc.
Reddit on iOS safari has been getting incrementally, nearly unusable worse. It had some sharp edges before but it seems they are moving faster now with the same or greater defect rate and shit is getting bad:
- URLs commonly auto-link to the things behind them, even including spaces and words.
- Pinch to zoom on the homepage causes the page to reload. Forcing you to lose your place/content.
- I sometimes cannot click to play videos on the feed. I can click through the comments and then click play on the player.
- Comments pasted from perfectly valid markdown render as whitespace deleted garbage
- Clicking "reply" then tapping in the box makes it disappear. I literally cannot see what I'm typing. I have to scroll to the bottom of the page to find it.
- After typing into the comment box the "comment" button to submit it is not visible
- Being a mod: The dropdown for selecting a removal rule will not let me scroll past what shows on the initial dropdown.
- Rare but critical interfaces like banning a user (or managing an existing ban). Essentially cannot be used on mobile.
- When typing responses to people as a mod, depending on the box sometimes I "lose" the comment button.
With Reddit I think it's on purpose. They want to drive users to the mobile app. Maybe they aren't introducing bugs on purpose but not addressing them isn't a accident.
X/Twitter is getting progressively worse for users not logged in. At this point you need to click away the cookie prompt and a prompt begging you to download the app. When that is done you can read the linked tweeet, but you can not play any videos embedded or click on any pictures or navigate up or down in the thread. In a couiple of months I guess they will only display the first 160 characters and nag you to login if you click on 'read more.
Right now, the majority of companies I interact with seems to look at their now (let's assume) increased capabilities, and turns up the speed. But there's other knobs to turn up instead. Robustness, quality, user experience.
Optimistically, I think we might just enter a new phase at some point, where businesses make very conscious decisions about what to invest in to differentiate. Like, everyone has support bots now. Where do we invest, absolutely stunning human support? Or is support not that key and we should invest into being the most reliable? The most enjoyable to use?
But that defeats the whole point of AI, as far as business is concerned. You could describe most programming languages as working the same way and having the same limitation. If this is true, then AI will simply mean you'll have very highly paid AI experts (who know how to do X with AI) that you absolutely need to hire or your competition will run at 10x your speed.
Can confirm. I just had a nightmare experience with a company where the customer service sent very ChatGPT-like replies and seemed very unreasonable and AI like. I had to threaten legal action to get my money back.
Role Collapse might work in this type of situation: prompt your own ChatGPT to decide a refund with a very permissive refund policy, copy its thinking, paste into the next support message after your prompt, and their ChatGPT may believe it's its own thinking.
The Role Collapse attack is that LLMs turn out to ignore role tags (input, output, thinking) and identify role using writing style alone.
> Where do we invest, absolutely stunning human support?
That's a complete non-starter unless you're serving some extreme luxury premium market with absurd margins, and/or your customer interactions already require a lot of human involvement. So 99.9% of digital products are right out.
Good human support is absurdly expensive and will easily make your product 10 times more expensive than your competitor's. But almost no customer is willing to pay 10 times more for good support.
I disagree. I’m biased but the customer eng/support team we created at stainless was really good and that was a key differentiator during sales calls and post-sales. It’s expensive if you see it as an afterthought and just an expense you would prefer to avoid, but we approached it as an enabler role, a multiplier of sort: ensure customers feel they engage with peers, provide guidance to the eng teams, enable salespeople to engage meaningfully with technical teams, etc. For like a year it was basically just me and an awesome colleague handling the whole thing full time. We took the very explicit decision to have it as a very technical role and designed a culture that sees it as essential to the business (because it was), and that worked really well IMHO.
If you create a startup you really want to focus on a small audience that you understand and know really well, instead of chasing everyone. And for that a support team is one of the most important asset you have
the key differentiator is whether your business is aiming to provide a quality service, or is desperate to eek out as much profit as possible.
my example: A&A — uk internet service provider.
costs like twice as much as a normal service per month. but if i have a super technical query im on the phone with a fully fledged engineer in about 2 minutes flat. the kind of engineer that can discuss complex dns issues. i’ve had one help me debug a dns issue from a work site. it turned out quite quickly it was nothing to do with them but he hung around on the phone for 10 minutes anyway.
the first support person i ever spoke to was michael from wales. if i had to call up he was the first voice i would hear for years. he recently moved on and i was sad. we’d have a decent chat. big up michael from wales.
so, as it applies to at least one existing business — you are dead wrong. it might be twice as expensive as the people trying to maximise their profit margins, but it’s definitely not 10x more.
Apple has pretty stellar support in my experience, and while I don't buy Apple stuff for other reasons, this is a strong attractor. For B2B products/services, it can be a huge differeniator as well, in my experience. But it was really just an example, it might not be the call most companies make. Maybe most will still just invest in being faster or cutting costs. I just hope that's not how it's gonna be.
Counterpoint: Take a look at consumer cellular. I would say it’s drastically cheaper than verizon, at&t, or t-mobile, but the customer support is better than all 3.
I agree with the author. I think everybody has strong or at least mixed feeling agent agentic coding and to me, the argument is always focused on the product itself.
I come from sciences, where the problem of AI is more linked to AI-generated papers rather than coding. Again, the real underlying problem is the pressure to publish at all cost and the ranking grant system which rewards number of publication rather than quality.
I'm sure you could say the same of AI-generated images, sound or video used in advetising, or any field where AI generation offers a shortcut. The problem is always that you need to produce as much results as fast as possible and quality is not the objective. The problem is always the KPI.
> Software may have been better back in the day, but that was mainly because it was much simpler. ... The bar for “user experience” has kept rising, but everything has become increasingly fragile.
It was simpler, better, more stable, _and_ had better UX.
Complexity does not equal quality. In fact, it usually points to poor design. Programs used to be seen as utilities, which enabled the same kind of mentality you have to any specialised machinery: "Here's a thing that can make your life easier. Learn how to use it". Now programs try to be all-singing-all-dancing-all-the-time-changing.
> It was simpler, better, more stable, _and_ had better UX.
It had less features too.
Now, I do agree doing more doesn't mean that something is necessarily better... but I think the UX difficulty increases exponentially as more features are added.
Absolutely, and in my opinion it's a mistake to keep adding features. My word processor in the 90s did one thing, and it was fine. In fact, there's a niche crowd trying to re-create that experience right now (distraction-free "writerdecks"). All software used to be like that, and I for one was a lot happier with the situation.
We are not using LLMs to solve the issues. We are using LLMs for speed. Like we were using VC funded speedruns for "speed". Quality was never even in the picture. We just added LLMs to the current setup for speed. Neither the structures, architectures or decision makings changed. We just added another thing.
I keep thinking about another thing as well. Software development might be the only place were stability is punished. If your software works swellingly well, there is less people needed. You'll lose your job when the software is stable. So you either need a new project or the software needs to be crappy enough. And the companies don't give a damn about you.
Keep in mind we did have WhatsApp created with just 32 engineers until facebook bought it. Lichess.org has 2 people working on it serving to the number of people it does (millions?). It's the way we are making it. "Move fast and break things"is the shittiest way to make software.
All of the above works when the desired outcome is money. Not when it is quality of the product.
AI might have made things worse in the last few months but there have been a lot of bad trends on the desktop in the last decade, both software and hardware.
It is little appreciated how USB has regressed. If you have a full-size top-of-the-line desktop machine with plenty of I/O channels you have a huge number of USB 3 and USB C plugs and will have mostly a "just works" experience -- like you can plug in an external hard drive and not regret it. Try a laptop or a pint size machine (say a Mac Mini or a Dell Optiplex 1.5 l) and you'll discover there is no reliable USB 3 hub on the market Maybe you can plug in your keyboard and mouse, maybe, but plug in a USB DAC and a memory card reader and an external drive... "BONG!" "BONG!" "BONG!" Windows starts screaming that devices are dropping out and reattaching and God forbid there is a filesystem you care about on one of them. (MacOS is too smart for that shit, it just assumes the hub is crap and won't reconnect until you reboot)
Plug a cooler master keyboard into you dev workstation and you'll find it overloads the interrupt handling system and causes everything to be janky.
Probably the worst thing about Electron is that the #1 applications use it, instead of making a web application, is that they can't stand that you might be able to find the application and start it the way you start a usual application (or web page) or be able to find the window when you are using it or be able to close the application or move the application window like a normal application window or resize the application like a normal application window or that you might be able to see anything in the tray -- so applications like Slack automatically become crapplications by virtue of inhabiting your tray. It makes everything worse. It reminds me of the later 90's when every crapplet for your printer had to have a completely custom widget set and window chrome.
USB 3.0 powered hubs that give you more USB 3.0 supporting USB-A ports are pretty easy to find these days.
USB-C ones (that actually give you more than 1 additional USB-C port) are still more challenging, but they do at least exist now (after having been virtually non-existent for years). Caldigit, Plugable, Sabrent, and probably others all have models that will go 1 device port to 3-6 USB-C ports now, and are powered with decent power per-port limits.
I do agree the landscape is far more confusing than it was a decade ago.
Those hubs exist, but my experience is that you can't plug an arbitrary number of devices into them and expect it to work and it's not about power but about how resources in the computer are allocated to ports.
I'd say "coding" has been solved, but that was never the bottleneck.
Coding is cheap. It has been for a long time. Ten years ago my company was outsorcing all its coding to the cheapest people they could find in India. But most of these people can't solve problems. They can't even identify problems, much less design solutions.
Code is a liability. You want as little as you can to solve the problems you actually have. That takes an engineer. Maybe AI will get there someday, but it certainly isn't today.
Engineers can certainly use AI to generate code when they need it... but in my experience I don't need much code to do my job, so AI coding doesn't help me much. My personal experience is that by the time I've reviewed the output and corrected the mistakes, I may as well have written it myself.
Coding has been solved in the same way that writing has been solved. Putting the sentences together is now easier, but having something interesting to say? That’s a lot harder. With the barrier to entry lower there is a lot of things that look good at the surface, but when you dig deeper, aren’t quite right. The nouns are in the right place and it has all the things school taught you a paragraph should have, but it’s just not an interesting story. That’s where all this software stuff is right now. It removed a barrier, but just like visual programming doesn’t solve it, AI can’t solve it either. It lowers the barrier but doesn’t solve the essence (is that a silver bullet reference? I’m not sure). AI can extrapolate and interpolate what’s already been done in fascinating ways but I need to see something new to really believe. Asking it to rewrite something it trained on (like SQLite or a browser) into a language that it was also trained on (rust or go) isn’t all that interesting from a software advancement perspective. I want to see imagination and so far I haven’t. But I have my required ai ticket like everyone else and maybe one day I’ll look out the window and be satisfied.
This 100%. Same goes with music: because of yt/tiktok, today it's easier to learn to play an instrument. Or even faster to use music software or an AI tool, but it's still almost as impossible like ever to make a great song.
While there is increased complexity on top of all the software thats being built today, I reckon the focus on speed (and shipping to prod) over quality has also led to the increasing number of bugs. The mindset shift from shipping quality products (not just software) to shipping something that is good enough has been the mantra of management in recent years. When business schools and tech leaders prioritize the idea that we need to be more agile and every sprint needs to be a production release, these are the results we get.
> I reckon the focus on speed (and shipping to prod) over quality has also led to the increasing number of bugs. The mindset shift from shipping quality products (not just software) to shipping something that is good enough has been the mantra of management in recent years.
I wonder how much of that is just what management always wanted. Peopleware (https://en.wikipedia.org/wiki/Peopleware:_Productive_Project...), a VERY GOOD book about software development written in the 80s, talks about managers wanting to sacrifice quality an how corrosive that is. It's just that in the past technology forced them to pursue quality: Software shipped on disk needed to be bug-free, because it made bug-fixes almost impossible. Software written by a human needed a human that understands it, who might have some pride in his work.
But now, with the internet and LLMs, we get to live in the slop-world the management has always dreamed of. More tickets, closing faster! Less headcount, less talk! Artificial workers that don't talk back! Who cares about all the rest?
Commercial software has been getting worse for at least a decade now, and the reasons are multifaceted and difficult to solve. They include the switch to subscription pricing, misaligned incentives at companies that make most revenue from "services" or, even worse, ads, the constant need to reinvent solutions to problems that were solved twenty years ago in order to show "progress", companies that build elaborate management systems to attempt to ensure that employees are replaceable, high turnover and a lack of institutional knowledge, and so on.
The ability to generate a lot of code will not solve any of these issues.
Commercial services have always been a thinly-veiled bureaucracy long before we even had computers. The move to the web just made them more powerful.
From that perspective, LLMs are a weapon meant to disrupt their power and shake out the businesses that are too weak to resist or too dumb to see the threat. It's not about "solving" code, but weakening the competition enough that they sell out or go away. The code is still as valuable as any other proprietary information, operations, plans, etc.
In fact, I am pretty sure most of the examples he lists predate AI. Mac OS apps stealing focus certainly does. Horrible laggy car infotainment systems--hard to say without any specifics, but I've certainly had the same experience pre-LLMs. I've navigated the LG website pre-LLMs and it was busted then too.
The complaint is not the focus stealing the complaint is the lag of the chat application starting. So the problem in this case is electron and all the shit that slack has bolted on on startup because "who cares about start up time, everyone has it on all day."
I think MS devs don't even use their windows OS. How do I know this? Because every week my favourite applications list gets reset. Why would anyone do that?
Just a little gripe, but near the end of the article he links to a site for something called "Omarchy" which appears to be a Linux distribution. If you click on the link, the only information available is in the form of a video.
If you're making a Linux distro, please don't do this. I will not watch your video. I was interested, and now I'm not.
I've heard the meme that Omarchy is for people who would like to use Arch but don't want to read the documentation or follow the installation guide. Having a video and no text sounds like it would align with that target audience. If you want information and not a video you'd want to look at Arch instead, it has an excellent wiki and the best documentation of any OS I've ever used.
I mean, I'm an everyday Linux user and half the content I consume daily is about the Linux/FOSS world and today is my first time hearing of it. And all the information I have about it is from replies to my comment, because its website doesn't actually offer any details. Genius marketing.
Omarchy is basically just Arch with a bunch of configuration. It's not a particularly useful project, and the author is noted fascist DHH. So probably not worth your time.
I think more precise terminology would go a long way here.
What is "a fascist" (in context of being labelled that on the interwebs). That could mean a lot of things.
As a reader, you learn basically nothing about DHH other than that some people might not like him.
___
So to fix that:
DHH has always been a very opinionated guy - with not all of those being agreed on, but there being usually some kind of point to them.
Starting somewhere late-ish last year, however, he seems to have dropped deep through the alt-right pipeline and started babbling talking points basically copy-pasted as-is from other talking heads.
So, in essence, he kinda stopped being opinionated, because that would require having an own opinion, and instead started just being yet another person not doing all too well mentally on the internet.
I mean the guy suddenly started talking about "body counts". What's his age again?
__
Of course, moral outrage happened but achieved absolutely nothing, because it's not the right tool for the job here.
A lot of the product misses come from large product teams where nobody owns anything, and where there's minimal internal goal alignment. I know that, at work, what I am incentivized to do has nothing to do with what I consider the most important work I could do.... and I also know that the maze I would have to cross to be allowed to do the better work is just not worth it.
The smaller the org, the better the chances of having only reasonable levels of misalignment... but without taking on high risk, it's just better pat to work on a large, worse org. Frustrating.
In large orgs, each team spends a ridiculous amount of effort adding the “glue” logic to work around design/architectural issues with the other teams’ products they interface with.
Neither one really understands the other’s component.
Cooperation is almost impossible since such would derail one project manager’s unrealistic schedule and demean their authority.
This is spot on. Also, many orgs build to the needs of the business or whims of stakeholders rather than customer needs. Good product strategy and product discovery remain difficult despite AI.
1. Our incentive structure in software has always been to a large extent driven by more features [1]. Agent driven development has poured gasoline on that fire.
2. Despite all the effort we put into quality assurance by engineering teams, it's still hard to full de-risk releases across a broad set of configurations use cases, etc. Especially as most agents and even the test hierarchy itself tends to favor unit or module tests and these issues tend to pop up at integration points or hard to test non functional requirements.
So I think what we're seeing is people are rapidly adopting agent lead development due to #1 but the risk reduction pipelines haven't caught up with #2. I think they eventually will but we're definitely in for a rough road for a bit.
Today, developers assemble a Tower of Babel built of libraries they do not understand. Those libraries were largely built the same way.
There is “no value” in a company maintaining their own purpose-optimized HTTP client, database, GUI framework, or anything else.
Each layer adds features but subtle crappiness in the details not understood.
I shudder to think how many string libraries end up in a modern system…
“Practical” solutions like “this WXYZ fails 5%” of the time, let’s add a retry loop. Of course, this the next layer sees random failures that are hard to reproduce, so they add the same.
At some point our modern supercomputers are repeating millions of operations because of a stupid bug. The user just sees a sluggish app and gets annoyed.
We could write simple, understandable, efficient software that is a joy to ship and use. Unfortunately that doesn’t add value so we are extremely careful to never waste resources on such!
While I empathize with this view in principle, I believe that all organic systems eventually devolve into deep and rather chaotic complexity as they become more advanced. Biology is in many ways extremely inefficient, but it is also very error-tolerant because it has so many retry and error-correcting mechanisms.
And humans possess nowhere near as gifted a talent as God or natural selection or whatever you believe drives the natural world. So it’s to be expected that the systems we produce will be much more buggy than biology! It’s kind of futile to imagine it could happen any other way… we are just not that good.
Software has neither gotten worse nor become any better. All you're seeing is the cost of writing code approach near zero. As that happens the speed at which you see defects increases. Software is by its very definition "malleable". It is without (or very few) constraints. So it is very hard to get "prefect". That is why IMO Site Reliability Engineering will be one of the few fields that will remain, because until we build an _actual_ goodness to gracious Intelligent System that can think critically, including how systems can fail (which includes humans), software will be what is hat always been "soft".
Personally I think the way to avoid a lot of this buggy new software is to use a LTS Linux distro like Debian as much as possible.
Obviously you cannot do that for everything. But any software you get from Debian repos (or similar distros) is at least safe from new bugs from all this new code.
Complexity + a lack of incentives to take time to get things right.
Imo we know the tools (social, + technical) to make good software that works. But in the face of massive complexity, people just want the next feature, the next thing sales can use as a win
And yeah I agree with the other commenter here - I don't think this is AI. We had terrible software before, even declining quality.
I'm doing the exact opposite: I'm maxing out my PTO and taking long holidays. I'm pretty sure I'm not going to be in this field in five years time so why bother. It's time to figure out what other passions I have apart from programming.
Programming is going to be like ceramics or pottery: you can grab a nice set of bowls at IKEA for $10. We are doing the artisanal pottery that no one really wants or cares for.
Unlike IKEA pottery, programming has the zero replication cost thing. You can spend years working on a better bowl and still sell it for $10 at IKEA and make money. Heck, if your bowl is so much better, maybe IKEA will hire you as a supplier.
LLMs can't parse the entire codebase at once, understand it, and then make decisions based on that understanding.
The hard part of programming almost is never how ONE function or ONE class works. It's how they all interact in a much larger picture. You can try to mitigate this, but it's a pretty fundamental concept that software is big and just too large for an LLM context window.
Until that's solved, coding has not been 'solved' by '''AI'''. They're useful for greenfield stuff, but new software was always easier to smash out quickly than working on older code.
Plus, it's not like they're building understanding like a person does regardless, even if the context window was somehow enormous.
> My banking app requires, on average, three FaceID logins before the 3D Secure confirmation view appears.
That's a different, equally big problem. Security mafia at every company will continue to rule everything and everyone. They do not have goals or constraints that are tied to productivity and user experience.
We are heading to a situation where the security teams are causing much more damage compared to the possible attack vectors. While this damage is real and certain, the damage due to attack vectors is only hypothetical.
Ofcourse, we do need security. But currently no one including CEO can dare to define how much security is needed. On top of that, regulators do their own share of damage, piling up regulations. No one takes any risk. They will ask you to tie yourself down until you can't move. Your mobility is not their problem.
Perhaps its a slight overcorrection but it's better than the past where an online shop I gave my credit card info to would reply to a forgotten password request with an e-mail with my password in it in plaintext. Security used to be awful and people suffered because of it.
I wonder how many accounts have ever actually been compromised by a MITM reading passwords out of plaintext emails. I would guess it's very, very small.
One thing you can do to fight back is show up at their branches with complaints. You can engineer this intentionally. Have a bank that doesn't support Graphene? Show up with your Graphene phone and be like "it says my phone isn't allowed. Fix this or I'm closing my account" and there's a 50% chance they will turn off phone hardware attestation for your account or give you a physical 2FA token and if they don't it will show up in their metrics.
That’s a hilarious comment in the world where companies are getting hacked left and right and consumer data is widely available from how many pieces of software have piss poor security. You might work at companies as where dumb bureaucrats have a tight grip on things, but in most of the world, security practices are not holding us back, they simply don’t exist.
The the op of this thread is really security clueless. The moment you're in most networks you can move laterally and get whatever you want. Locking these systems down and securing them is very difficult work. After C levels, developers are the worst at security in companies.
Lines of code, functions and modules, are insufficient for producing quality representational systems i.e. those that model external systems. There is a lack of sufficient abstractions.
Unlike transformational software that can use mathematics as a conceptual framework, representational systems have no such thing.
Yet it is complex representational systems that allow the operation of our modern world.
Human coding effort without such a framework is problematic, and that is just exacerbated with AI generated code. Should we be surprised that for this type of software AI makes thing worse?
Coding is not solved. Who said coding is solved? Coding is incredibly complex.
What is coding? It is writing down specifications. Imagine a simple computer with just a 1920x1080 pixel screen, a 104 key keyboard and 3 button mouse. That is 2^107 inputs and 2^(1920x1080) outputs. The scale of specification of this (now over time) is already not handle able.
So, we invent concepts like taskbars, windows, shortcuts, and so each spec is different. People think they are writing down code, when they are actually just making a lot of decisions.
It depends on whose perspective you consider the problem. An enterprise produces software for one reason only: make money out of it. And it works great!
if you are a paying customer, and if you can choose among a few different solutions, then you will get the good stuff. But for the rest...
1. Free apps? They just need to take ads in front of your eyes.
2. Software embedded in cars? You choose the car based on other merits, the software just needs to not by horrible.
3. Automated customare support? When was the last time you choose a fridge over another because of the quality of its customer support?
While I agree with a big part of the article, I need to pick on this sentence:
"They may have upgraded the average skill set of software teams in a way we have not seen before."
Well, no, not really. On one hand, it is true that AI makes it easier for experienced software developers to find information outside their existing knowledge boundaries. (i.e. when I need to use a language I've used before, but am not so proficient, it is faster with AI to get started). At the same time, it creates an apparent upgraded skill set. But, on the other hand, the more we rely on AI, and worse, the more we rely on AI and only on AI, the less skills we end having ourselves (we become skill renters, not skill owners). By this, we risk getting to the point where we don't really understand the code that AI generated. This is a very dangerous aspect and it might be a contributing fact to the lack of quality the author diagnosed.
For me, the problem was never the writing of the code. Building something takes care and rigor. Software development got where it is through years of accumulated practice: habits first, then safeguards, then structures that had actually been proven. Now people set the code aside and just describe their problem, and they have no real sense of what comes back, because nobody can review output produced that fast. Nobody is even keeping up with the systems we built to help us keep up. So we ship without quite knowing what we shipped, and the sloppiness follows from that.
Isn't that how it's gone before, though? People used to make beautiful furniture by hand and leave something of themselves in it. Now it comes out of a factory, nobody knows exactly which part they made, they just fit pieces together, and it isn't built to last. Software is at that same point: nobody knows exactly what they've made or how. They describe the problem, assume they've found the solution, ship it, and there is no undoing it. The sloppiness will keep compounding. But that is also the point where people start thinking much harder about how to make it good again. A cycle, I suppose.
> Nobody is even keeping up with the systems we built to help us keep up. So we ship without quite knowing what we shipped, and the sloppiness follows from that.
NPM left-pad incident was a decade ago. Supply chain attacks have been a thing for longer than that (one of the first proposed SBOM's was around that time).
Source forge was shoving adware into the software from their site.
Asking an AI to write code is not worse than typing in PIP/NPM install (not to slight those tools) if you aren't going to code review either.
If furniture was still built like it was in the past you'd have about 2 pieces of it unless you were fabulously wealthy.
This is pretty true for software, how much have you actually paid for recently? FOSS isn't free either, a massive amount of time and coordination is required to make good software there too and few are willing to give it.
Everything is a minimum viable product that is constantly in flux these days. The decision makers and money movers are prioritizing rapid results and turnaround over quality product, maintainable codebases, institutional knowledge (debatable), etc
The incentive isn't focused on "Good" software, it's on making "profitable" software as fast and cheap as possible.
The firing people because of AI thing is similar to the RTO thing, assuming everyone saying they are doing X because Y is falling for the simplest form of deception.
Firing people to bet against a downturn is self fulfilling. Firing people to bet for a thing everyone says is good isn't.
Agree with all of these gripes, they are everywhere and none of this golden age of SWE productivity seems to be making products better.
My other biggest pet peeve in this space is the annual iOS updates where Apple arbitrarily moves buttons back and forth between top and bottom of screen.
They really like to screw around with the photos app such that "show me my photos most recently taken in time order" is somehow different set of taps year to year.
You see flavors of this in most other apps/websites.
> As I’m writing this, we’re in the middle of an AI-induced mass psychosis.
I work in mediation and have recently seen a few cases where I’ve wondered if the participants were suffering from AI psychosis as related to their claims: where they’d constructed their legal cases hand-in-hand with an LLM and had become absolutely convinced despite a contestable set of facts.
People have always been subject to delusion, but in these cases, all documentation submitted was obviously created by chatbots.
One recent case in point: Google Finance redesign.
How anyone signed that off, especially senior engineers supposedly behind it is beyond me. Basic functionality like sorting by column is gone. To add/remove positions you have to talk to the chat box which is very slow and unreliable. No way to just add 200 shares of company X anymore. News/calendar displayed is no longer relevant to your watchlists. Layout is terrible with unremovable AI chatbox and graph that doesn't work (shows wrong amounts) take big part of the screen.
If anything it shows that people exposed to LLMs for the longest lost the most IQ. Googlers had access to Bart preview before LLMs were public so that checks out. I just hope those people don't get to redesign other tools as otherwise we will all need to talk to the chat box to use a calculator or a spreadsheet soon.
Mac user for 20+ years now. Helped my mother with two Windows laptops. One would not allow her to reset her pin. Nothing allowed me to do a safe boot, the option to enter the password was just not there. The other wouldn’t connect to her wifi. Switched to an admin account and, after login, am greeted with a black screen, a cursor and nothing else. Yesterday OneDrive just randomly would not sync a specific file. Just wouldn’t.
I could go on. That’s the network effect for you. The only reason I ever touch MS (or Meta or whatever) software is because someone I’m connected to cannot switch. And they can’t switch because others are in the same situation. At some point you don’t have to care any more. There’s no money in working software compared to igniting a massive feedback loop that just can’t stop regardless of if and what you do.
I think people just think it getting worst because you use software for literally everything in your life now compare to before and this means you will most likely run into bugs more often.
On top of that software has to be build with more users in mind so you are often going to get bloated software. That why enterprise software is often horrible because they have to support multiple industries that all need different types of workflows and UI.
I have been using software for decades and there has always been horrible software. Like I'm mind blown that people think human always wrote good code, and that AI is somehow worst than human code. AI writes better code then the vast majority of programmers that's a fact. Yes, including you. Yes there are certain areas of programming that it sucks at but 99% of programmer aren't writing that code.
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
Back when I was using IRC from Emacs (with erc) I had written a safeguard in elisp against that. Haven't been on IRC in a while but this helped me prevent sending to the "group chat" (the IRC channel) a great many private infos.
Same for my real name for example: I had a filter where anything containing my actual name would be blocked.
I think a great many software where you "chat" with "groups of people" would benefit from having both default and configurable filters that catch obvious mistakes. Say you probably want a confirmation before attaching a private SSH key, or before sending a password in the clear (which could be filtered by blocking words matching the hash of the password), etc.
Not that it solves the fundamental problem TFA is talking about: nothing works.
But that is a given: that's why we need safeguards.
If it's open source and I can review it before compiling and installing, and I can modify it and recompile if I want to remove/change/add something, then I feel like I have some control
This is one reason I like relatively smaller software, less code
This is probably going to sound elitist, but it is how I've been seeing this whole LLM thing play out.
I don't necessarily believe in 10x devs, but there is a very clear output difference between various developers. During my career I've been both in a position where I was delivering much higher quality code at a similar pace to other coworkers and also mediocre code at a slower pace. Sometimes at the same time.
Now, AI itself is a force multiplier. Depending on the task, your setup, your skill level (both as a developer and with LLMs), the weather, the model and so on, it can range anywhere from actively hindering you, to solving the entire thing for you. Let's say that on average you get a 20% productivity boost.
If you take a 0.8x developer and give them a 1.2 force multiplier LLM, you get a 0.96x developer. Worse, the axis that has moved is speed, not quality.
All this to say that if you let a below average developer vibecode, you get a much higher volume of slop. You can make an agent create good code, but this developer didn't care before so why should they now?
*Note that this is from experience. I've started getting feature PRs from our devops team. It's been a very enlightening experience.
The claim that software has regressed is hard to accept. Compared to the past, we now have far more platforms to support and far more things to memorize. And if you actually try using software from 15 years ago, you'll see it had far more critical bugs than today's software. I think most of this is just nostalgia bias.
It's just that complexity has skyrocketed compared to the past. The same goes for released software. In the old days, even small software could be competitive, but now the minimum level of complexity required to sell a program is completely different.
The best example of this is mobile games. Just look at the structure of early mobile games compared to modern games.
If coding is a solved problem, where are all the high quality, open source PRs is what I want to know. Where's the flood of improvements for Curl? SFML? SDL? Godot? Linux? ImGui? VLC? Firefox? GNU tools? Rust? GCC? LLVM? Why can I find *no* evidence of this?
If you look at the open source space and review the contribution of AI in it, you'd think that AI is barely able to create functional code and the people who peddle it are solely slop authors. More than that, you might think it barely exists, because there's simply vanishingly few PRs landing which are AI generated. It seems in open source projects, for some reason, AI is barely able to produce any useful code at all
But apparently for closed source proprietary code its like magic and you don't need to write any code anymore and it is a solved problem. Mhm. Totally willing to believe that
My suspicion is that a lot of proprietary software engineering has become purely performative. It no longer matters if the resulting product works, or has any quality, because its not about that. The system is being burnt down to extract wealth from it instead, as we create the illusion of software development as these companies are asset stripped. Line Must Go Up. There's no simply incentive to make a real product anymore, when the valuation of our economy and management compensation is built solely on hype instead of results
I'd buy that if lots of high quality PRs were sitting around waiting to be merged, but they don't exist. There's barely any evidence that AI is even real in the open source world, other than the slop of course
I see all these comments about Linux not having this issue, but Linux has a similar issue. Canonical’s uutils being forced before being ready, Wayland adoption initially before it was ready, KDE4, GNOME3, PulseAudio, Avahi, Bluetooth support, etc. Linux systems do tend to get better overtime, but Linux systems also tend to release without sufficient testing. So, while you can expect things to be great after several patch releases, everything may break initially.
> There’s no denying that these new tools have already revolutionized how we create and use software. They have raised upper management’s expectations for team output. They may have
Expectations is neither about creation not use. "May" isn't a revolution outside of the historic calendar, so on both counts it's trivial to deny an ungrounded statement.
> So why does software keep getting worse across the board?
Because the premise on which the expectation is built is wrong?
Also plenty of the issues are prehistoric with all the past meat bag generations to blame, case in point:
> Just then, the Slack window appeared, stole focus from Ghostty
So who stopped that huge fruit corpo from doing the very basics of managing user experience in the past few decades minus a few AI years?
Because most engineers nowadays have the fundamentally wrong idea about how their software should utilize the user's hardware: they treat user's CPU and RAM as their playground and being infinite, and therefore act as a platform to make their life easier instead of their user's.
Yes, coding is solved, for the developers, not for the users.
Since upgrading iOS, my iPhone (13) will:
- sometimes fail to open the camera
- make the bottom half of the screen blank when you do email searches
- use more battery
- become unusable if you turn on any transparency effects.
I've also noticed so many pieces of software becoming worse and worse, either with useless features (basically any new thing on Slack in the past year) or with a huge amount of large bugs, over the past year.
It's glaringly obvious that poorly checked, AI-written, code is the culprit, I'm just wondering when companies will wake up.
Nobody gives a flying fuck about resiliency, good practices, security or any of that now that AI is there. All anyone cares about is pure output of features.
Any and all "productivity" gains attributed to AI efficiency are actually due to the complete disregard for any care or standard in the software industry in the past 2 years. Yeah you can output more shit when you don't give a fuck, big surprise, AI doesn't change anything here.
At the end of the day it has nothing to do with AI. People have been bitching about bugs in it for a long time. It's companies that give zero shits about releasing bugs.
This comes back to the users. As long as they keep buying the shit software why spend money on QA.
I mean, you're the problem. Did you stop using slack? Are they taking losses because of it? If not, why change?
Coding hasn't being 'solved' but its being taught to models which makes coding partially automated making people believe its 'solved'. No model can replace human intelligence and thinking as of now which makes coding still a human job which can be best done by humans, with the increase in vibe coded projects the quality of the software will eventually decline
That’s why i‘m using claude to literally write everything for myself! I cannot fix software-problems in my car or my fridge or my heat-pump. But I can start by replacing my own infrastructure!
For my team to re-work fragile, complex parts of the system we need to push back at product from shipping "features." Product does not see reliability as a feature they can advertise -- it's expected. And frankly I can't be bothered to keep taking side quests to fix things that increase my workload, I will burn out again. I want to fix things. But our planning revolves around implementing features customers are waiting for (aka compete in the market.) I am responsible with AI tools but not everyone I work with are. Even though responsible AI users are in the majority, our system is only as stable as the weakest link.
Part of that is bad systems design, not really software, and part of that is social organization and bureaucracy.
Part of it is incumbancy - much of the Mac OS level stuff is 30 years old and is not going to change.
But the real concern is that even new-builds are not particularly great - and its because we dont have the abstractions in place to help us scale complexity
Coding itself is not the problem and mostly never was. The problem is conflicting requirements, lack of resources, haste, the desire to be first with a feature, etc.
And the lack of backlash from anyone with real influence when software fails.
That is software is bad because organizations make it so not because the coders are incompetent.
I have a TV in my Google Home that I cannot remove. It says it's offline and when I try to remove if it says "communication error". Yes, I know, I stopped using that TV 5 years ago! Normally, I haven't seen such bugs from Google, but lately it's been getting worse.
I don’t really dread or notice macOS updates like windows updates.
I will say that in my experience with AI my code and that of my employer has greatly improved. So maybe there’s a split between big companies and small as far as quality gap?
I don’t think we can objectively say software is getting worse. I don’t expect an appliance website, a car infotainment system and a banking app to be the beacons of software quality and user experience. All those things would probably suck at any point in time.
My assumption is that AI-generated code explodes the flaws in your existing codebase. If your architecture is bad or not documented, your docs are out of date or the goal of the feature request is vague, how should the AI (or even a good human developer) develop high quality software?
A lot of people miss that everything needs documented, even the things that customers don't see. I've seen a lot of things over the years that were implemented but their limitations were not documented. Tags were one thing in particular. The person that thought up the idea didn't specify out how long or how many tags should be implemented. The developer put some wildly huge field in place and didn't state what the field limitations were. So later when a few users shoved massive amounts of data in there other parts of the software that displayed information broke or had terrible performance.
Personally I hope to use a lot less software in the future. Anything I want to know or do online I'll just ask an AI and it can wade through the sea of cookie popups or UI redesigns or whatever to get it done.
I think you are right in being optimistic. Time will separate the wheat from the chaff. An I personally hope that free collaborative privacy first software built from curiosity, discipline and devotion will be the norm. Hopefully...
It’s because the incentives of writing software practically reward making software architecture as complex as possible. Complex software architecture therefore secures the inventor forever job security.
It probably comes down handing over power from the user to capital which is antagonostic in its nature to the users' needs.
Running non free software is essentially giving up our freedom. Before internet connectivity the problem wasn't too bad but nowadays there is always the temptation to squeeze the lusers.
Use open source everything. If you have the source to something, you can change it. If you can change it, you can fix it. Run Linux and Firefox. Fork every last damn program and have AI fix every papercut that you don't like.
LLMs are an amplifier. Most software engineers/architects/developers are bad and always have been. We have amplified the bad, and so we have the modern world.
All of these complaints are about humans making user-hostile decisions, not AI. And software quality is not a reflection of its code quality. Never has been.
rant first: oh, I recently heard about you from a friend working in a company after I mentioned that I also got into photography. Nice work on pixelpeeper.com
to the article: Yeah, it's different world out there. We need to filter ideas instead of focusing on more features, as lack of staggering revenue growth suggests it might be that more doesn't equal better. The stability of apps is getting worse lately. I couldn't pair my sony camera and it was stuck on pairing screen :(
Why would there be revenue growth when AI should decrease it via competition? I think the revenue growth occurred in the past by companies like Microsoft and Google capturing huge parts of the market, and the market for profits in advertising.
I think the flaws have moved. I remember Mac OS 7-8-9 (”Classic”) fondly and the suite of software I regularly used there.
It crashed, and crashed hard, a few times per week. That never happens today, maybe at most once a month.
However, what has changed in terms of quality is that there are 1000% more smaller bugs. I never felt that small annoyances or problems were even noticeable or even existent back then. Every feature seemed to actually work. Yet just so far today I have encountered over a dozen small problems in my operating system and apps I use.
It’s exhausting in a different way. Two decades ago I felt ”safe” from problems by frequently saving my files. Today I dread having to navigate a UI that keeps giving me a thousand paper cuts of small bugs.
> Until this attitude changes, the great software quality decay will continue.
It won’t change cause nobody cares to do anything other than complain, I don’t see developers quitting en masse from companies that refuse to pause feature churn and focus on quality. Why should they? They get a paycheck, everyone ships crap, the world moves on. The people making the frameworks and now even runtimes are of the same cloth, overworked and underfunded.
If we cared we’d treat software like real engineering. We don’t and therefore we’re quite cooked. Just be happy that airplanes aren’t as bad as your average CRUD. For someone who does care, look at the SQLite codebase, every project should be like that even if development cycles would be 3–10x longer, but that’s delusional to say out loud.
AI just revealed that - with slop being produced at increasing pace and test coverage and verification methods of things working properly across all states and inputs being nowhere to be found.
we found that using a stable AI-SDLC process like: https://github.com/highflame-ai/ai-factory improves code agent assisted development dramatically specially when going from 1-100.
That's a good description of some roles actually. Instead of describing myself as a developer or maintainer of some backend system I might call myself a gardener of it.
> This quarter, we won’t be releasing any new features, and we have no plans to redesign anything — we will exclusively focus on fixing bugs.
IME this happens more often than people think. If you’re leading a team part of your job is to manage the expectations of those around you and explain your choices. If you do that well you can absolutely have quarters where you only pay down debt, it doesn’t require some huge attitude shift in the industry. Just explain why it’s the right thing and then do it.
if coding is free, the number 1 issue that need to be resolved is separating features so people can roll back any part they don't like and the magic would be resolving all the gory consequences of such action well enough
AI is the private equity of software and digital media, it makes the first 80% way easier and the last 20% way harder so no one bothers with the last 20% anymore. It’s the ultimate enshittification tool.
Taken literally, this question just misunderstands what the point of coding is for most companies. The point was never to maximize quality of software, but to make the most money. Coding being "solved" implies it was a problem, and for companies using this framing, the problem wasn't "my software isn't good enough", but "it takes too much time and/or money for me to make software". Viewed through this lens, the "solution" of removing as much need for expensive humans to make the software is almost entirely unrelated to the quality of the output; if companies with this mindset could have released software cheaper or faster at a reduced quality before AI, they almost certainly would have.
None of this is to say that I think this is a good thing, or even that it's necessarily an accurate viewpoint. Considering who decides how much to spend on LLM products in companies that are potential customers for the ones saying "coding has been solved", I do genuinely think this is what they mean though. It's of course nonsense to actual developers, but we're not the ones who they're talking to when they say this.
"The man whose whole life is spent in performing a few simple operations... has no occasion to exert his understanding... He naturally loses, therefore, the habit of such exertion, and generally becomes as stupid and ignorant as it is possible for a human creature to become." - Adam Smith on overspecialization.
These products are bad because noone who works on them understands the whole system infact
"The only trades which it seems possible for a joint-stock company to carry on successfully... are those of which all the operations are capable of being reduced to what is called a Routine, or to such a Uniformity of method as admits but little or no variation." - Adam Smith
CPUs, dams, can be designed with software. Plenty of programs can be designed with software but most useful, interesting, valuable ones cannot. Plenty of programs are designed with software, or more generally a routine, and they are incomprehensible as a result, and clearly their programmers are the most stupid and ignorant people around.
I have the same impression when I use things that are around me every day. Everything is broken and seemingly nobody cares. It seems that the teams developing software never use it themselves and do not care about bugs and terrible usability problems. It seems the management does not use any of the products that their businesses produce. And it seems that the ubiquitous breakage is just accepted as the status quo.
This extends to any device which has software or firmware: banking websites, banking apps on mobile phones, car firmware, etc.
I find it very depressing, especially when I think of the people who design, develop and deploy these apps. We are talking about large companies and teams of people. Entire chains of well-paid people designed, looked at, developed, tested, and then accepted these apps. And yet they break in the most obvious ways, or fail to be usable, instead pestering us with pop-ups and useless drivel and forgetting their state at every point.
These problems are not subtle. To take a glaring example from my everyday life, in my car there are buttons for moving windows up and down. Sometimes when you press the button to move the window down, it will actually start moving up. We are talking about a simple button that moves a window. And seemingly everybody thinks this is fine?
> So why does software keep getting worse across the board?
The issue is only partially within those who code. They get directions from those in charge, and they are just making idiotic decisions. And those who code, for some reason don't stand against those idiotic decisions in defense of a common sense and a great UX.
A blatant, exaggerated parallel would be: you are designing your kitchen and you've chosen a place for your washing machine such as that it will be unable to open its door. When inviting a professional, you expect them to correct such wrong decisions and explain to you that it won't work. But in programming, those who program, calling themselves "software engineers", would just place this washing machine where they're told, because it's "not my job". It's not a feature of an "engineer". It's being a coder lemming.
Imagine you find yourself making TC $1M+ a year owning some beloved piece of software.
Do you A) tell your management hey it's absolutely perfect as is, let's just chill, leave it alone and let the money roll in. Or B) tell management about the need for whatever new hotness and you're going to get it implemented ahead of schedule and under budget. And then you do! Oh but the software is objectively worse because it was already perfect.
It's pretty clear what the overwhelmingly popular answer is to that question.
I don't get this post. It says software is getting worse, and then... gives a handful of anecdotal evidence. That could have been done at any point in the life of the software industry, including in the pre-agentic era. So the assertion behind the post doesn't really have any weight to it. Is there any actual, respectable evidence that software is actually getting worse? Also, what would worse even mean really? More buggy? Less reliable? Less creative, flexible?
Especially when you get outside of environment like phones and consoles the environments people run software in can be wildly different too, and the oddest things can cause weird interactions.
In enterprise software you can run into customers that 'use too much' of something odd that the developers don't really think about and QA fails to test right. Things like tags and identifiers that you think "Oh they'll use 5 or 6 max" then you run into someone that uses a thousand tags and report performance explodes.
Remember when they finetuned an LLM to write buggy code and it also started saying humanity should be exterminated and so on? It knows good and evil and is trained to select one.
I think the article misses a bit the main focus. For instance:
> My LG fridge started making weird sounds, so I tried to file a warranty claim, through a multi-step form with countless fields. It failed with a submission error at the very end. And I only found out because I looked at the JavaScript console.
Has that JavaScript code been written by AI? It may be more likely that it was
written by humans. Well, the design of JavaScript really sucks, the language is
both successful and horrible to use, in my opinion. And we have that issue across
the board. Most programming languages really suck. C, for instance - that language is an abomination. But it is even more successful than JavaScript. Today I ran into the issue that I can not compile libpng; I keep on bailing out at it unable to find setjmp. About two months ago compiling it worked fine. I most likely did screw something up on my local system but ... the compiler is an idiot. It really does not tell me WHY it can not compile it anymore. Yes, it shows on the commandline that it assumes setjmp to exist but it can not find it. The error messages are pure and bogus. And the whole design of C cascades this horrible crap downwards. The languages that supposedly try to replace C also suck. Go? Yikes. Rust? Even more verbose. C++? Trying to replace C since decades. There is a ton of inertia.
The whole stack is utter gutter trash really. Everything is build up atop layers of complexity that in turn are not really well designed at all. Meanwhile more and more software is added. Now I need python due to meson, and meson is better than what came before. But it adds complexity. And has its own problems too. AI does not really fix anything here, it just AI slop spams on top of this. We kind of lost big at engineering. People are in general also not critical anymore. The design of most programming language shows that - including ruby, but ruby is barely used, so really the issue is mostly about C. The fact that C is so successful makes this even worse, since nothing replaces it. We just keep on adding more and more. Or we go the C++ way - and make it about 50x as complex. Or Rust - that syntax is even worse than C syntax which is also horrible. Of course even with great syntax and a great language, horrible software will be written. Companies want to offer a billion useless features. Many years ago I thought it was cool if my fridge tells me what I should order. Since the day of companies spying on people, I go back to simplicity at all times.
Heh, the support form failing want a bug, more like a feature. Look how much money they are saving not providing support. Also, the product is better than ever, nobody is returning them or needing them fixed!
I'm confident to say that right now, AI already does a better job at turning a well-specified requirement into working code than the average meatbag I've personally encountered.
It's still useless at many other things that make a complete Software Developer, but let's be real: Programming (requirements in, code out) is solved for the stuff I'm involved in.
MacOS contstant trolling with tab switching. I regret each day of life I need to use this shitty OS because of corporate. In linux these things will never happen
> If coding has been solved, why does software keep getting worse?
I mean, he has given the answer in the article: Because "coding has been solved" is from the perspective of upper management, not devs or users - and that cares about software quality and usability (as standalone metrics) about as much as the McDonald's board cares about nutrition value.
Large companies are on the path of replacing people who are bad at coding, with systems that are emulating humans who are bad at coding.
Coding has been solved in the sense that, per dollar spent, companies can get 10x or even 100x the amount of code of roughly the same terrible quality.
1) no one who wrote software before llms truly believe it's solved right now
2) shit takes time. Was energy solved the instant we discover nuclear energy?
Those two twitter links with people that got hospitalized might just be people trying to get their 5 seconds of internet fame by (pretending to be) doing something dumb.
So taking it at face value is kinda part of the problem here.
The only way this can get better is by completely suffocating it off attention.
It doesn't exist. It's not real.
Other than techbros and a small group of AI-delirious fanboys, no one is euphoric. Normal people in the industry are between anxious, scared, exhausted, resentful, resigned or just plain sad. People outside our industry? They see the enshittification clearly, and are most certainly the opposite of euphoric.
God, those "software is getting worse everywhere" takes are tedious.
Let's have a look at a few rarely quoted examples from the last decade, shall we?
Just six years ago, a big company rolls out a line of new chips so good that geeks and technology experts all get ecstatic and can't stop churning endless raving reviews. Those chips are fast, small and consume little energy. On top of that, the big company reworks their entire OS (OS!), the whole suite of software it has for it, the developer suite with compilers and SDKs and god knows what else and also ensures that everything ever written for that OS for the old chips continues to work and it indeed does.
Then there's another big company that launched a file storage service around 20 years ago. Back then it was reliable and only gotten better over the years. They started offering their storage for a nanocent per gajibyte and twenty years of hard work allowed them to lower that cost to a picocent per gajibyte. They don't lose data, they are highly available, half of the internet stores their data at their servers.
And then there's a -- gasp! -- consortium of big companies (fools would reply to this with an XKCD standards strip) that works on improvements to a shared set of standards for 4G, one of the most widely used technology stacks in the world, agrees on it, calls it 5G and rolls it out across the world and the whole spectrum of hardware and software vendors in a manner that resembles replacing a wing of an aircraft mid-flight so that not a single pasta strand falls from the forks of the business class customers.
And here we have someone who thinks that a customer support page for his fridge (fridge!) thrown together by a low-paid second-grade developer in a third-world country is indicative of the whole industry decline.
As crazy as it sounds, code quality != software quality.
It turns out that the lower the barrier to creating "high quality" code is, the worse the software is on average.
Who remembers the Photoshop lens flare?
It's not that the effect sucked - it did lens flare perfectly. But who used it sucked.
Instagram and the Nashville filter - "we're all photographers now"
Code quality not equaling software quality gets at the fun part of the modern AI-labor debate. Where does talent and efficacy really reside in terms of software? Surely not in the (apparently unworthy?) mind of a human? Surely it can be extracted, distilled, automated – liberated! - unto a reactive web interface for some middle manager to invoke (at some expense to some account this folk loses zero sleep over), because it is after all this flimsy, transferrable - not worthless! Not worthless! I have a stock portfolio to maintain for God's sake. But mine. Nonetheless.
If software was so good at making software LLMs should just produce binaries and minified bundles.
But in our software we actually want language - high level expressive declarations and descriptions of process (which actually automate work).
Code is like a recipe that is also a poem.
If it wasn’t, we’d not invent higher level more dynamic languages over time. Expression is power.
You want the dual function so it’s both descriptive (documentation and digestible knowledge) and yet has productive power as an instrument.
Higher-ups can’t think of code like that - like writing. One reason I think corporations still need to evolve to become more technical and made up of more creative people.
I have to say I’m really enjoying the Eternal September of Software comments here. They make me wonder about the vintage of the authors. Was Windows 7 the first stable OS they used? Some crustifarian Debian? I don’t actually recall if the Multicians I knew thought New Jersey software was rubbish. I know I still miss the solidity and useful abstractions of VAXcluster. Kubernetes would be funny by comparison if it weren’t so tragic.
It was always better in the past. The capitalists always ruined it in the past. Only I am the true bearer of the artisanal software flame. /s
> We’ve reached a point where an update to macOS — or to any app I rely on, really — is a source of dread rather than excitement. I now expect the new version to be worse.
I actually relate to that. It used to be cool and exciting to update to see what new things are coming for free. I was just looking up what Fedora Workstation 45 might bring.
Updates on phones, TV's, cars and non-Linux operating systems on PC's/laptops are downright scary to me now. What will they add that I don't want? What more connectivity to the external world are they going to wire in?
MacOS lost everyone's trust by ruining the experience, but even before it happened that trying to resize a window makes it feel like life will be at 80 years-old, hunting a tiny invisible border, even before that there wasn't anything exciting.
What Microsoft I think did (and I can't prove it), before I moved off of Windows 11, was to bundle all changes in "required security updates." So you have no choice but to update (or go through special settings to turn it off, or just defer it), but when the machine comes back you have a new Welcome prompt to some new connectivity to something nefarious. AI features I never asked for, that's the most recent dark pattern here.
Yep, this 100%. When I see a "pending update" notification or icon somewhere, the first thing I think is "I don't want to update, they're just going to break something new". I _hate_ updates now. Doesn't matter what software it is, with the small exception of video games. (Except Dead By Daylight. Behavior, the devs, are the most hilariously incompetent devs on the planet, but at least their incompetence is confined to their own game.)
The only software I've been excited about an update for in years has been games, that seems like the only category where devs actually add features people are excited about. For example, the latest KCD2 patch added a fun but brief new quest [0].
Not universal though. Besides your example, even for single player games patches can be basically malicious. I've had Fallout 4 locked on updates for like 3 years at this point, everything Bethesda has added has degraded the experience for zero upside. But I can't think of any software besides a game where I have been anything but dreading an update in years. Slack wants to update? Great, it'll probably break/degrade my work flow in some minor way, and they're one of the lesser offenders on my work machine.
[0] https://steamdb.info/patchnotes/23914554/
17 replies →
Maybe this is because video games can always add more features. Realistically, what useful feature could even be added to Word? I want to write text. It lets me write text. Program done. I dont see why Word would ever need an update other than maintenance or a security patch.
I remember when OS vendors shipped à la carte patches. You could pick the ones you wanted (to some extent).
1 reply →
Factorio or Minecraft change things every update.
17 replies →
> > We’ve reached a point where an update to macOS — or to any app I rely on, really — is a source of dread rather than excitement. I now expect the new version to be worse.
You know what software doesn't fill me with dread to update? FOSS.
Proprietary software isn't built for users anymore. But (some) FOSS still is.
> You know what software doesn't fill me with dread to update? FOSS.
speak for your clearly non-pulseaudio-using self (:
21 replies →
I felt like I got slapped in the face when I updated Audacity to see a goddamn cloud login service for the audio equivalent of Notepad.
1 reply →
> You know what software doesn't fill me with dread to update? FOSS.
As someone who's been burnt several times with CachyOS (Arch) updates, I don't think this is true.
16 replies →
Exactly, though it's mostly community software and not corporate backed oss. Zig has been taking an interesting direction, emacs is still getting features after 50 years, ladybird is turing out nice, and a ton of other things
Richard Stallman was right all along.
Ubuntu is still annoying with it's daily popups asking to update the system and then most times requiring a system restart. In some ways it is worse than Windows.
3 replies →
Updating glibc is a huge pain.
Using a new version of gcc or clang can cause a lot of problems. I try to avoid updating those.
2 replies →
The funny thing is that there’s a relatively high amount of hype this year around iOS and macOS being a stability and performance release with very few features, on purpose.
Look up some beta impressions or try the public beta yourself. Apps launch faster and a whole bunch of random stuff is fixed and smoothed out.
So not only are we getting a really great performance and stability release in the height of the AI era, disproving this “AI isn’t making software better” claim, but we now can make a pretty solid connection to the DRAM shortages being one of the biggest performance and efficiency motivators of the last few decades.
Why do you think Apple cares to make apps launch 40% faster? It’s because they don’t want to be selling iPhones that are losing money because they’re packed with expensive RAM and storage.
I just can’t agree with you that this software is anywhere near the kind of misery you’re describing.
To head this off at the pass, I’m not even a macOS user…I switched off to Linux last year. I also didn’t like Liquid Glass and oddly I got tired of the notch more than anything. I also just needed more storage in my computer and didn’t want to pay Apple 3x more than street pricing for 2TB.
I agree with you but I think it's worth pointing out that this is a new occurrence.
It's not just the performance of software but the UI and features themselves. The constant UI redesigns leave legacy users disoriented. It seems like they often just change things for the sake of changing things. On iOS three main pain points for me that used to be better are:
1. Search. It finds the settings for an app but not the app itself. Or the search doesn't even find the setting even though I have typed the name of the setting in word for word.
2. The timer. Previously I would set a timer and see the result on the lock screen. Perfect. Then they added a control to stop the timer from the lock screen. So timers are accidentally stopped after brushing the lock screen by accident.
3. Turning Caller ID on and off. Sometimes it just lags out and doesn't do anything.
> disproving this “AI isn’t making software better” claim
one company deciding a feature freeze is not disapproving anything, in fact, it means things have gotten so bad, apple who used to have higher standards for their releases, had to pull the brakes and fix their shit
> was to bundle all changes in "required security updates."
Kind of...Cumulative Security Updates on Patch Tuesday still do not contain new OS features, and on pro editions of windows you can at least, last time I used Windows (maybe this changed?), still skip quality updates & feature updates.
What Windows does do is tie all the "connected experiences" crap to out of band updates via the store/AppX packages which background update automatically, so when you reboot after a patch windows will run its post update OOBE and push all those features agian/turn them on. So technically not bundled with security updates, but a dark pattern that disrespects users nonetheless.
Not exactly the same, but Microsoft shipped the "Backup" or some similar name software that is actually just a OneDrive client in a Windows 10 LTSC update. LTSC is specifically for not getting such feature updates. They also changed the folder icons in the graphical shell at some point.
> bundle all changes in "required security updates."
And that is why i have setup a managed organization setting in windows to stop automatic updates (which includes security updates). I manually vet each individual security update, and download and apply them myself. I don't let windows update on its own.
Similarly to android. I don't let it update, unless i know i need the update. And i'd like to do the same with apps too, but companies have put in things to prevent people like me - deprecating old versions and forcing users to use newer versions (things like whatsapp, or youtube are prime examples).
Old business models: Add value for the end-user, sell it on for a profit.
Current business model: venture capital is the end-user now. Grow the investment by addicting customers to some distraction. Nothing else matters.
As a Fedora user, I can say very clearly that Fedora is also very buggy...
Counterpoint: I have been running Fedora Linux on multiple systems for about two decades, including on my daily drivers, and it's been pretty much solid.
4 replies →
I'm using Ubuntu and Fedora daily. Ubuntu is the one causing trouble all the time, Fedora rarely. That's why companies choose the worse system, Ubuntu. Worse is certainly not better
MacOS 26 was clearly rushed. iOS 27 seems to be an absolutely massive refinement update. Basically everything is faster and more polished.
But on the title, yes software is not even close to “solved”.
I’ve had a little bit of this excitement when an update comes out with Zed. Updates are frequent, and while it’s totally usable it’s still immature enough as a full IDE that the improvements are often something that will directly improve how I use it. So that’s been nice. But this is the only example I’ve had where I’ve felt this in years and years
I never had this dread after switching to Debian.
The removal of window chrome was a gigantic mistake and we're all paying for it every day. Having to tolerate the extra mental overhead caused by the removal of such affordances in UIs every single time I use a computer makes me wonder whether we're all actually dead and in hell... Like that old SMBC comic where a guy in heaven stubs his toe every hour, and realizes it's actually hell. That's what this is.
And don't get me started on OS updates...
I get to say a lot of "i told you so" to my wife these days. She used to call me an old man for being a stick-in-the-mud and not updating my phone's apps. When I have them working the way I want: why would I want to update things and risk changing that?
These days she's swearing up a storm whenever an update breaks or removes things.
Tesla just released an infuriating update which adds an incomprehensible number of UI nags to start self driving, despite there being a hardware lever that already does so.
There's even a big button that says "Start Self Driving" in the valuable visual real estate where the speed limit once was.
I don't want to live on this planet anymore.
1 reply →
The new "cloud" UI is wful. Who thought this was a good idea? I hate MacOS Tahoe.
the one good thing about the current ios version is that it is the best it will ever be from this point forward. all future versions will be worse
The only way something can be “solved” if it is eliminated. Otherwise it is never solved.
You can solve a puzzle, but what would "eliminating" a puzzle even mean?
6 replies →
I can relate too. I reached a point (as a software engineer), that shitti functioning software annoys me so much. Functions that are just annoying that no one really asked about, functions that are so bad designed that I really ask myself who the beep is really responsible and accountable to sign off this crap. AI should help us really make this small but time consuming implementations better too, not just shipping more and more crappy stuff.
AI is here, time to create something new and shiny.
> AI is here, time to create something new and shiny.
The AI we have in 2026 cannot do that or it'd have already been done. I use AI daily: it saves some time. But it produces an infinite amount of insecure, unnecessary, sloppy-pasta.
And that sloppy-pasta doesn't make software any better.
2 replies →
The answer, of course, is that the taste-making apparatus inside the typical tech company is now entirely imposters (non-technical, non-power-users), who continue to LARP as visionaries.
The people who notice broken or degraded behavior (devs and power users) and conceive of good designs are not in charge of what goes into the product. So you shouldn't expect it to get better, only to continuously change so that the imposters can point to a difference that they were responsible for, knowing that upper management also has no idea whether that difference was actually an improvement.
The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
All of this was obvious decades ago, but now everyone wants to have a do-nothing job at a tech company, and to help their friends get one too. The result is imposters everywhere; "imposter syndrome" was brought into the vernacular to normalize a lack of expertise. "No one knows what they are doing, it's okay to not know how to do your job". That's what your (product) manager tells themself in the mirror each morning. Turns out: skill predicts quality, and an org ships quality proportional to the skill of the decision makers.
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users.
It’s not surprising that this sentiment is popular on a message board filled with engineers but I’m not so convinced by it. Nor do I think the current state of tech companies is acceptable, to be clear. But there needs to be some level of management outside of the engineers themselves. A lot of talented lead engineers I know are terrible people managers, or ineffective project managers. And that’s fine, because there are other people to do those tasks.
If your utopia is a bunch of engineers given freedom to do whatever they want, however they want to do it… I suspect the dream and the reality will not match up. In the scenario you’ve outlined I strongly suspect you’ll have infrastructure on its third rewrite, full of power user features and tweaks… and near-zero adoption from newcomers. Product fit is a thing that needs to be managed!
The OP is right most production code is full of errors, and suffers from code bloat and feature creep that impacts UX.
Is this really the best we can do? It strikes me as unacceptable to ship errors to production, yet it's commonplace.
Code quality matters, and being in touch with users/dogfooding matters. But that can only address the underlying problem by eliminating the low-talent developers who win by numbers.
How to solve the relevant problems is not something hiring and recruiting teams can assess. So, hiring process uses proxy metrics like having a HS and CS degree, years of experience, brand name companies, list of tools, "best practices", trends, etc.
Teams of self-congratulating code monkeys using all the latest 'industry standard' libraries and tools, don't accept responsibility for their errant code. Instead, they blame (the user, his browser, the library), make excuses, minimize "all software has bugs". They can't fix the bugs they've created for themselves, but it can't be their fault, after all, they're doing what everyone else is doing.
The answer is to send them packing. Hire by talent, not by proxy of a hiring team (who don't know how to think/use the aforementioned proxy metrics to gauge talent).
Intelligence cannot be taught, but it can and is discriminated against. That is another problem with these faux 'team-player' follower types. Anyone on the team pointing out the code is a disaster and an attitude to fix it is not going to last. He'll be fed pushback of the same crap excuses for why things must be done the way they're done.
When a talented developer does deep dive analysis to identify root causes, most on the team don't get it. The scary bugbear of coherence is too hard and threat to the team's shared narrative.
Again, the only way to solve that problem is to send them packing.
Yeah I hate that you’re right. Blender is an example of OSS software which is actually a joy to use and they have product designers. But I think there is a massive gap between good and bad product people. No product person would be better than bad ones, but for truly great software you probably want some good ones.
That being said lots of good OSS exists purely built by engineers so I think it’s really the case that good product people help a lot and bad ones hurt a ton.
1 reply →
I'm not totally convinced by OP's whole point, but I want to point out an issue with this argument of yours:
> lot of talented lead engineers I know are terrible people managers, or ineffective project managers.
A lot of people who can read are also terrible manager, but that's not an argument to put illiterate people in charge. Not every engineer has what it takes to be a good manager, and that's fine since you don't need this many manager anyway, but I'd argue that for a management jobs, understanding the craft of the people you're managing is as important as literacy, because the most important role of a manager is make decisions and you cannot make good decisions about things you don't understand.
That being said, engineering is only half the takes in software, the other half being Design and you cannot have a manager that is merely an engineer without design skills (otherwise your product is going to have the user-friendliness of Arch Linux).
9 replies →
> A lot of talented lead engineers I know are terrible people managers, or ineffective project managers
Ok but non-technical “managers” are way worse.
Has more to do with role focus and hours in the day. I would rather have a dev dedicated to PM than a “manager” larping as one cringily trying to keep up with us totally ineffective to lead a technical team.
Tech companies are anything but technical anymore since they got rid of all the talent.
The real.answer is that people stopped making things with care and genuine interest.
Everything should be delivered in the fastest way possible, in the shortest time possible, on the tightest budget possible.
This is a recipe for creating a mess, in which AI has now pushed the limits and we are seeing how failure is now per-default embedded and shipped to users, who are now beta-testing products continuously.
> Everything should be delivered in the fastest way possible, in the shortest time possible, on the tightest budget possible.
because companies that did this is rewarded with more users and more revenue (than a hypothetical competitor that didnt). Darwinian natural selection is about survival of the fittest, not survival of the "best looking" or "best performing". And the determination of fitness is by the actions of consumers, not what they state verbally.
2 replies →
We have been beta-testing the outcome of incompetent software production processes long before AI. But LLMs do accelerate the slop production. And if what you're shipping is going to be a bloated buggy mess anyway, then LLMs really do make you more "productive".
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
I feel like there's this one random comment on HN that should be adopted on its merits alone, but everyone will ignore for no good reason. This will never happen because entrenchment and bureaucracy will strangle every product organization and every organizational reboot attempt.
It's probably the right solution, but the resistance built into organizations assembled by bad decision makers cannot be overcome. Maybe the best you can do is try to find a legal way to spin-off a competitor with a truly fresh start.
I've worked with good product people. They come up with good ideas, have great suggestions, leave latitude for implementation issues to guide some of the design, and work well in the constraints. It is kinda amazing because you might be given a good idea/ticket, and it just flows smoothly and naturally (building on top of existing good product design of course)
Having them around is like 100000x better than having just random engineers be doing product design. And "oh just listen to your power users"... come on folks, surely we know about designing our software into a corner right?
I'm saying all this but am very sympathetic to the pain brought by bad product people (or just like ... mid product people. It's a hard space)
2 replies →
> replace management with leading engineers
Wasn't this the whole point of agile and self organizing teams?
Then managers with 10 different PM* acronyms in their email signature got hired in, with no engineering experience, to lead product and software teams?
1 reply →
> I feel like there's this one random comment on HN that should be adopted on its merits alone, but everyone will ignore for no good reason.
Because it's populist slop, just like how every long enough discussion about government incompetence will lead to someone proposing all political leaders should be paid minimum wage to fix the problem.
Don't forget, the entire Web 2.0 winner ecosystem of companies that make up our modern Internet was founded by Engineer GodKings who leveraged their product prowess to gain a distribution advantage: Facebook, Dropbox, Slack, Stripe, Github, Whatsapp, Instagram etc. They were also the ones who transformed their companies to what they are today, nobody forced them to do this. Contrary to populist opinion, it's not because they were stupid or brainwashed, it's because the proposed scheme has known, predictable downsides that a leader actually has to reckon with while internet commenters only have to worry about preserving their egos.
1 reply →
Don't blame it all on entrenchment and bureaucracy. Rather show me the engineers who want to become management.
I have thought of the same solution myself before and came to the conclusion that I, for one, wouldn't want to be leading anything even if I had some ideas on why the product sucked.
1 reply →
> The solution is to gut your product org, replace management with leading engineers, and hire some of your most fanatic users. They don't need to do anything other than give their opinions, and use the product every day. Put them in a room with your top engineers, and the software will mysteriously get better.
This will just lead to massive selection bias. If all you care about are power users go for it. Otherwise you end up with a complicated system that is going to put off new users.
You can even have different power users who likes different parts of the software. Now it's totally possible to end up with extensive subsystems that don't really gel with each other
My anecdote for this is the the recentish redesign of Musescore. Tantacrul, the ux designer/product manager for Musescore has an hour long video on how he redesigned the interface and UX of the software. He is also a musician so you can call him a power users if you want but that was not the users he had in mind when redesigning the UX
https://youtu.be/Qct6LKbneKQ
> This will just lead to massive selection bias. If all you care about are power users go for it.
Simple things should work. The types of errors described in the article about feature creep and errors with simple user flows are all too common.
Just surf the web with the developer console open. It's not just "an error was thrown", but the kinds of errors and how they manifest. A rejected promise after localStorage access was blocked, after user clicked a submit button on a form that went through twenty seven delegation calls of Angular js using backspace-escaped method names to handle invalid HTML, and now the form can't submit because they did it using the latest tools, as per their resume. Crap like that. The level of quality of production web code is the cause of the poor user experience and outright failures. It is unacceptable and its cause is directly traceable to the design decisions and skills employed in its production.
There are good PMs out there watching in horror as their peers make changes and features that are obviously doomed (to anybody with a functional brain). I also write as much code as the median engineer on my team (skews junior). Please don't write off the entire profession based on many (most?) being awful - if you work with a good PM some day I promise you will find there is an important point to the job.
I want to agree with this, but I’ve watched the PM discipline, in concert with the even more dastardly MBAs, ruin everything I hold dear.
1 reply →
Part of me wants to agree with you; I've seen a lot of lousy PMs in my career. But when placed in the driver's seat with the same mandate to bring in more customers and revenue (or else), I've also seen developers drive products straight into the ground just as hard.
It's a nice fantasy about nerds being able to do better at everyone else's but that's all it is, a fantasy.
Yup. This is basically what Steve Jobs argued throughout the 1980s and 1990s, and championed as a philosophy. Adopting it, took Apple from being a struggling tech company on the verge of bankruptcy, to the dominant personal consumer technology maker it is today.
Why would engineers as a class be better at product than product people as a class?
A reason is different performance metrics. One bonus depends on "make number go up". The other realizes that making "number go up" degrades the experience for the product as a whole.
An example. I worked for many years at a major satellite TV company. The customer support department were spending a lot of time and money handling customer calls due to signal loss because of inclement weather, and they wanted something done about it.
Department X pushed for removing the 1-800 support number from the on-screen-display, because of the "quick win". No visible phone number means some customers would just give up. Who cares that this would frustrate customers even more.
Department Y pushed for reworking the UX flows around helping the user troubleshoot the problem, point them to their DVR recordings or alternative shows on broadband if connected, and automatically rebook the interrupted shows.
That's a function of choice of "better" metric.
Traditional engineers are "better" at making things work in a functional sense (eg: aircraft) whereas product people are optimised to make "better" selling products (eg: Labubus - functionally useless but Black Friday riot desirable)
Devs and power users create something like libreoffice or thunderbird. They are incredibly resistant to any change for any reason and hang on to what they already know rather than what’s best.
The reality is most people actually like the stuff Apple and such are putting out and like modern UX more. The only bad stuff is deliberate enshitification which is pushed by financial incentives rather than product people being incompetent.
The financial incentives draw incompetent people.
It’s happened with finance, law, management consulting, and now software.
1 reply →
Mostly agree and would add that product managers should be responsible for the commercial success of their products. That means spending more time deciding what market to be in, how to differentiate, how to price, how to drive adoption.
For the most part these are not strengths for devs and power users.
Are they not? Where I work PMs are closely tied to and own business outcomes.
If software is solved then the power users can be in charge because there is no technical moat. Competition should thrive as imposter-ware flounders, but it doesn't seem to be the case.
I've actually had the opposite problem much more often: Managers who were promoted due to their skill as a developer who have no skill in management or leadership.
I see where you're coming from, but my experience says (TLDR): lack of dogfooding.
In my current job, I'm building a system which has replaced the "SaaS" we used before. Not only was it fairly expensive, and sluggish, it was also not good, and in some parts even bad. And that fits a pattern I've seen before: that SaaS product, a survey platform, was built by a company that builds software, but doesn't use it. Engineers nor management are involved in making actual surveys and processing the results at any scale. The result is a system that requires bizarre hacks to make the system do what you need it to do. OTOH, I work right next to the people that use my software, and some of which have a lot of experience. We're small, independent, there's not much management involved, and everyone is aligned, and we all talk to each other.
Not knowing what your customers actually need is one of the big faults of software engineering, and in large companies, architects, engineers, and management can be quite far removed from their customers' experience.
I love this comment.
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
One of my absolute favourite features on KDE Plasma with Wayland is the global setting to control what can steal focus. It works wonderfully, and I always miss it when I have to use my work mac or windows computers.
See here for docs, under "Focus stealing prevention" - https://docs.kde.org/trunk_kf6/en/kwin/kcontrol/windowbehavi...
Yeah the obvious answer to software getting worse is to switch to FOSS. Use Linux/KDE. It's been great for a long time and only ever gets better. It's as if Windows 7 just continued to slowly iterate and add useful polish.
NixOS has a longstanding issue where library loading (and therefore program start, particularly GUI programs that load a lot) is n^2, but programs still all start in ~1 second or less on my n100 minipc. I still found that to be annoying enough to look into why it seemed so slow (and learned about the loading issue). Can't imagine things taking so long that you actually switch to another task. The same minipc can easily handle my 4k 240hz HDR monitor as well, and the whole experience is completely smooth.
The computer also just obeys me. It does exactly what I tell it to, and nothing more.
> It's as if Windows 7 just continued to slowly iterate and add useful polish.
That's a pretty good description of it, I even have KDE laid out the same way I did on Windows 7 (or more accurately I guess on KDE going back even further since Linux has been my main OS since the 90's with Windows relegated to gaming).
To this day - Taskbar shows window titles, only shows window titles for windows on that screen, there is no grouping, there is no ordering except order opened etc.
I think autonomously in terms of which physical screen a window is on and when it was opened relative to others so I know exactly where to look/it'll be - the Mac style (and Linux/Windows style at least out the box) defaults of hiding all windows for an application behind it's icon in the dock never made sense to me, I have widescreens why do I want a doc that only takes up 40-50% of the horizontal space?.
1 reply →
KDE is great, but
> The computer also just obeys me. It does exactly what I tell it to, and nothing more.
Is the biggest benefit and point. You can toss whatever UI/workflow style you want on top of pretty much any distro. I absolutely cannot stand the loss of user agency on modern software/operating systems. I have to use both macOS and Windows at work and I hate them almost equally (I hate windows a little more than I hate macOS, but because of Microsoft's behavior, not because of the UI).
I feel like every piece of commercial software and OS now is like Blizzard "You think you do, but you don't"
I actually had to backpedal on my gaming PC from Kubuntu recently, I'm sad to say. The support for the RTX 5080 is just too rough. Every game install was chased by an hour of debugging with Claude to figure out which version of proton to use, which launch arguments to use, which between-system-and-gpu shim profile to use.
I grant: The process is much more enjoyable than doing similar things on Windows. Kubuntu treats you like an adult and will tell you what's going on, and being able to copy the sometimes esoteric nonsense in those logs into Claude and get actionable information while not remotely understanding the underlying tech is fan-bloody-tastic.
That said it was death by a thousand cuts. Some friends I hadn't heard from in awhile asked if I wanted to get on Warhammer Space Marine 2 and luckily, I had it installed! ... and was able to play after a mere 35 minutes listening to other people have fun on the call, while I was trying to figure out why the game would only launch to a black screen.
So yeah, I wussed out and went back to Windows. I'll probably try again in a few months, and hope the GPU support is better. But that's also explicitly riding on nvidia to do, and they're busy selling shovels to the AI gold-rushers.
19 replies →
> NixOS has a longstanding issue where library loading (and therefore program start, particularly GUI programs that load a lot) is n^2, but programs still all start in ~1 second or less on my n100 minipc. I still found that to be annoying enough to look into why it seemed so slow (and learned about the loading issue). Can't imagine things taking so long that you actually switch to another task. The same minipc can easily handle my 4k 240hz HDR monitor as well, and the whole experience is completely smooth.
KDE actually solved that long time ago with kdeinit (https://web.archive.org/web/20010517071320/www.suse.de/~bast... and follow-up work by Lubos, see e. g. https://conference2005.kde.org/slides/kde-performance/index....), but the new crop of developers didn't notice much difference on their high-end systems with SSDs, so they ripped it out.
KDE has a much older and richer history than windows 7. It’s been trying to be a safe harbor for Windows users to land in Linux for a long time.
9 replies →
The problem is that I can't still buy a laptop at Media Markt, or similar consumer store, with a Linux distro pre-installed, and if I could, it would be OEM Linux, just like they do with Android, WebOS, Netbooks, whatever.
Outside Internet places like HN, most consumers aren't going to Tuxedo, System 76, or building their own Linux PC.
Thus commercial OS platforms keep winning, and the owners are anyway the ones that sponsor most FOSS projects.
Miss Windows 7 by the way, it was when I gave up on The Linux Desktop.
8 replies →
I've spent 6 months in KDE after years on Windows, and KDE is crap in both UX and number of bugs. I love the idea of open source, but there's a long journey ahead to even match the state of Windows 2000.
1 reply →
I so want to agree. I have been a Linux user for almost 2 decades now and I still can’t close apps by throwing my mouse on the right top corner and clicking. It works on “KDE apps” and but not on Firefox so I am guessing GTK apps.
The idea that I need to have window decorations and the “GTK window decorations” configured separately is just …
Anyway, the point is it’s never going to be consumer friendly. Office systems managed by IT teams can switch to Linux no problem. People just complain about “weird work computer setup” and move on. But personal laptops aren’t going to be an attractive proposition.
1 reply →
It is interesting how Linux and FOSS in general is just providing a better UX these days. I have to think its because without profit motives, people do things for passion and maybe that leads people to write code the right way instead of the "it works" way.
I use KDE on Bazzite. It has a couple killer UI features over Windows. It can label bluetooth devices (so I can have blue dualsense controller, pink dualsense controller, white dualsense controller, etc.). No clue why this doesn't work in Windows lol. Also the super/win + arrow keys are more predictable, super pgdn is minimize and super pgup is maximize, so I never find myself accidentally minimizing windows when trying to move them to a corner. My wife was able to easily install and play the Sims with all her mods as well. I also use Bazzite specifically because it's atomic - so when I make the mistake of giving into temptation and updating shit once every month or so, if it's broken I can just revert it.
But I will say I've had a ton of failure to wake up from power saving issues (resolved by just disabling pretty much every power saving feature, which I was gonna eventually do anyway because I want to be able to remote into the machine), and VLC can cause the UI to lock up because of some XWayland nonsense that they're still trying to fix (I just use Haruna, KDE's default mpv-based player, and it's mostly fine). It's a little silly and was quite frustrating that Linux is still dealing with this shit. A more minor (but still irritating) issue is that each taskbar has its own set of pinned applications (instead of just being identical like in Win10/Win11), so if I change the order on one I need to manually go change it on the others.
Overall, I like it because it's good for development and creating other stuff, the filesystem is fast as fuck (way better than WSL) it's obviously less actively antagonistic than Windows 11, Photoshop has gotten worse so I've switched to Krita which works great in KDE, and I've not been surprised negatively by anything after dealing with the previous paragraph's issues, but a non-technical user might struggle to deal with maintaining it.
> Yeah the obvious answer to software getting worse is to switch to FOSS. Use Linux/KDE.
Not an option if you have to deal with iOS ecosystem of crapps.
> Use Linux/KDE.
Yep. I, too, get more productive by spending a PhD worth of effort on choosing a window manager.
4 replies →
I think this is less a "macOS lacks the feature to prevent focus stealing" and more they never even imagined the scenario where it takes time for the app to open. Instead of even considering that a user may add inputs while waiting for launch, potentially signaling that they are no longer requesting focus from the program they clicked on, they simply designed for the optimistic case where there never IS time for the user to give these inputs before their intention of opening the program is completed. Not saying it's any less bad from a user's perspective, but I think there's a difference in mindset here.
In my experience (admittedly a bit dated now) Mac apps always take a few "bounces" to launch and be ready. There are a lot of nice things about MacOS but snappy application launches isn't one that stands out for me.
Having owned a good number of Macs and one hackintosh in the past, that would be very bizarre assumption to overlook. App icons bouncing while something loaded was never a rare thing.
IMO, nothing should ever steal my keyboard focus. As soon as I've typed a single character, whatever happened before, too late for you.
Seems like the programmers at LinkedIn never imagined that the network isn't reliable, and can't invalidate the session on actual logout; it only happens when whatever page is replacing the logout page finishes loading.
Is it could be a bug (IMO yes, a credential disposition / security bug), or it could be a "feature tax" to keep the tracking context hot for whatever page you logged out of LinkedIn to avoid being tracked...
It’s probably the lack of distinguishing between a window obtaining focus because the application just launched and the window of a running application requesting focus for some other reason.
Nevertheless, the OS could conceivably track whether there was any focus change since the process was launched or since it received the last key-press or mouse-click event, and only allow the focus change when there wasn’t (and otherwise use a non-focus-stealing notification mechanism).
As always, Apple has designed for the happy flow, and nothing else. Mac apps have never opened instantly, this is nothing new.
6 replies →
If anything, they've already gone above and beyond by allowing users to even make inputs while an app is launching.
Focus management has never been Quartz's strong suit.
A fantastic feature, but unfortunately currently broken (as in over- rather than under-zealous) for prevention levels other than 'Low': https://bugs.kde.org/show_bug.cgi?id=509990
This is the absolute perfect encapsulation of the Linux problem and the Linux appeal:
Yes, it has the magical setting to fix all of your problems and frustrations, and yes it’s a finicky broken bitch to actually get working for your use case.
I say this with love.
1000x this.
The single most soul-crushing experience I have on today's tech is the whoopee cushion.
I type this on a touch device that randomly Cheevers the words. (It literally changed "changes" just now. Henceforth, my word for this shall be Cheevers.) it Cheevers the words. It offers suggested words that you can tap to complete the word you're typing, and milliseconds before your finger makes contact with the screen, the suggested word flips to Cheevers and your finger taps that.
Now with the new improved iOS Liquid Glass, and possibly with janky web app development kits, buttons can move as you try to click on them. UI animation was supposed to help the user. But helping the user is hard.
Pop ups. The web needs more pop ups. More "Are you enjoying this app?" in your face.
But on the desktop, I recall complaining to a Windows (the OS) developer about stealing focus... in 1995. At the time, classic macOS tended not to do this, but it happened quite often multitasking on Windows, and I couldn't offer any constructive feedback, no obvious solution.
The sheer unpredictability, at 100 millisecond time scale... a few hours of this and I'm literally shaking. Because it affects muscle response, a startle reaction. Keeps firing away at the limbic system.
If I wanted slot-machine online gambling levels of simulation, I'd go to a casino. I hate this stuff. I hate where "engagement" metrics and the quest for more clicks has brought us.
Make it stop. I'm trying to work, here.
This doesn't happen on Windows. Slack loads in the background and the taskbar icon just pulses when it's ready. I have to switch to it manually from whichever app I'm working in as Slack loads.
This is one of the most consistently annoying behaviors I experience in macOS, and I feel so validated seeing others express this as well.
These are the small but extremely user-centric quality of life features that I like about KDE. Most applications I use aren't KDE based (Firefox, VSCode, emacs, movie) but KWin, Dolphin, Plasma panels have unmatched ease whih grows on you.
I never understood the OSes/desktop environments that stole focus by default. So many secrets/credentials have been shared because of that. Just give me a blinking notification that the app/window is available in the notification/taskbar/appdock area ffs. Yes that is one more click/alt-tab but that is much better imho. At least ask for preference on first ever login.
That is definitely needed. On Mac it is really infuriating how stuff (auto update etc) just take focus/pop up crap. I am literally never interested in it and am confused why I cannot just say [x] Force apps to mind their own business. We have f’ing notifications for this; why does it need a dialog window?
Maybe it's a hazy memory, but from 2007-2011 my main computer was a MacBook Pro. I swear in that era, when an app wanted attention it would bounce in the dock endlessly.
That was annoying, but it let you finish doing what you were doing until you were ready to switch focus.
3 replies →
I've really enjoyed how this started happening on windows that some pop ups steal focus during full screen gaming; extra satisfying is that "game mode" is set to prevent that. It's like a little minigame to boost my aggression level.
My "favorite" aspect of the Slack web app, which might have been fixed, as I haven't seen it recently, is if you typed up -> r (I believe it's r) to open the emoji picker, typed a few characters (e.g. "eyes") and pressed enter. Well, if the emojis hadn't loaded by then (and apparently they're loaded fresh every time), they would pop in and often, the a different emoji would be picked than the one that was visibly highlighted when I pressed enter.
My Arch Linux KDE Desktop with the Haswell i7-4770S CPU (from 2013) actually feels snappier than MacOS on my MacBook Pro M4. Sure, the MacBook has far superior performance overall, but if you just want to move some windows or get a response from a right-click, it just feels slower.
I am doing my best to implement a rule with apps where the third time in a single session you bother me about something that has absolutely nothing to do with the workflow I opened to app for, I uninstall the app. I don't want to update my spreadsheet app, I want to work on this spreadsheet. I don't want to tour the new features from the last update, I want to work on this spreadsheet. I don't want to sign in in order to access an AI companion (which I also don't want), I want to work on this spreadsheet. I damn sure don't want to leave a review in the app store for you and at this point you don't want me to either. You want me to work on this spreadsheet.
Between that and this insane thing MacOS does where when I click an app in the dock any random app opens up (and, per above, begins barraging me with things designed to "direct" my attention) I'm ready to switch to something whose primary feature is not acting like the dev team spent the last ten years trying to arbitrarily bump the number of features up and ending up with a giant pile of buggy features that nobody asked for.
And for my final gripe, at least for the next 15 minutes, trying to teach a computer how to do what I mean instead of what I say was a mistake. I learned computers back in the day where there was no attempt at interpretation of intent and instead the machine did exactly what I told it to, and that's how I prefer it because it simplifies the problem space when the machine is misbehaving. I told it to do the wrong thing. That's the only possible answer. But now there seem to be so many layers attempting to interpret meaning from actions that the problem space expands to make room for the idea that I told it to do the right thing, but it guessed that I meant something different and then did that instead. As an example, just trying to highlight something in my Mac's terminal app so that I can copy/paste it. I click the terminal app on the dock, and focus switches to that terminal app but also docker desktop, which is on top of the terminal and doesn't go away when I click into the terminal. Instead I have to interact with docker desktop. So I minimize the app I never asked for, and actually have access to the terminal. I'm using the built-in touchpad and have to select an entire line, so I start from the right with one finger, click and drag. But another finger, or perhaps the heel of my hand, gets close to the touchpad and MacOS is SO EXCITED TO HELP that it decides to interpret that as a right click which results in my selection getting interrupted halfway to bring up the right click menu, whereupon I'm presented with the option to do several things with this approximately 40% of a CLI command including: search for it in webster's dictionary, convert it to spoken word, convert it to Chinese (my choice of traditional or simplified), or try to open it in finder despite it being a portion of a command and not a file.
All of this points to a Goodhart's Law situation where someone decided the size of the pile of features was the measure of the quality of a piece of software, rather than how elegantly it does the job the user bought it for. AI has also significantly increased the speed with which a feature that no one asked for and that doesn't work correctly can be delivered.
I’d have no software installed after a week!
1 reply →
On Windows, UWP was supposed to solve this (by blocking apps from taking focus directly, but having the OS/shell create an app window immediately on launch and give focus to it) but most apps aren't UWP apps.
That has been there since at least KDE 3 and I do agree, I remember learning about that feature. 400 years ago and still chefs kiss.
That would only happen if you were not looking at the text you are typing. A-Are you looking DOWN ON THE KEYBOARD?!
I think there is a law of the universe which says it must happen right after you've mentally decided to type enter but before your fingers have finished.
How would that global app ban help? You do want the application to steal focus when necessary. It's just in this case the user has made the decision to not wait for startup and switch to another app. Aggravating step - he was typing.
Is this workflow part of the Kwin settings? It's not interrupting typing part of the settings?
Any app should be ready to accept focus. It should never steal focus. When I start an app, and wait for it to launch, I am attempting to give it focus. I can withdraw that intent at any time by doing something else (e.g. switching apps) and the launching app should finish launching and wait in the background.
35 replies →
> How would that global app ban help? You do want the application to steal focus when necessary
Maybe you do. I don't. With this setting we can both be hapopy.
8 replies →
>You do want the application to steal focus when necessary
No I don't. We recently switched to Zoom at work. Meeting notifications steal my focus (Windows 11 device) and it's fucking terrible. Nothing should ever steal focus.
I can not think of a single scenario where stealing focus would be desirable.
Also, the presumption that I'm going to wait around for 5+ seconds whilst an opens is unrealistic.
3 replies →
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
I still don't understand how a full focus stealability debounce is not the norm. If I am in the middle of writing, or interacting with one UI bit in any way, no other app should be able to steal focus, full stop. Add an annoying popup if you want, make angry computer noises, flash icons, I don't care. 99.9, if not 100% of the time, it's completely unrelated to what I'm doing and can absolutely wait. While some OSs have something along these lines, they also give the tools to bypass it (I'm looking at you, Cisco AnyConnect! Being connected after clicking on connect is not an emergency!)
Imagine you're working in a terminal and an app decides to steal STDIN. Why do we accept that for a GUI?
Yes! Few things piss me off more. It boggles the mind that this behavior is the norm, and it happens all the time! There are practically 0 situations in which I want something to automatically steal focus.
Curiously, macOS is capable of putting a recently opened app out of focus. It happens consistently on my laptop when I haven't rebooted it for a while. It may be a bug, but it could be a feature, especially when it's conditioned by the user clicking in another window before launch completion.
For me, macOS seems to put opened apps out of focus when I have started doing something else since launching them, or when they were launched from elsewhere than the active app (eg by a terminal that's not in the foreground).
For some reason I have to deal with the opposite problem and have to click twice on a new window to get keyboard focus. Many times I'll switch windows (eg. from Messages to the browser), start typing and accidentally end up sending someone a message instead- even though the messages tab is completely out of view.
You can't really debounce it easily due to how the OS event queue work across processes and windows. One fix could be to not bing the focus to newly open windows (like you could in X11) but that's not what users want.
> but that's not what users want.
You don't know that until you ask users. That would be a much more useful question than those boring "tour guide on first login" or "please activate cortana/copilot" or "do you want to sync to onedrive" stuff one gets notified on some major desktops.
My preference is focus follow mouse, no focus stealing on new window opening.
2 replies →
> annoying popup if you want, make angry computer noises, flash icons, I don't care.
I do, this is also pretty bad. User focus is more valuable than that
I agree that software becoming worse (in some sense) but I don't blame AI.
My experiences as a user haven't really changed. Streamers fail to cast to TVs. Browsers are devices which reliably and efficiently propagate red console text and 500s from companies to you. I still see bluescreens on public touchscreens.
Uncle Bob nailed one reason why the industry isn't getting better: the growth of programmers is exponential, such that half of all programmers have less than n years experience (5?).
I offer two additional reasons:
Firstly, you hone your skills doing individual algorithms on a single thread, where it's OK to get it wrong and change it as many times as you like.
When you get a job, you don't even realise you're in a distributed system and the getter/setter model you practiced on is woefully inadequate for interacting with partner systems, cqrs, event-sourcing, auditability, idempotency or whatever else is required.
In short, 10 years of practicing writing for-loops and data-structures will not translate into building a system that customers can access via their phone and multiple tabs of a browser, at the same time as a database schema is being updated.
Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
It seems like the languages have been increasingly targeting the beginner segment (C++ -> Java -> JS -> Python), while the tasks have been getting more complicated (b2b distributed systems, 24/7 uptime, millions of users, resistance to hackers, machine learning, etc.)
> 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
And then when the MVP is done, it magically becomes the shippable product. Then just when the team is getting to grips with how to improve the product, management does a reshuffle and moves teams around. "EXCITING NEWS GUYS, congratulation to Jimmy Whatevs for being promoted to SENIOR Director, he will now head-up the cross-functional-operations team which will be folded under the product-support division."
> And then when the MVP is done, it magically becomes the shippable product
There is a reason for this: no one cares about bugs. Cramming down features for sales to close the deals is all that matters.
Ran into a bug? Who cares, people will just refresh the page or restart their computers. Average consumers already treat their computers like appliances, they happily wait 15 minutes for a page to load and are willing to swim in an ocean of ads.
If we want quality software, it has to be tied to the bottom line somehow. So far, it doesn't seem to be the case.
Product guys always optimizing for green status reports over actual working products that please customers.
2 replies →
> Secondly, while I don't think there is any realistic alternative to agile development, it seems that nontechnical POs have captured the software lifecycle. 'Focus on happy path only, for the MVP' is how you build buggy software. Good developers can learn that this will guarantee the need for a rewrite in the future, but POs never will.
100% agreed on ProductManager-ism/MVPitis is a cause of so much of this.
One can "do agile" a bit less literally & stupidly.
For a lot of software infra or even user facing apps, you really can plan out more than a sprint or two. This might be the MVP, but there is prior art in the space / competitors / devs with experience on the team. You probably should think about what the app should be capable of 3/6/12 months out.
When you follow a GPS for directions, you generally take a look at the overview first, make sure it's not driving into a lake or taking you to a similar address in another state. My car even shows me the next 3 steps on the path as I go, I like that.
Agile should not mean blindly "take 1 step and only then contemplate what step 2 to take once you complete that 1 step". And yet that is how MANY shops implement it in practice.
They made programming so simple any idiot could do it. So they do.
Uncle Bob has fully embraced AI and is risking becoming part of the problem these days.
Uncle Bob already became part of the problem by some of the stuff he wrote in Clean Code (like using mutable instance fields instead of method parameters). Luckily he isn’t perceived as very relevant anymore.
6 replies →
> it seems that nontechnical POs have captured the software lifecycle
Yes, this dynamic has indeed been screwed up in many teams!
In my perspective, you can’t be a good product manager for a technical product without being somewhat technical yourself. You simply won’t understand your product well enough.
The only dynamic where that works is if the product manager acts more as a supporter and challenger to a team lead by an EM or technical lead, but then product manager is probably not the right title.
I generally agree that software has been getting worse, and AI isn't the cause, necessarily, but certainly is accelerating the decay.
Maybe a corollary to the growth of programmers is that pride/artisanship in the work decreases. Bugs happen more when the engineers dgaf, or aren't as dedicated to the craft. Software was pretty solid when I was a teenager (I'm thinking Windows, MSN Messenger, Flash, CDs, general web usage), complaints about tech/bugs weren't as common (or when they did happen, they were major, like BSOD). But I could just be romanticizing the past... idk.
In any case, say we were master woodworkers and we took pride in handcrafting great beds, but now the machines can make beds 150% faster at a 70% defect rate. There's 3 new problems: 1 is obviously that 30% of beds are shit, 2 is that woodworking as an industry is on the decline (expertise vacuum), and 3 is that the master woodworkers are disillusioned, their motivation and utility is decreased.
I believe that in time, the beds will get better, sure (the machines will improve). But in the meantime, huge numbers of people get shit sleep.
As an old greybeard now, you're romanticizing the past.
Past software was just as horrible, we just tended to use it for less things and incorporated its failures into our lives transparently. We'd reboot Windows every day so problems wouldnt stack up. We'd use less of the features, and use far less multimedia components like video and sound in the software. Flash was always a giant insecure piece of crap, it may have been better than other similar software but its issues were legion.
1 reply →
Artisanship takes a back seat to the business peoples demands, and the business oriented people have been melding with software people for decades. Still, classes of bugs we used to have all the time are not very common anymore.
But watching large software projects fail over and over again, even when craftsmanship is demanded, often times the only way that good stuff gets in is the unpaid heroics of developers passionate about the project, who want it to be good. There’s so… little space for that nowadays, because there is so little stability in people’s lives.
1 reply →
You can build software fast, but the more time you take the more you can be confident about it being correct.
This was true already before AI code generation, but AI code generation means the definition of “fast” has shifted like crazy. An experienced engineer can now build in an hour what would have taken them a week.
But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
Unfortunately for people who like their software to be correct (stable, performant, bug free, etc), it seems like way too many software developers right now are happy to take the gains of the former but ignore the tradeoffs of the latter.
(at the same time software quality for mainstream consumer goods like the kind of thing OP complains about in their post has been down the drain for a long time now, and it seems likely many of the examples they give are pre-AI)
> An experienced engineer can now build in an hour what would have taken them a week.
From what I've seen, I don't think so if we're talking about like-for-like quality. Maybe as an absolute best case scenario, but more typically it's more like you can build in an hour with AI whereas without AI it might take you 2 or 3.
Even thats highly task dependant, and doesn't scale as you'd expect (eg 1 hour == 2 hours, but 1 month =/= 2 months), and at times even using AI can slow things down, at its worst case more severely than at it'd speed you up at it's best.
Now if you're willing to throw like-for-like out the window, that 1h==1w could be achieved easily, maybe even more. But then again, I feel like I could do a lot more in an hour if I didn't care about quality either, not as fast as AI but much faster than I am currently.
I think I can say I got some 10x speedup with the recent, more powerful models (from Opus 4.5 on). But then again, I am just building CRUD websites, although sometimes there are some challenging tasks like some fancy graphs/plots to show, and some API integration in the backend, etc... but these are the use cases that models are really good at. I have 0 worries about scaling: my apps are internal, so you can think of 10-15 concurrent users at most, usually 5 or less, and 100 or so users in total, which eliminates the whole class of complicated scaling problems. 99% of the devs are probably on the same boat: our day-to-day problems are not complicated, dont need any deep algorithm or data structures knowledge, and models speed up this type of work a lot. Of course, they get very limited on complicated problems
> From what I've seen, I don't think so if we're talking about like-for-like quality. Maybe as an absolute best case scenario, but more typically it's more like you can build in an hour with AI whereas without AI it might take you 2 or 3.
The real problem is that the current paradigm in software design is to aim for the bottom of the barrel or a minimum working thing that can make some money and then move onto the next thing. I think in a way AI is a direct outgrowth of that mentality, because so little emphasis is placed on the final 5% of polish that brings software to the level of amazing.
It's much more evident in photography, which is what I started doing after I quit software. You can see that people are editing photos faster and better with AI, at least at first glance. But the end result is almost always sloppy compared to someone who takes time to think about their edit. I think that basically characterizes AI: yes, it makes things faster (or so I'm told, I've never used an LLM), but it also SHIFTS the emphasis onto rapid prototyping of superficial things.
Can those things be polished? Maybe. But it doesn't change the fact that less and less polishing will be done and people will focus more on creating new, superificial things in the long-term and we'll lose a lot of potentially great, hand-crafted things. Not to mention that AI adoption will likely accelerate even more levels of frameworks, which in turn means more hardware upgrades.
Totally agree. But we're in such minority that it's super depressing
1 reply →
Really depends on the engineer, domain and circumstances. I find the best multiplier from AI when working with tech I’m familiar with, in a specialty I’m less familiar with, on a brand new project. I have the vocabulary to describe what I want and how to do it but the details I’d need to spend hours learning are handled for me.
There are absolutely projects I’d done in a week a few years ago that could be done in 3 hours now. But if you need to work with that code for the foreseeable future you’ll need to actually read the generated code.
> You can build software fast, but the more time you take the more you can be confident about it being correct.
> ...
> But it (right now) does nothing for the confidence about being correct - you still have to put in the extra time to ensure the software is correct to your desired degree of confidence.
You're partially correct - what gives confidence is duration in the field. No matter how long you take to build something, seeing it work in the field for 3 months gives me more confidence.
You have to release, early and often.
And break ux for users often and piss them. There are short reversibile decision that can be taken fast, important decision requires a lot of thinking before changing to often and alienating your users
Incentives.
People get promoted, get bonuses based on some shiny new tool they developed. Every year, they create something 'new', claim lots of features. Their managers/directors/VPs also encourage this because they need some 'winning' and 'automation' slides to brag about. Nothing gets solved. In fact, things get worse. The new tool and old tool and oldest tool all coexist with 20 other tools developed for the exact same thing in a different org. Each org (SVP reporting to CEO) is MASSIVE and everybody wants headcount and success stories. All these things will be happening at the same time. Those who are capable of making the biggest mess get the biggest pay and bonus, they get promoted and they move nearly year 1 - 2 years, within the same company or to another. Repeat. The ICs (individual contributors) who have values and explain why this is a bad idea are usually moved to Support or Ops roles or migration projects from old to new.
I've seen perfectly working systems continuously being replaced with worse and worse tools. Most of the new tools require a lot of people from several departments, just a guy who understands business and develops a perfectly working PHP/CRUD is a no-no. It has to be replaced with a complex monster with react, apis, mongo crap. And on kubernetes. Hybrid cloud.
Coding has been solved, but for who? Only for those cowboys who create POCs and get big bonuses. The 'product' they make is largely irrelevant. Sure, they can make it faster and claim to be masters of AI. Again, bigly bonuses, because now the incentives are driven by mandates from C-suite/VPs who are desperate to claim successfully using AI. There is very very little that can be realistically solved with AI. People have tried and the first thing they do is replace perfectly working internal search tools with AI or AI chatbots. Think about something like your people portal, for a large company, this would be thousands of document. The AI driven search portals are a million times worse than the earlier full-text-search engines that are usually pretty accurate. After that, they will be lots of dashboards generated for executives. Its as if execs have any clue about the business, they know nothing about the business and now they get thousands of dashboards tracking millions of meaningless metrics.
AI is an enshittification accelerator. And the enshittifiers (individually as people and collectively as companies run by scumbags) are richly rewarded for this 'success'.
As a non-technical person compared to the rest of HN, I think this has always been the problem of software made for non-technical audiences. The design was driven by programmers’ heuristics and trends in technology stack (e.g. if a company can hire a lot of JS devs bc JS is trending, they will choose JS even regardless of whether JS is the best choice for the problem).
There was a brief stint of UX, ergonomics and HMI getting traction in enterprise, and, imo, the biggest technological achievements in consumer software has been in the realm of UX in twenty first century. But it lost its importance, I suppose, as you don’t need to make good software to make money off consumers.
Whatever capabilities AI gives to programmers in terms of speed of development, etc, doesn’t change the fundamental behavior —- commercial software is not developed for humans. It is developed for investors, markets, around operational needs, based on CEOs whims, developers’ personal itches, relying on approximation of human experience that gets regurgitated through layers of commercial processes of product managers, UX researchers (who, if present at all, often don’t get invited to the conversation until there are buttons to move in a GUI of an already existing product). Where human experience is considered, it’s from the perspective of our natural weaknesses with the goal to exploit them to maximize profits. Hence why 21st century tech gave us all the dark patterns, feeds, social media, LLM chatbots, etc.
Even when I talk to individual engineers who are committed to creating something good, wholesome, something that they can be proud of -— many think and reason about the problem in a way that sounds like they are trying to engineer human experience the same way one would engineer instructions for machines.
It will never get better, IMO. AI only exemplifies what already exists.
I think the UX and stability related quality will drop at such a bottom low, that some crazy companies will revive the arcane practice of UX and even study it with users.
I am not super optimistic that it happens fast, but we will end up in a situation that everything becomes tedious, annoying and broken. Companies who will do it right will inspire the whole ecosystem. It will be satirical to see the full circle happening, but it's inevitable if we want to keep going with digitalization, even if it means to bring back more hardware buttons.
I am adjacent to UX as a field, and, IMO, it’s in deep crisis itself. I don’t know when or how “ergonomics” in tech became “how to sit in front of a computer” and “design” became “creating visual assets” but even people who work in the field often reduce their jobs to simplified and corporate-optimized simulacras. I am less confident about what’s happening in academia but based on my casual browsing, it’s not better.
You need good experts to do proper research, and those haven’t been able to learn, practice, or improve their craft in any serious manner for a while.
2 replies →
people have been complaining about software going downhill ever since hand crafted assembler was replaced with C and a compiler. it's the classic "old man yells at clouds".
As I said, for non-technical people, software en masse has always been difficult to learn and use.
I don’t think it’s getting “worse” or that it was “good” back in my day.
It's all too easy to dismiss valid concerns as it's just the boomers/somethings complaining about "back in my day" and everyone getting on their lawn.
Software definitely improved for many decades, then at some point started going downhill. Where that happened is up for debate. But UI/Software/Quality is NOT one of those "oh it's just the new generation complaining about the old days" or old people "reminiscing".
Software quality is tied to the market incentives and always has been. AI isn’t going to make someone care about writing robust software and that is why we don’t see better software all of a sudden. The market doesn’t rewards apps that don’t break on every update, it doesn’t reward cobbling together multiple independent solutions, as opposed to using Microsoft as a one stop shop. If people could have gotten away with this in the early days of computing they would have, but computers were too low powered, and the knowledge too scarce.
There is a saying
Any idiot can build a bridge that stands, but it takes an engineer to build a bridge that barely stands
We found the limits of what it takes to make software stand, and what software paper cuts people are willing to deal with
"Software quality is tied to the market incentives and always has been."
Yes -- but. The market is irrational especially in a time of mania or panic. The AI phase we are in has mania, bubble aspects. There is no rational calculation about what is happening to software quality and is that good for customers or the industry (or individual businesses). We are too far into FOMO. It won't stop until it STOPS. Uh oh.
A friend of mine works in a niche software field at a small company. It was recently acquired and the whole technical team was laid off because the new director of engineering determined that they could replace the whole team with AI. All of the people who wrote the product were dumped as well as the whole cohort they had trained. Everyone.
But maybe that’s bad? Maybe keeping everyone just on the verge of leaving or getting hurt isn’t a good place for society to settle?
Given doing better costs money, and people don't want to pay for better, leaving that place is hard. We've seen the same play out with physical goods - the cheapness of just-good-enough-but-right-now-cheaply outcompetes quality, which costs and takes time.
We as society are choosing to be in that place.
1 reply →
Most software doesn’t matter and nothing happens if it’s slightly broken temporarily. The stuff that actually is critical is generally very stable.
Is HR aware you hold these dissident opinions?
You don't have to extrapolate much to conclude that's a general critique of capitalism.
Corporations aim to make the cheapest possible product that still sells because that creates the biggest profit margin.
If we're collectively unhappy with the outcome, that's the core value we need to change.
The problem is that the cost curve for completeness/correctness goes asymptotic at 90-99% so the cost up building complete/correct software is never worth it from a revenue perspective, and only happens if there is significant liability risk from defects.
So what's our (literal or metaphorical) breaking point here? How much more does things need to break before people just say "enough" and stop consuming into the declining quality?
I feel like the only real answer is "we just don't know". But in an attempt to actually answer this, I think the breaking point are different for different groups of people.
If you are struggling to pay the bills, you probably could care less about software's 'decline', you're just trying to survive. Maybe if something catastrophic happened it would be enough to put you at that limit, but software could stand to get much worse before then.
If you are forced to interact with technology a lot everyday, then what might be a paper cut for someone every once in a while, could be literally hundreds a day for you. In that case you are probably very near or at that threshold already.
As a society, I don't think we would see cracks until we start to see multiple community scale disasters related to poor software, or small disasters in highly visible areas like healthcare, planes, etc.
Reddit on iOS safari has been getting incrementally, nearly unusable worse. It had some sharp edges before but it seems they are moving faster now with the same or greater defect rate and shit is getting bad:
- URLs commonly auto-link to the things behind them, even including spaces and words.
- Pinch to zoom on the homepage causes the page to reload. Forcing you to lose your place/content.
- I sometimes cannot click to play videos on the feed. I can click through the comments and then click play on the player.
- Comments pasted from perfectly valid markdown render as whitespace deleted garbage
- Clicking "reply" then tapping in the box makes it disappear. I literally cannot see what I'm typing. I have to scroll to the bottom of the page to find it.
- After typing into the comment box the "comment" button to submit it is not visible
- Being a mod: The dropdown for selecting a removal rule will not let me scroll past what shows on the initial dropdown.
- Rare but critical interfaces like banning a user (or managing an existing ban). Essentially cannot be used on mobile.
- When typing responses to people as a mod, depending on the box sometimes I "lose" the comment button.
With Reddit I think it's on purpose. They want to drive users to the mobile app. Maybe they aren't introducing bugs on purpose but not addressing them isn't a accident.
X/Twitter is getting progressively worse for users not logged in. At this point you need to click away the cookie prompt and a prompt begging you to download the app. When that is done you can read the linked tweeet, but you can not play any videos embedded or click on any pictures or navigate up or down in the thread. In a couiple of months I guess they will only display the first 160 characters and nag you to login if you click on 'read more.
1 reply →
The pinch to zoom issue is actually a WebKit bug (https://bugs.webkit.org/show_bug.cgi?id=305622), although technically the root cause is Reddit using a ton of memory
And, I noticed yesterday, old.reddit.com now requires login. Which renders a blank page on my phone. Check and mate.
I've read this on here previously but still can't reproduce it, neither from home nor mobile IP (this is in Germany).
Are they slowly rolling this out? Did you connect via VPN? I suppose they might finally feel ready to close the doors...
3 replies →
My conspiracy theory is that Reddit intentionally makes the iOS Safari experience awful to drive people to download the app.
I’m sure it works.
But for me, it drove me to stop using Reddit on my phone.
I presume that's in addition to all the intentional enshittification.
Right now, the majority of companies I interact with seems to look at their now (let's assume) increased capabilities, and turns up the speed. But there's other knobs to turn up instead. Robustness, quality, user experience.
Optimistically, I think we might just enter a new phase at some point, where businesses make very conscious decisions about what to invest in to differentiate. Like, everyone has support bots now. Where do we invest, absolutely stunning human support? Or is support not that key and we should invest into being the most reliable? The most enjoyable to use?
One can hope.
I think it's fair to say that AI amplifies our abilities, but it needs to be in the hands of people that know what they are doing.
If developers are producing garbage to begin with, chances are they still produce garbage just at an accelerated rate.
But that defeats the whole point of AI, as far as business is concerned. You could describe most programming languages as working the same way and having the same limitation. If this is true, then AI will simply mean you'll have very highly paid AI experts (who know how to do X with AI) that you absolutely need to hire or your competition will run at 10x your speed.
1 reply →
Can confirm. I just had a nightmare experience with a company where the customer service sent very ChatGPT-like replies and seemed very unreasonable and AI like. I had to threaten legal action to get my money back.
Bizarre experience.
Role Collapse might work in this type of situation: prompt your own ChatGPT to decide a refund with a very permissive refund policy, copy its thinking, paste into the next support message after your prompt, and their ChatGPT may believe it's its own thinking.
The Role Collapse attack is that LLMs turn out to ignore role tags (input, output, thinking) and identify role using writing style alone.
1 reply →
> Where do we invest, absolutely stunning human support?
That's a complete non-starter unless you're serving some extreme luxury premium market with absurd margins, and/or your customer interactions already require a lot of human involvement. So 99.9% of digital products are right out.
Good human support is absurdly expensive and will easily make your product 10 times more expensive than your competitor's. But almost no customer is willing to pay 10 times more for good support.
I disagree. I’m biased but the customer eng/support team we created at stainless was really good and that was a key differentiator during sales calls and post-sales. It’s expensive if you see it as an afterthought and just an expense you would prefer to avoid, but we approached it as an enabler role, a multiplier of sort: ensure customers feel they engage with peers, provide guidance to the eng teams, enable salespeople to engage meaningfully with technical teams, etc. For like a year it was basically just me and an awesome colleague handling the whole thing full time. We took the very explicit decision to have it as a very technical role and designed a culture that sees it as essential to the business (because it was), and that worked really well IMHO.
If you create a startup you really want to focus on a small audience that you understand and know really well, instead of chasing everyone. And for that a support team is one of the most important asset you have
the key differentiator is whether your business is aiming to provide a quality service, or is desperate to eek out as much profit as possible.
my example: A&A — uk internet service provider.
costs like twice as much as a normal service per month. but if i have a super technical query im on the phone with a fully fledged engineer in about 2 minutes flat. the kind of engineer that can discuss complex dns issues. i’ve had one help me debug a dns issue from a work site. it turned out quite quickly it was nothing to do with them but he hung around on the phone for 10 minutes anyway.
the first support person i ever spoke to was michael from wales. if i had to call up he was the first voice i would hear for years. he recently moved on and i was sad. we’d have a decent chat. big up michael from wales.
so, as it applies to at least one existing business — you are dead wrong. it might be twice as expensive as the people trying to maximise their profit margins, but it’s definitely not 10x more.
I paid less for internet in the late 90s and had a good support to call. There is no way "absurd margins" are required.
Apple has pretty stellar support in my experience, and while I don't buy Apple stuff for other reasons, this is a strong attractor. For B2B products/services, it can be a huge differeniator as well, in my experience. But it was really just an example, it might not be the call most companies make. Maybe most will still just invest in being faster or cutting costs. I just hope that's not how it's gonna be.
3 replies →
Plenty of companies are willing to pick RHEL or paid Ubuntu for that very reason, even though they are infinity times more expensive than free Debian
Software's absurd margins was like the whole pitch.
1 reply →
The fact that I can speak to a human to refund a $2 item on Amazon proves how wrong you are.
15 replies →
Counterpoint: Take a look at consumer cellular. I would say it’s drastically cheaper than verizon, at&t, or t-mobile, but the customer support is better than all 3.
2 replies →
If your product MSRP goes up 10x because of a single OPEX line-item, the failure isn't the product, it's the business leaders.
Bring back all the engineering rigor that people complained was too slow to keep up with VC-protected Silicon Valley competition.
And bring back change & configuration management processes and documentation reviews. All the boring slow stuff.
Except now make it part of your CI/CD pipeline.
I agree with the author. I think everybody has strong or at least mixed feeling agent agentic coding and to me, the argument is always focused on the product itself.
I come from sciences, where the problem of AI is more linked to AI-generated papers rather than coding. Again, the real underlying problem is the pressure to publish at all cost and the ranking grant system which rewards number of publication rather than quality.
I'm sure you could say the same of AI-generated images, sound or video used in advetising, or any field where AI generation offers a shortcut. The problem is always that you need to produce as much results as fast as possible and quality is not the objective. The problem is always the KPI.
> Software may have been better back in the day, but that was mainly because it was much simpler. ... The bar for “user experience” has kept rising, but everything has become increasingly fragile.
It was simpler, better, more stable, _and_ had better UX.
Complexity does not equal quality. In fact, it usually points to poor design. Programs used to be seen as utilities, which enabled the same kind of mentality you have to any specialised machinery: "Here's a thing that can make your life easier. Learn how to use it". Now programs try to be all-singing-all-dancing-all-the-time-changing.
> It was simpler, better, more stable, _and_ had better UX.
It had less features too.
Now, I do agree doing more doesn't mean that something is necessarily better... but I think the UX difficulty increases exponentially as more features are added.
Absolutely, and in my opinion it's a mistake to keep adding features. My word processor in the 90s did one thing, and it was fine. In fact, there's a niche crowd trying to re-create that experience right now (distraction-free "writerdecks"). All software used to be like that, and I for one was a lot happier with the situation.
We are not using LLMs to solve the issues. We are using LLMs for speed. Like we were using VC funded speedruns for "speed". Quality was never even in the picture. We just added LLMs to the current setup for speed. Neither the structures, architectures or decision makings changed. We just added another thing.
I keep thinking about another thing as well. Software development might be the only place were stability is punished. If your software works swellingly well, there is less people needed. You'll lose your job when the software is stable. So you either need a new project or the software needs to be crappy enough. And the companies don't give a damn about you.
Keep in mind we did have WhatsApp created with just 32 engineers until facebook bought it. Lichess.org has 2 people working on it serving to the number of people it does (millions?). It's the way we are making it. "Move fast and break things"is the shittiest way to make software.
All of the above works when the desired outcome is money. Not when it is quality of the product.
AI might have made things worse in the last few months but there have been a lot of bad trends on the desktop in the last decade, both software and hardware.
It is little appreciated how USB has regressed. If you have a full-size top-of-the-line desktop machine with plenty of I/O channels you have a huge number of USB 3 and USB C plugs and will have mostly a "just works" experience -- like you can plug in an external hard drive and not regret it. Try a laptop or a pint size machine (say a Mac Mini or a Dell Optiplex 1.5 l) and you'll discover there is no reliable USB 3 hub on the market Maybe you can plug in your keyboard and mouse, maybe, but plug in a USB DAC and a memory card reader and an external drive... "BONG!" "BONG!" "BONG!" Windows starts screaming that devices are dropping out and reattaching and God forbid there is a filesystem you care about on one of them. (MacOS is too smart for that shit, it just assumes the hub is crap and won't reconnect until you reboot)
Plug a cooler master keyboard into you dev workstation and you'll find it overloads the interrupt handling system and causes everything to be janky.
Probably the worst thing about Electron is that the #1 applications use it, instead of making a web application, is that they can't stand that you might be able to find the application and start it the way you start a usual application (or web page) or be able to find the window when you are using it or be able to close the application or move the application window like a normal application window or resize the application like a normal application window or that you might be able to see anything in the tray -- so applications like Slack automatically become crapplications by virtue of inhabiting your tray. It makes everything worse. It reminds me of the later 90's when every crapplet for your printer had to have a completely custom widget set and window chrome.
USB 3.0 powered hubs that give you more USB 3.0 supporting USB-A ports are pretty easy to find these days.
USB-C ones (that actually give you more than 1 additional USB-C port) are still more challenging, but they do at least exist now (after having been virtually non-existent for years). Caldigit, Plugable, Sabrent, and probably others all have models that will go 1 device port to 3-6 USB-C ports now, and are powered with decent power per-port limits.
I do agree the landscape is far more confusing than it was a decade ago.
Those hubs exist, but my experience is that you can't plug an arbitrary number of devices into them and expect it to work and it's not about power but about how resources in the computer are allocated to ports.
> If coding has been solved, why does software keep getting worse?
Because the premise that coding has been solved is false. :-)
I'd say "coding" has been solved, but that was never the bottleneck.
Coding is cheap. It has been for a long time. Ten years ago my company was outsorcing all its coding to the cheapest people they could find in India. But most of these people can't solve problems. They can't even identify problems, much less design solutions.
Code is a liability. You want as little as you can to solve the problems you actually have. That takes an engineer. Maybe AI will get there someday, but it certainly isn't today.
Engineers can certainly use AI to generate code when they need it... but in my experience I don't need much code to do my job, so AI coding doesn't help me much. My personal experience is that by the time I've reviewed the output and corrected the mistakes, I may as well have written it myself.
Coding is anything but cheap. You speak like someone who has completely forgotten how difficult it was to learn everything you now know by heart.
5 replies →
> the premise that coding has been solved is false. :-)
Not a problem.
But the belief that coding has been solved...
Coding has been solved in the same way that writing has been solved. Putting the sentences together is now easier, but having something interesting to say? That’s a lot harder. With the barrier to entry lower there is a lot of things that look good at the surface, but when you dig deeper, aren’t quite right. The nouns are in the right place and it has all the things school taught you a paragraph should have, but it’s just not an interesting story. That’s where all this software stuff is right now. It removed a barrier, but just like visual programming doesn’t solve it, AI can’t solve it either. It lowers the barrier but doesn’t solve the essence (is that a silver bullet reference? I’m not sure). AI can extrapolate and interpolate what’s already been done in fascinating ways but I need to see something new to really believe. Asking it to rewrite something it trained on (like SQLite or a browser) into a language that it was also trained on (rust or go) isn’t all that interesting from a software advancement perspective. I want to see imagination and so far I haven’t. But I have my required ai ticket like everyone else and maybe one day I’ll look out the window and be satisfied.
This 100%. Same goes with music: because of yt/tiktok, today it's easier to learn to play an instrument. Or even faster to use music software or an AI tool, but it's still almost as impossible like ever to make a great song.
While there is increased complexity on top of all the software thats being built today, I reckon the focus on speed (and shipping to prod) over quality has also led to the increasing number of bugs. The mindset shift from shipping quality products (not just software) to shipping something that is good enough has been the mantra of management in recent years. When business schools and tech leaders prioritize the idea that we need to be more agile and every sprint needs to be a production release, these are the results we get.
> I reckon the focus on speed (and shipping to prod) over quality has also led to the increasing number of bugs. The mindset shift from shipping quality products (not just software) to shipping something that is good enough has been the mantra of management in recent years.
I wonder how much of that is just what management always wanted. Peopleware (https://en.wikipedia.org/wiki/Peopleware:_Productive_Project...), a VERY GOOD book about software development written in the 80s, talks about managers wanting to sacrifice quality an how corrosive that is. It's just that in the past technology forced them to pursue quality: Software shipped on disk needed to be bug-free, because it made bug-fixes almost impossible. Software written by a human needed a human that understands it, who might have some pride in his work.
But now, with the internet and LLMs, we get to live in the slop-world the management has always dreamed of. More tickets, closing faster! Less headcount, less talk! Artificial workers that don't talk back! Who cares about all the rest?
Product managers shipping burndown charts.
Commercial software has been getting worse for at least a decade now, and the reasons are multifaceted and difficult to solve. They include the switch to subscription pricing, misaligned incentives at companies that make most revenue from "services" or, even worse, ads, the constant need to reinvent solutions to problems that were solved twenty years ago in order to show "progress", companies that build elaborate management systems to attempt to ensure that employees are replaceable, high turnover and a lack of institutional knowledge, and so on.
The ability to generate a lot of code will not solve any of these issues.
Commercial services have always been a thinly-veiled bureaucracy long before we even had computers. The move to the web just made them more powerful.
From that perspective, LLMs are a weapon meant to disrupt their power and shake out the businesses that are too weak to resist or too dumb to see the threat. It's not about "solving" code, but weakening the competition enough that they sell out or go away. The code is still as valuable as any other proprietary information, operations, plans, etc.
Software quality has been declining for long before AI was a thing.
Microsoft didn't need AI to make windows 11 as bad as it is.
The incentives are large companies are fundamentally not in align with making high quality software people actually enjoy interacting with.
In fact, I am pretty sure most of the examples he lists predate AI. Mac OS apps stealing focus certainly does. Horrible laggy car infotainment systems--hard to say without any specifics, but I've certainly had the same experience pre-LLMs. I've navigated the LG website pre-LLMs and it was busted then too.
The complaint is not the focus stealing the complaint is the lag of the chat application starting. So the problem in this case is electron and all the shit that slack has bolted on on startup because "who cares about start up time, everyone has it on all day."
2 replies →
I think MS devs don't even use their windows OS. How do I know this? Because every week my favourite applications list gets reset. Why would anyone do that?
Maybe they always test from a fresh image.
> Microsoft didn't need AI to make windows 11 as bad as it is.
I dunno what they needed, but Windows 11 was a lot less bad before they started using AI.
Just a little gripe, but near the end of the article he links to a site for something called "Omarchy" which appears to be a Linux distribution. If you click on the link, the only information available is in the form of a video.
If you're making a Linux distro, please don't do this. I will not watch your video. I was interested, and now I'm not.
I've heard the meme that Omarchy is for people who would like to use Arch but don't want to read the documentation or follow the installation guide. Having a video and no text sounds like it would align with that target audience. If you want information and not a video you'd want to look at Arch instead, it has an excellent wiki and the best documentation of any OS I've ever used.
Bad advice considering the success Omarchy has had in marketing it. Whatever they're doing other distros should take note.
Is there any evidence of people actually using it?
4 replies →
I'm a Linux user and this is the very first time I hear this name. Data set of one, which says don't base your marketing on that.
I mean, I'm an everyday Linux user and half the content I consume daily is about the Linux/FOSS world and today is my first time hearing of it. And all the information I have about it is from replies to my comment, because its website doesn't actually offer any details. Genius marketing.
4 replies →
Omarchy is basically just Arch with a bunch of configuration. It's not a particularly useful project, and the author is noted fascist DHH. So probably not worth your time.
Unlike arch it installs in 3 minutes and offline.
I think more precise terminology would go a long way here.
What is "a fascist" (in context of being labelled that on the interwebs). That could mean a lot of things.
As a reader, you learn basically nothing about DHH other than that some people might not like him.
___
So to fix that:
DHH has always been a very opinionated guy - with not all of those being agreed on, but there being usually some kind of point to them.
Starting somewhere late-ish last year, however, he seems to have dropped deep through the alt-right pipeline and started babbling talking points basically copy-pasted as-is from other talking heads.
So, in essence, he kinda stopped being opinionated, because that would require having an own opinion, and instead started just being yet another person not doing all too well mentally on the internet.
I mean the guy suddenly started talking about "body counts". What's his age again?
__
Of course, moral outrage happened but achieved absolutely nothing, because it's not the right tool for the job here.
29 replies →
A lot of the product misses come from large product teams where nobody owns anything, and where there's minimal internal goal alignment. I know that, at work, what I am incentivized to do has nothing to do with what I consider the most important work I could do.... and I also know that the maze I would have to cross to be allowed to do the better work is just not worth it.
The smaller the org, the better the chances of having only reasonable levels of misalignment... but without taking on high risk, it's just better pat to work on a large, worse org. Frustrating.
In large orgs, each team spends a ridiculous amount of effort adding the “glue” logic to work around design/architectural issues with the other teams’ products they interface with.
Neither one really understands the other’s component.
Cooperation is almost impossible since such would derail one project manager’s unrealistic schedule and demean their authority.
This is spot on. Also, many orgs build to the needs of the business or whims of stakeholders rather than customer needs. Good product strategy and product discovery remain difficult despite AI.
A few reasons I'd say:
1. Our incentive structure in software has always been to a large extent driven by more features [1]. Agent driven development has poured gasoline on that fire.
2. Despite all the effort we put into quality assurance by engineering teams, it's still hard to full de-risk releases across a broad set of configurations use cases, etc. Especially as most agents and even the test hierarchy itself tends to favor unit or module tests and these issues tend to pop up at integration points or hard to test non functional requirements.
So I think what we're seeing is people are rapidly adopting agent lead development due to #1 but the risk reduction pipelines haven't caught up with #2. I think they eventually will but we're definitely in for a rough road for a bit.
[1] https://www.joelonsoftware.com/2006/12/09/simplicity/
The issue was never coding.
Today, developers assemble a Tower of Babel built of libraries they do not understand. Those libraries were largely built the same way.
There is “no value” in a company maintaining their own purpose-optimized HTTP client, database, GUI framework, or anything else.
Each layer adds features but subtle crappiness in the details not understood.
I shudder to think how many string libraries end up in a modern system…
“Practical” solutions like “this WXYZ fails 5%” of the time, let’s add a retry loop. Of course, this the next layer sees random failures that are hard to reproduce, so they add the same.
At some point our modern supercomputers are repeating millions of operations because of a stupid bug. The user just sees a sluggish app and gets annoyed.
We could write simple, understandable, efficient software that is a joy to ship and use. Unfortunately that doesn’t add value so we are extremely careful to never waste resources on such!
While I empathize with this view in principle, I believe that all organic systems eventually devolve into deep and rather chaotic complexity as they become more advanced. Biology is in many ways extremely inefficient, but it is also very error-tolerant because it has so many retry and error-correcting mechanisms.
And humans possess nowhere near as gifted a talent as God or natural selection or whatever you believe drives the natural world. So it’s to be expected that the systems we produce will be much more buggy than biology! It’s kind of futile to imagine it could happen any other way… we are just not that good.
Software has neither gotten worse nor become any better. All you're seeing is the cost of writing code approach near zero. As that happens the speed at which you see defects increases. Software is by its very definition "malleable". It is without (or very few) constraints. So it is very hard to get "prefect". That is why IMO Site Reliability Engineering will be one of the few fields that will remain, because until we build an _actual_ goodness to gracious Intelligent System that can think critically, including how systems can fail (which includes humans), software will be what is hat always been "soft".
Personally I think the way to avoid a lot of this buggy new software is to use a LTS Linux distro like Debian as much as possible.
Obviously you cannot do that for everything. But any software you get from Debian repos (or similar distros) is at least safe from new bugs from all this new code.
Complexity + a lack of incentives to take time to get things right.
Imo we know the tools (social, + technical) to make good software that works. But in the face of massive complexity, people just want the next feature, the next thing sales can use as a win
And yeah I agree with the other commenter here - I don't think this is AI. We had terrible software before, even declining quality.
> Software may have been better back in the day, but that was mainly because it was much simpler.
I think that points do the solution. We should not make stuff more complex than we can the level of complexity at which we can make it reliable.
I'm doing the exact opposite: I'm maxing out my PTO and taking long holidays. I'm pretty sure I'm not going to be in this field in five years time so why bother. It's time to figure out what other passions I have apart from programming.
Programming is going to be like ceramics or pottery: you can grab a nice set of bowls at IKEA for $10. We are doing the artisanal pottery that no one really wants or cares for.
Unlike IKEA pottery, programming has the zero replication cost thing. You can spend years working on a better bowl and still sell it for $10 at IKEA and make money. Heck, if your bowl is so much better, maybe IKEA will hire you as a supplier.
To add to author's point, I did work at an organization that decided to focus on bugfixing for a full release cycle, and the PM was sacked after that.
I was hoping you saw the nice end of it, with a feint smile on my face.
Very rude ending!
PS: I laughed outside. Cried inside.
<They were congratulating themselves on what an amazing job they had done. I keep thinking about that post every time I have to fight their product.>
This is hilarious.
LLMs can't parse the entire codebase at once, understand it, and then make decisions based on that understanding.
The hard part of programming almost is never how ONE function or ONE class works. It's how they all interact in a much larger picture. You can try to mitigate this, but it's a pretty fundamental concept that software is big and just too large for an LLM context window.
Until that's solved, coding has not been 'solved' by '''AI'''. They're useful for greenfield stuff, but new software was always easier to smash out quickly than working on older code.
Plus, it's not like they're building understanding like a person does regardless, even if the context window was somehow enormous.
Obligatory reference to "Software as theory building" by Peter Naur.
> My banking app requires, on average, three FaceID logins before the 3D Secure confirmation view appears.
That's a different, equally big problem. Security mafia at every company will continue to rule everything and everyone. They do not have goals or constraints that are tied to productivity and user experience.
We are heading to a situation where the security teams are causing much more damage compared to the possible attack vectors. While this damage is real and certain, the damage due to attack vectors is only hypothetical.
Ofcourse, we do need security. But currently no one including CEO can dare to define how much security is needed. On top of that, regulators do their own share of damage, piling up regulations. No one takes any risk. They will ask you to tie yourself down until you can't move. Your mobility is not their problem.
Perhaps its a slight overcorrection but it's better than the past where an online shop I gave my credit card info to would reply to a forgotten password request with an e-mail with my password in it in plaintext. Security used to be awful and people suffered because of it.
I wonder how many accounts have ever actually been compromised by a MITM reading passwords out of plaintext emails. I would guess it's very, very small.
4 replies →
One thing you can do to fight back is show up at their branches with complaints. You can engineer this intentionally. Have a bank that doesn't support Graphene? Show up with your Graphene phone and be like "it says my phone isn't allowed. Fix this or I'm closing my account" and there's a 50% chance they will turn off phone hardware attestation for your account or give you a physical 2FA token and if they don't it will show up in their metrics.
That’s a hilarious comment in the world where companies are getting hacked left and right and consumer data is widely available from how many pieces of software have piss poor security. You might work at companies as where dumb bureaucrats have a tight grip on things, but in most of the world, security practices are not holding us back, they simply don’t exist.
The the op of this thread is really security clueless. The moment you're in most networks you can move laterally and get whatever you want. Locking these systems down and securing them is very difficult work. After C levels, developers are the worst at security in companies.
Drum it out loud.
Some organizations are stuck in proverbial cobwebs of security blankets.
Those who dictate what security should be have no skin in the game, the end result is just stupid.
My pet hate when I still worked was "defence in depth". I witnessed this term being thrown around to the point it was only an excuse.
A lot of box ticking paper pushers in the space, somehow making the scene a clown show.
Lines of code, functions and modules, are insufficient for producing quality representational systems i.e. those that model external systems. There is a lack of sufficient abstractions.
Unlike transformational software that can use mathematics as a conceptual framework, representational systems have no such thing.
Yet it is complex representational systems that allow the operation of our modern world.
Human coding effort without such a framework is problematic, and that is just exacerbated with AI generated code. Should we be surprised that for this type of software AI makes thing worse?
Coding is not solved. Who said coding is solved? Coding is incredibly complex.
What is coding? It is writing down specifications. Imagine a simple computer with just a 1920x1080 pixel screen, a 104 key keyboard and 3 button mouse. That is 2^107 inputs and 2^(1920x1080) outputs. The scale of specification of this (now over time) is already not handle able.
So, we invent concepts like taskbars, windows, shortcuts, and so each spec is different. People think they are writing down code, when they are actually just making a lot of decisions.
"Nothing works" if you're using poorly designed software.
XFCE has worked more or less the same for me for the last 20 years.
Sure, nothing lasts forever, but XFCE has been rock solid and absolutely works as expected.
I've used it successfully on both FreeBSD and various Linux flavors.
> Nothing works
It depends on whose perspective you consider the problem. An enterprise produces software for one reason only: make money out of it. And it works great!
if you are a paying customer, and if you can choose among a few different solutions, then you will get the good stuff. But for the rest...
1. Free apps? They just need to take ads in front of your eyes.
2. Software embedded in cars? You choose the car based on other merits, the software just needs to not by horrible.
3. Automated customare support? When was the last time you choose a fridge over another because of the quality of its customer support?
While I agree with a big part of the article, I need to pick on this sentence:
"They may have upgraded the average skill set of software teams in a way we have not seen before."
Well, no, not really. On one hand, it is true that AI makes it easier for experienced software developers to find information outside their existing knowledge boundaries. (i.e. when I need to use a language I've used before, but am not so proficient, it is faster with AI to get started). At the same time, it creates an apparent upgraded skill set. But, on the other hand, the more we rely on AI, and worse, the more we rely on AI and only on AI, the less skills we end having ourselves (we become skill renters, not skill owners). By this, we risk getting to the point where we don't really understand the code that AI generated. This is a very dangerous aspect and it might be a contributing fact to the lack of quality the author diagnosed.
For me, the problem was never the writing of the code. Building something takes care and rigor. Software development got where it is through years of accumulated practice: habits first, then safeguards, then structures that had actually been proven. Now people set the code aside and just describe their problem, and they have no real sense of what comes back, because nobody can review output produced that fast. Nobody is even keeping up with the systems we built to help us keep up. So we ship without quite knowing what we shipped, and the sloppiness follows from that.
Isn't that how it's gone before, though? People used to make beautiful furniture by hand and leave something of themselves in it. Now it comes out of a factory, nobody knows exactly which part they made, they just fit pieces together, and it isn't built to last. Software is at that same point: nobody knows exactly what they've made or how. They describe the problem, assume they've found the solution, ship it, and there is no undoing it. The sloppiness will keep compounding. But that is also the point where people start thinking much harder about how to make it good again. A cycle, I suppose.
> Nobody is even keeping up with the systems we built to help us keep up. So we ship without quite knowing what we shipped, and the sloppiness follows from that.
NPM left-pad incident was a decade ago. Supply chain attacks have been a thing for longer than that (one of the first proposed SBOM's was around that time).
Source forge was shoving adware into the software from their site.
Asking an AI to write code is not worse than typing in PIP/NPM install (not to slight those tools) if you aren't going to code review either.
[flagged]
If furniture was still built like it was in the past you'd have about 2 pieces of it unless you were fabulously wealthy.
This is pretty true for software, how much have you actually paid for recently? FOSS isn't free either, a massive amount of time and coordination is required to make good software there too and few are willing to give it.
[dead]
"Move fast and break things"
Everything is a minimum viable product that is constantly in flux these days. The decision makers and money movers are prioritizing rapid results and turnaround over quality product, maintainable codebases, institutional knowledge (debatable), etc
The incentive isn't focused on "Good" software, it's on making "profitable" software as fast and cheap as possible.
The firing people because of AI thing is similar to the RTO thing, assuming everyone saying they are doing X because Y is falling for the simplest form of deception.
Firing people to bet against a downturn is self fulfilling. Firing people to bet for a thing everyone says is good isn't.
Agree with all of these gripes, they are everywhere and none of this golden age of SWE productivity seems to be making products better.
My other biggest pet peeve in this space is the annual iOS updates where Apple arbitrarily moves buttons back and forth between top and bottom of screen.
They really like to screw around with the photos app such that "show me my photos most recently taken in time order" is somehow different set of taps year to year.
You see flavors of this in most other apps/websites.
> As I’m writing this, we’re in the middle of an AI-induced mass psychosis.
I work in mediation and have recently seen a few cases where I’ve wondered if the participants were suffering from AI psychosis as related to their claims: where they’d constructed their legal cases hand-in-hand with an LLM and had become absolutely convinced despite a contestable set of facts.
People have always been subject to delusion, but in these cases, all documentation submitted was obviously created by chatbots.
One recent case in point: Google Finance redesign. How anyone signed that off, especially senior engineers supposedly behind it is beyond me. Basic functionality like sorting by column is gone. To add/remove positions you have to talk to the chat box which is very slow and unreliable. No way to just add 200 shares of company X anymore. News/calendar displayed is no longer relevant to your watchlists. Layout is terrible with unremovable AI chatbox and graph that doesn't work (shows wrong amounts) take big part of the screen.
If anything it shows that people exposed to LLMs for the longest lost the most IQ. Googlers had access to Bart preview before LLMs were public so that checks out. I just hope those people don't get to redesign other tools as otherwise we will all need to talk to the chat box to use a calculator or a spreadsheet soon.
Mac user for 20+ years now. Helped my mother with two Windows laptops. One would not allow her to reset her pin. Nothing allowed me to do a safe boot, the option to enter the password was just not there. The other wouldn’t connect to her wifi. Switched to an admin account and, after login, am greeted with a black screen, a cursor and nothing else. Yesterday OneDrive just randomly would not sync a specific file. Just wouldn’t.
I could go on. That’s the network effect for you. The only reason I ever touch MS (or Meta or whatever) software is because someone I’m connected to cannot switch. And they can’t switch because others are in the same situation. At some point you don’t have to care any more. There’s no money in working software compared to igniting a massive feedback loop that just can’t stop regardless of if and what you do.
I think people just think it getting worst because you use software for literally everything in your life now compare to before and this means you will most likely run into bugs more often.
On top of that software has to be build with more users in mind so you are often going to get bloated software. That why enterprise software is often horrible because they have to support multiple industries that all need different types of workflows and UI.
I have been using software for decades and there has always been horrible software. Like I'm mind blown that people think human always wrote good code, and that AI is somehow worst than human code. AI writes better code then the vast majority of programmers that's a fact. Yes, including you. Yes there are certain areas of programming that it sucks at but 99% of programmer aren't writing that code.
> I opened Slack on macOS, the icon kept bouncing in the dock for a few seconds. I got impatient, switched to Ghostty, and started typing. Just then, the Slack window appeared, stole focus from Ghostty and the git pull command was sent to the group chat.
Back when I was using IRC from Emacs (with erc) I had written a safeguard in elisp against that. Haven't been on IRC in a while but this helped me prevent sending to the "group chat" (the IRC channel) a great many private infos.
Same for my real name for example: I had a filter where anything containing my actual name would be blocked.
I think a great many software where you "chat" with "groups of people" would benefit from having both default and configurable filters that catch obvious mistakes. Say you probably want a confirmation before attaching a private SSH key, or before sending a password in the clear (which could be filtered by blocking words matching the hash of the password), etc.
Not that it solves the fundamental problem TFA is talking about: nothing works.
But that is a given: that's why we need safeguards.
turns out the bottleneck was never doing things faster, it was doing things correctly, and we optimized away the people who knew the difference
The issue for me is who controls the software
If it's open source and I can review it before compiling and installing, and I can modify it and recompile if I want to remove/change/add something, then I feel like I have some control
This is one reason I like relatively smaller software, less code
This is probably going to sound elitist, but it is how I've been seeing this whole LLM thing play out.
I don't necessarily believe in 10x devs, but there is a very clear output difference between various developers. During my career I've been both in a position where I was delivering much higher quality code at a similar pace to other coworkers and also mediocre code at a slower pace. Sometimes at the same time.
Now, AI itself is a force multiplier. Depending on the task, your setup, your skill level (both as a developer and with LLMs), the weather, the model and so on, it can range anywhere from actively hindering you, to solving the entire thing for you. Let's say that on average you get a 20% productivity boost.
If you take a 0.8x developer and give them a 1.2 force multiplier LLM, you get a 0.96x developer. Worse, the axis that has moved is speed, not quality.
All this to say that if you let a below average developer vibecode, you get a much higher volume of slop. You can make an agent create good code, but this developer didn't care before so why should they now?
*Note that this is from experience. I've started getting feature PRs from our devops team. It's been a very enlightening experience.
The claim that software has regressed is hard to accept. Compared to the past, we now have far more platforms to support and far more things to memorize. And if you actually try using software from 15 years ago, you'll see it had far more critical bugs than today's software. I think most of this is just nostalgia bias.
It's just that complexity has skyrocketed compared to the past. The same goes for released software. In the old days, even small software could be competitive, but now the minimum level of complexity required to sell a program is completely different.
The best example of this is mobile games. Just look at the structure of early mobile games compared to modern games.
If coding is a solved problem, where are all the high quality, open source PRs is what I want to know. Where's the flood of improvements for Curl? SFML? SDL? Godot? Linux? ImGui? VLC? Firefox? GNU tools? Rust? GCC? LLVM? Why can I find *no* evidence of this?
If you look at the open source space and review the contribution of AI in it, you'd think that AI is barely able to create functional code and the people who peddle it are solely slop authors. More than that, you might think it barely exists, because there's simply vanishingly few PRs landing which are AI generated. It seems in open source projects, for some reason, AI is barely able to produce any useful code at all
But apparently for closed source proprietary code its like magic and you don't need to write any code anymore and it is a solved problem. Mhm. Totally willing to believe that
My suspicion is that a lot of proprietary software engineering has become purely performative. It no longer matters if the resulting product works, or has any quality, because its not about that. The system is being burnt down to extract wealth from it instead, as we create the illusion of software development as these companies are asset stripped. Line Must Go Up. There's no simply incentive to make a real product anymore, when the valuation of our economy and management compensation is built solely on hype instead of results
the bottleneck for these open source repos is maintainer attention. AI seemingly does not yet improve that throughput.
I'd buy that if lots of high quality PRs were sitting around waiting to be merged, but they don't exist. There's barely any evidence that AI is even real in the open source world, other than the slop of course
3 replies →
I think the truth is whether people want to admit it or not is that coding has not been solved, and producing good software is really not any easier.
Making legacy code however is now very fast. So fast you can practically ship it straight to production.
All code is legacy code a millisecond after you write it.
I see all these comments about Linux not having this issue, but Linux has a similar issue. Canonical’s uutils being forced before being ready, Wayland adoption initially before it was ready, KDE4, GNOME3, PulseAudio, Avahi, Bluetooth support, etc. Linux systems do tend to get better overtime, but Linux systems also tend to release without sufficient testing. So, while you can expect things to be great after several patch releases, everything may break initially.
For 20 years now, the top priority has been development speed, not product quality. The days of spending a whole week on a single feature are over.
AI is precisely what is needed for high speed of coding.
> There’s no denying that these new tools have already revolutionized how we create and use software. They have raised upper management’s expectations for team output. They may have
Expectations is neither about creation not use. "May" isn't a revolution outside of the historic calendar, so on both counts it's trivial to deny an ungrounded statement.
> So why does software keep getting worse across the board?
Because the premise on which the expectation is built is wrong?
Also plenty of the issues are prehistoric with all the past meat bag generations to blame, case in point: > Just then, the Slack window appeared, stole focus from Ghostty
So who stopped that huge fruit corpo from doing the very basics of managing user experience in the past few decades minus a few AI years?
The same reason computers keep getting faster but software keeps getting slower.
Which is?
https://en.wikipedia.org/wiki/Andy_and_Bill's_law
> What Andy giveth, Bill taketh away
1 reply →
Because most engineers nowadays have the fundamentally wrong idea about how their software should utilize the user's hardware: they treat user's CPU and RAM as their playground and being infinite, and therefore act as a platform to make their life easier instead of their user's.
Yes, coding is solved, for the developers, not for the users.
Since upgrading iOS, my iPhone (13) will: - sometimes fail to open the camera - make the bottom half of the screen blank when you do email searches - use more battery - become unusable if you turn on any transparency effects.
I've also noticed so many pieces of software becoming worse and worse, either with useless features (basically any new thing on Slack in the past year) or with a huge amount of large bugs, over the past year.
It's glaringly obvious that poorly checked, AI-written, code is the culprit, I'm just wondering when companies will wake up.
Nobody gives a flying fuck about resiliency, good practices, security or any of that now that AI is there. All anyone cares about is pure output of features.
Any and all "productivity" gains attributed to AI efficiency are actually due to the complete disregard for any care or standard in the software industry in the past 2 years. Yeah you can output more shit when you don't give a fuck, big surprise, AI doesn't change anything here.
At the end of the day it has nothing to do with AI. People have been bitching about bugs in it for a long time. It's companies that give zero shits about releasing bugs.
This comes back to the users. As long as they keep buying the shit software why spend money on QA.
I mean, you're the problem. Did you stop using slack? Are they taking losses because of it? If not, why change?
Coding hasn't being 'solved' but its being taught to models which makes coding partially automated making people believe its 'solved'. No model can replace human intelligence and thinking as of now which makes coding still a human job which can be best done by humans, with the increase in vibe coded projects the quality of the software will eventually decline
I call this software "products", and not in a good sense.
A product isn't necessarily designed by someone who cares about, or even understands, the problem at hand.
What do you call a product that is?
That’s why i‘m using claude to literally write everything for myself! I cannot fix software-problems in my car or my fridge or my heat-pump. But I can start by replacing my own infrastructure!
For my team to re-work fragile, complex parts of the system we need to push back at product from shipping "features." Product does not see reliability as a feature they can advertise -- it's expected. And frankly I can't be bothered to keep taking side quests to fix things that increase my workload, I will burn out again. I want to fix things. But our planning revolves around implementing features customers are waiting for (aka compete in the market.) I am responsible with AI tools but not everyone I work with are. Even though responsible AI users are in the majority, our system is only as stable as the weakest link.
Part of that is bad systems design, not really software, and part of that is social organization and bureaucracy.
Part of it is incumbancy - much of the Mac OS level stuff is 30 years old and is not going to change.
But the real concern is that even new-builds are not particularly great - and its because we dont have the abstractions in place to help us scale complexity
Coding itself is not the problem and mostly never was. The problem is conflicting requirements, lack of resources, haste, the desire to be first with a feature, etc.
And the lack of backlash from anyone with real influence when software fails.
That is software is bad because organizations make it so not because the coders are incompetent.
I have a TV in my Google Home that I cannot remove. It says it's offline and when I try to remove if it says "communication error". Yes, I know, I stopped using that TV 5 years ago! Normally, I haven't seen such bugs from Google, but lately it's been getting worse.
I don’t really dread or notice macOS updates like windows updates.
I will say that in my experience with AI my code and that of my employer has greatly improved. So maybe there’s a split between big companies and small as far as quality gap?
I don’t think we can objectively say software is getting worse. I don’t expect an appliance website, a car infotainment system and a banking app to be the beacons of software quality and user experience. All those things would probably suck at any point in time.
no, all three of those softwares should be exceptional and help me do exactly what i'm trying to do with no distractions or bugs
My assumption is that AI-generated code explodes the flaws in your existing codebase. If your architecture is bad or not documented, your docs are out of date or the goal of the feature request is vague, how should the AI (or even a good human developer) develop high quality software?
A lot of people miss that everything needs documented, even the things that customers don't see. I've seen a lot of things over the years that were implemented but their limitations were not documented. Tags were one thing in particular. The person that thought up the idea didn't specify out how long or how many tags should be implemented. The developer put some wildly huge field in place and didn't state what the field limitations were. So later when a few users shoved massive amounts of data in there other parts of the software that displayed information broke or had terrible performance.
Personally I hope to use a lot less software in the future. Anything I want to know or do online I'll just ask an AI and it can wade through the sea of cookie popups or UI redesigns or whatever to get it done.
I think you are right in being optimistic. Time will separate the wheat from the chaff. An I personally hope that free collaborative privacy first software built from curiosity, discipline and devotion will be the norm. Hopefully...
It’s because the incentives of writing software practically reward making software architecture as complex as possible. Complex software architecture therefore secures the inventor forever job security.
Someone saying software has been solved, but nobody that takes the drivers seat agrees
I remember noticing the same thing a decade ago. I don't think it has anything to do with AI.
It probably comes down handing over power from the user to capital which is antagonostic in its nature to the users' needs.
Running non free software is essentially giving up our freedom. Before internet connectivity the problem wasn't too bad but nowadays there is always the temptation to squeeze the lusers.
Use open source everything. If you have the source to something, you can change it. If you can change it, you can fix it. Run Linux and Firefox. Fork every last damn program and have AI fix every papercut that you don't like.
They got rid of test managers. Then testers. The industry said everyone should be responsible for testing— which means no one is.
Now AI tests? Except not really. It claims to perform testing. It’s still up to us to review and remediate.
LLMs are an amplifier. Most software engineers/architects/developers are bad and always have been. We have amplified the bad, and so we have the modern world.
All of these complaints are about humans making user-hostile decisions, not AI. And software quality is not a reflection of its code quality. Never has been.
rant first: oh, I recently heard about you from a friend working in a company after I mentioned that I also got into photography. Nice work on pixelpeeper.com
to the article: Yeah, it's different world out there. We need to filter ideas instead of focusing on more features, as lack of staggering revenue growth suggests it might be that more doesn't equal better. The stability of apps is getting worse lately. I couldn't pair my sony camera and it was stuck on pairing screen :(
Why would there be revenue growth when AI should decrease it via competition? I think the revenue growth occurred in the past by companies like Microsoft and Google capturing huge parts of the market, and the market for profits in advertising.
thank you, I didn't expect to see pixelpeeper mentioned here :) feel free to reach out via email - I'm happy to nerd out about photography
If AI is so good at coding, why can't it be good at politics? We will elect AI in our next presidential election.
You could have made exactly the same critique in 2021. Microsoft has been selling the same OS since the 90s and it just gets worse.
It was always like this.
I think the flaws have moved. I remember Mac OS 7-8-9 (”Classic”) fondly and the suite of software I regularly used there.
It crashed, and crashed hard, a few times per week. That never happens today, maybe at most once a month.
However, what has changed in terms of quality is that there are 1000% more smaller bugs. I never felt that small annoyances or problems were even noticeable or even existent back then. Every feature seemed to actually work. Yet just so far today I have encountered over a dozen small problems in my operating system and apps I use.
It’s exhausting in a different way. Two decades ago I felt ”safe” from problems by frequently saving my files. Today I dread having to navigate a UI that keeps giving me a thousand paper cuts of small bugs.
How many more features are we asking from our software today?
I think it's a two part issue.
If you build a software with the same features as a '96 piece of software I can imagine it would be exceptional fast and stable.
I also imagine that almost no one would use it as features are what bring in the users.
3 replies →
I don't think it fair to compare cooperative multitasking OSs to OSs that requires virtual memory chips on a software quality basis.
1 reply →
> Until this attitude changes, the great software quality decay will continue.
It won’t change cause nobody cares to do anything other than complain, I don’t see developers quitting en masse from companies that refuse to pause feature churn and focus on quality. Why should they? They get a paycheck, everyone ships crap, the world moves on. The people making the frameworks and now even runtimes are of the same cloth, overworked and underfunded.
If we cared we’d treat software like real engineering. We don’t and therefore we’re quite cooked. Just be happy that airplanes aren’t as bad as your average CRUD. For someone who does care, look at the SQLite codebase, every project should be like that even if development cycles would be 3–10x longer, but that’s delusional to say out loud.
AI just revealed that - with slop being produced at increasing pace and test coverage and verification methods of things working properly across all states and inputs being nowhere to be found.
One of my favorite impossible puzzles is to sepparate security and feature updates. Ive made zero progress over many years.
Author seems to be blaming the hammer for the house not getting built right. Software is increasing in complexity, and perhaps is outpacing testing.
The hammer is Homer Simpson's automated hammer, and it has two claw sides like PHP.
Because at most companies, software engineers aren't paid to make good software. They're paid to ship flashy features.
A plumber is paid to install pipes, not to make sure they don't leak. But he still does that, even though it takes longer. Why?
Because people don't accept leaky plumbing. It cause damage and disarray. People do accept shitty software.
Regulations.
Lower barrier to entry = more crap flooding the market
Weaving fabric and sewing clothes has been "solved", but there is no shortage of garbage quality shirts.
we found that using a stable AI-SDLC process like: https://github.com/highflame-ai/ai-factory improves code agent assisted development dramatically specially when going from 1-100.
Coding is solved, but the next step is getting rid of the PM's causing all the trouble.
we spent 40 years making computers faster so that apps could spend the first 30 seconds of every session loading a welcome animation
A garden needs a gardener. It's the end when people stop caring or when starts chasing superficial metrics and tawdry toys.
That's a good description of some roles actually. Instead of describing myself as a developer or maintainer of some backend system I might call myself a gardener of it.
> This quarter, we won’t be releasing any new features, and we have no plans to redesign anything — we will exclusively focus on fixing bugs.
IME this happens more often than people think. If you’re leading a team part of your job is to manage the expectations of those around you and explain your choices. If you do that well you can absolutely have quarters where you only pay down debt, it doesn’t require some huge attitude shift in the industry. Just explain why it’s the right thing and then do it.
We need new companies that market their products as enduring and reliable. The market wants it.
Hold on just a sec. Will do after throwing everything at the AI wave.
We have better shovels now, why are the holes we are digging ourselves into getting deeper????
Software will always be as bad as users world allow it to. Applies to every good and service.
if coding is free, the number 1 issue that need to be resolved is separating features so people can roll back any part they don't like and the magic would be resolving all the gory consequences of such action well enough
Bad drivers and middle management inventions like scrum. Is why.
Who ever said coding is solved??
This post and the comments so far reminded me of 1984's two minutes of hate. When is Hate Week?
Hate Week is every week I have to use Jira. Or SharePoint. Or Slack. Or Teams. Or Magento.
Big Brother is trying to turn is against modern coorparate software practices or what is your point?
AI is the private equity of software and digital media, it makes the first 80% way easier and the last 20% way harder so no one bothers with the last 20% anymore. It’s the ultimate enshittification tool.
We need automatic testing of user experience, that doesn't exist yet
check out The Utopia of Rules by David Graeber https://en.wikipedia.org/wiki/The_Utopia_of_Rules
A lot of this is about bureaucracy
Taken literally, this question just misunderstands what the point of coding is for most companies. The point was never to maximize quality of software, but to make the most money. Coding being "solved" implies it was a problem, and for companies using this framing, the problem wasn't "my software isn't good enough", but "it takes too much time and/or money for me to make software". Viewed through this lens, the "solution" of removing as much need for expensive humans to make the software is almost entirely unrelated to the quality of the output; if companies with this mindset could have released software cheaper or faster at a reduced quality before AI, they almost certainly would have.
None of this is to say that I think this is a good thing, or even that it's necessarily an accurate viewpoint. Considering who decides how much to spend on LLM products in companies that are potential customers for the ones saying "coding has been solved", I do genuinely think this is what they mean though. It's of course nonsense to actual developers, but we're not the ones who they're talking to when they say this.
"The man whose whole life is spent in performing a few simple operations... has no occasion to exert his understanding... He naturally loses, therefore, the habit of such exertion, and generally becomes as stupid and ignorant as it is possible for a human creature to become." - Adam Smith on overspecialization.
These products are bad because noone who works on them understands the whole system infact
"The only trades which it seems possible for a joint-stock company to carry on successfully... are those of which all the operations are capable of being reduced to what is called a Routine, or to such a Uniformity of method as admits but little or no variation." - Adam Smith
CPUs, dams, can be designed with software. Plenty of programs can be designed with software but most useful, interesting, valuable ones cannot. Plenty of programs are designed with software, or more generally a routine, and they are incomprehensible as a result, and clearly their programmers are the most stupid and ignorant people around.
coding is not understanding, nor is it architecture. And debt is always there. No matter who writes it. But I think it can be better.
Pressure is on shipping things fast, not making things lightweight.
I have the same impression when I use things that are around me every day. Everything is broken and seemingly nobody cares. It seems that the teams developing software never use it themselves and do not care about bugs and terrible usability problems. It seems the management does not use any of the products that their businesses produce. And it seems that the ubiquitous breakage is just accepted as the status quo.
This extends to any device which has software or firmware: banking websites, banking apps on mobile phones, car firmware, etc.
I find it very depressing, especially when I think of the people who design, develop and deploy these apps. We are talking about large companies and teams of people. Entire chains of well-paid people designed, looked at, developed, tested, and then accepted these apps. And yet they break in the most obvious ways, or fail to be usable, instead pestering us with pop-ups and useless drivel and forgetting their state at every point.
These problems are not subtle. To take a glaring example from my everyday life, in my car there are buttons for moving windows up and down. Sometimes when you press the button to move the window down, it will actually start moving up. We are talking about a simple button that moves a window. And seemingly everybody thinks this is fine?
I don't know what to do about this.
What is that car, and could you make a video of it?
VW ID.4, and it's unlikely I can spare the time for making a video without a really good reason…
maybe once software in a certain category is solved, it no longer has incentive to improve User eXperience, but to improve the Asset Owner eXperience.
It’s not getting worse. We are just getting older.
This is a business culture problem not a tech problem.
Good models can't fix bad incentives.
yep noticed a major decline in product stability over the last 5 months. I don't think explained by use of vibe coding but who knows.
> So why does software keep getting worse across the board?
The issue is only partially within those who code. They get directions from those in charge, and they are just making idiotic decisions. And those who code, for some reason don't stand against those idiotic decisions in defense of a common sense and a great UX.
A blatant, exaggerated parallel would be: you are designing your kitchen and you've chosen a place for your washing machine such as that it will be unable to open its door. When inviting a professional, you expect them to correct such wrong decisions and explain to you that it won't work. But in programming, those who program, calling themselves "software engineers", would just place this washing machine where they're told, because it's "not my job". It's not a feature of an "engineer". It's being a coder lemming.
Imagine you find yourself making TC $1M+ a year owning some beloved piece of software.
Do you A) tell your management hey it's absolutely perfect as is, let's just chill, leave it alone and let the money roll in. Or B) tell management about the need for whatever new hotness and you're going to get it implemented ahead of schedule and under budget. And then you do! Oh but the software is objectively worse because it was already perfect.
It's pretty clear what the overwhelmingly popular answer is to that question.
I don't get this post. It says software is getting worse, and then... gives a handful of anecdotal evidence. That could have been done at any point in the life of the software industry, including in the pre-agentic era. So the assertion behind the post doesn't really have any weight to it. Is there any actual, respectable evidence that software is actually getting worse? Also, what would worse even mean really? More buggy? Less reliable? Less creative, flexible?
Even non-VC-backed software or open source projects suffer from this.
At the end of the day, fixing bugs, especially those bugs only happen in certain environments, is a very tedious and thankless task.
Especially when you get outside of environment like phones and consoles the environments people run software in can be wildly different too, and the oddest things can cause weird interactions.
In enterprise software you can run into customers that 'use too much' of something odd that the developers don't really think about and QA fails to test right. Things like tags and identifiers that you think "Oh they'll use 5 or 6 max" then you run into someone that uses a thousand tags and report performance explodes.
I suppose that because we trained llm’s on code with bugs in it will write code with bugs in
I feel like we need a name for this error. Pretraining fallacy? Coding ability is all about RL.
Remember when they finetuned an LLM to write buggy code and it also started saying humanity should be exterminated and so on? It knows good and evil and is trained to select one.
I think the article misses a bit the main focus. For instance:
> My LG fridge started making weird sounds, so I tried to file a warranty claim, through a multi-step form with countless fields. It failed with a submission error at the very end. And I only found out because I looked at the JavaScript console.
Has that JavaScript code been written by AI? It may be more likely that it was written by humans. Well, the design of JavaScript really sucks, the language is both successful and horrible to use, in my opinion. And we have that issue across the board. Most programming languages really suck. C, for instance - that language is an abomination. But it is even more successful than JavaScript. Today I ran into the issue that I can not compile libpng; I keep on bailing out at it unable to find setjmp. About two months ago compiling it worked fine. I most likely did screw something up on my local system but ... the compiler is an idiot. It really does not tell me WHY it can not compile it anymore. Yes, it shows on the commandline that it assumes setjmp to exist but it can not find it. The error messages are pure and bogus. And the whole design of C cascades this horrible crap downwards. The languages that supposedly try to replace C also suck. Go? Yikes. Rust? Even more verbose. C++? Trying to replace C since decades. There is a ton of inertia.
The whole stack is utter gutter trash really. Everything is build up atop layers of complexity that in turn are not really well designed at all. Meanwhile more and more software is added. Now I need python due to meson, and meson is better than what came before. But it adds complexity. And has its own problems too. AI does not really fix anything here, it just AI slop spams on top of this. We kind of lost big at engineering. People are in general also not critical anymore. The design of most programming language shows that - including ruby, but ruby is barely used, so really the issue is mostly about C. The fact that C is so successful makes this even worse, since nothing replaces it. We just keep on adding more and more. Or we go the C++ way - and make it about 50x as complex. Or Rust - that syntax is even worse than C syntax which is also horrible. Of course even with great syntax and a great language, horrible software will be written. Companies want to offer a billion useless features. Many years ago I thought it was cool if my fridge tells me what I should order. Since the day of companies spying on people, I go back to simplicity at all times.
Heh, the support form failing want a bug, more like a feature. Look how much money they are saving not providing support. Also, the product is better than ever, nobody is returning them or needing them fixed!
I've seen some shit.
I'm confident to say that right now, AI already does a better job at turning a well-specified requirement into working code than the average meatbag I've personally encountered.
It's still useless at many other things that make a complete Software Developer, but let's be real: Programming (requirements in, code out) is solved for the stuff I'm involved in.
who plays anything other than GTNH for 1.7.10 anyway
Code is the easy part.
MacOS contstant trolling with tab switching. I regret each day of life I need to use this shitty OS because of corporate. In linux these things will never happen
The answer is money.
> If coding has been solved, why does software keep getting worse?
I mean, he has given the answer in the article: Because "coding has been solved" is from the perspective of upper management, not devs or users - and that cares about software quality and usability (as standalone metrics) about as much as the McDonald's board cares about nutrition value.
Large companies are on the path of replacing people who are bad at coding, with systems that are emulating humans who are bad at coding.
Coding has been solved in the sense that, per dollar spent, companies can get 10x or even 100x the amount of code of roughly the same terrible quality.
> those bugs affect your ability to focus on driving
Name and shame! I'm in the market for a car. Which one should I avoid?
Sad cause its true
These tools combined with silicon valley motto of moving fast and breaking stuff fast created the perfect storm
> They have raised upper management’s expectations for team output.
That is the worse part, it's not great at all dealing with this kind of expectations
1) no one who wrote software before llms truly believe it's solved right now 2) shit takes time. Was energy solved the instant we discover nuclear energy?
Weird strawman. Who said coding has been “solved”?
Hint: mid-level engineers in tech hubs wouldn’t be getting 500K salaries if that was actually the case.
There are no banger best selling books either. Generic WikipediaEsque slop sold on Amazon.
...because coding hasn't been solved
Those two twitter links with people that got hospitalized might just be people trying to get their 5 seconds of internet fame by (pretending to be) doing something dumb.
So taking it at face value is kinda part of the problem here.
The only way this can get better is by completely suffocating it off attention. It doesn't exist. It's not real.
>Nothing Works and Everyone Is Euphoric
Euphoric, who?
Other than techbros and a small group of AI-delirious fanboys, no one is euphoric. Normal people in the industry are between anxious, scared, exhausted, resentful, resigned or just plain sad. People outside our industry? They see the enshittification clearly, and are most certainly the opposite of euphoric.
There were a lot of amoral programmers. I'm not saying programmers as a whole are morally untouchable.
But I would say the engineering barrier and the nerd barrier did provide some amount of sociopathic resistance in the world.
Llms are going to enable the absolutely immoral business people to do whatever they want. And that's going to mean enshittification on a massive scale
Simple: it is economic suicide to sell a product once and let it be a finished and complete thing that lasts a lifetime.
Thanks capitalism, for ruining literally everything yet again
God, those "software is getting worse everywhere" takes are tedious.
Let's have a look at a few rarely quoted examples from the last decade, shall we?
Just six years ago, a big company rolls out a line of new chips so good that geeks and technology experts all get ecstatic and can't stop churning endless raving reviews. Those chips are fast, small and consume little energy. On top of that, the big company reworks their entire OS (OS!), the whole suite of software it has for it, the developer suite with compilers and SDKs and god knows what else and also ensures that everything ever written for that OS for the old chips continues to work and it indeed does.
Then there's another big company that launched a file storage service around 20 years ago. Back then it was reliable and only gotten better over the years. They started offering their storage for a nanocent per gajibyte and twenty years of hard work allowed them to lower that cost to a picocent per gajibyte. They don't lose data, they are highly available, half of the internet stores their data at their servers.
And then there's a -- gasp! -- consortium of big companies (fools would reply to this with an XKCD standards strip) that works on improvements to a shared set of standards for 4G, one of the most widely used technology stacks in the world, agrees on it, calls it 5G and rolls it out across the world and the whole spectrum of hardware and software vendors in a manner that resembles replacing a wing of an aircraft mid-flight so that not a single pasta strand falls from the forks of the business class customers.
And here we have someone who thinks that a customer support page for his fridge (fridge!) thrown together by a low-paid second-grade developer in a third-world country is indicative of the whole industry decline.
"Nothing works", my hairy bum. Get real.
So three things work.
Or two and a half. Can you tell me why having a weak 4G signal sometimes doesn't imply being able to send and receive data packets?
Disagree, but upvote for "my hairy bum"
As crazy as it sounds, code quality != software quality.
It turns out that the lower the barrier to creating "high quality" code is, the worse the software is on average.
Who remembers the Photoshop lens flare?
It's not that the effect sucked - it did lens flare perfectly. But who used it sucked.
Instagram and the Nashville filter - "we're all photographers now"
Code quality not equaling software quality gets at the fun part of the modern AI-labor debate. Where does talent and efficacy really reside in terms of software? Surely not in the (apparently unworthy?) mind of a human? Surely it can be extracted, distilled, automated – liberated! - unto a reactive web interface for some middle manager to invoke (at some expense to some account this folk loses zero sleep over), because it is after all this flimsy, transferrable - not worthless! Not worthless! I have a stock portfolio to maintain for God's sake. But mine. Nonetheless.
Code quality doesn't equal software quality.
I think it’s an excellent observation!
Code quality is really about readability and organization of code.
The thinking is, if the humans reading, writing and editing the code can’t read and comprehend it, they can’t develop it in meaningful ways.
But it is not a requisite that great software stands on top of great code
[flagged]
If software was so good at making software LLMs should just produce binaries and minified bundles.
But in our software we actually want language - high level expressive declarations and descriptions of process (which actually automate work).
Code is like a recipe that is also a poem.
If it wasn’t, we’d not invent higher level more dynamic languages over time. Expression is power.
You want the dual function so it’s both descriptive (documentation and digestible knowledge) and yet has productive power as an instrument.
Higher-ups can’t think of code like that - like writing. One reason I think corporations still need to evolve to become more technical and made up of more creative people.
Run it like an editor at the local paper.
[flagged]
[dead]
[flagged]
I have to say I’m really enjoying the Eternal September of Software comments here. They make me wonder about the vintage of the authors. Was Windows 7 the first stable OS they used? Some crustifarian Debian? I don’t actually recall if the Multicians I knew thought New Jersey software was rubbish. I know I still miss the solidity and useful abstractions of VAXcluster. Kubernetes would be funny by comparison if it weren’t so tragic.
It was always better in the past. The capitalists always ruined it in the past. Only I am the true bearer of the artisanal software flame. /s
[flagged]
Customers speak with their wallets, and OP doesn't like what they're saying.
Do we really still believe this? There are plenty of ways to get the money of someone who doesn't especially want to give it to you.