Thursday, October 23, 2008

Service and Support: The Fuel for Your Ecosystem

I watched Mike's recorded presentation about software ecosystems the other day; I didn't have time to watch it while in Germany but it's definitely worth watching if you haven't already. Whether you're a business person or a developer, it provides a useful perspective of the future. It's closely related to the keynote Ralph presented at MDSD about open collaboration; I think someone might have recorded it, so I'll try to find a link.

I view EMF as a mini-platform in a sense very similar to the Eclipse platform as a whole, as Mike described, as well as a vehicle for open collaboration, as Ralph described. I've tried very hard to make EMF both tightly integrated with Eclipse, as well as a platform that can be used independent of Eclipse. After all, modeling isn't just for implementing tools, it's also for supporting runtimes, so it's important to penetrate all runtimes where Java is a key part of the solution. I've also tried hard to build an open collaborative ecosystem with things like EMFT and the Modeling Project as a whole. I feel that it's been pretty successful because a great many people are involved. Although pride is a sin, I take great pride in the fruit of the community's labor.

Having a world-class platform is a key ingredient for success, but social aspects are far more important than folks tend to think, especially us techies. I've often been guilty of thinking of politics as a four letter word, but I'm starting to come around in my advanced age (my birthday is next week) to seeing it in a different light. Politics is sociology and it pervades everything we do as social creatures, whether we like to admit that or not. It's simply neutral and can be applied for bad ends or for good ends. So don't fool yourself into thinking that a purely technical discussion can avoid involving its roots in our social underpinnings.

Antoine opening bugzilla 237041 and the comments in the EMF newsgroup about it being the best newsgroup and about how others might learn from its example prompted me to climb on my high horse and give a bit of advice. In addition to building quality software, there is one other key ingredient to success: showing respect for your community. How you respond to their problems is paramount in this regard, so don't treat them like mushrooms.

When your community reports a problem, fix it as soon as possible. Be sure to make a distinction between wish list items (I want more goodness) and actual defects (it's broken because it's not working the way it was designed to work). A list of 1000 bugzillas that looks to the community like a list of 1000 defects rather than like a list of 1000 wishes is bad publicity. Having no responses in most of those reports, is also bad news. Your community will interpret it as a lack of respect, and no pleas about your lack of resource will help offset that negative perception. An example of where I've failed is 243432; not responding to someone looking to contribute is inexcusable, but I have so little time!

When your community asks questions, answer them as soon as possible. Like Antoine, I prefer people ask for help in the newsgroup rather than using my personal mail, and for goodness sake, not on mailing lists because that effectively get pushed into my personal mail. I believe no question should go unanswered so I'm happy that folks like Eike Stepper, Martin Taal, and Christian Damus feel the same way. Of course all that support is a lot of work, and some people think I'm a pretty crazy guy to spend all that time on "menial" activities. Too bad for their misguided thinking, because I'm quite sure it's a key to success. Don't leave your community out in the cold.

Here's a simple process you can follow for effectively and quickly dealing with your newsgroups:
  • Take a glance to see if someone else with appropriate skills is needed for the topic; in my case Eike, Martin, or Christian.
  • If not, hit reply.
  • Type in the person's name at the top to make it personal; try not to misspell, because it's rude.
  • Type in "Comments below."
  • Start reading and whenever a thought jumps to mind, type it in right then and there.
  • Upon getting to the end, hope the question has been answered.
  • If not, ask lots of questions so the person asking the questions has to answer yours instead.
  • Rinse, lather, repeat.
  • Avoid infinite loops.
A step that I've missed is to incorporate the answers into the FAQ or some type of wiki recipe; but I have so little time! Don't repeat my mistakes, but do repeat this process for as many newsgroups as possible, because Eclipse's overall success will be reflected in your personal success. Your dedication to high-quality service and support is the fuel for your ecosystem and the success of that ecosystem is the most effective way to achieve maximum influence with your limited individual capacity.

1 comment:

Antoine Toulmé said...

Ed, I know you don't have time.

I took this stuff a bit further though:

Also I applied faithfully your style to the newsgroups I specialize on, and so far it worked pretty well. I even had some contributions!