Live data from Hacker News

Ask HN: Why is software quality an afterthought for many people/companies?

news.ycombinator.com

1–10 of 100 posts

Ask HN: Why is software quality an afterthought for many people/companies?

#1
I've seen many discussions around this topic lately, but I'm particularly curious to understand why most people think that software/code quality is something secondary and could be addressed late in the process, for instance with peer review.

Why isn't the idea that software quality starts way before you write any line of code the predominant mindset amongst engineers / the industry?

I have the feeling that most companies don't hold discussions about what software quality means and how it should be measured.

To which extent do you agree or disagree with this feeling?

Re: Ask HN: Why is software quality an afterthought for many people/companies?

#3
Minimum Viable Product

In fact these days, people kinda know what they want, but really only understand what they want when they have something in front of them. I'd go so far as to suggest you can over-engineer a solution too easily and then spend a lot of time refactoring it. YMMV

Re: Ask HN: Why is software quality an afterthought for many people/companies?

#4
Because of the fact that software is seen as a cost center rather than as a means of production. If you were to factor quality in right at the start most projects would never be approved and so we try to 'fix' the problem at two minutes to twelve.

This is also a large factor in why software projects tend to overrun both in terms of time and budget (the other large factor is bad project management).

Re: Ask HN: Why is software quality an afterthought for many people/companies?

#6
To most businesses, the core objective is creating a profitable business, and most other objectives, including engineering, marketing, support, and yes, in many companies even things like customer and employee satisfaction, are secondary to that, and only really prioritized to the extent that improving those areas also improves the bottom line (I would in fact argue that this is true of almost all companies, and that the difference in whether they prioritize customer and employee satisfaction or not, is mostly a matter of whether they look at the impact on the bottom line in a short-sighted manner, or in a more long-term way).

So in regards to your question, it would seem that the market reality is that a lot of the time, it is better for a company to have a quickly-cobbled-together piece of software that mostly does what the customers want (and maybe get to the market first) even if it is low-quality, than it is to have a piece of high-quality software that does less, or is finished later, but is maintainable, and potentially scalable in the future (which you'll never get to enjoy because the worse-is-better people already conquered the market).

Re: Ask HN: Why is software quality an afterthought for many people/companies?

#7
I working in consulting, and in a lot of cases while we're well intentioned in delivering quality software, we're forced to fight against clients in time, budget, scope creep etc.

Sadly, things sometimes get rushed out the door and it's not until some time has passed that they realise the enormous tech debt they've incurred.

Re: Ask HN: Why is software quality an afterthought for many people/companies?

#8
Software development is, apart from a few rare outposts like GOV.UK, conducted in the private sector for a profit.

That means that the number one consideration for the software is profitability. For internal-only software, this means that cost is the prime consideration.

In support of that, often software startups are trying to capture a winner-takes-all market, so time-to-market is critical.

Thirdly, consumer protection law is weak in the US, and product liability is almost nonexistant for software everywhere. The cost of failure is very low even if you leak all your customers' data or your product ceases to work after 18 months because you've "pivoted".

Fourthly, a lot of software is ""free"" or ad-funded. This further weakens the cost of failure.

There are techniques for delivering extremely high quality software. Few sectors of the industry care about them because it's not required and is unprofitable, but the aerospace people can usually get it right and the security people can usually get it right (when dealing with security products, not general purpose junk like Flash).

The automotive industry is kind of on a boundary. The Toyota "unintended acceleration" bug revealed some tremendously poor quality software. This is one of the main worries about self-driving cars: how minimal is the quality assurance going to be?

Re: Ask HN: Why is software quality an afterthought for many people/companies?

#9
Any organization that has a "normal" modern development process (Code reviews, Reasonable test suite, continuous builds, static analysis etc) has a decent focus on quality. That doesn't mean quality has the focus it needs within the organization but at least its then not secondary or a focus for late in the process.

Re: Ask HN: Why is software quality an afterthought for many people/companies?

#10
In Peopleware, Tom DeMarco thinks it's because a business's customers will tolerate lower quality software, so there are diminishing marginal returns to revenue as investment in software quality continues. He predicts that while this management style works wonderfully for the bottom line in the short run, it causes long-term ailments such as team dissatisfaction, overly complex architectures, and other issues that may be more expensive overall.

Quality and security become increasingly important as we depend even more on software systems for essential functions such as cars, power grid management, agriculture, etc. Unfortunately, this situation is all too similar to how many opt for the emergency room over preventative care.

We should also consider that many businesses wouldn't exist if not for lax quality requirements for software products. How many product V1s are chock full of bugs and exploits, and to what extent is that okay? What about open source? As usual, it's pretty complicated.

Post reply on HN