On communities: Empower humans to be amazing

Tue 29 November 2016

When it comes to communities, a system is the set of processes you put in place
to allow for humans to be amazing. It's the means to empower these humans to
contribute to your community, learn from it and grow with it.

These systems are essential for your community to exist. Your community is a
system in itself and it functions through the processes that have been created
along the way. These processes exist even if you're not aware they do. The
processes that help your community function are not some kind of magic tunnel
through which things happen automatically. These are processes created and
tailored for your community. There are many things that can be shared across
different communities but there are others that are simply specific to yours.

The way you merge code, the means through which you communicate in your
community, the standards you put in place. These are all processes that allow
your community to cope with growth and chaos. These processes are all meant to
be created, evolve and sometimes die. If you want your community to survive
change, you must change your community therefore you must change your processes.

There's no secret recipe for managing these processes, though. One thing to
always keep in mind is that the humans that interact with these processes are
more important than the processes themselves. If the way you review code is too
complex for most of the humans that are doing reviews, change it. If the way you
define new processes doesn't allow other humans to actively participate, change
it. If the way you allow for contributions to be submitted ends up frustrating
your contributors, change it. Your community is made by humans and the sooner
you acknowledge that, the sooner you'll adapt your processes to better empower
these humans. Remember that humans react to emotions (you can read more
here) but they
act based on their cultures.

Culture has been defined in many ways. Some definitions involve long
explanations about society, evolution and human interaction. When it comes to
communities a, perhaps oversimplified, way to define culture is that it's the
way humans in the community actually do things. I heard this definition at
Zingtrain in June 2016 and it stuck with me. Not
only it makes sense on paper but it's also true in reality.

We spend a huge deal of time defining new processes in OpenStack that would help
the community evolve and adapt itself and we see over and over how many of these
processes change as soon as other humans start interacting with them. Sometimes
this interaction ends up in processes being "officially" changed and many times
they are left as they are so people can use them the way it works best.

In other words, the processes in your community will be bent by the cultures in
your community more often than not and this is fine. You want this to happen.
You want your community to adapt itself to the cultures that it embraces. You
want your community to embrace more cultures and to allow for new cultures to be
created within the community itself. Different cultures have different ways to
solve problems and there's lots your community can learn from this.

Your community must be flexible for it to be able to adapt itself and tolerate
the bending of its processes caused by the interaction with other cultures. If
the processes in your community can't be bent a bit, then some cultures won't be
able to interact with them and this will, of course, affect your community.

For humans from different cultures (even the same culture, really) to be able to
interact with each other, they must be tolerant to variance. Putting the
tolerance to variance at the bases of your community will set the principle that
humans in your community will interact based on. There must be balance, though.
Being either too tolerant or too intolerant won't help your community. You can't
make everyone happy but you definitely must make enough humans happy.

Eventually it will come down to how good your community is at allowing humans to
interact with each other and I believe a good summary of this post could be:

You must tolerate variance in your community, to empower humans, hopefully
from any culture, to be amazing.