Community building is an important part of any product release – especially so for a platform like the .Net Compact Framework. One of the things that takes sometimes a significant fraction of my working day is interacting with the community in multiple forms. Since this is such a time consuming process, I thought I'd rationalize my thoughts on the issue.

 

1.      What's its purpose?

  • To provide a feedback loop to improve the product. This is information flowing from the community to the product team.
  • To disseminate knowledge from the people with answers to the people with questions. This is information flow in the reverse direction.

So the question is how do we provide a solution to these purposes quicker and more efficiently?

  • Feedback to improve the product:
    1. More aggregated and analyzed views of problems people are facing. This is where things like Watson reports are very useful, since they aggregate the problems into buckets which allow us to focus sparse resources on things that are impacting the most users.
    2. Deeper understanding of the underlying problems. Sometimes people complain that x, y and z are not working correctly. It takes some analysis and understanding to know why x, y and z is happening and if we have a solution to the underlying problem A, we automatically solve all other related problems.
  • To disseminate knowledge:

         Dissemination of knowledge is governed by 2 factors:

·         Number of people who have the knowledge and are willing to share it.

·         What's the reach of the information shared?

                        Let's discuss what these 2 factors mean.

 

Product teams developing software is typically very small.  Based on the size of the community it provides services to, it is not possible for the product team to answer each and every question in a timely manner. This is the main reason that community building is important around any product. A community is something where people are willing to share information that they gleaned the hard way so that it benefits a large community. This is where MVPs are so beneficial since they provide that spark to the community. The size of this community and the experience of the people in the technology are the principle factors that determine how long it takes for a question to be answered.

 

Reach of information is also another thing that effects how efficiently the information is disseminated. For example say I solve a customer's problem over email. I might get n other customers over the space of a long time where I might need to revisit the problem and solve it again (or atleast dig out the last email I had). This is where I think blogging/ whitepapers is so useful. It’s a means to leverage your work you did when you solved customer 1's  problems. This is beneficial in 2 ways – first, it reduces the number of times the product team needs to look at the same issue again and again and second, it provides a quicker answer to the customer when he needs a solution to the problem he is facing.

 

2.      So what are the channels of communication?

·         Product support

·         Blogging

·         White papers

·         KB articles

·         Newsgroups

·         Interest groups

·         Chats

·         Email aliases

 

Each of these channels of communication has advantages and disadvantages. Some are suited for certain types of interaction whereas others are not.

 

I am always on the lookout for better and more efficient use of time in such a way that it benefits the largest possible community. So if you have any feelings as to what form of communication works the best for you, please send me your comments.