« October »
Locations of visitors to this page

Powered by blojsom

Radovan Semančík's Weblog

Friday, 16 October 2009
« Merchant's Reputation | Main | Fortune Favors the Bold »

Now I will disclose one of the most secret of secrets of software business: All software is bad. Except maybe for very rare specimens that are even worse. It does not matter whether it is commercial or open-source, young or mature, big or small, it is bad. The quality is universally low. I'm not talking just about the bugs, but about all software qualities: performance, scalability, understandability, flexibility, visibility, reliability and security.

I cannot remember if I have seen good software in my entire career. I mean a software that was appropriate for the purpose. Software that worked as expected. Worked not only on the day one, but even 10 years later. Software that could be evolved without undermining its basic architectural principles. Software that was intuitive and easy to use, well documented, secure, ...

The reason for this situation is not technological. It is not that we software engineers are ... ehm ... idiots. We are not. We are doing our work well, considering the circumstances. The reasons are purely economical. It is just not profitable to create good software. Bad software can be very successful on the market. Quality is not high priority when making software purchasing decisions, but features are. Quality is difficult to understand and it is usually not directly visible. However features are outright visible and can be presented in in an impressive way. Quality can be usually seen only after the system survives first few years under production load. That's the point where the defects will manifest themselves, usually in a spectacular way. But at that point the software is already purchased and strongly hardwired in place.

From this point of view it is just a plain waste of money to invest in quality. Increased quality will not increase software sales and therefore not increase profits of software companies. In fact it may even harm their business: higher quality means lower motivation to purchase support services. Quality is not a competitive advantage. Spending more money on quality is a competitive disadvantage.

Therefore, caveat emptor.

Technorati Tags:

Posted by semancik at 12:01 PM in Software
Comment: Michal at Sun, 1 Nov 6:16 PM

Dude, are you broken ?

Even when I agree with most of your post, I strongly disagree with the outcome you came up with.

The better I get in writing software, the more I realize how bad I'm in it. I literally hate each line of code I've written. Even recently written code, just few months old, and I already see how ugly it is. But that's fine, it's evolution of the software, my skills, tools, even the purpose of software itself.

We software engineers should strive to write great applications. That's how we can keep doing it.

If support is all what keeps your business alive, then you should think about making a different product.

There's probably only one piece of software which I consider of very high quality. It's NeXT's frameworks, nowadays called Cocoa. Yeah, it's a framework, though a beautiful one. Even after 20 years of its existence, it's still being loved as on day 1 - regularly extended by Apple, gaining in popularity by developers, allowing them to create awesome applications that are again loved by their users. I believe that all this is only possible when quality is the top target. What I find most impressive is how this mindset of framework's authors is being inherited by software developers using it to write applications. Most of these applications are of very high quality and innovative. I even believe it goes further to the users themselves, and their striving for perfectionism.

I'm not sure with whom you're hanging out nowadays, but my guts tells me it's an enterprise world. Those people usually don't give a shit about quality. Their target is getting money, fast and cheap, sacrificing whatever comes first - quality usually being first. It's like a chicken industry. Do you know the difference in taste between a chicken that grew out in grandmother's backyard and one who lived under a fluorescent tube instead of a natural sunlight ? Sure, selling thousands of white anemic chicken brings more money, but where's the proudness, where's the good feeling. What taste does it leave in your mouth ?

Look, maybe I misunderstood what you're trying to say. Maybe you are only trying to be sarcastic. I could just go on. But from time to time I feel the same, and even when I'm in the similar boat, I found something promising, some part of this industry where old good values are still valid. That's what keeps me going on, striving for hard to reach quality. Because quality is important.

Take care.

Comment: bikej at Tue, 15 Dec 9:40 PM

What about Pacman ? :)

but in general - I agree

Add your comment:
(not displayed)
Generate another code

Please enter the code as seen in the image above to post your comment.
Your comments will be submitted for approval by blog owner to avoid comment spam. It will not appear immediately. Also please be sure to fill out all mandatory fields (marked by asterisk). This ... ehm ... imperfect software does not have any error indication for missing input fields.


[Trackback URL for this entry]