I’ve spoken quite a bit about some of the processes and constraints we have in developing software here at Microsoft. I haven’t explained the actual tools or specific paradigms we follow. When some people come to work here, they are often surprised to learn that we don’t use some of our tools to do a specific task. Yes, all of the software tools we use in SQL Server are from Microsoft, it’s just that some of them are custom-built.
I was talking about this with a person who has been here for a while, and he used an interesting analogy. He said that the machine shops that make other machines don’t always use the products they sell to make the products they sell. The simple reason for this is that they are different tools for different purposes.
You probably don’t release your software on as many platforms, languages or with as many legal checks as we do, so our test and source control systems have a lot of things in them that you just don’t need. That doesn’t mean the ones we make for sale are inferior in any way – they just do something different.
We do, however, use SQL server for it all!