February 23, 2015
Scaling Applications for Global Communities
Below is a transcript of the talk I gave recently in Oman at their Free and Open Source Software Conference (2015). If you want to watch the talk instead you can do so on YouTube starting at the 1:18:44 mark (Here is a direct link to my talk on scaling applications for global communities). Or if you prefer to download and read later, here’s a PDF version.
1. The Personal (about me)
I know you probably aren’t too terribly interested in hearing my entire life story so I’ll keep this short and sweet. As you may have seen, or read in your pamphlet, I am deeply involved in open source and several different projects. I spend an incredible amount of my time both creating code (I love to write code) and also telling others about open source code. I truly love speaking about open source and sharing the power of those communities with others.
Let me give you just a little bit more information about what I work on. I am extremely proud to share that I am the founder of an open source community for marketing automation, called Mautic. But I contribute to a number of other projects also. And one of those roles, in fact, the very first open source project I ever had the privilege of working in was Joomla, an open source content management system. I started my journey in Joomla just as a user and a developer (remember, I love to write code). But over time I became more involved with the community until today. Now I’m the community development manager for the project and am a frequent speaker, project evangelist for Joomla.
2. The Project (about Joomla)
This is without a doubt an incredible community. Joomla has been around since 2005. Fittingly enough Joomla and I share a birthday, August 17. Many of you probably know that Joomla was a fork from a previous open source project called Mambo. Since 2005 Joomla has continued to grow and expand and is now recognized as the second largest, and most downloaded CMS in the world. That’s pretty big news. It gets even more exciting. Joomla not only holds the second largest CMS market share but is the largest not for profit, community-driven CMS project. No other CMS platform has this type of honor.
So that’s a pretty nice introduction to Joomla, but maybe a few more specific examples will help to put the true size of the Joomla project into perspective. And you’ll see later how this all ties in together.
- Joomla is multi-lingual
- Joomla is accessible
- Joomla is convenient
Great ideas? Well Joomla is much more than just a few impressive statistics. The Joomla community focuses on an aspect much more important than just the lines of code. Something deeper. Joomla focuses on people. The individuals who make up the Joomla community. These unique and special people all play a vital role in the success of the project. Here are some numbers related to the growth of the Joomla community.
- Joomla has been downloaded over 60 million times
- Joomla has more than 2,000 forum posts every day
- Joomla has more language translations than any other CMS
Again these are some fine examples of the size and scale of the Joomla community. This also demonstrates the growth rate for the community. I mentioned that Joomla focuses on people. I want to return to that in a second. But before I do that I want to touch briefly on just a couple more areas related to the Joomla project.
These two areas are often the most difficult to bring up when sharing Joomla with others. It’s not always pretty. And it’s not always easy. But the truth is Joomla is just like any other community and any other project. It has struggles, it has problems, and it ultimately has successes. Let’s take a minute and look more closely at a few of the struggles which face the Joomla community. Perhaps you can relate to some of these.
Joomla has grown quickly and has struggled to maintain order. Obviously anytime you see the type of amazing growth that the Joomla community has seen you will have difficulty maintaining order and avoiding chaos. It’s almost inevitable you will find yourself struggling with keeping that easy-to-understand, easy-to-get-involved nature you often find in smaller communities. When projects scale to huge sizes the simple act of getting involved as a new volunteer can be an incredibly difficult task (and sometimes an impossible one). This struggle for order is even more of a potential failure when the project is completely and totally community driven. Without any single entity supporting the community, helping to make the tough decisions, and ultimately ensuring the project’s forward progress it can become difficult to avoid confusion and chaos. I’m not saying it’s impossible, Joomla has worked very hard to show that this is a possibility. What I am saying is that it can be difficult and it’s certainly a struggle.
Joomla has struggled with adapting to change. Just as you will find in many large and established companies (Think Microsoft). It can be a very difficult struggle to stay relevant and ensure your project doesn’t begin to just tread water. The minute you begin treading water is the minute you begin sinking. A project must maintain its vision for the future. A community must be driven to continue improving, innovating, adapting to change around it. When a community (or business) does not allow for change, it will ultimately die. If we consider Microsoft as an example then we can all relate to this sense of stagnation. What was once a booming technology company on the cutting edge of everything is now a behemoth trudging, plodding along through the daily chores of bug fixes and patch Tuesdays. Gone are the glory days of new release after new release. They spend millions (maybe even billions) of dollars in their research and development departments. They understand the power of innovation and the need to return to those monumental discoveries. Joomla must also be able to pivot, to make changes, to improve and adapt.
Those are a couple of the struggles the Joomla project faces. They are difficult to share but understanding and knowing your struggles is the first step in overcoming them. So I talk about them openly. I share them with you and I hope to share how we overcame them. It’s an ongoing, continual state of learning.
3. The People (about the community)
I mentioned the Joomla community and the focus that Joomla has on the individual volunteers, contributors, and people which make up the Joomla community. Let’s look now in a bit more depth at several facets of these individuals. This is the good stuff. If you only take one thing away from my talk today. Learn this. People matter. More than code, more than working groups, more than teams, more than documentation, more than anything – the people who are giving their time, who are giving their lives to the project: these people matter. That’s one of the most important things I’d like to share with you today. Relationships are important.
Let me tell you a little story. A Joomla story. This is the story of a person who is relatively quiet and shy, would never step outside their comfort zone and would never think about standing in front of a group of people to talk. In the beginning it started with a few small bug fixes. A pull request for improving a module. Nothing fantastic and certainly nothing ground breaking. In fact I’d dare to call them worthless fixes. But they weren’t worthless. Because they served as the beginning for something greater. These seemingly minor one or two line comment spelling corrections were just enough for this individual to stay committed to the project and continue keeping involved in the community. As time passed the encouragement from others in the community helped this person become more involved. Soon, at the bidding of his new friends within the Joomla community this individual applied for a leadership role. He was welcomed with open arms and continued his involvement soon he was spending a significant amount of his time each day devoted to the success of Joomla. He became more and more involved and was passionately committed to the community. All of this came from a few almost meaningless lines of code. Why? Because of the encouragement and support of others in the community. As you have probably guessed this is my Joomla story. This is how I came to my position in Joomla. If you hear nothing else from my story I hope you will hear this: Encouragement, support, and the relationships formed with others in the community are of utmost importance.
If we are to explore the complexities of scaling an application for a global user community then this should be our one guiding principle: People matter.
There are of course many aspects which can prove to be difficult when growing an application to global size. We will discuss a few of those and look at how Joomla has handled each. I refer to Joomla as our case study because as I have demonstrated above Joomla is a worthy and fitting case study for us to examine.
Let’s look at three different problems which must be overcome if you want to scale your community globally. First, languages can prove to be challenging. As you are aware even from my speaking here today there are times when languages can prove a difficult obstacle to overcome. As your community or application grows beyond the boundaries of your country or your specific language it will inevitably face this problem. Each new language, each new country where your application begins to be used introduces a new set for potential problems. Let me explain. When I say languages are a difficulty I am not referring merely to the words. Of course the words present the most obvious challenge, but in the world we live in today we are blessed to be able to translate our words.
Notice, I said translate our words because translating our words is not the same as translating their meaning. This is where the true problem lies. There are so many other aspects of language which must be considered. Things such as tone of voice, implied meaning, cultural differences, are just a few ways in which language barriers can prevent successful project growth. In order for your project to be a success you must consider all of these aspects. Take Joomla for example. Joomla has been incredibly successful in this regard. If you’re not aware let me share a statistic or two with you. The Joomla CMS currently has 58 different translations that’s a staggering number of languages. Each of those translations has a working group of individuals dedicated to keeping that language up-to-date with each new release of the software. But as I mentioned it’s more than just language strings or words. Joomla works very hard to ensure that implied meanings and cultural differences are also considered when working groups and individuals collaborate. Great care is taken to be considerate in all communications. This sounds trivial but is instrumental to the overall success of the project. Joomla has created a wonderful culture code document which outlines specifics for how the Joomla culture should be created and maintained. Languages are more than words.
I offer a second example from a much younger and newer community, Mautic. I have begun implementing exactly what I stand before you and share. Languages are an important pillar in the building of a global community. Within only 3 weeks of launching the beta for the Mautic open source product we have been able to see 5 complete language translations and a dozen more started. It’s exciting to witness and it shows to everyone that the Mautic community values each language and each country.
Here is your first lesson: If you want your application to be globally accepted, to scale to the size of a world-wide audience then you must consider the value of languages, both in word and in meaning.
Next we turn our attention to a second important problem that must be overcome when scaling globally. Timezones. It is often easy to forget in a daily routine of application development and product releases that there is an entire world of varying timezones. 2PM in one location is 2AM in another. I can tell you first hand speaking from my own experience in the United States it can sometimes be forgotten that not everyone is on the same relative time as I am. If you are interested in being able to grow your community, or your project, or your organization to a global size then you must remember and account for varying timezones. Let’s take another look at Joomla and how this community handles the timezone problem.
The Joomla leadership is comprised of three different teams working in harmony across the many aspects of the project. These teams are each consisting of individuals from around the world. Each team has dozens of different timezones. Joomla has used several different tactics but one in particular has proven to be useful and serve the community well. Joomla alternates the the schedule of leadership meetings. What does this look like? Joomla changes the meeting time when a leadership gathering is held. By doing so Joomla ensures that there is an equal opportunity for each person to meet in a timezone that is most convenient for them. (and everyone shares the same inconvenience) The timezone is an often overlooked important aspect of being able to scale an organization.
In the beginning this can be a difficult task. When your community is small this will be a challenge and will require dedication and attention. I share an example from Mautic. This community as I told you before is much younger and much smaller. As a result the initial community members must be more flexible and more dedicated with their time. When beginning to grow your community be prepared to spend significant amounts of time at all times of day and night. You may not sleep much! But if you are committed to seeing your community be successful you must be prepared to make the sacrifice.
The second lesson to learn: In order to increase the global availability of your community and project you should pay attention to the timezones of your contributors and volunteers. Make your community convenient.
We arrive now at our final problem you should seek to overcome as you grow a global product. I say final, but in reality there are many more problems you will face. The task of building and scaling an application is a constant and ongoing challenge. But we look in particular at three problems and this final one is related to accessibility. Just as you want your meetings (timezones) and your communication (languages) to be convenient you want also for your community to be accessible.
I’m quite pleased to share the success Joomla has seen related to being an accessible project. Don’t mistake me. One of the reasons why Joomla has been successful in regards to accessibility lies in the fact that it continues to focus on and constantly improve accessibility. This is not a one-time thing to be solved and then ignored. This is a key point. Joomla continues to focus on this aspect of its community and the software. Through the use of specialized formats, screen reader improvements, and special administrator templates designed specifically to be accessible Joomla shows its incredible attention to accessibility.
Here is the third lesson: To scale a global community requires focusing on every type of user and being a community whose people and whose code is accessible to everyone.
So we have covered three lessons to help scale an application for a global community. Dealing with languages, timezones, and accessibility. As your project and community grows you must focus on each of these areas if you want to overcome the complexities of a global community.
Let me quickly give you some practical steps for implementation. First, you must plan ahead. Don’t think only about what your code or your community looks like today. Look ahead at what it will become in the future. Plan for what will come in future days, weeks, months, or even years. Be prepared and be constantly ready to make changes when needed. Next, monitor everything. You will need to be vigilant as you watch your community grow. You must be monitoring your code to ensure it remains stable and can handle an increased load of traffic. You must be monitoring your community to ensure it continues to grow and that it is accessible, and convenient for new contributors to take part. Lastly you should take what you have planned, mix with what you have seen through your monitoring, and apply it to improving your community. You cannot simply observe and make plans without implementing them. You must be looking to constantly improve. Your code must adapt and grow as new opportunities arise. Your community must adapt and grow as you scale to larger size.
Let me close with this. There is no formula that guarantees you will be successful in scaling an application for a global community. It simply cannot be put into a specific step-by-step exact plan. Rather what I offer here are some important lessons that when put into practice will offer a strong path to lead towards a successful global project. I want to thank you again for this opportunity to share with you what Joomla has proven to be a successful strategy for scaling and what Mautic is also following in like manner. And I wish you each success as you seek to grow your communities and projects. If you have other questions or ideas feel free to reach out to me. I would be happy to answer any questions that I can and look forward to hearing what you are passionate about!