Between a Rock and a Hard Place: How to Achieve Balance?

The discussion over whether Microsoft "gets" agile development in the Microsoft community has carried on the past couple of days, with some comments flowing over to Nick Malik's blog.  Nick wrote a follow-up to both my post and Martin Fowler's post.  Nick delves a little deeper into the discussion on Microsoft and open-source software, highlighting some of the challenges Microsoft faces in collaborating with the open-source community due to the risk of lawsuits.  Regarding the open-source ALT.NET/Agile tools, he says:

"I would add that Microsoft should NOT deliver open source tools built in to the Visual Studio platform, because we cannot possibly support those tools.  If the community develops a tool, they should support it.  I have no problem linking to the alt.net stuff and encouraging folks to use it. 

I think it would be great if a group of Open Source developers would create an all-up "add-on" install that contains all their favorite tools like NAnt, NHibernate, NUnit, Spring.Net, etc in a single package, complete with documentation and samples, that allows folks to easily add the alt.net tools to their setup in one jump." 

Great idea!  I think making it easier for the average developer to consume and/or use these tools is awesome.  A commenter named Harry responded to Nick explaining:

"Developers are not asking Microsoft to 'support' open source tools. Developers are asking Microsoft NOT TO close the door for more developers to learn and appreciate these excellent, 'tried and true' tools. Microsoft doesn't have to 'support' NUnit and NAnt. We just wish Microsoft just doesn't 'try to compete' with these tools. Microsoft has every right to compete with these tools. Just as we have the right to be upset that Microsoft's tools are actually not compatible, or even worse than the commonly supported practices/tools."

I get that.  But I don't think Microsoft is trying to close the door on these tools.  In fact, just last week at Tech Ed, Microsoft announced Visual Studio 2008 Shell.  Shell is essentially a set of improvements to the extensibility model in Visual Studio.  That will only encourage folks to build more tools into Visual Studio.

Will Microsoft compete with those tools?  Sure.  Why shouldn't they?  If Microsoft is to improve their tools, I think they should add features and functionality based on feedback from the community that make life easier for the whole lot of developers, not just the experts who use the agile tools today.

If the quality or compatibility of those tools are not up to snuff, feedback from the community with those grievances is appreciated.  This is a two way street.  Transparency through the use of blogs has made it easier than ever before for the product teams at Microsoft to listen to and respond to users.  I think this is a great channel to raise the community's concerns and have them be addressed.  In the case of unit testing, based on posts I've seen from the MS Test team, it appears they are willing to listen.

As the technology and development practices evolve, there will always be the need for better tools to support them.  Things may not always be perfect.  However, achieving a balance in the tools that supports all types of developers is no easy task.  If it were, this discussion wouldn't be happening now.  I'm glad it is.