Live data from Hacker News

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

news.ycombinator.com

51–60 of 100 posts

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

#51
post #31

Earlier quoted context omitted.

"aerospace people can usually get it right " Are you refererring to adherence to standards like Misra and DO-178B or something else?

Adherence to standards is a means to an end, but it is neither an end in itself, nor a guarantor of that end.

Sure, stupid tools are pointless. But usefull tools...

If the point is to reduce the number of errors then it helps to at least have a checklist of the errors, and someone reminding the team of the checklist. Checklist process is one of the easiest quality and safety tools to implement.

Having a premade checklist that makes sense in the form of a process plan makes things easier.

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

#52
post #28

If you think about it, software quality is not something that is ever visible or measurable from the outside. Theoretically, you could write software by just having an incredibly long list of test cases and a random string generator. The quality of that code would probably be terrible, but it would still work as long as your test cases are restrictive enough.

> If you think about it, software quality is not something that is ever visible or measurable from the outside.

If you have mistaken issues of style for issues of quality, than that might seem to be the case. True quality in software is measurable primarily in the defect rate, and secondarily in the amount of effort needed to enhance it.

> Theoretically, you could write software by just having an incredibly long list of test cases and a random string generator.

Putting aside the time and concurrency issues, the quality would be determined by the correctness and thoroughness of your test cases.

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

#53
Software quality is one of my main professional areas of interest.

I agree with the general sentiment. Things have improved in recent years though, in part on account of movements like software craftsmanship, habits like clean code and also because software is becoming more easily and more rapidly testable due to better testing frameworks.

Testing frameworks are only one part of the equation. As you stated correctly software quality starts at the beginning i.e. with the requirements or rather even earlier when defining your values and expectations for your project and the software you create for it. There's no shortage of tools for this aspect of software quality either. Those are less rigorous though and emphasise communication rather than true / false (test succeeded / failed) outcomes. Communication is a vital component of good software quality but it has a way of becoming an end in itself rather than a means, e.g. in the form of pointless, cargo cult meetings.

Furthermore, in order to accurately measure software development outcomes it is essential to have clearly verifiable acceptance criteria. Defining those can be time-consuming.

Simply put, software quality requires investment, both in terms of time and money. Not investing in software quality means taking on massive technical debt. It's unfortunately still a common practice because often a lack in quality will only come back to bite you after some time. It's relatively easy to temporarily cover up and paper over quality deficiencies by implementing workarounds or simply by putting in extra hours. Those temporary measures aren't sustainable in the long run though. They just lead to more technical and organisational debt. Ultimately that debt can become unmanageable.

Much like in the boiling frog parable that increase in debt happens very gradually so it's often not perceived as a problem until it's (almost) too late.

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

#54
post #43
post #17

Companies do care about code quality, but it's not the same kind of quality. This is the purpose of QA. Every company that has a QA team cares about quality at least enough to hire a full-time person responsible for it. When developers talk about "quality," they mean tech debt. Addressing tech debt is problematic for businesses because it's something that never ends. You allocate one month for tech debt and the devs…

I've managed developers for the same software product (accounting system) over the last 15+ years. That amount of time gives you some perspective. A common thing that new hire developers do is call for "a complete rewrite", they do this because when they first approach a large old code base, its daunting and seems impenetrable. Of course they are right, but naive in thinking a "rewrite" will help. Any new rewrite wil…

> once all features and edge-cases are accounted for.

But one of the benefits of a rewrite is that you can dump all the features and edge-cases that are no longer required. Or fold old edge-cases into new generalities because the business has changed since then.

> the real world is messy, very messy.

Cannot disagree -but- it's nowhere near as messy as the people (often those who are to blame) defending the byzantine software stacks using that argument.

> reality is going to temper their enthusiasm after a decade or so.

I've been doing this professionally for two decades and my enthusiasm for "chuck it away and do it right" hasn't waned one bit.

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

#55
My feeling is that this type of secondary thought will be seen more often in places where management has less experience with programming. Also, it will happen more in places with less process in place.

If you cannot manage the complexity of the software developed, you increase the risk of creating lower quality software.

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

#56
post #43
post #17

Companies do care about code quality, but it's not the same kind of quality. This is the purpose of QA. Every company that has a QA team cares about quality at least enough to hire a full-time person responsible for it. When developers talk about "quality," they mean tech debt. Addressing tech debt is problematic for businesses because it's something that never ends. You allocate one month for tech debt and the devs…

I've managed developers for the same software product (accounting system) over the last 15+ years. That amount of time gives you some perspective. A common thing that new hire developers do is call for "a complete rewrite", they do this because when they first approach a large old code base, its daunting and seems impenetrable. Of course they are right, but naive in thinking a "rewrite" will help. Any new rewrite wil…

>I've managed developers for the same software product (accounting system) over the last 15+ years.

You will probably appreciate this little piece of anecdata, last July there was an update change in some fiscal Laws in Italy, so that a number of firms had to make a certain payment of taxes within the 31st of July, BUT the change was communicated/published almost "last minute" (as often happens) and a software house had to update their accounting program in a very strict time. The payment code (on the government side) was the same of another payment (already known to be due on the 31/07/2017) so the programmers, in order to distinguish the two payments "anticipated" (virtually) the date on the database, so that two payments were resulting, one on the 30th and one on 31st.

This (intentionally) "queer" behaviour was not explained (or not explained well enough) to the users.

Most users "trusted" the program and everything went well for them, those that noticed the anomaly managed to "force" both payments on the same date, and this resulted in a "single" payment (instead of the two separate ones required), thus messing up the whole thing.

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

#57
post #51

Earlier quoted context omitted.

Adherence to standards is a means to an end, but it is neither an end in itself, nor a guarantor of that end.

Sure, stupid tools are pointless. But usefull tools... If the point is to reduce the number of errors then it helps to at least have a checklist of the errors, and someone reminding the team of the checklist. Checklist process is one of the easiest quality and safety tools to implement. Having a premade checklist that makes sense in the form of a process plan makes things easier.

Exactly - a means to an end.

I'm not sure why you are mentioning "stupid tools", whatever they are - they would not even be means to an end.

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

#58

A thought: The slightest design flaw or manufacturing flaw in a microprocessor or memory chip can reduce its value to zero. Generally, flaws in software are easier to correct and don't have the same catastrophic effect on value.

With respect to quality, some software is so fundamental and widely used that flaws are noticed immediately and fixed. Examples include microcode, firmware, operating system kernels, compilers, and embedded databases such as SQLite. Flaws in low-level software are generally much more destructive to value than flaws in high-level application software.

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

#59

Feature creep and timelines are in my opinion the root cause of lower quality software. Most engineers sit down planning to develop clean efficient code but that generally takes more time than they are allocated. As the deadline draws closer new features and edge cases are often added in by either management or the end user. Often these new features were not accounted for in the original design and in order to fit th…

I don't understand why people have a problem with hard-coding features. The argument is that it creates more work later. But this is a fallacy as the work "later" is not guaranteed to be necessary or requested. The idea that all software has to be abstracted, configurable, and future-proof to be "good" is just wrong. We hard code features all the time on my project. The earth keeps on spinning, the company makes money, and the code is usually removable with a single 'git revert' when the time comes to clean up. That time may never come, which is fine. That is the natural way. Nature has yet to do 'git revert male nipples' or 'git revert human appendix'. Both are dirty hacks left in by mother nature.

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

#60
Human nature.

Quality in general has always been an afterthought by many if not most people and companies. Always will be.

Some people are just not quality people. But when they find their way into important corporate positions their "leadership" effectively puts a major obstacle in front of any inherently higher-quality operators or teams underneath, restricting the flow of true available quality towards the clients, customers, and shareholders that could otherwise benefit.

Probably why I named my first company Quality, just like so many other companies in so many fields of operation, because it's not an afterthought to me.

Combined, all us "Quality" oriented companies who try to choose this as a differentiator still make up a small minority and are always under continuous pressure to compromise this most elusive feature, sometimes necessary to compete or even survive in situations where higher quality is not fully valued. More often there is downward pressure when lower quality becomes overvalued, as we see this trend growing in the 21st century.

It's tough for so many people to tell the difference between low and high quality anyway, especially for those where it's not even an afterthought.

Post reply on HN