Release early - release often or release once when it is ready?
It is often quoted that an open source project, like Joomla, should release early and release often as this is the best method to find bugs and provide new features.
However I believe that is an overly simplistic approach and does not translate to real world use in all but the simplest, single use projects and definitely not for Joomla.
As soon as you have a piece of software that third parties extend and build upon you run into serious issues.
Imagine this scenario.
(Note you might need to read this a few times to fully understand - but I've tried my best)
Organisation A selects application B to build their new community web site. Application B provides the basis for the site but they also use add-ons C, D & E from third party developers and do a little coding of their own as well.
Two months later application B releases a new version, B+1, that addresses several bugs, changes a few functions and introduces a few new features. Now organisation A needs to upgrade to B+1 as they have been effected by the bugs but unfortunately some of the changes in the functions effect add-ons C & D and they stop working. Add-on C is quickly updated to C+1 but add-on D is slow to update. What does A do now? Do they drop D?
Organisation Z is in a similar situation but they decide not to upgrade to B+1. However a few bugs have come to light in add-on C and they have been fixed in C+1 but that requires A+1. You don't really expect the developers to build and maintain for multiple versions do you? What does Z do now? Do they drop C?
Complicated isn't it.
Do users want a stable platform to build on or do they want bleeding edge features?
So what do some of the larger Open Source projects do?
- Debian - major release approx every 18-24 months. Bleeding edge release constantly updated called UNSTABLE and not general used in production environments
- Ubuntu - regular release schedule every 6 months but certain releases are designated LTS (Long Term Support)
- Red Hat - regular maintenance releases but for bleeding edge features you need the community released Fedora
Can we really compare those big Linux distributions with something like Joomla? I believe that today we can. Joomla is no longer the home of the hobbyist web site builder but is a platform for companies large and small to build web applications upon.
What about closed source applications? How often do they release new versions?
(Note here that I am talking about new versions and not bug fixes)
Microsoft has typically aimed to release a new version of its applications (not operating systems) every 12 months but most other large closed source applications release less often.
Why? Because their customers don't like it.
- They don't like the cost of performing new installs and upgrades
- They don't like the cost of training users on new methods of working
- They don't like the cost and time involved in rebuilding existing addons, templates, macros etc
So what is my conclusion.
Three options really:
- Release early - release often and let third party developers and users deal with the issues
- Release when it is ready - longer period between releases but everyone gets a stable platform to work with
- Maintain two versions - one stable version suitable for people who require long term stability and one bleeding edge version for people who are prepared for, and accept, incompatibilities, instability and bugs but want to have the latest shiny toys.
My personal choice would be option 2. I know my users would prefer a stable and secure platform than something bleeding edge. They don't mind applying security fixes or bug fixes but they don't want or need new functionality every month.