Earlier quoted context omitted.
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.
Ask HN: Why is software quality always decreasing?
91–100 of 166 posts
Re: Ask HN: Why is software quality always decreasing?
#92>proper abstractions and commonly accepted software engineering best practices Put 10 senior developers in the room, ask them a question about those practices. You'll probably get 8 variations on a mainstream approach and 2 alternative approaches. As I'm often switching around stacks I'm shocked how lacking automated tooling is at enforcing basic formatting guidelines in some languages, IMO JavaScript prettify is the…
Re: Ask HN: Why is software quality always decreasing?
#93If I was to guess, I think a lot of it has to do with the transitory nature of so many software jobs coupled with investor pressure to deliver and get ROI. Engineers are switching jobs every couple of years so projects have a constant in stream of new engineers and a constant out stream of tribal knowledge. Very few people are given the proper time to spin up and really learn the codebase, they are given a brief walk…
Re: Ask HN: Why is software quality always decreasing?
#94Economics. 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…
I'm willing to pay, and you're willing to pay, but are enough people willing to pay to support better systems?
Re: Ask HN: Why is software quality always decreasing?
#95One big thing I think is overlooked is: the kind of people who start projects that succeed tend to be good engineers, and the kinds of people who jump onto them later tend to be less good. Not bad, per se, but just not as remarkable. Usually these people are plenty good at the business's needs: shipping features, fixing bugs. But not at the kind of holistic, visionary, motivated work required to unfuck a massive project.
IMO people who are mediocre programmers (which I kinda count myself among? I'm trying to be better but it's hard to keep the motivation up) don't understand how much better at this the really good engineers are because they're almost never exposed to them. You don't write code alongside the best programmers at your random corporate job, because the best programmers don't work there (or if they do, they usually aren't writing much code). The senior engineers are senior because they're adequate programmers and excellent shippers of products. Etc.
Re: Ask HN: Why is software quality always decreasing?
#96A few factors that I think contributed to the high quality:
- Waterfall development. It may be wrong for fast-moving commercial applications with fickle user bases, but we were targeting hardware capabilities we knew in exact detail years in advance of them launching into orbit and becoming usable, so taking the time to write out detailed specifications and requirements and tailoring verification testing to these structured the development. No chaos. Everything had a clear purpose with a really obvious way of telling whether what you did was right or wrong.
- Dedicated testing teams independent of the dev teams. When their entire job is to find bugs and break stuff, it makes a difference.
- Very little library use. This wasn't really a "build versus buy" decision per se so much as the program had existed for such a long time, that at the time we solved most problems, we were legitimately the first to do it, but since the code base was entirely classified, we couldn't release our own work as libraries. The upside to this is all of our work was dedicated to actually writing and testing code, with very little work dedicated to managing dependencies, and the developers understood what everything was doing, including low-level functionality like memory and thread pools, filesystem drivers, and scientific functions like coordinate transformation, ground to orbit projection. Nothing was a black box. We understood our system because we wrote it.
- Continuity. The lead technical people from research scientists who developed all the algorithms to software architects that came up with data structures and class hierarchies, were often 30+ year veterans that had never worked on anything else. They were the world's foremost experts in what we were doing, so they were good at it.
- Effectively no corporate level management interference in what we were doing. The work was all classified and the top suits aren't cleared to know what we're doing anyway. We're either costing more than the contract pays or we're not and that's all the really matters. They can't micromanage if they can't even get into your building.
Re: Ask HN: Why is software quality always decreasing?
#97Re: Ask HN: Why is software quality always decreasing?
#98Software quality is suffering because we don't have software problems anymore. You can't make a new operating system, or make a new compiler, and make money. Those areas have been filled, and, software is evergreen so you can just port it to new hardware. What we have are social problems, people problems, "disruption" to existing industries, etc. This is software "eating the world" (because it ran out of software pro…
OS is a good example. Recent MacOS and Linux are easily the highest quality OSes that have existed. iOS and Android are quite good too. Unless you go back to when OSes could be extremely simple.
Re: Ask HN: Why is software quality always decreasing?
#99Earlier 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?
Re: Ask HN: Why is software quality always decreasing?
#100And this is where you come in, on an old ugly codebase with perennial quality problems and bad development practices, stuck in a hole and trying to dig its way out. Eventually it will get replaced by a fresh new project by a fresh new team, who just know that this time it will be different.