Live data from Hacker News

Ask HN: Why is software quality always decreasing?

news.ycombinator.com

81–90 of 166 posts

Re: Ask HN: Why is software quality always decreasing?

#81
Economics. People are ok with 'lower quality' software if it has more features and is delivered faster, by and large.

I read a wonderful article that went into this in some depth a while back but can't for the life of me recall where.

Basically, if you're doing some kind of NASA mars rover software, you go over it again and again and are really careful and all that costs a lot of money. It also means you have fewer features and it all takes longer. If you tried to use that sort of process on some banal bit of everyday software, it'd be way more expensive than the competition and have fewer features. You'd go out of business.

I also agree with the other commenters that quality hasn't really declined over the years.

Re: Ask HN: Why is software quality always decreasing?

#82

Reasons: 1. The software creation process moved from designing software to "growing" software. With iteration time moving from months to weeks. So there is no conceptual integrity. 2. MVP turning to final products. Basically quick and dirty code become the foundation of the architecture, with no time to refactor. 3. Short tenure time. I think that avg tenure time for young developers is less than a year. Hence, the k…

Users have an incredible tolerance for issues on specialised software as well. Sure, the pages load slowly and once a month you see it totally crap out, but it has more features which let you make more money by using it so who cares.

Most of the time as a software dev company, you are better off building as much functionality as possible and just keep things working enough that people can deal with the issues.

Re: Ask HN: Why is software quality always decreasing?

#83
Reasons: Overuse of OOP, Devops, CD, Microservices, Java, Javascript, nodejs, github, webserivces etc.

Every of these things bring multiple tools, frameworks, design patterns, convention and standards, which are all hyped for a short time until everything breaks down under the additional layer of unmanagable complexity until the next hyped toolset is introduced promising to solve all underlying problem, but finally adding another next layer of complexity.

Later you can't can find anyone who can maintain codebase developed using a framework hyped five years ago.

Example for large, old, good, maintainable codebase suported by a large number of developers in the world: ABAP (Sorry, no github, no open source. And sorry again: Imperative language).

And the silver medal goes to............................: SQL.

Re: Ask HN: Why is software quality always decreasing?

#84
Mainstream went from C, to C++, to Java, to JavaScript.

If you have written GUIs in C/Win, C++/Qt, Java/whatever, and JS/React (or Vue) you should have an idea of what went wrong. That's just GUIs.

Bad code is always going to happen, when you make stuff will you regret some choices. That's a given. But at what cost you can refactor your way out depends a lot on the language you have used.

Now there are languages that make it harder to create a mess that is hard to refactor yourself out of. They are languages to, you could say, optimize for refactoring by using strong typing. Rust, Haskell, Elm, OCaml/ReasonML/Rescript, Kotlin to some extend.

But non of them are mainstream.

The IDE assistance I got with refactoring C++/Qt in 2001 is still miles ahead with what I get with JS/React (or Vue) 2022.

I recently did a Elm app on an automatically generated GraphQL API on a PG db with Hasura. I could auto generate typesafe bindings to the GraphQL schema in Elm. This was the first time I felt C++/Qt (or Ruby/Rails) kind of next-level powerful again. Type safety from db schema, through the API, to my frontend/UX code in strongly typed Elm.

So I think it is improving, but not so much in mainstream languages.

Re: Ask HN: Why is software quality always decreasing?

#85
post #67

Earlier quoted context omitted.

Lets check out wikipedia: Entropy is a scientific concept as well as a measurable physical property that is most commonly associated with a state of disorder, randomness, or uncertainty What is your claim, that disorder, randomness and uncertainty DO NOT build up with time? :) > And I agree that tests make refactoring easier. They don't make it easier. They make it POSSIBLE. > And so, what specific quality guarantees…

The topmost claim was that software quality degrades over time, as entropy must increase . Both of these claims are false, as the topmost commenter did actually say correctly - entropy only grows globally, but it is possibly to decrease it locally at the expense of some larger increase somewhere else (think of a fridge - it decreases the randomness of molecules inside (cooler) by heating the outside). If we accept th…

The idea is that entropy increases unless you put in energy. If you are specifically working to keep the code clean of course that’s possible. But entropy, bit rot, etc is the default state without any work being put in to combat it.

Re: Ask HN: Why is software quality always decreasing?

#86

Earlier quoted context omitted.

Even with those caveats, it's unclear whether the premise is satisfied. The Linux kernel is old (old enough to drink!) large (and getting larger!) and supported by many people. Has its quality declined? I don't think so. It supports more hardware than ever. Kernel panics don't happen nearly as often as they used to. New features (BPF), make kernel programming easier. It's difficult to say that the Linux kernel's qual…

>> Kernel panics don't happen nearly as often as they used to My earliest kernel I have used in something one might call production are 1.2.12 around 1995. I must say even then, with this early kernels I had no panics at all and much higher uptimes (patching for security wasn't as much of an issue at that time ;-) )

There were many exploitable remote root holes then, but no one was attacking them because Windows was a much juicier target.

Re: Ask HN: Why is software quality always decreasing?

#87
post #81

Economics. People are ok with 'lower quality' software if it has more features and is delivered faster, by and large. I read a wonderful article that went into this in some depth a while back but can't for the life of me recall where. Basically, if you're doing some kind of NASA mars rover software, you go over it again and again and are really careful and all that costs a lot of money. It also means you have fewer f…

I don't know. I'd absolutely pay for software that faster and more reliably than $electronAppOfTheDay, and which didn't require updates every two weeks. Maybe I wouldn't pay mars rover money, but surely there's a balance somewhere in the middle.

There are economy of scale issues to consider though. I use OneDrive because everyone else at my company has files stored in OneDrive. Still, I think my company collectively looses a massive amount of time due to OneDrive crapping out, and I think we'd pay more if there was a solution that was really rock solid.

The problem is that no one is doing it. iOS and macOS are on yearly update schedules in which Apple introduces half-baked features just to remove them again a few years later, and Microsoft won't offer Windows LTSC to consumers. I retreated to an eight year old version of OS X and it's great, but I'm also crazy, most people can't do that. :)

Re: Ask HN: Why is software quality always decreasing?

#88

Earlier quoted context omitted.

Even with those caveats, it's unclear whether the premise is satisfied. The Linux kernel is old (old enough to drink!) large (and getting larger!) and supported by many people. Has its quality declined? I don't think so. It supports more hardware than ever. Kernel panics don't happen nearly as often as they used to. New features (BPF), make kernel programming easier. It's difficult to say that the Linux kernel's qual…

I had this specific example in mind. How has Linux done it? Was it ultimately due to the benevolent dictator for life (BDFL) management practice?

The kernel isn't working on commercial deadlines. Maintainers don't have to worry about their stack rank at the end of the year. They don't have to justify their head count. Some of this happens internally I'm sure, at places like IBM, Red Hat, and Intel, but none of it is coming from Linus.

Re: Ask HN: Why is software quality always decreasing?

#89

There aren't that many old, large-scale codebases in use that are failures. If most of these are not following what you consider to be best practices, maybe those practices aren't as advantageous as you assume.

The legacy systems you refer to are used because they satisfy the business needs.

But many have awkward, confusing UI are brittle in face of required changes and the documentation out of sync with the code which often has confusing and contradictory comments.

The management is always screaming for the latest fix, change to be made ASAP. So the programmers do their best in adverse conditions. Any attempt to do a proper job is a career limiting move.

Re: Ask HN: Why is software quality always decreasing?

#90

Earlier quoted context omitted.

People being up the Linux kernel on the same way they bring up Oprah as an example of being successful in America. 99.99999% of software in big corporations will not have even 5% of the quality of the Linux kernel. The reason the kernel has such a high quality is because of Linux being a dictator, training everybody in not always so nice ways to write code that doesn't break anything and that is maintainable. He care…

The Linux kernel is an easy example, sure, but it's not the only one. You can say the same thing about proprietary operating systems and software as well. It's been a long time since I've had misbehaving applications blue-screen Windows. That's something that used to happen daily when I ran Windows 98. Or if you prefer MacOS, I remember MacOS Lion being incredibly unstable, with beach-balls and crashes galore. That's…

Regarding games, I wonder if it is just an issue of expectations.

For the longest time, AAA studios mostly released simple first person shooters with straightforward enemy AI and simple physics. And Bethesda and Obsidian released gloriously buggy RPGs. Nowadays, every game includes open world elements, RPG elements, and more complicated NPC interactions... and it turns out that they are all full of bugs. Complex games have complex problems that don't reveal themselves until players do weird things.

Not to mention all these RPG systems add a whole additional layer to mess up -- character stats might not be 'buggy' exactly, but they might be very poorly 'balanced.' It is really easy to not explore every skill interaction and sometimes multipliers end up exploding. I mean, we saw Blizzard fail to balance Diablo II for like a decade or so, Wizards of the Coast tries to balance D&D but that takes all the fun out of character building -- RPGs of any significant complexity are I think just fundamentally prone to exploding numbers.

Post reply on HN