Live data from Hacker News

Ask HN: Why is software quality always decreasing?

news.ycombinator.com

141–150 of 166 posts

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

#141

Software quality has been increasing for as long as I've been in the business. However, the complexity, scale, and defect surface of software has been increasing at least as quickly. We've invested the systemic gains in quality to expand the capabilities of what software can reasonably do instead of polishing the software we wrote 20+ years ago. This was the right choice in most cases. The software from a few decades…

I find this curious. I guess I don't really want to refute or validate your point too much either way and just want to share an anecdote to make people think.

I started out my career working for a large company (~10.000 employees in my actual company and the entire corp had >100.000 employees even back then).

I would probably agree that what you say is true for most software. Now why I find this curious is because the piece of software I was working on I think exhibited many if not all of those symptoms. It was old (about 15 years at the time, which by now is about 15 years ago and I'm pretty sure they still use a lot of that even though I have no way to check). So by now 30 years. It was archaic in many ways even back then. For ** sake, they were using CVS, they fixed stuff directly in Prod (scripting FTW, yay! ) and the code stank! Fixed width formats all over the places. You were lucky for finding delimited interchange formats. Live interfaces? Forget about it! Scheduled nightly runs! Unfortunately I can't say where I worked or on what but you would all recognize (and even your non-techie friends) some of it but not other parts (because the company ownerships aren't widely publicized and it's not anything that's "usually" on HN).

Inferior? In some ways yes, in other ways absolutely not at all. Their database and application was able to do things you could only dream of. This was (is I guess) an application that is/was used 24/7 all around the globe since ~30 years ago by now, which had excellent backwards compatibility (usually going back about 3-4 versions of the DB schema - full version history on all tables). Of course this was all in-house, not out there on the web. Even though the code stank and I cleaned up a lot of the parts I worked on in my years there, it was a marvel of engineering if you think about that. Some of what they were able to do 30 years ago, I still can't do at my current company! On the other hand, some things that are completely normal at my current company were and probably still are unthinkable in that place!

I am really thankful for having worked at that company as my first job. Even though at the time I probably didn't fully recognize this, it taught me a lot of perspective that I can use to this day to inform my thinking and decisions and ultimately helped me end up in the position I have right now. This was a team of 6 with myself and the team lead included. This was for the FE (fat client in a language many people won't even recognize or only by name) and the BE (scripting languages of various types).

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

#142
I only have my narrow view of the industry (a handful of teams across 4 different companies) but I disagree with the premise. It seems to me that software quality is on average better than when I started out in the industry in the mid-2000s (and at school before that). In that time, I've seen version control, code reviews, automated testing, and reproducible builds all go from novel tools we were dipping our toes in to industry standard practices.

That said, I think it's only slightly better, and not as good as it should be given our tools and (collective) experience. I chalk this up to the reasons other people have given—mainly the business of software doesn't favor clean code and the majority of code is written by new developers who are still developing their skills.

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

#143
Software "Engineering" is not really an Engineering discipline, such as Civil Engineering, where there are norms, standards, accepted practices, regulations, and a body of knowledge that hasn't changed much in hundreds of years. Or compare it to Mechanical Engineering, which is similar.

In comparison, Software is a very young field, and is not regulated at all. Open any EULA and you will see that you are indemnifying the vendor from any sort of liability to the maximum extent possible. Further, software is only loosely limited by physics: almost anything that you can imagine can be built using software, so software creations are incredibly complex, and are all man-made, with extensive combinatorial inputs that simply can't be tested or are not feasible to test economically. Also consider that fact that software is almost always purpose-built and not comparable to a mass-produced artifact such as an IC engine, or a girder, or a length of rebar, or a chemical reagent. So the methods of Industrial Engineering, which concern themselves with quality control in the face of uncertainty do not neatly apply to the software world. The rate of change of software artifacts is just mind-boggling: once a bolt is produced, that's it. It doesn't need to be continuously maintained, updated, or improved, because it simply doesn't possess the malleability of code. If you fasten it with the right amount of torque, you are probably good for an indefinite length of time and can expect to simply forget about it. The software equivalents of nuts and bolts, such as compilers, are nowhere near as simple as nuts and bolts: they are whole universes in their own right, and every detail of that universe is man-made, conceptualized from scratch.

I could go on, but given that software is so complex, it is to be expected that it doesn't hold up to your notions of quality.

If you want to look at large codebases that have maintained a high quality, the obvious recommendation is the Linux Kernel. Another is the Go Standard Library, which is very readable and well-written. I think musl, a minimal libc replacement, is also considered very well-written (but perhaps it's not a huge codebase). Postgres source is also widely known to be pretty good for such a complex codebase that is worked on by a large group.

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

#147
Honestly, in my case, every single place and project I've work at/on has been a trash fire. I've done my best to simplify and keep things as simple as possible but there is always one developer that you know if he touches the code, the mess will linger for 6 months.

At this point I'm considering only joining startups with greenfield projects so I can have more power to keep things simple. Joining projects that have been around for a while has become tiresome. It's always the same kind of messes too and they are always abandoned. I wish developers would stop building things and then running away. It's your mess, your name is on it, clean it up before you leave.

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

#148

Earlier quoted context omitted.

Most of the "client"/desktop software does the same things that it did in 1997. Most/all of the 'advanced' features such as AI/voice recognition are done server-side because reasons. If the quality of desktop software was going up, it would be doing more than it did in 1997. I don't think it does, in fact it is being dumbed down to look like mobile software (which is inherently lower quality due to limited UI). So ho…

Do you think web development is anywhere near what it was 20 years ago? Or even 10 years ago? It has definitely advanced a lot. We're now able to do things we were never able to do back then. Now the browser can run a whole cad application, Photoshop, advanced 3d games and complex UI that we weren't able to compose before.

> Do you think web development is anywhere near what it was 20 years ago

why not compare web dev to where desktop was 20 years ago. The question from the user perspective is not whether this or that type of development is getting better, but whether software offers us new affordances today, which it does, but most of them rely on server-side processing and cloud data.

I think you bring up a great example. Which kind of application has gotten better than its past desktop counterparts because of the improvements in javascript? (counterexample: we lost Flash)

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

#149

For users (and hence product owners, managers etc) the most important quality is features. That the product does what they want. So long as users would rather have software that does 20 things poorly than 10 things well, then that's what they'll get. Because the software with twice the functionality will cast a wider net and catch or keep more business. The reason you see the buggy and bloated software is survivor bi…

As a user I disagree. For business software I even disagree more.

What I need is a software which does have the required functionality. What I don't need is a bloatware which has errors in all function.

As a user, I hate CD/CI. After I just get used to the old functionality, suddenly my buttons moved, my function I rely on behaves differently. I have to start to learn again instead doing my productive job.

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

#150
What is succesfully on the market is unstable and unfinished software with long list of features no one needs, nice looking but unergonomic user interface, with a software architecture based on the newest hyped buzzwords and to complex to deliver a stable product.

What users need is a stable (no CD/CI) software which has the function set they need to do their business.

Post reply on HN