I struggled with this post. On the one hand, I'm not trying to cast stones at Microsoft; on the other hand, there are some deep lessons to be learned from Microsoft's slip of Vista. Every organization attempting to deliver a continuous product stream in the face of considerable legacy code and a large installed base will confront these same issues. Those who break through these issues will persist; those who do not will collapse.
Mini-Microsoft, a Microsoft developer, recently posted his reaction to the Vista slip. A number of other (anonymous) Microsoft developers posted additional comments. While many of these postings are full of noise and exhibit angst suggestive of considerable organizational frustration, if you blow past those you'll see some interesting trends: the lack of architectural governance, uncontrolled feature creep, insufficient testing, heavyweight processes, lack of trust in the engineering staff. I particularly liked one comment: "Want to see Vista ship? Get rid of 90% of the process that goes between writing the code and getting it checked in." Colllectively, these comments suggest that the root problems are not technical, but rather orbit the region of design and organization in my characterization of the limits of software.
IBM is a company that has experienced a near-death experience and has thus far been able to break through to the other side; Microsoft seems be going through a bit of a mid-life crisis; Google is perhaps best characterized as an exuberant adolescent who has not yet discovered his mortality or limitations.
That's not to disparage any of these organizations: the fact that this marketplace has such a diverse set of organizational styles at various levels of maturity is actually the sign of a vibrant industry.