If MicrosoftCorporation has so much great knowledge under the covers (SteveMcConnell, for example) why are the products so often late, and always defect-ridden?
"For those who have wondered why Microsoft's software has always been a bit less than expected, here's a large part of the reason: There are only enough people to implement the features that absolutely must be included, and there is only enough time to implement each feature in the fastest acceptable manner. And there are absolutely only enough people and time to test the product to the point where the market will marginally accept it; no more. What is accepted by the market forced Microsoft to increase its testing several years ago but Internet updates are now allowing it to reduce testing once again."
This quote shows MicrosoftCorporation
aims for a different type of quality, GoodEnough
software. Unfortunately, GoodEnough
is defined as "the point where the market will marginally accept it", because BugFreeDoesntSell
. Being the market leader allows MicrosoftCorporation
to lower the quality the market will accept. Although MicrosoftCorporation
may not have improved quality of software doing this, they may have improved the quality of their business practice.
An apocryphal story about Henry Ford's "quality" program demonstrates this is not a new practice though. He sent people out to the various junkyards of the world to see what sorts of defects were causing Ford cars to break down. The component failures were fairly evenly distributed, except there were no broken kingpins. Ford's solution to this "quality problem"? Buy cheaper kingpins.
Another reason might be that MicrosoftCorporation
sometimes sees non-conformance as a requirement. They put extra effort in (e.g. Microsoft Java, "DOS isn't done until Lotus won't run") to make sure that their product isn't compatible with the rest of the world. This puts the customer base into the position of siding with Microsoft or siding with the rest of the world. Since nobody gets fired for buying Microsoft, this too may have improved the quality of their business practice.
See also: BugFreeDoesntSell
All released products contain many bugs.
No released product is defect-free, certainly. The question is: do Microsoft's processes make defects, or even defects/developer-hour or defects/general currency sign or whatever a minimum? I can't believe they do.
Take the compiler example again. There are common, non-tricky C++ constructs that VC++ chokes on. And it doesn't terminate early and report failure (which whilst not ideal, would be acceptable), it crashes, core dumps. Turning to the support documentation, we find that the developers know this happens, aren't quite sure why, and recommend that you not do that. (This was as of this time last year, YMMV but I wouldn't bet on it)
I know what you mean, Keith. If they can identify the exact cause (which the tech notes say they can), why can't they at least put in something to abort the program nicely with a clean error message? Even if they can't fix the problem, at least they can mitigate it.
BillGates could be handing out copies for free on street corners (I can dream) and that would still be unacceptably shoddy.
Of course, Ron is exactly right, and we should learn from Microsoft's practices, but we should do them right.
[moved from MicrosoftCorporation]
Microsoft: the first major software company to test its products on real users. Instead of listening to programmer's versions of what applications should do, Microsoft set out to produce users' versions. Hence most of their ultimate success. In the process they alientated a lot of tech-heads and programmers (i.e. the sort of people who write in WIKI's). The measure of their achievement in reaching ordinary users can be judged from the degree of resentment they generate among geeks.
And that is a good thing, to alienate the people who write programs, and have already learned many of the lessons MicroSoft is now learning? As a result of the "user first at all costs" mentality, MicroSoft products are amongst the least secure in the world, and they are now backpedalling at heretofore unknown speeds and claiming that they will now design with security in mind first.
Your statement that Microsoft was successful because they made what users wanted instead of programmers falls down when you apply that type of principle to Apple. Apple, at least in its earlier days, did much more to make a user-friendly OS, while at the same time alienating developers (you had to pay a license to Apple in order to get the development tools needed to write Mac apps). And yet they only ever managed to capture a niche market. Microsoft is just pragmatic to a fault; they will do whatever they need to do in order to grow their market share. If that means sacrificing developer goodwill and making software that users think they want instead of what they would be better off using then so be it.
Or perhaps Microsoft has been successful for much simpler reasons, such as good management decisions and being in the right place at the right time. No-one else was lucky enough to get the contract for providing the operating system for the IBM PC. [Perhaps because few people have a mom who is a friend of IBM's chief?]
Once they had that, they had a license to print money. They then followed up their good fortunes with a number of smart strategic moves: Office, Windows 95, NT 4 and Internet Explorer. Of course, their path was smoothed by the fact that they pretty much own the PC platform and can brush aside most competition quite easily.