While I know that there are probably very good reasons to avoid some or all of such a system for a web application like phpBB (rather than computer application), I thought it would at least be good to brainstorm some new ideas while we have the time.
First of all, here is the link to an article that explains the system and includes a powerpoint made by the Technical Program Manager at Google.
In short, here are the key points:
- New versions are released often... about one every 6 weeks, regardless of whether any given feature is ready or not
- When releases are deployed, the software automatically updates to the latest release in the background, without interrupting application use. Note: I know this may be a difficulty for phpBB since admin may need to initiate the upgrade instead of doing it automatically.
- There are 3 different channels to choose from (stable, beta, dev). Note: I recommend against providing easy end-user updates to the non-stable channels for (in my mind) obvious reasons
- Releases are meant to be a way to introduce new features to users, instead of being a goal/milestone that has to have features x, y, and z.
- As such, the software as a whole is feature driven, rather than version-number driven; the version number doesn't mean a whole lot
Here is the last paragraph of the article:
The versions start to blend together. The approach is more like updating a website than a piece of client software. The version numbers don’t really matter. What version of Amazon are you on? Exactly.
It's a good point. Websites, like Amazon, add new features when they're done, rather than waiting for a whole list of features to be completed.
One good point I saw in the power point was the following Q/A:
What would a world look like where we didn't base our marketing on releases?
We market features, no releases.
After all, people are more concerned with how the software works and what it can do than they are with what version the software is.
- No more people wondering "when x version will be released"
- Don't have to do such large upgrades of a lot of features all at once
- Features, improvements, and fixes are introduced into stable branch as they are ready, so more often
- Does admin have to initiate upgrade or can it be done automatically?