78 comments

[ 2.8 ms ] story [ 140 ms ] thread
[flagged]
software quality hasnt gotten worse lately
I believe it did. Are you satisfied with the software you use on a daily basis?
Yes, much better than the kernel panics, blue screens, easily hacked servers and random crashes of the past.
A lot of blue screens were caused by unstable graphics card drivers. Thank Microsoft for moving a lot of the graphics stack to userland in, I think, Vista -since then, GPU driver crashes don't take the entire system out as well.
WDDM 1.0 (Windows Display Driver Model) introduced with Vista, indeed came with TDR (Timeout Detection and Recovery) function for the video adapter, enabling a soft reset when possible.

A lot of BSOD were also caused by generic and low quality DRAM sticks, unstable individually (failed addresses) or becoming unstable when paired in dual channel setup, especially with 2 pairs of dual rank, dual sided sticks. Had very often this issue with Corsair Value sticks, or with a XMP (Intel spec) RAM kit used with 1/2/3th gen Ryzen, manually setup to match the 1.35V XMP profile (for DDR4). EXPO does this much better now.

Diag tools like Quicktech Pro then Memtest86+ from Passmark Software and the free one were born on this 'lost era'.

Yes, for the most part things work as I would expect them to.

I think software has actually gotten much more user friendly to the point where for existing computer users, using a new app is usually quite intuitive.

Feelings of dissatisfaction are likely due from having higher expectations.

Going off on a tangent… I'm not sure whether it's improved or deteriorated IMO, myself. I'm pretty sure I have an opnion, but I'm honestly uncertain what it is. It seems to change by the day.

I wrote https://rant.gulbrandsen.priv.no/programming/suckiness-today on a frustrated day long ago, but maybe I'd rather make the opposite point today: If modern code reuse leads to less knowledge of what the (third-paryt) code does, it also brings more function, which is arguably an increase in quality.

Take code that uses images an an example: So the development team (and the documentation team, if any) may not know which image formats support alpha channels. But supporting more formats means there's a higher chance that any random image used by an end-user works. Is that overall good or bad? When I wrote that posting I was frustrated, today I might consider the overall extension of functionality to be the most important part. I think. Perhaps.

I think the ability to effortlessly deploy updates is the main reason. Why agonize over the quality for months when you can simply release the product before it's ready, then use the actual money you've made to fund fixing it, and roll out the fix with nary a hiccup? And if people didn't like it enough to pay for it in a slightly broken state, they probably don't really want the fixed version either, so when no one buys it you have enough signal to know not to invest time in fixing the buggy bits.

I'll tell you this, I'm so glad I have been able to play Helldivers for the last couple of months instead of waiting for it to release while they work the kinks out.

Broken software is really annoying, though, so I sympathize with the desire to pin it on competence or laziness.

It's 100% about being able to patch. COD doesn't even ship multiplayer on the disk anymore.
Is the typo (decado) in the title of an article about attention to detail a late April Fools joke?
If not that, the bottom popup informing me "We noticed you're visiting from Switzerland. We've updated our prices to Swiss franc for your shopping convenience. Use United States (US) dollar instead" must be. It switched to France the second time I loaded the page. (I'm in the US.)
I think it's just caching on their end that's causing this issue. If you add any other query param in the URL that message goes away.
It’s always funny when Microsoft explains how important telemetry is for quality control, but their os is worse than ever.
It's because they changed the definition of quality. Now quality doesn't have much to do with user experience, but rather enhancing Microsoft's revenue.
I'd much rather be on windows 11 than any previous iteration. The biggest issues are things like injecting ads and policies like updates that force restarts and upsells. Stability is certainly much better.
I read this, came back and clicked on the wrong comment section. Funny thing, it wasn't much less entertaining.
These examples all seem rose-colored.

* games: there were definitely buggy games being released in the past, the major difference is now they can be fixed. But you have fan made patches for things like SimCity 4 and Skyrim. Heck Nintendo made its whole business off of shipping higher quality software than its buggy competitors in the 80s.

* bank software. Consumer facing bank software was worse in the past, I don’t think this is a great example of a category getting worse.

* security was also worse back in the day, objectively.

If anything we experience more problems because we now expose a greater surface area of our lives to technology

> Consumer facing bank software was worse in the past

The user experience of an ATM has certainly declined over the decades. Monochrome screens with 2 columns of buttons were the pinnacle. But the uselessness of today's ATMs doesn't fall on the software developers, except indirectly. It isn't their fault that the product people wanted it to be the way it is now. If good software engineers refuse to implement bad ideas, the thinkers of the bad idea will simply reach deeper into the barrel to find someone desperate enough to do the job, and the result will be commensurate with this process.

That said I generally agree with your point. The lazy article fails to establish the premise.

But how else are you going to be tempted by their excellent mortgage rates?
Undoubtedly this is what the product manager was thinking.

The funny thing is we now have an extremely excellent way to dispense money. It should be possible for me to unlock my phone, enter the amount of cash I want, be directed to the nearest ATM, and just tap that phone on the ATM when I get there and the money comes flying out instantly. We now have technology way beyond what anyone could have imagined in the 1960s, but we aren't exploiting it. The closest we've got is using a mobile phone as a tap card on an ATM, then you continue with the ATM's terrible UI, which is like using 1% of the abilities of the platform.

I don't think I ever saw a monochrome ATM that could deposit checks. Letting me choose what denominations I want also seems to be a more recent development. IMO the ATMs now are better than 10 or especially 20 years ago in those ways.

Games-wise, KOTOR2 has to be one of the leading contenders for bad release quality - 20 years old.

We had ATMs that could take deposits in the 1970s, and machines that accepted checks without deposit slips appeared in the mid-1980s. The only thing we gained in ATM technology in the last 30 years is laggy touchscreens and waiting forever for the transaction to finish.
This one near me prompts (1 of 4 before the transaction) if I want the balance printed on the receipt. I select No. Balance is printed on receipt.
At least KOTOR2 was salvaged with the TSLRCM mod, one of the best stories for a video game ever, and certainly the best story to come out of the entire Star Wars franchise...
There is one big improvement - now ATMs force you to remove your card before they dispense cash. The problem of people forgetting cards in ATMs was completely eliminated due to improved UX design.
I'm not sure how it was before 10 years ago, but in the past ~5 years my banking app has become far worse and less secure objectively. Specifically, since they moved from a hardware auth token to a digital token on a mobile app. Consumers lost Millions of dollars past year alone. The situation was so bad that this year govt passed a new law holding banks partially responsible for such scams. The attackers succeeded in emptying entire bank accounts despite multi-factor authentication (all of which depended on the mobile phone), transfer limits, etc,. "Technologists", of course, blamed the consumers for downloading untrusted apps. They also went as far as to say that Android is less secure than iOS because it's open source.
I don't know how many different ways you have tried to communicate with your bank, but in my personal experience a bank will transfer money any way you want if you send your request by fax. The fact that one platform has 2FA doesn't seems to solve a real systematic problem. And of course there's the whole ACH system on which the level of authentication is "none".
AAA Games are being shipped with massive even gamebreaking bugs, that’s relatively new. I’ve completely given up on playing games on day 1.

Compare Cyberpunk 2077 on day 1 with 10 year older games like GTA 5, The last of US etc and it’s amazing how terrible Cyberpunk was when it shipped.

Or look within series, Suicide Squad: Kill the Justice League (2024) vs Batman: Arkham Origin (2013) and if you’re just look at day 1 there’s no contest. Worse Suicide Squad got worse after a patch. https://gamerant.com/suicide-squad-game-update-incursion-mis...

I disagree on the banking software side of things. One of the ATM’s near me takes 10-15 seconds between every single screen and it asks several extra questions like if you want to blank the screen. It might look better from a feature checklist standpoint, but it’s faster to use the bank teller when getting cash.

Ignoring the fact that shipping broken games is a business decision, not a technical one, what is the point of cherry picking examples? Why not consider ET for the SNES or plenty of other broken games from the past?

Besides the amount of software in a modern game vs something from the 80s is so insane that often something like an 80s arcade game is an easter egg.

Or ET for the Atari!
it had one awkward mechanic in its control scheme. It took all of 5 minutes to learn to cope with it. And it was not a bug. People just didn't read the manuals back then either. It was actually a decent game (i still have an original cartridge)
> shipping broken games is a business decision

Obviously, but just as obviously buying games on day 1 is a frustrating waste of time. We’ve reached a point where it’s just not worth the hassle.

I’m not cherry picking just looking at categories. ET wasn’t even close to a AAA game, but look at the top 10 games from each year (total sales or preorders) and you’ll see a significant increase in day 1 bugs. Start looking at AA games and some of those never get the patches they need to be playable.

People may have complained about the balance etc of each game, but Diablo III didn’t have anything like the massive number of bugs Diablo IV dropped with.

Hmm what bugs? D4 had a pretty smooth launch, didn't it?

But also > We’ve reached a point where it’s just not worth the hassle.

YOU have reach that point. As many do. And that's fine. Clearly there's still plenty of people who would rather play a somewhat buggy game sooner than wait. Why do we need to get on a high horse about it?

Funny enough this thread about how well D4 is made just happened to be on reddit.

https://www.reddit.com/r/Diablo/comments/1byutzf/diablo_4s_e...

There's so little actual data in this thread its really hard to make any conclusions.

That’s 8 months after release, when it launched people were complaining about everything from floating monsters, broken quests, and a slew of crashes and about 12 different bugs preventing them from starting the game and connecting to servers.

Personally my favorite was this one: I came across a post mentioning the possibility of transferring items between the standard server and the seasonal server. At first, I thought it was a joke, but the method was very detailed, and eventually, a few users who followed the method actually succeeded in transferring their items, standard to seasonal and vice-versa.

What's even worse, one of the players successfully uses this bug, allowing a seasonal character and a standard character to group together. https://www.reddit.com/r/diablo4/comments/15h2dlf/serious_bu...

That’s the kind of bug where you wonder what architecture even enables it to happen. But apparently a similar thing occurred in D2 LoD.

OP in not cherry picking, practically all AAA games are a pile of garbage on the day of release. You'd have to cherry pick the ones actually in a relatively fine state on launch day. Yes, it's a business decision but fuelled by a few factors that did not exist 2 decades ago:

1) Pre-orders

2) Massive marketing machinery employed to boost game's popularity

3) Shareholder value; the game studios of today are part of large media/entertainment conglomerates

4) Younger generations' "flexibility" for low-quality products. They tend to settle on mediocre quality more easily which is not helped by today's narrative that every form of critique is "toxic" or "hateful".

5) Online nature of the product allowing for fixes at a later date

Pre orders existed, I think you are more referring to Early Access which has basically become paid open beta
Outpost was so broken on ship its legendary. The 80s games were so broken they literally killed the industry for years.
The 80’s had issues with shovelware not major releases. Pool of Radiance is from 1988 and was effectively a AAA game of the time.

People complain about ET, but Mario Brothers dropped in 1983. There’s plenty of beloved games from that era.

That's just not true. The gaming industry has been booming for the past 30 years.
I do not think people remember how bad software was over a decade ago or even more.

Web browsers for example. I remember the days before Firefox got that quantum update and the crashes went down. Chrome tabs crashing. Adobe Flash.

Windows Vista came out in 2007.

Windows 7: Windows Vista with proper QA and drivers.

Windows 8: the user interface. Yes, some of you liked it, most didn't. It was very bad.

Internet Explorer... Windows 98... Windows ME...

Windows 10 was so much better. Windows 11 is the next Vista phase.

Mesa on Linux before Valve started hiring contractors to work on it. Remember the days when a major release of Mesa was based on if it implemented a new version of OpenGL?

AMD graphics before AMD properly supported it on Linux. AMD drivers on Windows before Youtubers started actually using AMD cards and complained about the drivers.

Games For Windows Live was closed on August 15 2013.

This was before fun things like mitigations for hardware vulnerabilities that software has to deal with. Or the growing scale problems AWS has to deal with it controlling 90% of a growing market.

Even Bing has gotten... a little better...

I guess Mac OS X has objectively gotten worse, but it has been that way since Snow Leopard (half joking).

Google search has objectively gotten worse.

> Adobe Flash.

The fact that it got killed is literally an example of software being worse now than 10 years ago, thousands of fantastic little games were implemented in Flash, this was an easy way to create and distribute games causing many little labors of love being made, and then the deliberate choice was made to kill it.

Fortunately the ruffle project revived many of those games now.

> thousands of fantastic little games were implemented in Flash

True... but also when your right clicked in a Flash widget on Firefox on Linux in would cause the browser to hang. This problem existed for years. That is why I listed it.

> when your right clicked in a Flash widget on Firefox on Linux in would cause the browser to hang.

I used flash in firefox in linux all the time and used right click often to pause flash animations and skip frames forward/backward and this never crashed/hung for me, so at least it wasn't a general linux issue...

The only annoying thing was that there was a time period of multiple years where the linux flashplayer was not being updated anymore and more and more Newgrounds games started not working for Linux, then at some point adobe finally turned around and made linux versions again... (maybe it was between 2012 and 2016 with versions 11 to 24 but somehow my memory was that this was longer ago)

About half the processes I was driving myself crazy trying to get adopted fifteen, twenty years ago are more or less standard now.
> I do not think people remember how bad software was over a decade ago

Or how good it was.

Pro24 and then Cubase on the Atari ST ran for months without crashing. Desktop publishing on the Amiga (PageFactory? - I forget now) producing LaTeX/Postscript like output, faultlessly. Those were in 1993. Before that I used VLSI software I ran on a Sun 380 workstation and designed whole microprocessors on software that simply never crashed - even when it ran out of memory or was given 'impossible' routing tasks it auto-saved in a recoverable state - in 1989!

There's always been the same spread of software quality. Some amazing stuff written by diligent, competent engineers who actually use and test their wares. Some absolute rubbish written by fly-by-night spivs and opportunists who want to make money fast.

Sadly the latter gained the upper hand after about 2000. Mostly led by companies like Microsoft whose products are notoriously shite - a total disgrace to computing. They got away with it simply by pumping vast amounts of money in to marketing and perception management. They simply drowned out the competition, creating a normalised very low standard of software by sheer force and dominance.

Two problems lie beneath this. Firstly, software quality metrics have never really matured. It's too complex a product a gauge. The author mentions functionality, usability, reliability and security as if they were orthogonal. But in reality they are not. For instance, security is mainly a quality issue relating to visibility and control and is inversely proportional to complexity. And aren't ease of installation, accessibility and ease of development also quality factors?

Secondly, I don't think the average persons has much rational expectation around software quality. Again Microsoft and then Google proved that. Many people are pleased by eye-candy and UX fluff, or by the social aspects of software, but they disregard actual functionality. Ask random people whether software got better or worse this last decade and I think you'll get a lot of confusing, scattered responses,

You forgot the Windows 3.x era, where up-time was often measured in hours. From my recollections, early Windows 95 was not much better. Of course, Windows 9x and earlier were single user operating systems with no security to speak of. Organizations frequently put on a layer of access control, and that layer was frequently completely ineffective.

Speaking of ineffective security, I recall sessions being identified by IP address. Have more than one computer logged in behind a NAT router, well, you were all accessing the same account. Passing the password as part of the URL? Why not! Many protocols even sent passwords as clear text, never mind encrypting the actual data being shared.

And while a lot of that stuff happened in the 1990's, some of it was happening well into the 2000's.

That being said, I think we could be doing better than we currently are if we had simpler and better understood systems. It is almost as though we insist upon making new mistakes after learning from the old ones.

As a real world example my ipad pro on the latest iPadOS 17 can't even maintain 2 weeks of uptime without crashing or getting so slow it becomes unusable without a restart. And I've tested it multiple times on normal workloads using just the stock apps without ever connecting it to external devices

I wasn't expecting 20 years of uptime like an AS/400 but 2 weeks is absurdly short reliability for under the most ideal circumstances.

It's been at least 10 years since I've gotten a blue screen of death (or equivalent)
The answer is “because the author is engaged in rosy retrospection”.

The Atlantic, in 2013: Why is software so slow?[0]

Mac Observer, in 2015: OS X quality is declining.[1]

Some random programmer blog, in 2015: “Worse Is Better” 25 Years Later – Have We Gotten Lazy?[2]

Information Week, in 2009: Paging AIM: Why Does Software Always Get Worse?[3]

MIT Technology Review, in 2002: Why software is so bad.[4]

[0] https://www.theatlantic.com/magazine/archive/2013/09/why-is-...

[1] https://www.macobserver.com/tmo/article/mac-experts-weigh-in...

[2] https://spin.atomicobject.com/worse-is-better-vs-right-thing...

[3] https://www.informationweek.com/it-leadership/paging-aim-why...

[4] https://www.technologyreview.com/2002/07/01/40875/why-softwa...

I largely agree with you, but worry that this is poor evidence? Could both be worse now than a decade ago, and as much worse from two decades ago.
What can be asserted without evidence can also be dismissed without evidence.[0] The burden of proof is on the author to demonstrate that software quality is actually worse now. If they want to refute the argument that they are engaged in rosy retrospection, then they should offer more than a handful of personal anecdotes that demonstrate nothing.

Google Drive lost some data that one time in 2023? Cool. In the 1990s, Windows uptime was measured in BSODs per day, and data loss was predicated on how frequently you remembered to hit Ctrl+S before your computer crashed.

Your bank has a frustrating mobile UI? Cool. Ten years ago, they probably didn’t even have a mobile UI, or if it did, people were also complaining that it sucked[1].

Security is worse now because people don’t update their dependencies so leak user data? Cool. The largest known data breach to date happened in 2013[2]. Ten years before that, the entire internet nearly collapsed because of a computer worm[3].

Is any of this a more valid rebuttal to the original author? No. They’re just more anecdotes.

[0] https://en.wikipedia.org/wiki/Hitchens%27s_razor

[1] https://reddit.com/r/personalfinance/comments/30psm7/any_ban...

[2] https://www.nytimes.com/2017/10/03/technology/yahoo-hack-3-b...

[3] https://en.wikipedia.org/wiki/SQL_Slammer

This is still a sophists tactic, though? As you point out, it is not a valid rebuttal.

Can be fun discussion. And, again, I largely agree. I would be interested in the actual topic, as well.

Some metrics that could be indicative? QA team sizes. QA cycles. Features added versus features improved. Lines of code added. Size of features added.

It is frustrating, as lines of code is an easily gamed metric, it still correlates very well with number of bugs.

(comment deleted)
I wonder about these kinds of "things are getting worse" assertions.

I might put it a different way:

- new software might have more problems than older stable software.

- There is exponentially more software being created now

- new software is on the forefront of solving more of society's problems

- maybe things are getting better? (though there is some dystopian software, like any cookie/privacy dialog)

- this might be an example of doing the right things poorly, instead of doing the wrong things well¹.

[1] I think of accidental empires

"Hippies tend to do the right things poorly; nerds tend to do the wrong things well."

https://www.cringely.com/2013/02/10/accidental-empires-part-...

Do people really still follow Martin Fowler, Uncle Bob and the rest of early naughts gang?

It is true that few of these people ever actually made anything. Somehow, they got famous for working on a boring internal project for Chrysler.

I agree with the author that people seem to crave "controversy" (perhaps absurdity as well). Fortunately I think it is getting better. Peak nonsense probably occurred about 12 years ago.

I thought this was a Kubernetes joke, but nope, the first release was nine years ago.
I was thinking more in terms of processes. I actually don't think that Kubernetes represents "peak nonsense" at all.
(comment deleted)
I feel like, very generally speaking, the quality of software (meaning the efficiency, security, and such) has gone way up. It’s a wide range though, with some pretty extreme cases in both directions.

The issue I have is what developers are being asked to work on. A technically pretty good product (Edge, say) is saddled with “special offers” and telemetry and other MBA bait. A corollary is a technically excellent product being overproduced and trying to do too much, like Evernote or Plex. We are at the far sales end of the engineer-sales pendulum. I’m hoping things like Boeing’s troubles will give the initiative back to the engineers for a while.

I think the article is an unsupported pile of red herrings even though I think apparently the software "quality" has indeed gone down, non-uniformly.

The simple explanation for that is that you, the user, are not the customer. A lot of software today simply does not need to cater to the needs of the user because the user has no choice in using the software or not. This is either because of network effects, monopolies, DRM or simply not having the decision power within a hierarchy. Even if software development practices are better than ever, the software developers are less aligned with software users than ever. It is an increasingly adversarial relationship.

It is not quality that has gone down, it is an alignment problem.

I think what makes it worse is that, although there was plenty of bad software 10 years ago, everyone was striving to make it better and could recognize what that meant. Also, most companies were using quality tools and they weren't all using the same silver bullet tools.

Although a lot of people at the time in the web space were complaining about there being too many different frameworks, this was actually a good thing because each company used the framework that made the most sense of them.

For example, there was a framework called SpoutCore which provided a lot of ready-made components. It would probably not have been suitable for making websites since all the components looked and behaved a certain rigid way but it would have been ideal to build (at the time) an internal dashboard or admin app, for example.

Most companies carefully researched and considered what frameworks to use on both the front end and back end. Popularity was just one criterion and it was often the least important one.

Nowadays, popularity feels like the only factor being considered when choosing a framework or tool. Companies won't even acknowledge that there are nuances in their projects which might warrant considering different tools. Everything is treated as a silver bullet. One size fits many.

Feels like communist-era nonsense where there is only one thing of each kind and big tech has taken the role of the state to decide which one is the correct one.

“Supply and demand” coupled with “market pressures” coupled with “this isn’t a science or discipline where lessons learned or knowledge gained is actually carried forward”.

It’s a real thing that is actually happening, but a large number of people enjoy convincing themselves that there isn’t anything unique or unusual about present declines. Like so: https://youtu.be/ee6-sI9rdtA

>>> In my experience, this problem is really prevalent among the youngest people. I had the pleasure to work with brilliant people that are part of the Gen Z bracket, but most of the ones I worked with can’t get anything done. It’s not lack of experience, it’s because they are constantly defaulting to their phones, watching endless videos or even playing games while they are supposed to deliver.

As a genx'r Ill tell you this is not true.

The desperate need to have assess in seats + money brought a lot of folks to software who arent INTO it. The nerds of ye olden days were different, you were into computers cause you were a geek.

GenZ still has geeks (probably fewer of them, computer labs, and computing teachers went away like shop class for this generation). They are just as good as the geeks of previous eras. In fact I would say that the gen z geeks are better off for their age.

THe mark the author did miss is that we have decades of tooling. The in it for the money group just adds packages till things work, and that set has been around since 2000 (gen x). Its just that in 2000 they were writing HTML and today they are downloading leftpad (and its decendents). Its only worse because we supercharged their productivity (destructivity).

(comment deleted)
Ah yes, it's the young people who are to blame for the perceived industry wide drop in quality. Yeah right.
it would be ignorant to blame an entire generation, so I am not doing that. I believe younger people are more informed and more capable than we used to be at that age. However, you cannot deny this is not happening. It's not the culprit, but could definitely be a factor.
The attack on Martin Fowler is unfair and unnecessary. Fowler became well known because he did a good job at writing and summarizing topics that were interesting for people working with enterprise software a while ago (UML, Refactoring, Enterprise Architecture Patterns). If you read those books without critical thinking and follow them as a recipe, then the problem is not the book's author.

I attribute software quality decline to increasing complexity and pressure to deliver faster, confirmation bias (what is the software that we are talking about? Looking back at the time of MS-DOS and Windows 3.1, I cannot say that software at that time had more quality), and finally a lost of interest of going “deep” in many areas (I agree with the author on this). Countless times, I talked with engineers in software architecture positions who base their decisions on the latest blog/article that they have read, without too much analysis. But, it doesn't matter if it's Fowler or another author.

No barrier to entry. No survival of the fittest. Bootcamps and coddling.
It's just more complex.

I worked on a project in the mid-late 90s that had a couple of hundred developers, building a system of maybe 150 db tables not incl. join tables.

20 years later, I worked on a similar sized rails project, with a team of 5.

A team of 100s now is going to build something vastly more complex and featured than similar teams before, with a consequential increase in the number of issues. Think of something like a code editor, or spreadsheet. This would be a major project in the 80s - now it's almost a homework assignment.