Wednesday, 9 December 2009

Open Development: Building an Engaged Community

I had an interesting day on Monday at the OSS Watch workshop Open Development: Building an Engaged Community (the slides are available from there).

The days aims were
  • Understand how open development works and know the common community structures
  • Be familiar with the skills and processes that encourage community participation
  • Develop ideas for improving the community friendliness of a specific project
I've been using open source software all my career but I've always been 1) a bit sketchy about how and 2) very nervous of getting involved in any open source software development so this sounded perfect!

From the offset Steve Lee of OSS Watch, in his introduction to the day, made it was clear that open development practice was key to open source software rather than simply access to the source code. (A couple of the presenters said "don't just throw it over the wall", referring to the practice of putting your source code some where public and walking away - a very common practice in our field - as this would not lead to a sustainable software product).

The rest of the day supported this ideal... Sebastian Brännström of the Symbian Foundation spoke of how Symbian hoped to make as much of the Symbian operating system (for phones) open source as soon as possible, and outlined the large (and quite formal) organisational structure required to support the 40 million lines of code. For a software project that large, this shouldn't come as a surprise, but clearly shows that "open sourcing" (I mean, the process to make software open source rather than sourcing work in an open way - though both are valid!) might not always be cheap or a free (beer) option. Indeed, he hoped that there would be a full-time, paid, community leader whose sole role would be to maintain and manage one of the 134 software packages that make up the Symbian OS.

Next up, Sander van der Waal of OSS Watch took us through the developer experience of taking part in an open source project - both from being part of a commercial company in the Netherlands and also working on the OSS Watch project SIMAL. It was very interesting to hear how his team had gone about contributing to Apache Felix & Jackrabbit (Two products very much of interest to our community!). He suggested it was very important to make use of the usual cluster of open source development tools - not just version management, but also mailing lists, bug tracking systems, wikis and the like - and that this was important if you were a "one man band" developer or a whole team. In many ways his experience here helped ease my nerves of contributing to projects.

The final speaker was Mark Johnson, of Taunton's College, giving his experiences and tips on being involved with the open source course management system, Moodle. In a past life I've developed for Moodle, so this was interesting to hear about. His advice was broadly similar to that of the other two speakers, though from a different perspective and here there was evidence of useful reinforcement of ideas rather than repetition, which is always a good thing.

A workshop isn't complete without a bit of group work and we were asked to complete a questionnaire designed, I think, to get us thinking about the sustainability of our open source projects by highlighting areas we should be considering - licensing, use of standards, documentation, etc.

This was a very useful tool and the questions got me thinking about all sorts of things. The results for futureArch were bad - all "red" (for danger) expect the section of use of standards - but that didn't come as much of a surprise. I think it would be fair to say that futureArch isn't an "Open Source Project" per se. Rather we're avid users of open source software. We, like many, do not have the resources to run a community around anything we build (who has funding for a full-time community manager?) and it would probably be inappropriate to try. But we can and will contribute to other projects and the workshop helped me see that this was both pretty easy (assuming everyone is nice) and desirable.

And, of course, anything we build here - the ingest tool for example or the metadata manager - will probably be "thrown over the wall" and people will be able to find it and others, if they get the urge, will be able to found a community, which I guess shows there is value in simple publication of source code in addition to the (far more preferable and more likely to succeed) development of a community around a product. (The revelation that community building is essential for a sustained software product, probably so obvious to many, sheds light on the reasons behind things like Dev8D too).

Just some final thought then as it grows ever darker and it is good not to cycle too late home!

Firstly, it struck me as people talked, that while open source could be seen as less formal than closed software development, it clearly is not. Development of communities and the subsequent control and management of those communities, requires formal structures making open source anything but an easy option.

Secondly, fascinating were the reasons given to contribute to an open source project. Someone mentioned how by taking part you felt you were not alone, but the overwhelming reason given was "recognition". By contributing you could get your name (and that of your employer) in lights, that participating in a community could lead to job offers, or other personal success. As most projects are on a meritocratic basis - the more good you do, the more say you have - that success could be to become the community leader or at least one of the controllers of the code - the fabled "commiters". This is a curious thing - the reason to participate in a "community" is the "selfish" urge to self-promote. Something jars there, but I'm not quite sure what.

3 comments:

Ross Gardler said...

I'm pleased you found the OSS Watch event useful. It seems you've picked up the key messages we were trying to illustrate.

I would urge you not to assume you don't have the resources to develop a community around your code. In reality the practice of developing openly forces the project into approaching development in a more organised and professional way. The end result is, in the case of good project outputs, more sustainable software.

For example, in the parallel session on open innovation at the same event we had Andrew Long of the University of Nottingham reporting that his TexGen project has directly generated £500k and indirectly another £1.5M as a result of being well managed open source software.

Furthermore, his project continued to progress even during a twelve month period when he was unable to find a suitable developer to employ on the project.

All this despite never having put resources specifically into managing community development.

You can see slides from his talk at http://www.oss-watch.ac.uk/events/2009-12-07_business/programme.xml

Even if you don't reach that same kind of success and your project just withers and dies as you move on to new pastures, you will have lost nothing. INstead of losing you will have gained some experience in developing openly - making your next open project more likely to succeed.

Climbing the open development learning curve is hard. Your commitment in this post to contribute upstream will help here.

Since you describe interest in a couple of Apache projects you may be interested to know that the ASF has recently launched a Community Development Project which is designed to help you get started within ASF communities. http://community.apache.org

pixelatedpete said...

Thanks Ross for the useful comment!

Several things still concern me about open development of the project code from the start - mostly related to people being nice (I don't trust 'em nor myself to not become a dictator! :-)) but I think you are right. There is nothing to lose in trying right?

I'll take a read through the OSS Watch site and see what we can do! :-)

dorla said...
This comment has been removed by a blog administrator.