Sometimes people get caught in an echo chamber, and software developers are no different.
What is an Echo Chamber
Here is a good definition of an echo chamber:
An echo chamber is “an environment where a person only encounters information or opinions that reflect and reinforce their own.”
In the world of software development, this usually occurs when you are using/not using a particular technique or tool or process. Let’s suppose you are on a team that uses a particular technology to build the user interface. Angular, ASP.NET MVC, Vue, React, etc. Which of these being used isn’t important. But you are using one of them and you are spending all your time and energy using this technology. One day, someone offers an opinion that you may be better off if you switched to a different technology. This different opinion is something you hadn’t considered so you decide to go to the most reliable source of unbiased, objective information you have; the Internet.
There is a well documented experience about the Internet that I have seen first hand.
No matter what opinion or belief you have, you can find a supporting argument on the Internet.
If you want to find other people that believe the same things you do, you will have no problem finding them on the Internet. If you want ‘proof’ to justify or reinforce your own beliefs it will be easy enough to find. Just type in your ideas into a search engine and you will find article after article supporting your belief system.
While software developers often get into echo chambers, this is not something that is unique to this industry. It occurs with EVERY aspect of life. All you see are opinions to back up your own and you don’t see information that may be different from what you believe.
So you are faced with a differing opinion about what front-end UI technology to use. You go to the Internet and after an hour of searching you can relax because you found dozens of articles that back up your beliefs. The other opinion is just not true and you have all the proof on your side if anyone challenges your choices or decisions.
Over my career I have seen many such echo chambers. In some cases I didn’t recognize I was in one until much later:
- I was trained using Microsoft tools so anything non-Microsoft seemed undesirable or inappropriate.
- I was a Windows user, so I didn’t see Mac OS or Linux as operating systems that would be usable for day-to-day development work.
- I used a set of modified waterfall processes to develop software and didn’t know that Agile methods were available.
- I didn’t perform a lot of unit tests because I “knew” we didn’t have the time or resources to include them.
- I followed the ‘GitFlow’ process for source control and didn’t think there was any other way to do it.
Why Echo Chambers are Bad
Being in an echo chamber doesn’t sound so bad. You feel confident in your world and see that a lot of other people share the same point of view. What is wrong with that?
I watched a video recently that described two drawbacks about being in an echo chamber:
- “Potentially restricting the awareness of the diversity of different options that are out there”
- “Possibly preventing the exploration of various methods that might be more appropriate”
Being in an echo chamber can sometimes mean that you have not lost your ignorance. What I mean by that is you do not realize you are ignorant of other ideas. Phillip Armour wrote a great article describing that he called the “The Five Orders of Ignorance”. It is the second one that holds true more that any of the others:
2nd Order Ignorance - Lack of Awareness i.e. I don’t know that I don’t know something.
The lack of awareness of other opinions is usually one of your own doing. And it can be difficult to recognize. It can prevent you from exploring other ideas which may be more appropriate for your context. You may find that some of the struggles you face are not as much of an issue with another technology. Or you may find that a different way of looking at a problem can make you discover new and more efficient ways of getting your work done.
And it is unfortunate that the more you stay in an echo chamber the more difficult it is to get out. The reinforcement of your own opinions can be so overwhelming that any challenge to those beliefs can be felt like a personal attack. Imagine feeling personally offended because someone suggests that using a different technique for solving a problem might be better. Not that it is better, but simply that it might be. I have been in that position far to many times than I care to admit.
Leaving the Echo Chamber
I have been caught in many echo chambers over the years and there is always the possibility I will again. But I have learned some valuable lessons along the way that make it much less likely.
First, I am much more aware of the concept and I am able to recognize I am in an echo chamber. As soon as I start feeling too confident about a topic I know I am probably unaware of a lot more information/knowledge. I try to remain as open as I can to the prospect that I am wrong. In fact, sometimes I say it out loud to myself. “Am I wrong here?”
Second, I find people who challenge me. I find people who push me into feeling uncomfortable about my software development world. It helps me grow and to learn more than I would on my own.
And Third, I try to be kind to others. Being kind helps me be a better listener. I try to understand the context that others are coming from and realize that their experiences are not going to be exactly like mine. I’ll admit that this is something I have struggled with a lot in my career, as I’m sure a lot of my co-workers would agree. But I have come a long way and don’t want to revert back to the way I behaved. I realize now that being kind to my co-workers is the most important thing I can do.
It isn’t easy. Simply recognizing that you are in an echo chamber can be tough to do on your own. It often requires an outsider to prompt you into exploring further into areas you amy be uncomfortable doing. But I owe it to my co-workers and clients to always be striving to learn new ideas and find better ways of developing software.
I wanted to point out one last important part of being in an echo chamber. Listening to others, formulating new ideas, being aware of other opinions or options doesn’t mean you loose your beliefs. There may be good reasons that you believe the technique or tool or process is appropriate for your context. Leaving an echo chamber is not about giving up on what you hold to be true. Even though I am aware of other operating systems, I still am a die-hard Windows user. But I recognize that for others, using a Mac or Linux operating system is a viable alternative. And while I am a strong believer in writing unit tests, I also realize that it doesn’t apply universally to every situation. So keep an open mind when exploring new ideas. They aren’t as scary as they may seem, and you don’t have to give up on your opinions/decisions.
You just have be kind and listen.