Community
Somasegar, VP of Developer Division at Microsoft, recently blogged about innovation () and being on the bleeding edge of innovation.
This is an interesting point; products like Visual Studio need to be innovative in order to keep up with the ever-changing landscape in which they reside.
What he does not mention is the importance of supporting the transition to new innovations and building of a community around it once it has been made available.
In order for any product or technology to thrive it needs to have a community to rally around it. A vivacious community can launch a product or technology into an unstoppable level of popularity. Within the last few years Microsoft has put tremendous efforts into fostering communities. They've spent an outstanding amount of money on initiatives like Forums (MSDN, TechNet), feedback channels (MSDN Product Feedback, now Connect), developer centers (C# Developer Center, VB Developer Center, etc.), increased focus on the Microsoft MVP program, etc. As Alan Griver recently detailed, communities live beyond the life of a particular product or technology by pointing out that Visual FoxPro MVPs will continue beyond the announced retiring of Visual FoxPro as a product.
This brings me to the point I want to make. There's more to supporting a community than providing them recognition and a place to communicate. Here's some of what I think is essential to support a first class community for a product/technology:
Expanding beyond product-deliniated communities.
Product-grouped marketing and development efforts make sense; but product-focused communities don't. It's rare that a C# developer, for example, doesn't use features of Visual Studio that are shared amoungst other languages. It's also rare than a C# developer doesn't work with other languages and technologies; technologies like WinForms, Smart Client applications, console applications, ASP.NET, Web Services, XML, SQL Server, etc. Myopically attempting to focus communities on a particular language or technology without allowing the community to live and evolve on its own is an invitation to abandon the community and the products/technologies that it relates to.
Responsiveness
A community is a living, breathing, entity of its own. If the infrastructure intended to support that community is unable to response to the changes and needs of the community the community will be stifled, along with the technology it relates to. The infrastructure must be able to provide the basics the community requires.
**Equal focus on existing products/technologies comparted to the bleeding edge products/technologies.
**There are two aspects to communities: starting the community and building the community. Starting communities has excellent focus at Microsoft. Part of the Microsoft marketing juggernaut for new products and technologies is the support and fostering of infrastructures to create communities to rally behind the technologies. Sadly, though, the focus on existing, supported technologies quickly wanes. Complaints about migration paths from existing technolgies to new technologies, or complaints about lack of support (feedback on suggestions/bugs) and depth of service packs abound.
**Full round trip on feedback and community involvement.
**A extension to my previous point, feedback on feedback is vital. MSDN product feedback and Connect were very successful when they were introduced. This bug/suggestion tracking system was introduced to manage feedback on recent and upcoming technologies. Connect has sadly become less popular than it once was. As technologies have become released and internal effort has moved to newer technologies not yet covered in Connect the appearance of responsiveness and feedback from Microsoft to the information communicated on Connect has had a dramatic decrease in quality. The importance of the information provided via Connect needs to be communicated. "Thanks, we'll look into it", and "By Design" aren't cutting it; it's frustrating users, fostering the appearance of disdane, and alienating users the longer they need to stay with a particular technology.
Microsoft has made wonderful strides in fostering community, it's now time for the community to grab that by the reigns and drive it the rest of the way towards its full potential.
As I've said on other venues "complaining" isn't productive unless it's followed up with suggestions and feedback. Here's some areas I think are either begining to get focus at Microsoft or need some focus:
Provide a better means on communicating that feedback is being acted upon. Internally feedback is not getting ignored, but there is the appearance this is the case. Future bug/suggesting tracking needs to be better integrated into the community and clear feedback that the community is driving the product needs to be communicated. Associate bug-fixes/changes (in hotfixes, service packs, etc) to specific feedback entities or threads, clearly and prominitently.
Provide an community infrastructure that is responsive and can rapidly evolve to the needs of the community.
Acknowledge the community beyond initial release of the technologies involved with that community.
Provide a community infrastructure around the community, not product taxonomies.