Microsoft's internal software development

Often times, when working in .NET, BizTalk, or some other MS software package, I comment on how well, for the most part, MS’s own tools work reasonably well together.

<pause for laughter>

Now, seriously, here me out. When working with software from MS, it works reasonably well together. BizTalk works pretty well with .NET & Visual Studio .NET, .NET works pretty well with Office, Office works pretty well with IE, etc, etc…

Now, I know what you’re thinking:

“OF COURSE they work together, they’re from the same company and MS made secret deals with the devil. Wait, no, Bill Gates IS the devil, and MS is just a manifestation of his evil plans.” and so forth.

BUT, once you get past all of that, really think about how easy it is for a company to make its’ products work well together. Think of ALL the companys’ that you may have been at, and then think of trying to make a good % of their internal software work together, seemlessly. I mean standards help, like COM & .NET, but as we all know, the devil is in the details.

Frankly, it’s hard enough to get teams owning seperate TIERS of an application ( DB, UI, Middleware ) to work together well enough together, I can’t imagine trying to get one application to have to work well with 3-5 other applications from different teams.

And let’s not forget that MS is a product company, and each team has to support multiple versions of their products. Imagine that version matrix.

Maybe people deplore MS for it’s competative practices, but you have to admire their internal software development practices.