“Release early, release often” is a well known mantra of open source development. There are many reasons why it is important to release early and release often. Some of the more important ones are:
- Early and frequent feedback from users
- easy access to the latest and greatest features
- Builds developer confidence
- Shows genuine project activity
- Manageable upgrade path for users
One of the projects I work with is Apache Forrest, that project has just released version 0.8. This version took nearly two years to get out the door. We released early, but have failed to release often.
Why did it take so long? In my opinion, perfectionism was the main problem.
We wanted the 0.8 release to be close to perfect. However, since a number of developers use the software daily new features were being added all the time, often with limitations that we wanted to remove for a public release. We were suffering from the “shiny new toy” syndrome.
This pursuit of perfectionism in the project has caused considerable harm to the community. No releases means no visible progress, which means less interested users, which means less developers, which means less chance of releasing. It’s a vicious circle.
In the end we decided that enough was enough and we had to release Forrest as is. The catalyst in this decision was the imminent publication of a book on Forrest and an interview with a technology magazine that shamed us with the question of “why is 0.8 taking so long?”. The community put in a few weeks of hard work ensuring there were no really bad bugs left and we now have a release, new users, new feedback and, potentially, new developers.
Sure, there are some rough edges, but show me a closed source application that has no rough edges at the time of a new release. The advantage here is that Forrest is open source, if the edges are too rough for you help us smooth them over. The important thing is it works for the common use cases and a question to the user list will usually help identify a workaround if you hit a problem.
Release Early, Release Often is part of building a sustainable open source project, releases produce users, users sometimes become contributors, contributors make the project stronger. The downside of releasing early and often is that you need to manage your user expectations. Be clear about the true status of your release and make any known bugs clear in your documentation. Users don’t mind working around issues, if it is clear what issues there are.
Ubuntu released their “Feisty Fawn” 7.04 release this week. The “release early, release often” approached caused a number of things to slip from this release, including snazzy X11 3D goodness. Naturally Feisty is also missing Firefox 2.0, which was only released this week. Both are things that could have been waited for, but the release is better for not having waited.
Feisty Fawn http://www.ubuntu.com/
Thunderbird 2.0 http://www.mozilla.com/en-US/thunderbird/2.0.0.0/releasenotes/