There was a time, a long, long time ago, when quality mattered in software. In those days spirits were brave, the stakes were high, men were real men, programmers were real programmers, and small furry creatures from Alpha Centauri were real small furry creatures from Alpha Centauri.
Alas, software quality stopped being important many years ago. In the desperate rush to get to market, most companies became way too comfortable with "good enough." Recently a friend told an illustrative tale:
"I was working for a company that had decided to implement a Capability Maturity Model program for its software development. A necessary part of CMM is to set out measurable goals based on the company's definition of 'quality software.' The company laid out two goals: on-time and in-budget. Those were its only definitions of quality. Nothing about the software doing what it was supposed to do, nothing about stability, nothing about security, not even that it had to compile. The company's CMM goals were easily satisfied by each software project delivering whatever it happened to have when the money or time ran out, working or not."
And that nicely underlines the problem, at least if you think that quality matters. Just look at how many products have come to the market over the last 20 years nowhere near ready for primetime simply to increase revenue or market share without any thought of how big a mess might have to be fixed. You know who we can blame for starting this trend? Yep, Microsoft, the original inventors of ship early, patch often.
I'm sure you have your own examples of terrible products (do tell), and it's obvious why they exist: Software and programmers became commodities a long time ago and now there aren't enough of the latter to go around.
Another friend, A.M.M., noted that "tech companies are so desperate that at least one, Intel, is talking about creating a two-year training programme in Sacramento to fill the void. They're desperate all right - for cheap, 'good enough' people, not qualified experienced people. There aren't enough low paid minions who know how to slap together crappy tools and dump them on the market in a hurry, it seems. In this day and age, companies train the customers to expect far less from their products, to get at the couple few really important features they need."
Now, lest you think I might have some cunning, insightful suggestion as to how this never-ending descent into software mediocrity can be halted, I don't. The trend is actually not reversible and, even if it was, there's no commercial reason to do so. The end users' expectations have been thoroughly set to "low," there's market demand, and, as A.M.M. succinctly put it, "since the new software paradigm is online, there's no need to worry. Release it, patch it up later, take the money NOW. (barf)"
I'm sorry, but if you're a real programmer with serious skills and experience, you are an endangered species. Today, spirits are no longer brave, the stakes are all financial, and the only small furry creatures are the bean counters.