Monday, November 30, 2009

Step Up or Shut Up

So we're at it again, sigh...

It seems that the same people are commiserating the tragedy of the commons at Eclipse, at regular intervals, over and over again. Complaining is not a very good way to get what you want - I know one thing or the other about this as a father of three ;-). Complaining may work once or twice, but if you keep repeating the behaviour, people will stop listening to you.



Normally, I would just sit these things out but this time I feel compelled to add some oil to the fire:
  • Diversity on e4: It is very easy to become a committer on e4 - that's one of the purposes of an incubator. Basically, all it takes is a believable email to e4-dev@eclipse.org that you would like to work on something in the context of e4, and you will be nominated as a committer. Still, IBM has most of the commits in the e4 project. Who do you think is to blame for that? IBM? Because it is investing in a project whose goal it is to bring innovation back into the Eclipse Platform?
  • Diversity on the Eclipse Platform: The last example I know of where people or companies wanted to contribute to the Platform but were not received with open arms is from about two years ago, when developers from WindRiver complained that their contributions did not make it into the Debug and Resources components. Where are we today? Both these components have committers from WindRiver, and Martin Oberhuber, a WindRiver employee, is a member of the Eclipse PMC. By the way, are those new committers contributing to those Eclipse Platform components full-time? No. (Just to be clear - I don't want to pick on WindRiver at all: I think it's great that they are in fact investing in the Eclipse Platform, even if it's just a little, when many other companies that benefit from the Platform don't invest anything at all.)
    So, if you'd like to contribute to the Eclipse Platform on an ongoing basis, and feel that you are not "let in", please speak up so that we can fix the problem. I am pretty sure that this problem doesn't exist, and that instead the problem is more on the side of those who decide not to contribute, than it is on the side of the existing committers.
  • Forking: As of lately, this is easier than ever. Eclipse projects are now mirrored as Git repositories, starting with those that are using CVS for the main development. Knock yourself out, and don't forget to make the source available if you are creating derivative works. However, I don't think this is going to be a solution to the "tragedy of the commons" problem. I do hope this will make it easier to create private branches when your development timeline does not align with the one at eclipse.org, and you need to just fix something now. I also hope it will make it easier for contributors in general to provide patches that don't go stale.
    By the way, the mirroring as Git repositories happened thanks to Denis and the webmasters at Eclipse, thanks to Shawn Pearce and the EGit and JGit team, and to a small amount thanks to Mike Milinkovich, the Eclipse Board of Directors, and your committer representatives on the board. If you are interested in details, see the bug Chris Aniszczyk opened on June 17th just after Doug Gaff and I were able to convince Mike Milinkovich and the Board (minutes) that it was important to make this happen.
  • The Foundation is doing concrete work to help: Mike has mentioned some of the things that are planned for 2010 on his blog: "a branded Eclipse forge hosted elsewhere (e.g. IP Policy free), Git support for the whole community and major improvements in hosted build and test at eclipse.org." I believe that the Eclipse Foundation staff, and Mike Milinkovich as the executive director, are doing a pretty good job, and they are also actively trying to get more involvement by other companies and individuals for core projects at Eclipse. The board of directors even made this a strategic goal for the Eclipse Foundation this past June1.
So overall, my comment would be "step up, or shut up". If you care about the future of Eclipse, pick a component or feature in one of the core projects that is critical for your use of Eclipse and help what you can. I would put at least the following in the "core projects bucket": Equinox, Eclipse Platform (with SWT, JFace, Workbench, Resources, Debug, Text, etc.), EMF, and GEF. If you think another project belongs in there, pick it instead and help there.

Now for the definition of "help", I would recommend that you focus on a narrow enough subpart so that you can follow along for the next little while (like, for example, a year). Spend some time on the newsgroup/forum, read and understand the code, watch incoming bugs, find out who is the current maintainer, contact them and let them know you are interested in helping, and so on. This does not have to take a lot of time, but there is probably a lower limit of perhaps one or two hours per week. Convince your manager that doing this is important for the company, since they have software products that rely on the component or feature in question. You can also argue that investing a little time will help improve your skills. In fact, the latter point is a motivation that works even if you don't have an employer, if for example you are a student, or self-employed, or just not employed at the moment.

What's in it for you? Potentially fame, when your name starts appearing in Eclipse source file headers, or in IP logs (which by the way are another good way to measure project diversity). You'll learn about "the eclipse way", the development process that allows us to ship on time and with quality, every year, for the last nine years. Finally, you'll have the warm fuzzy feeling that comes with ensuring the future of a core piece of technology that is being used by millions of users. Of course, you could help an Apache project, or Linux, or Mozilla, or on SourceForge or GitHub, but chances are (if you are reading this on Planet Eclipse) that your job indirectly depends on the future of Eclipse - not Apache, Linux, or Mozilla.


(Image © Zen Sutherland, http://www.flickr.com/photos/zen/241745451/sizes/o/, licensed under Creative Commons by-nc-sa 2.0)


1 You have to read between the lines for this, not sure if newer board minutes have more detail. The June board minutes state: "In discussing the strategic goals of the Eclipse Foundation, the Board indicated that diversity on e4 was of strategic importance to the Eclipse Foundation. In addition, it was important to continue to grow a diversified revenue model. As a result of the discussion, these two concepts were introduced into the Strategic Goals of the Foundation." Since a strategic goal that focuses solely on e4 seems a little odd, this has been generalized to apply not only to e4 but to other platform-y projects at Eclipse, I believe the wording is "Ensure adequate resources are invested in the core technology platform".

18 comments:

Lars Vogel said...

Are the E4 repositories also mirrored via Git? I cannot find them listed on this website: http://dev.eclipse.org/git/

Scott Lewis said...

Boris,

Would you really assert that Bjorn or others making the tragedy of the commons point aren't/haven't 'stepped up' for the Eclipse community?

I believe that what's needed is for new contributor/contributions to be made easier...wherever they are from...and given the difficulties with project diversity/project silos, IP process, and a general less-than-truly open culture (see Doug S's post), new contributor/contributions are harder-and-harder for all EF projects to come by. This combined with overall reduced participation and reduced cooperation among the commercial membership does indeed lead to a serious commons problem IMHO.

Attacking those that identify such an organizational/group-level problem (or dismissing it) is a terrible way to address the problem.

What makes commons problems hard is that solution of such problems is ultimately dependent upon cooperation and establishment of trust among the entire community...rather than accusation, finger-pointing, and mean-spirited personal attacks...which we seem to be getting a lot of today. e.g. see Evolution of Cooperation.

Ian Skerrett said...

Scott,

I would definintely assert Bjorn is not stepping up for the Eclipse community. For the last 6 months he has a continuous series of blog post on what is wrong with Eclispe but has done nothing to contribute back to Eclipse. Sorry but opinions with no action have very little value in my opinion.

On the other hand, Boris is doing the best he can to reach out to encourage more people to participate on e4. I think he has done a great job. However, Bjorn and others continue use IBM has the example for non-diversity.

I agree attacking people is never a great way to address a problem. However, after six months of whining and complaining but no action from the arm chair quaterbacks, at some point you have to say enough is enough.

Yes, we all would like to make it easier. I think we all know the problems. Lots of people are working hard to address the issues and make change. If people want change then starting doing something about it.

Talk is cheap; actions, code, and other tangible contributions are welcome.

Unknown said...

"The last example I know of where people or companies wanted to contribute to the Platform but were not received with open arms is from about two years ago."

Let me point you here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=294931

The Platform Memory View is confusing to most, we have a simpler Memory Browser view that our users like better but was rejected by the Platform committer. Now we have two which just makes matters worse.

Unknown said...

BTW, this will all end when we can write blogs like this without mentioning company names, when who we work for doesn't matter and we are all working for the common good and commercial benefit is a natural side benefit of all of our great work combined together.

Boris Bokowski said...

Lars,

The e4 bundles are not yet mirrored, probably because they are not at the same level as other bundles under /cvsroot/eclipse. Can you open a bug for this and cc me? I would be happy to explain where the e4 bundles are.

Scott Lewis said...

@Ian, I disagree with your assessment of Bjorn's contributions. I think the history of his contributions is well-established and obvious. And public criticism of bad/not community centered policy is the only viable way that I can think of that can lead to appropriate change.

RE: Boris and e4...I'm not making or intending any judgments about Boris or e4 projects WRT diversity. But to deny that the foundation has a diversity problem in general (and worse...dismiss or belittle those that are bringing up such a *systemic* problem) is simply to deny reality.

And if you all know the problems WRT openness/diversity and yet don't do anything effective about it...then I would say that's a good example of a case implying that you (EF) should 'step up or shut up'

Boris Bokowski said...

Scott,

I didn't want to point fingers, or address any single person in particular, for pointing out that in fact there is a tragedy of the commons problem at Eclipse. I see that my posting can be read in this way, for which I would like to apologize. In particular, if you thought that my posting was mean-spirited, I am sorry - it was not meant to be an attack at all: just a couple of comments with a call to action.

What I did want to criticize were repeated postings by the same people (not just one!) who blame the existing Platform committers, or IBM, or the Eclipse Foundation, for not doing enough to ensure diversity. My main goal was to state that under the current circumstances, the onus is on everybody else (not the existing committers, not IBM, not the Foundation) to step up and contribute to those projects that they benefit from.

I also outlined in concrete terms how people who wanted to help can do so most effectively. Basically, don't spread your love because it will go unnoticed, but instead focus on one little niche that eventually, you will be able to own.

Boris Bokowski said...

Doug,

I am not sure how the bug you reference can be read to be a rejection. All I see is a bug that's a few days old, with a good discussion amongst the interested parties on how best to solve a difficult problem. I did see the referenced bug with no progress for about a year, after a few comments, the last one from WindRiver. It's OK to blame an individual for not responding within a week, but after that, it's up to everyone on the bug with an interest of making progress to ensure the discussion is brought to life again. Let me know (preferably by cc'ing me on a bug) if I can help unblock anything, but what I've seen looks perfectly reasonable to me - in particular, where is the "rejection"?

Boris Bokowski said...

Doug,

(responding to "this will all end..."): Amen!

Seriously, why don't we lobby for government money to fund the "commons" work - what's the fundamental difference between physical infrastructure like roads, railways, sewers, etc. on one hand and core software infrastructure like the Java VM, Java language, java.util collections, MySQL, Linux, the Eclipse Platform, Apache httpd, etc. on the other hand? Both are common infrastructure, and it's hard to get that infrastructure created when you cannot make money off of it.

Scott Lewis said...

@Boris

RE: "What I did want to criticize were repeated postings by the same people (not just one!) who blame the existing Platform committers, or IBM, or the Eclipse Foundation, for not doing enough to ensure diversity"

I think it's clear that many people (i.e. you...and me...and others) do a lot to try to accomplish project diversity. Yet, I think it's also clear we (i.e. all projects) still have a diversity problem. When many good, well-intentioned people fail to achieve a mutually desired result over a fairly long span of time this indicates (to me) not a failure of individual competence, or effort, or will, but rather a systemic problem (i.e. one having to do with policy as an *organization*). That is why I think it's useful to 'complain' (aka communicate)...as any systemic solution/change is going to have to be found *jointly*...with *cooperation* among people.

Outlining how people can contribute effectively is just great...IMHO...but I think more is needed.

Unknown said...

Oof, Boris, there was some text after the link to the bug that describes how we got to this state. Please read it. Thanks.

Boris Bokowski said...

Doug, where is the "rejection"? Link or it didn't happen ;-)

Scott Lewis said...

@Ian

You say: "Talk is cheap; actions, code, and other tangible contributions are welcome."

My response to this is:

1) http://www.eclipse.org/ecf (in my book that's an 'actual tangible contribution')

and

2) in the real world, talk (and it's more useful counterpart...listening) is sometimes necessary for actual progress

Ian Skerrett said...

@Scott

I think you are a great example of someone that gains respect through contribution of great code. I realize you don't just talk.

I do believe we are working on trying to encourage more diversity and as Doug S points out 'openness'. I hope git will help, we are also working on a 'forge' that will not require IP clearance, buildng build environemnt and other things.

However, I don't believe there is a silver bullet for diversity or openness. Both can be intangible, people specific and situation specific. For instance, I would love to see more projects with up to date project plans, to promote openness. We have tried to encourage/enforce/beg for that but in the end it is up to the project leader/committers to make sure that happens.

I think we should keep the conversation going but we need to start working on specifics. Somethings are going to be easier than others and somethings not everyone will agree but I do think we are making progress.

Lars Vogel said...

@Boris: Bug for the E4 repository access via Git: https://bugs.eclipse.org/bugs/show_bug.cgi?id=296541

Scott Lewis said...

@Ian

"However, I don't believe there is a silver bullet for diversity or openness. "

I agree that there is no silver bullet. I would go further, however, and say that measures that attempt to pass the problem off to the committer community (e.g. forcing projects/committers to jump through hoops...without any reciprocity/support from those that are profiting from the work) are doomed to fail.

So far, in my time as a project lead, the EF has introduced and enforced lots of additional requirements on the committers/projects, but not enforced the project participation requirements on corporate members (excepting IBM...where participation enforcement is not needed because their participation is so high). In order to reduce their costs, the non-IBM corporate members do not sufficiently/sustainably support the EF projects (except, to a limited and varying degree *their* project...see project diversity problem), and so with IBM significantly reducing it's support as well, and the economy in shambles, the EF projects are starving...and consequently falling behind in their ability to innovate/create actual end-user value in the software.

That's why I think that different approaches are warranted...at the level of group behavior/EF policy...rather than more of the same.

"...but I do think we are making progress."

On diversity and openness, the data do not currently bear you out. These are two very deep organizational/systemic problems IMHO, and they could ultimately lead to the destruction of the value that lots of talented people have worked over years to create (i.e. see the tragedy of the commons problem). I think we are seeing that destruction happening now...through less cooperation, less project support by the corp membership, and consequently less innovation.

I, for one, don't wish to see all of what Eclipse has become disappear into the history books because of greed/money, ego, business, philosophy, corporate self-interest, abrasive personalities, marketing spin, inability to cooperate, NIH, exploitation of others, the history of tools/IDEs, or any other such crap. I also think this *concern for the welfare of what we've jointly spent so much effort creating* is at the root of much of the 'complaining' that some seem ready to ridicule or dismiss. These problems are not going to be solved by shooting the messenger(s).

Ian Skerrett said...

@Scott I think we are in pretty much agreement. I am hoping we make it easier for people to contribute and participate. This is what I meant by 'we are making progress'. It will take time but lets hope the data will start to show it.