Sunday, July 13, 2008

Open Source Project Management

The advantages of open source are many. For the project maintainer it’s easier to find contributors. For users it’s to know the project will be around even if the founders are gone. But managing open source projects is no easy feat. Since most open source projects have distributed development teams, asynchronous collaboration is required. It takes the project leadership countless hours to research, deploy, and maintain the tools used for collaboration. Typically these would be forums, code repositories, mailing lists, wikis, issue trackers, blogs, and more. For most open source project hosting there are three approaches.

Do-It-Yourself (DIY)

All tools and services are hosted on your own servers.

For:
  • It is a good way to demonstrate your project’s integration with 3rd party products or to use exotic and cutting edge community tools which are not yet widely available.
  • For commercial open source software having DIY project hosting can inspire confidence for their users since only a stable and reliable company can maintain all these tools.
Against:
  • Not only is it time consuming to manage all these vital tools, any security vulnerability becomes an attack vector on your project. Anyone who has set up a public blog or forum knows how much time can be spent fighting spammers.
  • Hosting your own blog and wiki really won’t make your product any better and in fact takes time away from actual development.

All-in-one Project Hosting

Typical services are SourceForge, Google Code, Savannah, or Gna!.

All-in-one services shield project leaders from most, if not all, of the hassle of maintaining collaboration tools. However these services force their own views on the project management. They often believe that one size fits all which leads to poor usability and can cast a negative image on the open source project.

3rd Party Mashups

Specialized components from various providers are mixed to fulfill specific needs. Examples are GetSatisfaction, UserVoice, Flickr, Blogger

The immediate advantage of using these is that there is almost zero setup and maintenance cost. As their usage becomes more widespread, developers and users build up a familiarity with these tools, reducing barriers for collaborators to join and switch projects. The pick-and-choose advantage of DIY is combined with the outsourced maintenance of all-in-one hosted services.

One serious risk is that some of these services could go under. Still, one component will not affect the others.

Pandion’s Lightweight Infrastructure

Pandion follows the mashup strategy as much as currently possible. These are some of the third party services currently being used.

Website hosting
Slicehost

Screenshots
Flickr

Source Code Repository
Google Code Hosting

End User Support
GetSatisfaction

Feature Request Feedback
UserVoice

Developer Communication
Google Groups

Public Announcements
Twitter

Developer News
Blogger

File Hosting
Amazon S3

Community Analysis
Ohloh

Conclusions

There’s little if any reason to continue hosting collaboration tools in house. The all-in-one services will keep facing tougher competition from specialized offerings which offer higher quality and have momentum of their user base.

Setting up these services is trivial. Just create an account and register the project. Most of these tools are free of charge so project management costs are minimal in both time and money.

Many open source projects could be much more productive if they left the project management to third parties and focused on the code and design of their software.

7 comments:

Tiberiu said...

OK. True enough. But this is not project management. You mainly described the collaboration part of open source development. Beside all these you still need a project management tool to plan and track the projects. Am I wrong? Something like RationalPlan. But obvious not a desktop tool but a network based one. You might think about that and maybe add all the tools that are really needed.

Cro said...

I agree. Collaboration is the heart of project management, but it's not project management. You still have dead-lines, tasks, etc. And yeah, a desktop system will never work for an open source team. There are very useful apps, one of them was already mentioned. We're using Wrike. They run special discounts for open source teams, you only have to ask for them. A post about this kind of apps would be definitely helpful.

Sebastiaan Deckers said...

Thanks for the feedback. You're right, the title should not have been project management but asynchronous collaboration.

As far as issue trackers are concerned I have not yet decided on which one to use. Google Code offers a very basic tool. I don't want the trouble of hosting and maintaining Trac or JIRA on my own server. Any free alternatives out there? I will investigate Wrike. Assembla is also an option.

john said...

Another alternative for task/issue tracking and lightweight project management is Intervals. It is web-based and includes a free plan if you'd like.

ikl said...

There is another question you should take into consideration: which project tools are of key strategic importance for the project? You may not want to "outsource" these tools to third-party services as it makes your project dependent on these services. For example, Sourceforge.net was offline for several hours this year (at the day we wanted to do a Coccinella release). Our own website stayed online as we do not use Sourceforge.net's hosting services. Also, if Sourceforge.net did not came online at our release day we could have had hosted the files temporarily at our own hosting

Sebastiaan Deckers said...

@ikl: Agreed. In fact one always needs to expect components to fail and gracefully degrade service while bringing up alternatives. For example if Twitter has downtime we can quickly hop over to Laconica and keep communicating with the community using other means like the blog, mailing lists, etc. If Amazon S3 is unavailable then file hosting would be quickly redirected to the Slicehost server, Google Code, or another mirror. The only services that cannot be easily replaced are ones that are impossible to host on your own anyway, like Ohloh.

ajxn said...

A central web page with static pages would be a good place to start, with low maintain cost for you. Under your controll at your site, that is.

The other services should prob. stay where they are now, but be redirected from your static page web server. If those other services fail, just ignore that. It is more confusing for users/developers to "run around" looking for where the service is right now. Importent information could always be announced on your static web page.

IF you need/want to make a release, you could always do that from your site, through bittorrents (which will lower the load on your site).

But change where you have your services is prob. only confusing.

Any way, any release soon? A small bugfix release would show that something is moving, attracting user base.