The problem is that no one stops and thinks about writing solid code,and instead everyone wants to get credit for writing the latest and geatest feature. Let's face it, no one wants to rewrite working code just to make it more secure or faster. That just isn't sexy programming.
I find that the more experienced and talented programers take longer on a feature, but the end result in near perfection. Not to ttot my own horn, but I try to give the users the capabilities they need and nothing more. I will work on a feature 3 times longer than the kid next to me, but the end result is user satisfaction.
It is just difficult to have such a large enterprise of developers at Microsoft and keep them all working in one direction. I don't think MS is evil, it just needs closer internal supervision. I am glad that Gates went back as the Chief Architect. Maybe some MS developers might not think so, but it tells me that the development aspects of MS are getting closer supervision. Gates is a talented developer, and has the track record to show for it. I think that .NET is a good move, and this latest security emphasis is a good move, now lets just see how far the momentum actually carries MS into better software.
But you're suppose to integrate features in a componentized, or decoupled way, so that you can swap out 'components' at will. That's what the customers want, that's what the developers want, that's what the market is chosing.
It's just not what the bean-counters want.
MS's management, for obvious reasons, doesn't want the word processor, web browser, etc to be an interchangable 'component' of the system. They want all the other software to be 'integrated'. If they had their choice, they'd copy and 'bundle' every single possible app into their 'OS'.
Purely for monopolistic reasons, even tho the market is trying to innovate the other way. They own the train tracks, and therefore they control the trains.
This also explains their moves on Java and with .NET.
With a cross-platform programming language, the OS becomes just another component that can be switched out as need be. So first they tried to pervert Java into being Windows only, as their internal emails showed, and then when the courts slapped them for that they just copied Java and made a Windows-only version in C#.
MS will break any law to try and prevent java from moving to the desktop, as it's now poised to do. I believe that a mountain of evidence shows that MS has done some bad things in the past. I believe that's why they lost the court case.