It’s a fact of life that no amount of testing will render any computer program beyond “hello world” bug free.
In mathematical terms, this could be expressed by “The limit of bug-count in a system will tend to zero as the number of test scenarios approaches infinite,” and while developers test their brain-children as much as humanly-possible, it’s impossible to test all possible scenarios, and mass-use software, that is used in a variety of hardware/software environments and in just as large a variety of circumstances is even harder to perfect.
As a developer of non-massive-consumption software, it’s already challenging for me to ensure that my users don’t hit a wall every once in a while. Developers of massively-consumed software would, likely, win Nobel Peace Prizes were they able to keep a track record even barely close to mine, but the difference doesn’t like in the quality of our work – as a matter of fact, the people behind Firefox, to use an example that’s cross-platform and not piss anyone off, are far more talented than I am.
The difference, really, lies in how we are made aware of problems in our code: my users have direct access to me. If something goes wrong, they give me an angry call (not always, fortunately) and things get fixed right-away (most of the time, I’m proud to say). Reporting a bug in Microsoft Word or Open Office Writer is something that is either impossible, or impossibly challenging, respectively, which brings me to my “Less is not less” statement.
Based on what I’ve experienced on both camps (Windows and linux), I’m willing to bet that for every bug known to the right developers there are at least five that they happily know nothing about.
Microsoft relies heavily on a group of elite users they call MVP’s (Most Valuable Professionals, if I’m not mistaken), getting a bug reported requires that you get an MVP in the right area interested enough in your problem to report it to their point-person at the company. The process is extremely informal and not particularly publicized.
The Linux camp does things more professionally, I must say, but on the flip-side, reporting a bug is so daunting that only a few percentage of users is likely to report problems. One thing that makes reporting problems in Linux inconvenient is that the process is further complicated by having to decide who to report a bug to… is this a KDE bug? Is it an application bug? Is it a distribution bug? Is it a driver bug? Then, once that first round of questions is answered, you need to use that particular component’s bug-reporting facility. The easiest ones require that you visit a web site and register but then have familiar forum-like interfaces, while the others rely on mailing lists (seriously? Mailing lists in this day and age?).
I have lost count of how many times I’ve said fuck-it and lived with blatant bugs in the past because it was impossible or harder than it was worth to report them.
It’s late now, and I don’t have many ideas on how to improve the status quo, but there’s got to be a better way to make those who are able to fix things aware that something needs to be fixed.