Join the Mailing List
The ImpressCMS CompassPublished by Marcan on 2010/6/14 (5007 reads)
There have been more and more discussions in the ImpressCMS eco-system about what the direction of our project should be. A very legitimate question which leads to another more important question: why it is not clear to everyone where we are going ? The answer is simple: we have not been very good to communicate our vision! Great. So now that we are aware of that, let’s take this opportunity to change this and give a clear vision and start communicating accordingly.
The vision – where are we going?
As we all know, the open source Content Management System market is divided in 2 big groups. First, the Big 3, composed of the 3 predominant CMS: Drupal, Wordpress and Joomla. And secondly: the rest, composed of hundreds of other CMS, small and large, active or not, with 1 developer or tens of developers, etc…
In order to play well in this market, we need to clearly identify what ImpressCMS does or will do to differentiate itself from the hundreds other CMS. And I think we have already had this answer for the last 2 years, but now is the time to focus on this and leverage all the power we can for our product.
As stated at the beginning of this post, ImpressCMS is a Community Management System. It is a product which primary goal is to build communities of people and give them the tool they need to effectively manage themselves. Some key features inherited from our previous project XOOPS are clearly focused on these needs: groups and permissions system, notification system, comments system and modularized approach. And since ImpressCMS 1.2, we have a very powerful Profile module which allows a community to customize the profile they want for their users or groups of users. We have a very good base to build a better Community Management System and this should be our primary focus.
How do you intend to do that? – how will we get there?
Underdo the competition
Then we need to build less. Not more – less. In the last 2 years, we’ve added a LOT of features in our product. And it was good, it brought us great things. But now is the time to focus our vision and do less. More features leads to more complexity, bigger problems, more maintenance, more vulnerability, more resources being used, etc…
Take Wordpress as an example. They became what they are because they were very focused, since the beginning, on only 1 thing: being the best blogging platform ever. And they were very successful at it. Because their focus was clear, because they said ‘no’ to a lot of feature requests, because they did not try to be everything to everyone, they are now one of the most-used systems in the world.
Leverage the extendibility
One of the key aspect of our product is its modularity. It has a lot of benefits and we should leverage on this. But even more, we should make it even easier to develop modules and extensions for ImpressCMS. That way, if someone has needs which ImpressCMS core does not address (because we managed to keep our focus), then it’s not a problem: because our product is THAT easily expandable, anyone with little knowledge can build a module and solve its problem!
Now, let’s take a few steps back
A quick look in the rear-view mirror – where have we been?
When we started this project back in 2007, our goal was very clear: create an open source community management system, easy to use, beautiful to look at and built openly, using a code repository where everyone could contribute. One of the very first blog posts I made on ImpressCMS was all about the openness of our SVN. We wanted to do things differently. Not only having 1 or 2 developers committing in the core, but allowing anyone with the interest and the skills to do so.
And we did exactly that. We opened-up our SVN, gave anyone interested access, centralized core development and addons development (modules, themes and languages) in the same repository and got an amazing amounts of commits! Developers were committing frenetically and it made the project move forward fast! This resulted in nearly 20 000 commits and 35 releases in a little more then 2 years. And a LOT of features!
Some questions that might crop up
But what about the “community” aspect ?
Again, great question. From the start, we wanted to build a Community Management System, not just a Content Management System. It started with a community of developers. We were all committed to create an environment where no 1 person was holding the project back and any 1 person can make a difference and move it forward. But then again, we failed to properly communicate this. Still today, when you look for ImpressCMS on Google, it tells you that it is a “Community developed Content Management System”. The words are not that far, but are a little bit different then what they should have been. And we will fix that very soon .
Which brings me to the very topic I want to discuss here: the ImpressCMS Vision.
But why a vision you may ask ?
Because we need a clear goal. Because we need to clearly communicate to our community what they can expect from this project. Because every new user who tries ImpressCMS needs to know what our product will do and what it will not do.
Isn’t this a Roadmap?
No, it’s a vision. Why ? Because we don’t believe in roadmaps. Roadmaps are lists of features that need to be implemented for a specific date. This holds 2 problems: 1) a list of features, and 2) dates. Features needs change through time. How can we know today, what feature we will need in a year ? The web evolves so quickly, new technologies, new ways of doing thing, new tools get created every day. So, actually, tomorrow, we will have more information about what we really want to add in our product. Then why corner ourself with a list of features and dates which would become irrelevant in 2 weeks ?
Another important element explaining why Roadmaps are problematic is that people need passion to create greatness. Developers need passion to create genius code, designers need passion to create outstanding designs, etc. If we write in stone the specific things we want to do, then we need to find people passionate enough about each individual item to make it happen. Why not do the opposite ? Ask what people want to create today, and let them do it!
But then again, we don’t want to create “free for all”! This is why we need a vision. We need general guidelines, general concepts to guide people and guide the orientation of the project. Like a compass.