How do we make decisions in communities? The open source case
In 2018, Python Community went through a turmoil that forced its members to rethink their route. Python, for those who aren’t from the programming world (like me), is one of the popular languages used today for code writing.
A Dutchman, named Guido van Rossum, created Python 30 years ago. He gave the language the name after his beloved TV show and comedy group, Monty Python. Since then this language has been built in an open source method. This means it is being conducted as a social community that makes decisions together about the development process, while the founder says the last word. He is Python’s Benevolent Dictator for Life (BDFL). It’s a title given in the open source world to a person who has the final decision-making power regarding changes and additions to the programming but does it for the benefit of all.
In 2018, van Rossum announced that he would be retiring from this position, and that’s how the Python organization was left without a guiding hand. The community members, incorporated under the nonprofit, Python Software Foundation, had to make a decision about the way they would manage their decision-making process in the future.
Preserve the community values
Deciding about the process wasn’t easy. After all, there is no substitute for a founder who has been leading the community for so many years.
Does the community really require another BDFL? Or should the community establish a council instead?
What are the advantages and disadvantages of each model? And what is important to the community members in the model they will choose?
Following long months of discussions, the community’s core team had a milestone. They decided that the model must serve some values so that Python would avoid stagnation. Stability and reliability, inclusion of users from diverse backgrounds, and preserving the community’s vitality were of prime importance. Additionally, the community defined the key members’ roles: The core team, the experts, and the moderators. The community also decided how regular decisions would be made and what would be the nomination process as well as other community mechanisms, such as voting. In April 2019, the Python community steering committee started its activity. And who’s one of its five members? Van Rossum.
The Python community is just one example from the open source world for this community model, and even its sub-communities created similar models, such as Django.
Moreover, the Python community is an example of changes that affect communities DNA from top to bottom, and vice versa.
Can a community thrive without a leader?
Three years ago the founding father of Linux announced that he was taking a sabbatical from his role as Benevolent Dictator for Life. This provoked a broader question: How can open source projects continue their process without their founding members who define their tone? How is their center of gravity moving from them to the community, regardless of whether it’s for a short period or permanently?
That’s why the Linux community created a guide for building a community. Their fundamentals are open management, coordination between community members, and support. They created the guide after they understood that in most cases, one person doesn’t have the time or the required resources for leading an open source project.
Another challenge for open source communities, is that few of those who rely on such platforms, actually contribute to them: Coding, sharing fixes and changes, reporting bugs, crowd-founding, sharing best practices, and assisting others. The conclusion: the bigger and more significant the user community will be, with community members that help each other, the more stable and longer the open source project will be. So here we can see mutuality: The community members’ perseverance helps preserve the community as a whole. Thus, for instance, the Israeli community of the open source program QGIS joined efforts a few times now for funding specific features in the Hebrew language.
Another example is GitHub, a platform of hosting and version control, which provides its services for free to open source initiatives. GitHub is the central tool today for managing code in a joint way. Through the platform, every user can report bugs in the code, suggest changes, and respond to others.
It’s a useful platform that gives value to its user community, and at the same time they nurture the community. Moreover, many developments and tools that receive notable attention in the business market have emerged from GitHub initially. Microsoft acquired it in 2018, while previous to that Microsoft was known for their disapproving attitude for open source platforms. And guess who joined Microsoft in November 2020? Right, our friend van Rossum.
Community engagement – not only in open source
Open management community models exist not only in the technology sphere.
Take bitcoin for example. There’s not one person who controls and manages the platform that creates this currency. The Bitcoin community is composed of various position-holders and even local foundations that promote bitcoin. The blockchain model was one of the pioneers in open financial management, and we can see more and more shapes of this management in the economic world. In Israel, Ofek Bank is founded as a cooperative that promotes its members’ financial interests.
FC Barcelona Fan Club is among the few football clubs where the members are part of their presidential election process. Once every five years there are well communicated elections for the president. And the club members can even decide whether to dismiss the president.
Enspiral is a New Zealand collective which works together to execute business initiatives of its community members. The collective members own a foundation, through which they manage a common budget and encourage collaborations.
The commonality in all of these examples is the continuous involvement of the community members in the decision-making process. This process is more difficult when the deciders are not one person or two, but the entire community. However, it has many advantages. When the community members can express their opinion, and the atmosphere in the community is such of collaboration, the community members naturally feel part of something bigger. When they feel like that, they create new ideas, solve problems together, and for each other. They continue to be an active part of the community and nourish it. Even though they are different and sometimes don’t hold the same opinions, there is usually a mechanism made of community members, which balances the various interests and assures its constant management.
There is no one right model for managing a community or managing its decision making. However, it’s interesting to learn from the Python community’s process as well as how similar communities have gone through it. It’s a fascinating process that is still happening and it’s curious to know how the Python community will pave its way.
What’s the best way to make decisions in your community? How do you manage crisis situations with community members in the way that the Python community did?
Every community has its unique DNA.
What’s true for one community, isn’t true for another.
You are welcome to contact me and I will help you create a community management strategy that is right for you, and consult with you on how best to manage the dilemmas that arise in your community.