This story was accepted by the editor of osOpinion, but then, as he put it, “the editors at NewsFactor Network requested that the story not be published due to its apparent roughness around the edges.” NewsFactor Network owns 66% of osOpinion and I guess has final say on what appears on the site.

Was it the title? Or the fact that the word “suck” appears five times in the first paragraph? I’m not upset about this, more like amused, but I do think the article makes a valid point, so here it is:


Microsoft Software: Why It Sucks

Contributed by Adam Barr
December 19, 2000

Everyone knows that Microsoft software sucks. Right? You hear it all the time. Ask any Linux advocate and they’ll tell you: Windows sucks, Office sucks, Exchange sucks. And don’t get them started on Hotmail. Eric Raymond has said that his motivation for trying to overthrow Microsoft is simple: he wants software that doesn’t suck.

So why is this? Why is Microsoft software the way it is?

Let’s use operating systems as an example. Everyone in the open source community knows that Windows 2000 sucks and Linux is great. I submit that there are three main factors that influence this opinion.

Bugs: Yup, They Got ‘Em

The first factor is bugs. Microsoft software certainly has bugs. There’s no great mystery why some software has more bugs than others. Software developers can spend their time either adding features or fixing bugs. If you spend too much time doing the former, you don’t have enough time for the latter. For a variety of reasons, Microsoft has historically bitten off more than it can chew when planning development of its operating systems. Too many new features are added, too many existing features are improved, too much code is thrown away and rewritten or replaced. Not way too much, but just enough to make every ship deadline a mad rush where nothing can be made quite as good as it could be.

Too Late to Go Back

The second factor is poor design. A feature is added or changed and it simply isn’t thought through well enough beforehand. Often such mistakes become apparent partway through the development cycle, but by then it is too late to go back, and the only alternative is to plow ahead, get things working as well as possible, and resolve to patch things up in the next release. One of my pet peeves about Windows 2000, the reorganization of all the management tools into the Microsoft Management Console, is an example of this. It was a good idea in theory, but shoehorning everything into the “Action/View” model just can’t be done consistently. The result winds up being no easier to use, and extremely disruptive to those who were used to managing an NT 4.0 system.

Now, the open, collaborative nature of Linux design serves to lessen these two factors as compared to Windows 2000. The highly technical audience for Linux has made it clear that they want stability above all, and are much less likely to accept a change simply because it makes something easier to use. Designs are beaten into shape earlier because the entire discussion is done so publicly.

Advantage: Microsoft?

The third factor, however, may be one that is actually an advantage for Microsoft, although Linux users would still consider it a contributor to the suckiness of Windows 2000. This is design that is well thought out and well executed, but that doesn’t please a non-technical user. Let’s call this “non-geek design.” An example of this is another one of my pet peeves, the under-hyping of the command prompt in Windows 2000 (and previous NT releases). NT has a very powerful command prompt, but it is never talked about by Microsoft marketing, and many simple, basic tools (such as the standard Unix utilities) are not included by Microsoft.

To a technical user, this seems like poor design. But it is really non-geek design. Windows 2000 was not designed by programmers alone; its design was based on input from a variety of sources, including software companies who write applications for it, hardware manufacturers who design hardware for it, computer manufacturers who bundle it with their systems, and a healthy serving of folks named Aunt Mabel who have never used a computer in their life, and couldn’t tell a command prompt from an ear trumpet.

These groups all have differing requirements, and Windows 2000 is the result of balance between them. There is code in Windows 2000 that is a result of specific requests from software companies, and specific requests from hardware manufacturers, and specific requests from computer manufacturers, and specific usability testing comments from Aunt Mabel. And of course, some that is a result of specific requests from programmers. But not as much as there is in Linux.

Otra Voces

Some are now predicting that Linux will replace Windows 2000 as a mainstream operating system. But I have my doubts this will happen soon. I’m not saying Linux can’t keep its technical bent; it can always listen more to programmers than the Windows 2000 team. But until the design of Linux starts to be based on input from all those other voices, it will never displace Windows 2000.


Back to osOpinion columns.