wohoo!
i love
minimal
Joomla!

Can the Joomla development strategy be successfull?

A few minutes ago I stumbled across a discussion in the Joomla Bugsquad and it brought up a good point. Can you introduce backwards compatibility breaking changes into a release that is not going to be supported longer than the next release?

Joomla has a huge community and only a small number of people using it are actually webdevelopers and from all the sites that are built with Joomla, the number of sites that is actively supported by a webdeveloper or interested community member is even smaller. This means that a huge number of websites out there has been set up once and was never touched again in terms of updates or, god forbid, migrations to a completely new version. So we still have Joomla 1.0 or even Mambo websites out there and especially when it comes to migrating a heavily modified website to a new version, currently for example 1.6, people are hesitant to invest the time.

Joomla 1.6 breaks a lot of things. Each time its not a huge issue, the differences are mostly small and can be fixed pretty quick, but the number of changes generally keeps people from doing the switch. Joomla 1.6 will be supported until mid-2011, right up until 1.7 is going to be released. There will be no security fixes for 1.6 after that date. There will be no bugfixes after that date. But as it seems, 1.7 will be incompatible to 1.6, at least in a few subtle areas. At the same time, Joomla 1.5 is still going to be supported and from a security point of view it is pretty stable. I wouldn't give it the lable "properly tested", but the sheer number of installations and the time its been in action is a pretty good sign of its solidity. But Joomla 1.6? To be honest, I personally don't trust it, because it wasn't tested in that regard. To recap, Joomla 1.6: No support in a few weeks, no trust in its security; Joomla 1.5: Support for at least another year, good trust in its security.

Would you as a user or developer jump on the 1.6 bandwaggon? Or 1.7?

Why was the switch from 1.0 to 1.5 so "easy"?
Yes, 1.5 changed a lot of stuff, mostly for developers. But it also improved the basis for development of Joomla extensions in a way that can not be overstated. Still, the most important factor for its success was the adoption by the normal users, which can mostly be attributed to the legacy layer for 1.0 extensions. This in the end meant, that 1.5 would offer users a slight improvement, which would grow over time with third party extensions, but also it wouldn't break their current sites. Switching didn't mean basically a complete rewrite.

What is the development strategy of Joomla?
The strategy currently looks like this: We release a new major version every 6 months and every 3 versions, we call it a long term release and support it longer than until the next major version. That alone is not really going to be a big issue, actually, its even a big improvement. The aspect that makes it a problem is, that the project currently does not communicate a specific vision for the next major release(s). Okay, that is not entirely true, the project communicated a vision, something like "We are going to write a big-ass CMS and we are going to release our own framework seperately from the CMS". But from my point of view, that is not specific enough and in the area where it gets specific, releasing its own framework, its not interesting to me, both as a user and a developer. As a user, the framework has no value at all for me, and as a developer I have to say that the Joomla framework is not mature enough to have enough value to be used outside of the CMS itself. If I need a good framework, I take a look at Zend, Cake or Symphony, or if I like the philosophy behind Joomla 1.5, I use Nooku.

What does a future version of Joomla offer me that makes me want to update my system from 1.5 to the most recent release?
First of all, Joomla would need some guidelines for development. A few example:

  • Use as little parameters as possible. If a user needs more, he needs to implement them on his own.
  • Make the code as flexible as possible.
  • Abstract the code as much as possible. A developer should not have to do time consuming, boring work.
  • Think about how all this fits into the grand scheme of things in Joomla. Does this have to be part of the Joomla CMS core?
  • Make the change backwards compatible or make sure that there is a legacy layer.

And then the project should point out some major tasks that they want to accomplish in the coming versions, which have a true value for users and developers. There is already a statement like that, but it has a big flaw from my POV: It is just talking about adding new features. I think Joomla needs to focus more on polishing its existing features, which should not prevent new features to be added, but that should not be the main focus of the project.

So a changed vision statement could look like this:
Joomla 1.7:

  • For the users, we are going to review all user interfaces and think about how to implement them in a more user friendly way. 1.7 will be the most easy to work with Joomla so far! (Think about AJAX and Drag&Drop-Features)
  • For the users, we are going to implement a tagging solution for the Joomla core components.
  • For the developers, we are going to do a review of how the core classes are build up and fix long standing problems, preferably in a backwards compatible way.
  • For the developers, we are going to abstract functionality into classes that every component can re-use, saving you a lot of time for development.

Joomla 1.8:

  • For the users, we are going to implement a CCK solution.
  • For the users, we are going to implement a package management system into Joomla, which will make it super easy to install and update your extensions.
  • For the developers, we will finish the core classes review from 1.7.
  • For the developers, we will implement some of the great principles of Nooku into the Joomla core.

Joomla 1.9:

  • For the users, we are going to implement versioning into the Joomla core.
  • For the users, we are going to provide a multi-language content solution in the Joomla core.
  • For the developers, we are going to further improve the Joomla code base.
  • For the developers, we are going to split the framework from the CMS, since we feel confident enough that it now can compete with other frameworks out there and give you a real benefit over other systems.

In that last bullet you also see something else that I'm criticising. I think splitting the framework from the CMS is a good idea and eventually a good step, but right now it wont help Joomla at all. From earlier experience, I think splitting the CMS and framework now will result in much slower development, since changes have to be negotiated not only with one, but two seperate repository maintainers. From my point of view, the framework has so many flaws that need to be fixed, that keeping the two together would be the better solution for the moment.

Back to the topic: So, Joomla does not communicate this vision properly. Big deal, (quoting "Field of Dreams") if you write it, they will come. And will still switch over. But that means, that someone writes the code, does the work. At this point we are again at the topic of my last blogpost.


Which still brings up the question: Can the Joomla development strategy be successfull?


blog comments powered by Disqus