| 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? |
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?