Tuesday, April 7, 2009

Turning Freeloaders into Freehelpers

We have been entertained with a number of posts to the planet over the last while. It is a opportunity to think critically about what is great at Eclipse, and what details we can improve upon. Keep them coming.

I completely agree with the opinion that we need to find a way to increase the diversity on our projects and get more individuals working towards our greater goals. We saw many presentations at EclipseCon by some big companies making significant investments on software based on the Eclipse platform.

Yet a number of them do not "contribute" anything back to Eclipse.

Eclipse committers are measured exclusively by their code contributions. We have a great system in the dash project where commits are measured. If you have not committed any code into CVS in the last nine months you get the boot. Perhaps not literally, but some projects tend to run that way.

If I want to add a committer, we are pretty much limited to gathering a list of Bugzilla patches demonstrating their contributions of code to the project.

And that is where I think we can make some improvements. Committers do many more things than just write code. They test, they document, the manage builds, they answer newsgroup questions, they present at conferences, they track Bugzillas and so on and so on.

I imagine a contributor at a big company who consumes an Eclipse project. There are individuals who do many odd jobs to make sure the Eclipse project is healthy for use in their application. These are the resources we need to attract.

I especially like the ideas on Stack Overflow and their system of badges and reputation. I can see this working at Eclipse. Raise a Bugzilla? Answer a newsgroup question? Test an integration build on a specific platform? All this contributes to your project reputation.

Once you reputation is high enough, you are a committer. Code contributions need not be necessary, you are contributing to the overall health and well being of the project. You have demonstrated your dedication to the community.

As the non-code relationship is nurtured, perhaps these companies will feel inclined to eventually donate back some of their extensions and fixes in their fork back to the community at Eclipse.


nickb said...

Not every project insists on proving yourself through patches and skillfully jumping through hoops.

The Dash Athena project snowballed from 3 to 6 committers when Kim, Andrew, and Andrew said they'd like to help out.

That was it.

Now, granted, I've been working with them for several years and know their commitment to and passion for Eclipse, so it was a no-brainer. But I didn't insist they jump through hoops to get committership; in fact, I would rather have them made committers and do nothing than be restricted from helping by NOT being committers.

But the same was true for my little BeyondCVS project at Sourceforge: when Chris offered to help out, I added him immediately. Now he's 100% the code maintainer, while I do little more than marketing. We would never have gotten support for Perforce and SVN without him.

I think really we need to stop fearing new contributions and start trusting that everyone knows we all benefit when we can all (more) easily contribute.

We need to stop thinking like Windows (everyone is out to exploit and destroy us with trojans and virii) and start thinking like Linux (want notoriety? write a feature! write an app! write anything!)

Brian Fitzpatrick (aka "Fitz) said...

I think the idea of a computed community reputation score would be very interesting, at least as a data point. Automatically creating committers from those with high reputations isn't a great idea IMHO. That said, if we had this sort of data in a quantifiable way (as on Stack Overflow) it would certainly be useful as a contributing factor to getting committer access.

As Nick said, there are always those cases where people are already vetted in the community directly or by reputation, but I don't think it would hurt to have this sort of system in place to aid in gaining that reputation for newcomers to Eclipse.

At the EC2009 keynote where they were talking about community on the first day and showed the slide of Wikipedia contributions, I think that's going to hold true for Eclipse as well. We have a core of dedicated, passionate folks, and then a larger number of hit and run kind of contributors. And it's tough to gauge the experience levels of some of these one and out contributors just by the contributions to a single project. But if it was project and community-wide... That would be very helpful!

Thought provoking post!