A few months ago, I was put on point for patterns & practices “community”.  For the previous year, I have been the marketing guy and erstwhile business manager.  Community was a new track for me and I had to hit the ground running by connecting with several pre-existing efforts that had already been going on in the group (not to mention cranking up one that I have been championing on my own).  But as everyone has their opinion on community, it makes for a fascinating question:  what is community?  Or better yet, how do differentiate between a community effort and a broad customer engagement. 

 

Within the patterns & practices team, you will get several answers.  After all, community is an overloaded term and I think it has been bastardized internally. So, I decided to look for answers outside of Redmond.  Where better to look than a place where I think everyone will agree a community aspect is in effect:  Wikipedia. Their entry:

Community is a set of people (or agents in a more abstract sense) with some shared element. Also a community is a group of people or things that live in the same area. The substance of shared element varies widely, from a situation to interest to lives and values. The term is widely used to evoke sense of collectivity.  The origin of the word community comes from the Latin munus, which means the gift, and cum, which means together, among each other. Community literally means to give among each other. Community could be defined as a group of people who share gifts which they provide to all.

So here's how that plays back to me: even though I am reaching out to lots of people with every blog entry and hoping to get a lot of feedback from my readers, the .NET Sweatshop (this blog) is not a community. But a collection of blogs like blogs.msdn.com or the p&p bloggers with people pointing to each other and sharing insights of others is a community.  For example,  Scott Densmore and Peter Provost linked to my last blog entry and told the world I had a decent description of what we do at patterns & practices.  That makes our network of blogs a community effort.  Peter, Scott, and I are peers and we share each others insights.  (Oh, quick message to those guys—yes, I am long-winded.  In the words of Bono playing on my Dell DJ right now, “I like the sound of my own voice”).

 

So when you look at the activities p&p is doing, are they really “community”? Certainly the group of customers that we are trying to impact can be called a community simply by their sense of “collectivity”.  But when we are trying to create patterns & practices through a technique I call “Feedback-Driven Development”, I think we are stretching the definition.  With the Feedback-Driven Development, we provide an explicit and published process to the community for the development of p&p projects and customers to participate in the development process while setting expectations about working with p&p.  Through this effort, we can provide a history of traceable decisions to increase the value and impact of what we produce.  We did this last year with our Shadowfax/EDRA project with cool results on GDN.   The question is:  was this a community project?  In database terms, it feels more like a one-to-many relationship.  p&p interacts with each of you and, while it may occur, it’s less about each of you giving to each other.  I consider this more of a progressive product development process than anything that truly reflects the heart of what community is about.  Contrast that with a web board or wiki where anyone can ask or answer a question or an open source project where developers are required to collaborate with one another (many-to-many).  That feels like community.  Even the Visual Studio Community Technology Preview (CTP) seems like a misnomer.  I’m glad they did it, but are they hoping that people start having the conversation with each other or directly with Microsoft?  I think the latter is the intent and former is a by-product. 

 

Don’t get me wrong—efforts like Feedback-Driven Development (by the way, I need a new name since Ward Cunningham told me this sounds too much like “Feature-Driven Development”—any ideas?) and CTPs are vital for Microsoft in their willingness to open the development process and listen to customers before it is too late.  But I wish there was a better word to describe that interactivity and separate it from the efforts I’d like to promote where we are more of a peer than a master.  Whether it is participating on boards more or collaborating on projects in a more democratic manner, I really want to push the peer concept forward.  I think that is what makes the open source projects very successful.  Sure you have guys like Linus Torvalds, but take away the celebrity status, and he has always just been a developer asking people to help him write his project.  While I prefer what Microsoft creates in terms of an end-product (please, no comments from Linux guys on this--we're all free to our opinion), I envy that connection he fosters among the Linux community of developers.  To anchor on the definition from our good friends at Wikipedia, I will have succeeded on the p&p community front when we are giving among each other and all sharing gifts 

 

Sorta puts you in the holiday mood, doesn’t it?  Happy Festivus.

 

{U2 – How To Dismantle An Atomic Bomb}