In my recent blog entry "It's been awhile" I mentioned the need to lower the barriers for people to contribute. The ideas for lowering these barriers have come from feedback of people we work with and evaluation of how things are working. Managing a project like Joomla! that has grown so quickly means we need to balance between organizational structure and anarchy. Anarchy would mean that we open up everything within the project and have no controls in place, at all. The positive side of this approach is that everyone who wants to do something can actually do it. The downside would be that there would be very little predictability.
Most will understand that complete anarchy is not suitable for Joomla!. We have an enormous group of people using Joomla! and our users expect that Joomla! remain stable and function properly on many platforms. To put some structure in place, we utilize working groups. In this blog, I will focus primarily on the development and documentation areas. When designing an organisational structure, a good approach is always to create only those structures that that are absolutely necessary. Adding five layers of control to get code committed will simply not work. The structure we have put in place is pretty simple: we use working groups with (at least) one coordinator who oversees all aspects of the group and members. The side effect of creating such a structure is that, unfortunately, you raise a barrier. Keeping barriers at the right level to balance organizational stability and broad community involvement is our goal.
Not everyone is a skilled coder, but a lot of people can code and are most likely well equipped to create patches or to test the patches of others. About six months ago, I took a good look at the development team situation and concluded that it is really tough to get into the team when you are not a very skilled coder or if you do not have much time to devote to participation. After evaluating the situation, I realized that the structure was not in balance and was, in fact, preventing too many people from contributing to Joomla!.
In October 2007, when I was going through this analyses, we were also in the process of finalizing Joomla! 1.5, a huge challenge. It was then that I decided I wanted to lower that barrier, without losing the control of the quality of the code base. This led to the creation of the Joomla! Bug Squad (JBS). This new team was assembled mid-December and their first major task was stabilizing Joomla! 1.5. We combined the start of this new team with the first Pizza, Bug and Fun (PBF) Event. The main goal was to stabilize the code, so we moved to a strict way of working, implementing a "Test a patch before commit" approach. This was an experiment of me to see if enforcing such a standard would work, without creating another difficult barrier to participation. We have found this approach to be successful and have enjoyed a boost in community involvement and more progress then we had seen in the months.
The good thing about the Bug Squad is that developers and non-developers can work together on improving Joomla! The barrier has been lowered. All it takes is dedication to work on issues and a bit of time to occasionally idle in a Skype channel interacting with others. The implementation of this working method has another very positive side effect; everyone can now apply patches, and those contributions will be noted, processed, and ultimately committed to the codebase. If you want to send in patches, all you have to do is create an artifact on JoomlaCode.org and attach your patch. People who are interested in working within this team are always welcome. Your first step is simply to contact me or Anthony Ferrera.
Our documentation team coordinator (Chris Davenport) wants to lower the barriers for contributers, as well. He also recognized Joomla!'s organisational structure has prevented talented people from contributing in that area. Chris has taken an even more dramatic approach and has moved Joomla! documentation to a wiki (see https://docs.joomla.org). Now, the only barrier in place for participation is registering an account. The reason for this barrier is to prevent spam from harming the wiki. The progress we have made in the documentation area is amazing. Hundreds of people have registered and, as a result, a growing group of people are contributing documentation on a regular basis.
These are good examples that demonstrate how lowering the barriers within our project has helped us to evolve to a more inclusive and stronger community and we strive to further improve in this direction. So, what is the next step? First of all, I want to encourage people to talk to us and provide us with your ideas on how we can make it easier for you to participate, too. You can talk with us during the Joomla! Day and Conference events we attend, you can respond to the blogs with your comments, you can post in the Joomla! forums, or email us. If there are ways you wish to contribute, but an organizational barrier is in your way, we want to know how we can make it easier to accept your work into the project. It's all about our community and how we can work together to make it even better as it is. We are considering a combined documentation/development event where people can work on topics they are interested in, share knowledge, and, of course, have fun. My next blog will describe the ideas we have for this event. If you have ideas or suggestions, please let us know.