Let's get it right and plan for the future
We are not that long away from the scheduled release of Joomla 3.5, the next LTS (Long Term Release) and at this point in time I believe we really should not be looking at adding any game-changer features. My understanding, and hope, is that by the time we release 3.5 it should be a rock solid release and will need little more than minor maintenance and security releases for the rest of the release's life.
What about new stuff?
A high level Road Map exists, finally, but it doesn't dictate, or even suggest, for which release we should be aiming for with those features. If we truly want to achieve the aim of 3.5 being both "long term" and "stable" then we have probably already passed the point in time where we can add big new features.
What do I mean by a game-changer feature?
I do not mean a feature that ADDs to Joomla as an independent unit but I do mean a feature that CHANGEs Joomla. So for an example a brand new, and much needed, modern Media Manager would ADD to Joomla and have little polluting effect on the rest of the codebase so that would be ok but the introduction of a new content model which CHANGEs Joomla would not.
Do we have to wait until the release of 3.5 before working on new stuff?
Absolutely not!! If developers, designers and UI experts want to work on new stuff, such as a new content model, then of course they should start work on it now. We shouldn't be saying what people can work on, after all we are all volunteers™, but we should also not be constraining them to complete their work by a certain release. Nor, I believe, should we even be thinking about committing such major changes in anything other than a STS release.
How do we achieve that?
By removing the "time pressure" to complete work within a short time frame and the issues with quality and compromises that entails everyone benefits. By removing the "time pressure" anyone who wants to work on a game-changer feature should be encouraged to start now in a public branch.
During JoomlaDay Bosnia David Hurley was espousing one way of achieving this, the "git-flow branching model". (See http://nvie.com/posts/a-successful-git-branching-model/ and http://yakiloo.com/getting-started-git-flow) Assuming my non-developer brain understood correctly this allows people to branch, work on a feature and, when BOTH sides are ready for the changes, accept the feature in the release branch.
This means that new features can be worked on away from the main branch without being infected by any changes there and without causing any changes until necessary.
What are the benefits?
- Those people contributing get to work on the stuff that rocks their boat. Productivity and quality always goes up when people are enjoying themselves.
- Those people maintaining the current release can really concentrate on removing those niggling little bugs that always slip through the cracks. Especially when its "all on hands on deck" triaging and bug fixing a feature that was pushed into a release before it was ready.
"Let's have fun again building Joomla"