It's not the first time that Microsoft has released a mediocre operating system (it will probably never match the terrible MS-DOS series), but Vista has been a PR nightmare for Redmond. Some analyst claim that Microsoft's recent bad quarter was partly due to Vista, a lot of people refusing to upgrade. And to add insult to injury Apple has been releasing several commercials micking the Vista fiasco.
Now, that might come to a surprise to you but I do think one of the reason of Microsoft's problems has been that they have listened to their customers.
Excuse me? Since when is listening to your customer a bad thing?
Actually, more often than you might think. You might remember Digital CEO Ken Olson's infamous 1977 quote: "there is no reason for any individual to own a computer at home". That sounds pretty ridiculous now (all the more so that Digital eventually got acquired by Compaq, a PC manufacturer) but in 1977 if Digital has asked its customers what they wanted, they would have said they wanted faster computers with more memory and more disk space, not a small computer with 16Kb of RAM that can fit on a desk. It's only when they saw the possibility of personal computing that they decided it's what they wanted.
Yes, asking customers for their opinion is harder than it looks. Countless companies run customer focus groups, determine what their customers want, release the product they asked for... only to see it fail. The problem is: if customers are very good at knowing if a product suits their needs, they generally are very bad at defining their needs. So listening is only part of the equation and the execution (what you do with customer feedback) is as important a step.
For one thing, customers feedback is highly influenced by their frame of reference. Consider the Mac's magnetic power plug which prevents a laptop from flying if someone trips on the power cord. Would such a feature be asked by any customer focus group? Unlikely. Sure, some customers might have hit the problem but they would dismiss it as a general issue common to all electric appliances work. In other words, you're not going to be innovative by listening to customers. Like Henry Ford famously said, "if I had asked my customers what they wanted, they would have answered a faster horse".
The other problems is that customer's requests often contain a lot of implicit assumptions. If customers say they want, say, a faster computer they often implicitly mean "without changing anything else". In other word, you increase the computer speed, but not the price nor the noise or power consumption. Note that this is not specific to computing or even business. Of course in 2003 Americans wanted to free Iraq and get rid of Saddam Hussein. But their implicit assumption was that this would be done swiftly and with minimum American casualties.
Now let's get back to Microsoft. In the 80's and 90's if they had asked their MS-Office customers what they wanted (which I'm sure they did), what would have they heard? Probably "more features". One customer would have asked for feature X, another for feature Y, and so on... What does an engineer do in that case? He implements features X, Y and adds feature Z for good measure. The more features the better, because then everybody is satisfied, right? And when Office started to be hit with a bad case of feature creep, what did people complain about? That Office was too difficult to use. Microsoft could have then reduced the number of features, but for each feature that got the axe it would have alienated the few customers who asked for it. It could have come up with an "Office Lite", but this would have cannibalized sales of the full-fledged Office, one of Redmond's two main cash cows. So what they did was to add an extra feature to explain all the previous features: the infamous paper clip assistant.
Microsoft's problem in other words is that they have listened to their customers with a poor follow-up execution. The execution was influenced both by the engineering culture of "the more features the better" and the financial influence.
Now consider Vista. With this release of Windows, Microsoft has tried to address two long-standing problems: improving security and trying to keep up with Mac OS X graphical interface. Two noble goals.
The problem was, like always, in the execution. In order to come up with Vista Aero look Microsoft had to bloat the Windows code. As a result Vista consumes *much* more resources that Windows XP. And that's how, by trying to improve one aspect of Windows (the look) Microsoft created one of the big criticisms of Vista: being a resource hog. Of course customers would like Windows to look as sexy as Mac OS X. But not if this means slowing everything down.
Same thing with security. Microsoft indeed came up with the infamous User Account Control. This feature indeed turned out to be so annoying most people turn it off - effectively disabling any security benefit of the feature.
But as far as security goes a more serious problem been happening for years and crap hit the fan with Vista. For years indeed Windows API has been growing tremendously. One of the reason has been to keep Windows developers busy. You want to be up to date? Gotta spend your time constantly learning Microsoft technology - no time to learn anything else. But another is probably because Microsoft tried to please its developer community. You want an API to be able to do this? Sure! You wish for another API to do that? No problem!
The problem is that not only it drags performance down but it is also a security risk. Hacking a computer is indeed often about combining separate features in a way the developer didn't think of. The more features the greater the chance you'll find a combination to hack a computer. For example a lot of viruses are connecting to Outlook through Visual Basic (yes, Microsoft made it possible), go through its address book and spam the victim's contacts. To be fair, a lot of malware exist on Windows just because it's so ubiquitous. If Mac had 90% of the market you would hear about much more security flaws because that's the operating system hackers would focus on. But Microsoft didn't make the job easier by bloating the API of its operating system.
So in order to improve security Microsoft had to make some significant underlying changes. This means actually *removing* functionality. Computer programs could talk to each other easily using shared memory? Not anymore! With Vista they need to use a more cumbersome API involving some security descriptors - yes, Redmond made the process of writing Windows applications more complex by *removing* features. If this enhanced security it is also at the source of the other big criticism of Vista: a lot of software and peripherals didn't work anymore.
So what could Microsoft do? Unfortunately their options are limited. They've dug themselves into a hole and there's no getting out without rustling some feathers. All the features (visible or under the hood) have both led Windows to consume more and more resources as well as jeopardized security. With Windows 7 Microsoft seems to have the right attitude. They aren't supposed to add more bells and whistles to this new release but instead focus on performance and resource consumption. Also, they're revamping the infamous User Account Control. Future will tell...