This month, I find myself in the unaccustomed position of thanking Microsoft for doing something that many of us have been asking the company to do for a long time. I'm referring, of course, to Microsoft Chairman and Chief Software Architect Bill Gates' rumored directive reported earlier this month in Government Computer News. Reportedly, Gates has stopped all new coding, exhorting the troops instead to find and squash bugs in the company's existing software. ( Read Paul Thurrott's views about Gates' announcement here). Although I haven't seen an official confirmation in the press, a friend in Redmond tells me that the report is true.
Software quality in general is horrendous compared to that of other products. Many of you have seen the circulating email joke comparing cars and computers, but permit me to paraphrase one of its points: If cars were like computers, your car would periodically stop running while you were driving but you'd know how to fix it: You'd just pull over, turn the car off, then turn it back on and drive away. Perhaps the strangest part of this scenario, the joke continues, is that you'd see nothing unusual about it.
A few years ago, I saw a Microsoft TechEd presentation about debugging Visual Basic (VB) programs. The speaker offered advice about how far to go in debugging before declaring a program "done," citing an industry standard that "about 15 bugs per 1000 lines of code is acceptable." That statement stunned me, but after speaking with people in the industry (mostly non-Microsoft folks), I discovered that many agreed that the number is a common standard.
Fifteen bugs per 1000 lines is a 1.5 percent defect rate. If I wrote this column to that standard, it would contain about 57 misspellings (it contains about 3800 characters; 15 incorrect characters for every 1000 characters works out to 57). Would you have read this far if you'd seen that many errors? Probably not. If 1 McDonalds' Big Mac out of every 66 Big Macs gave you food poisoning, would you continue to visit McDonalds? Again, probably not. (Particularly if the company offered the software industry's standard response, "Golly, that's terrible, how about a free upgrade to a Double Big Mac?")
Let me stress that I'm not picking on Microsoft. Windows XP and Windows 2000 are stable platforms in my experience. Although the quality of Microsoft's software isn't as good as it could be, I consider it slightly above average in the number of bugs it contains. And please, don't write me about how bug-free Linux is. Sure, much of the kernel code and services such as Apache, BIND, and Sendmail are very solid (and ought to be, given how many systems run them and how long they've been around), but add a GUI such as the K Desktop Environment (KDE) or GNOME, and Windows wins the bug-count contest hands down. I say that because although my XP and Win2K desktops have crashed only twice in the time that I've been using them, KDE and GNOME can easily disappear without a warning or explanation.
But the bug counts in "above average" software are still unacceptable, in my opinion, and I hope that Microsoft's leadership in the software business and Gates' stop-coding-and-go-stomp-bugs directive inspires all software vendors to take a short break from adding that next new feature and instead focus on what might be the biggest-selling feature of all: reliability.
Will Redmond have the courage to continue down this path of quality? Watch the announcements about Windows .NET Server (formerly code-named Whistler). If the company rushes to ship the new server platform in the July time frame, then this new-coding moratorium is probably just window dressing. But if we don't see the new platform until 2003, then perhaps the company is serious.
Many of you like to email your thoughts to me, and I hope you'll continue. But if you think Microsoft's focus on quality is important, then I hope you'll also share your thoughts with the folks at Redmond. Visit the Microsoft homepage and use the email form under Contact Us to pass along your thoughts.