Let's take a look at the concept of pluralistic ignorance.
In social psychology, pluralistic ignorance is a situation in which a majority of group members privately reject a norm, but incorrectly assume that most others accept it, and therefore go along with it.
In general society, the situation plays out in a number of ways. For instance, as a resident of New York City, I personally see this phenomenon play out on the streets. I'll see an individual that seems to be in distress, but everyone is kind of ignoring the situation. We ignore it because we all subtly look to one another to get cues about whether this person is in enough distress to be worth intervening. Fundamentally, this kind of behavior makes no sense and is worth addressing.
I think this kind of psychology also plays out in software development, where a bad habit or pattern is mutually accepted because nobody else seems to be making a fuss about it. Even if nine out of ten people are struggling to cope with the direction things are going, they all assume it must be the right choice because everybody seems basically aligned in their silence.
This trap isn't unique to smaller dev teams, it also affects the broader technical community. Sometimes communities go down paths of pain because everybody is glancing at each other for cues, but everybody else is glancing back, and ultimately we let the distress go unaddressed.
From the outside, front end development in 2017 looks pathologically overcomplicated. Is this a fair perception? If so, why is it happening?
— Pinboard (@Pinboard) May 21, 2017
I believe that the best chance teams and communities have at avoiding this phenomenon is through compassionate leadership. Many of the most successful software projects have adopted the "Benevolent dictator for life" model.
Benevolent Dictator For Life (BDFL) is a title given to a small number of open-source software development leaders, typically project founders who retain the final say in disputes or arguments within the community.
The role of a good leader is to do a lot of listening, but to also have bold opinions they refine over time. They must be willing to adapt and learn from the community, but not fall into the destructive habits of relying too much on consensus in order to proceed.
Beyond this sort of leadership, which may or may not exist or be practical in all circumstances, it is up to the collective conversation to be cognizant of this idea. Ask yourself and ask others whether the path you are on is the right one and whether your day-to-day is reflective of the situation you want to be in. If you are finding the tooling to be overcomplicated, maybe it's not just you. If you feel like every week deployment gets more difficult, maybe it's not just you. If you feel like the most productive conversations are being overshadowed by bikeshedding, maybe it's not just you.
It is normal to rely on cues to validate our ideas, but be sure to catch yourself if you find you or your team falling into the trap of pluralistic ignorance.
Top comments (2)
Ahhh - the scary possibility that we dev-cowboys are really followers :) Do I object because I don't understand, because I disagree, or am I just stupid? Unfortunately there is a very strong culture of conformance based dev stack.
As a .Net developer, I have faced ridicule because I think there are weaknesses in the "standard, best practice" approach to web development with the MS technologies. Do I care, a little yes, mostly no. Sometimes you can't even argue with people who are so convinced that a contrary opinion is anathema.
Speak up!! True!! I guess sometimes we are afraid of being the odd one out or the outcast...
But making that initial move is what scares people...you know doing something that could be uncomfortable.