Another important point...

When creating a new version of .NET, you don't have tools like Visual Studio ready until late in the cycle.  Other supporting test tools, profilers and the like have to be written to support development before the Visual Studio team can complete their work.

I for one think that what most customers really want is for us to build the best software we possibly can regardless of the tools that we use to build it.  With the size and scale of development that we have going on here, there are requirements that very few other companies need.  This is why many of the internal tools that we use are simply not suitable to ship as product.

We are actually not allowed to use "secret" APIs.  Everything we use has to be public interfaces that anyone else can use.