An important part of open source development is the creation of a release for users of the software, even when you have no users outside the core project team. One gains all the benefits of the release early, release often cycle, but more importantly in the early stages, you ensure you build the tools and infrastructure for doing quick releases early on in the project when it is easy to do. Leaving this until later in the project will take much more time as the build process will have grown in complexity in time. A good open source project will release source bundles that can be built by developers in any environment, doing so eases the path to contribution for those people. If tackled early enough the creation of a semi-automated build and release system is reasonably simple.
In addition, whilst the source code is freely available and usually developed in an open manner, potential developers and users will usually want to be able to evaluate the code quickly and easily. Therefore, projects should frequently release their software in a form that is easily accessible.
"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
Many projects resist releasing early, saying "the code is unfinished" or "I just need to polish it a little" or "we've not fully tested it yet". It is often quite scary releasing software when they are in these states, but lets face it, application are rarely finished, the code can always be polished and the best way to test is to put it in the hands of early adopters.
Release Early, Release Often is an important 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.
Many projects release in stealth mode until they are reasonable feature complete. That is, they do not seek to advertise their existence and do not provide user focussed web sites, thus natuarally filtering for early adopters. This allows those who are really interested in your work to find you, whilst minimising the number of end users who will be uninterested in your project at an early stage of development.