Scaling OpenERP's community to the world
Dear OpenERP community,
Things have been moving really fast for OpenERP and Tiny during those last 2 years. A lot of indicators (Google Insight, Launchpad inscription rates, partner list…) show OpenERP matured from a confidential francophone ERP to the global leader of open source ERP’s. As you may have noticed this hasn’t been without a clash. Especially, the main editor Tiny has been recently totally overwhelmed by the huge demand and community activity, unable to interact with the community anymore. This bottleneck around Tiny leaded to frustrations in the forums. Hard for Tiny however to react as their best elements where more and more busy with their own customers and growing company. This is time for action, and I believe this is finally happening.
It has been an initiative of both Tiny and me to propose I help them put the community in a better shape recently. I Finally managed to free myself a bit from our customer projects and will try to lead that interim work one day a week for one or two months, until Tiny can put somebody of their own with more availability. The take is that as a community member, I might better both set up the new processes imagined by Tiny and also orient the community properly with those processes on each particular case where it makes sense. The goal is to improve the 5.0.x releases as much as we can and get the best of the community power for the coming 5.2 which freeze will be delayed to February or so in order to wait those organized community contributions for that unique opportunity to break compatibility when it makes sense (less as possible however and in a sustainable way) before yet an other full year of stability.
So, the ambition is to remove the bottleneck around Tiny by decentralizing some processes to the global community instead. With an exponentially growing community it would just have been too bad not being able to benefit from all that growing tireless grey matter working 24 hours a day, 7 days a week, 365 days a year. OpenERP is not the first open source software to adopt a distributed pattern. Linux is one of the first who did it successfully and even created the GIT tool (the tool bzr copied) for that. Other more recent examples are Debian or Rails. For those who have no clue what is the difference between a centralized community and a distributed one, I suggest they get the global picture watching that video of the Rails code elaboration here:
from 0’ to 5’09 where DHH centralizes all the dev, except the code availability, you won’t notice any major difference between this and a proprietary software done in the dark of a classical company. However, after they switch from SVN to GIT and adopt distributed processes at 5’09, everybody can understand why no proprietary software can beat distributed open source.
After the early enthusiasm, it’s now time to remind you that for now we have limited resources to set up those processes, but let’s at least start. Better processes will also be debated in a distributed manner and will hopefully lead to increased efficiency in the decentralization process itself (yes call it auto-catalytic if you want to sound pedantic).
OpenERP already has a good enough distributed platform with Launchpad and bzr, this is now time to use it fully at least. So what is missing? What is missing is mainly the feature planing and refactoring among the developers community. Given that OpenERP is an ERP and new and generic one, expertise is rather sparse in the community. A lot of people are discovering the product and making remarks, especially on how it’s different from specialized proprietary tool X they already used. But given that there is no free lunch and Tiny would not give away hundreds of millions of euros of R&D per year (yes that’s what SAP, Microsoft, Oracle or Sage spend yearly) to improve the ERP, those remarks only make sense when they cost little to implement or if they are even contributed directly. So to progress, it is essential for Tiny to filter out what the “power users” are saying and contributing from the average noob Christmas letter noise. Finally once features/refactoring are planned, it’s essential to get everybody working together in a coordinated manner.
We worked out that an essential key for the expertise decentralization is to set up effectively expert teams that would act as intermediary hubs between Tiny and the community and thus alleviate Tiny from most interactions, speeding up decisions processes and putting more grey matter in the process.
While it would be tempting to multiply those hubs, let’s recall a few considerations: a) if setting up too many expert teams, we multiply the communication channels but actually divide the expert community between them. So, for now we might prefer to aggregate a few related topics into the same expert team to give it a critical mass rather than split everything right now. b) the goal of alleviating the community interaction weight from the Tiny bottleneck, will only work if there are only a few people in the expert lists, the most qualified members of the community. So please, let’s have a community and product thinking, the goal is not to lobby an expert team to get feature X included. If everybody reason like this, this is not going to work. Feature X will be included: - either if you contribute it yourself cleanly and it makes sense - either if it’s easy to implement and expert agree on inclusion - either if that really makes sense for the product considering the other priorities - either it makes sense and you pay Tiny or a partner to implement it
You can also think about expert team member as representative delegates that will also tell you about where you request fits in the previous list and promote you idea whenever it makes sense. Moderated expert list might not be the best solution on the world, but it will already much better than the current situation and we can then think about ways to improve it.
So far we identified the following expert teams:
This team is in charge of the community organization, including editors and partners. We discuss here on how to be the more productive and increase collaboration. This team setup the tools to support the community effort, discuss the development process and organise the discussion within the community, in particular the monthly community meeting. Being the moderator of most other processes, this team is open only to proven community leaders that can show a good Launchpad Karma and some OpenERP success stories. Not a place you can enter after only 6 months of practice, open source is a meritocracy.
This team is in charge of the bug and new developments management. They can evaluate the bug importance, assign them to domain expert team and plan them for OpenERP announced milestones. You can see those milestones here: http://test.openobject.com/
This team is where the OpenObject framework in general can be discussed, both client and server parts so far. You think a basic widget is missing, you think that library X should be used instead of Y, you think the Object Relational Mapping should be improved doing Z, you know how to implement a warning popup… the place for the debate is here.
This is a place to discuss the end user experience. You think a select box can be used at 50% of the place where a many2one popup is used, you think that right side links can be managed better, you think we can visually better highlight the domain field of some forms, this is the place for discussion.
This team is meant for all OpenERP localization leaders to network efficiently together. Some localizations are mature already while others are just starting and need the help from the formers. In any case, all localization teams face common issues such as Rosetta synch, English terminology error in origin files, translation strategy, financial localization strategy, localization community visibility… With this team of experts, we can share all that common information more efficiently.
As a first step and in order to avoid noise, this team is moderated by the https://launchpad.net/~openerp-community-leaders. You should get in touch with them or current members of the localization expert team to be allowed to flood the mailing list. Even if you are not member of the list mail archives will be shared publicly and you are advised to get in touch with your local localization leaders.
Please notice that a “terminology” team has recently been set up to discuss appropriate English wording. After discussion we think it’s better to get it merged into the localization list for now. Especially, changing original English terms will affect all localization teams so the more directly they know it, the better.
Domain expert teams:
They represent the main functional domains of OpenERP:
- https://launchpad.net/~openerp-expert-accounting - For discussion about financial and fiscal accounting
- https://launchpad.net/~openerp-expert-production - For discussion about inventory control and manufacturing
- https://launchpad.net/~openerp-expert-service - For discussion about project management, analytical accounting and CRM
The team to join to show your involvement in the OpenERP project, no matter you involvement level (eg, yes, this is the place noobs can enter).
So please, identify the teams you might be qualified and interested to join, or alternatively the community members you can eventually get in touch with for orientation or promoting an idea or a request. For general and non qualified debate, the best places continue to be the http://openerp.com/forum/ and IRC channel.
Also, notice that lot’s of expert team members are active users of the IRC channel and those forums, so they are likely to help/orient you there already. Still contact them only once you are sure you hold a qualified request/idea in order to avoid bothering them too much and making them run away from where they are useful. By the way, I’m just highlighting there that I find it very effective to track the numerous forum entries by subscribing its feeds in a smart feed reader such as Google Reader, visiting the forum only when it makes sense which I can evaluate in a snap then.
Public read access (so far) to the expert teams:
the expert teams are all nice and seems to pick up so far which is great. But in any case the whole OpenERP community which is not part of those expert team should be able to know what experts are debating. Currently, Launchpad makes this a bit difficult to track. This is why we created new RSS feeds both for the expert posts and messages.
If you don’t fit into expert teams, you can still track what is gong on there, and you could evtp://www.openerpbrasil.org) website, in the “Lista de difusao” section if you are curious how it looks like (here using Google Ajax Feed API proxy).
In the future, we could also set up things like Google Wave tracking those expert team debates so that the community could comment on live upon each post. Including a vote widget or manually, we could later on collect useful non qualified community inputs upon those expert message and forward them back to Tiny and the other developers/experts.