On Software Quality
A lengthy eWeek article from a few months back discusses the importance of quality software. It's generally accepted as a truism that any software will have bugs. However, with software finding its way into many critical aspects of our lives, the overall low quality of software is not just distressing, it could be -- and has been on several occasions -- fatal.
Bugs. Most software has its fair share. The industry average is thought to be around 0.5 bugs per thousand lines of code. To put that number into perspective, Microsoft's Windows XP operating system is thought to have approximately 40 million lines of code. Using the defect ration cited above, that would equate to roughly 20,000 bugs.
And those are just programmatic bugs, leaving out defects in the logic or behavior of a program. A Microsoft engineer recently wrote about a long lived bug in Microsoft Word. At the beginning of his post, he remarks that "with just 3 steps, the possible combinations of code execution paths exceeds 500 million." In other words, with three clicks of your mouse, you could take any one of over 500 million paths through the software.
So, it shouldn't be a surprise that modern software is often as buggy as it is feature rich. The software industry is market driven and, though most customers want stability and reliability, they pay for new features. Of course, complexity is a reason, not an excuse. But, as software quality becomes more prevalent in our daily lives, it won't even be a very good reason.