Is Microsoft agile? yes and no. Before we dig into the question directly it is worth spending some time to understand the word agile.
The word Agile: The word is so commonly used and everyone acts like they have a clean definition of it but if you look for agreement around the word you will find a ton of different understandings. There are very few good stable definitions out there from which to ground a foundation of understanding. Too often marketing has taken hold of the word and warped it’s meaning for personal gain. Or agile “experts” have not really nailed the term down to anything stable. Nothing is wrong with that, it’s just good business or people learning. However, the result is that it permeates a very messy set of understandings into the community at large.
A common mistake when people view Microsoft is too see it as one company. My experience is they made up of many subgroups or companies within a larger framework. It is one big giant company. Some subgroups are very agile and some are not. The agility is not evenly distributed and understood within Microsoft. No surprise there, every big company I have consulted with has this problem. Some groups (teams and individuals) within Microsoft are great agilists, not all. They have some of the best in the world.
What is even more interesting is that they have made significant strides with Visual Studio 2010 and winding the promise of agility into the tool. The Scrum Alliance is making an effort to launch a possible Certified Scrum Developer program. Combining both the expertise of Microsoft in VSTS 2010 and Scrum you have a winner that could really improve the practice of agility within Microsoft.
Why is a good agile enabled IDE like Visual Studio 2010 so important? Clean code and clean tools allow for rapid feedback which enables a quick practice of agile understanding. A good IDE will enable rapid feedback so that the fundamentals are practiced continuously. When I use the word fundamentals it is like in basketball. You are never done dribbling the ball and when writing code you can never stop practicing good fundamentals. Unit tests are a way to achieve rapid feedback but, like all of the agile practices not a panacea. Unit testing is a piece to a bigger evolving puzzle. So a good IDE holds the promises of helping developer master and remain in mastery of the fundamentals.
Yes, Mircrosoft is agile in parts and they are poised to become much better at the practice of agility.
For more on 2010 VSTS training