One of the most enjoyable aspects of my career as a web developer has been participating in various communities. I think you could safely say I have a foot in several, although the one I identify with the most is the PHP Community. It’s the one I know the best, and the one that has blessed me with so much friendship and opportunity.
Communities centered around a particular technology are fabulous ways to learn more about it, improve your skills, and help others do the same. Communities are great at fostering excitement and joy of learning, and I think for many web developers that’s really what keeps us interested in the field.
At the same time, there’s an aspect of communities — tribalism — that introduces several problems.
The first time I was really aware of tribalism was when I got really into video game consoles as a kid. I was enamored with the advent of 16-bit gaming hardware in America, and still remember very well how heated and vitrolic the debates would be between advocates of Sega, Nintendo, and NEC — even before any of those machines launched in the US. Each of the systems had different hardware attributes and different games (cross-platform releases were far less common then), so you really only had access to them if you owned the system. Kids were still the target audience at the time, and parents weren’t going to buy you TWO game systems — that’s ridiculous! So you lobbied hard for what you thought was The True Console. This was, as a preteen, Serious Business.
There was collective experience that went along with owning the same console. You could go to school and talk about games with your friends, or play them together at each other’s houses. If you weren’t part of that group, the experiences weren’t available to you. You were an outsider. God forbid you owned a Sega Master System in 1987. That kid couldn’t sit around a desk with his friends, huddled over the newest issue of Nintendo Power. He’d never play Castlevania. He’d try to tell people the 3D glasses were REAL 3D on the SMS, but nobody cared.
Owning a console meant, for most kids, being an advocate for that console. You had to justify why you (or more likely your parents) made The Right Choice. If someone else made a different choice, then clearly they were K-RAZY because you just KNEW why yours was the best. Their choice called into question your choice, and that shit is just not acceptable.
Perhaps of note, I now own about 30 different game consoles and vintage computers. They’re all fun and the arguments were stupid.
People who study anthropology and such (at least on the sites I found via Google) say that tribalism shows up everywhere throughout the history of man, so it’s likely a genetic human trait and not just a cultural thing. Observationally, I’d say they’re right.
There’s a bunch of anthropology and crap about tribalism as part of human evolution, the idea generally being that tribalism keeps people safe because they’re more likely to stick together and not get eaten by lions. Makes sense.
Tribalism leads us to make choices for less than rational reasons, though. Given a particular set of circumstances, our tendency to be loyal to a group can lead us to make decisions that either
- harm the group
- harm ourselves, or
- miss out on opportunities and advantages offered by alternate approaches.
Douglas Cooke Dobbins writes about this in a way that sounds much smarter than me:
It is a mark of wisdom, due to the above considerations, to be suspicious of ourselves, especially our predisposition to root for the home tribe. Though there is arguably an objective human dignity that attaches to each person, it is also the case (or there is at least good reason to think) that we are animals with a faulty nature — a nature that is not always ordered to truth.
This is really the key to combating the negatives of tribalism: balancing it against the knowledge that each of us are fallible. There is no shame in this, as it’s a defining trait of human beings, and makes it possible for us to always be learning and growing. If we’ve already come up with the Best Way, why bother trying to do better? That’s at least half the fun of being a developer: learning new stuff and better ways.
Simon Critchley writes in the New York Times:
The pursuit of scientific knowledge is as personal an act as lifting a paintbrush or writing a poem, and they are both profoundly human. If the human condition is defined by limitedness, then this is a glorious fact because it is a moral limitedness rooted in a faith in the power of the imagination, our sense of responsibility and our acceptance of our fallibility. We always have to acknowledge that we might be mistaken. When we forget that, then we forget ourselves and the worst can happen.
In that case “the worst” is the Holocaust, but thankfully we’re just dealing with web developers being dicks to each other. DHH is not Hitler. Really.
The important bit here is this: “We always have to acknowledge that we might be mistaken.” That’s an inclusive we, meaning me as an individual, you as an individual, and what we come up with collectively. We make mistakes, and we have limitations. Our brains can only handle so much stuff before we cut corners and simplify to reduce complexity. Thankfully we are aware of this, and can try to compensate for it.
It’s possible for the person who wrote our current favorite framework to be wrong about some things. Maybe many things. Maybe even the whole framework is riddled with flaws we don’t notice in our experience. That’s okay.
And it is also okay just to like something different. As my friend Paddy told me, some people like hot chocolate, and some people like milkshakes. They’re both good. Sometimes certain things are just more appealing to one person than another. With tools, it’s all about how productive you are, so if something makes you more productive because it jives with you, that’s a totally valid reason to choose it — for you.
In general, I try to do the following things to avoid the negatives of tribalism, both on an individual and community level:
- Base your tech choices on multiple sources and personal experience
- Know that what works for you may not work as well for others
- Anticipate that others may have useful techniques you don't yet know or understand fully
- Study different technologies — even “competing” ones.
- Invite advocates of other technologies into your community. Understand their motivations. Practice empathy with them.
- When sharing your own tools of choice, explain why you use them. Demonstrate how they help you solve your problems. Address where they might not work as well. Help others empathize with you.
- If members of your community are behaving in a tribalistic way, it must be addressed. Doing this effectively without escalating the aggression can be very challenging, but it's extremely important.
- Be deeply suspicious of tech advocacy based on moral or aesthetic superiority.
Doing those things helps me keep the awesome stuff that communities give me, while avoiding tribalism. That’s what we industry folks call a “win-win.”
Note: Updated Thursday; February 6, 2014 1:54 PM EST to add point about addressing tribalistic behavior in your community, based on a suggestion by Anne Gibson