21st
Release Timing
I’ve always been wondering how to best time software releases. It sounds like a simple question but it can have a big impact on how software gets developed, how fast it grows and many other aspects.
The Two Camps
Generally, there are two basic ways to time your releases:
- Schedule-based releases
- Feature-based releases
They both have their advantages and disadvantages, so let’s take a brief look at them.
Schedule-based Releases
Schedule-based releases are mostly used by the open source community. For example, GNOME uses a 6-month release schedule, so you know that there are roughly two releases every year. One problem is choosing the release frequency. Choosing a small period will discourage major re-factoring and lead to higher exhaustion of the developers. On the other hand, choosing a longer time period might result in waiting too long for the new features to arrive.
Feature-based Releases
Feature-based releases are centered around making new features available to the users of the software. There is an obvious question of how many features do you implement until you release. Choosing a small number has the same problems associated with time-based releases with a short time period. Same for waiting to accumulate a big number of features. User satisfaction should also be taken into account.
Our Release Strategy
Strictly following one of the basic models will not yield the most optimal results. It is best to combine both. Our release timing usually follows the pattern:
- Before working on the next update, decide what features are going to be included
- If it takes too long to ship, move some of the features to a future update
This scheme has elements of both schedule-based and feature-based release strategies. It allows us to focus on working without having tight schedules (this really helps in fixing up your internal architecture) and as a consequence each update has a sizable amount of new features. On the other hand, if it starts taking too long, we’re probably trying to do too much and it is a good idea to release what we currently have.
Next Update
We were thinking last night whether we should release in the next 1-2 weeks or delay a little bit more while we integrate TwitPic. We asked our users and turned out that more people wanted an earlier release instead of waiting for TwitPic. Our decision is to release the next update without TwitPic support. The good news is that you will able to get TwitPic support at the same time if we were going to delay our release.

Starting from the next update, you will be able to live on the bleeding edge. You will get the features as they arrive but you might experience some instabilities.