5 minute read

Imposter syndrome is one of the most common challenges faced in the field of software engineering, and probably broader technology field. Lots of people have it, and they all wish they didn’t, but I might argue it’s not all that bad.

What is Imposter Syndrome?

First lets take a look at what Wikipedia says about it:

Impostor syndrome (also known as impostor phenomenon, impostorism, fraud syndrome or the impostor experience) is a psychological pattern in which one doubts one’s accomplishments has a persistent internalized fear of being exposed as a “fraud”.

Despite external evidence of their competence, those experiencing this phenomenon remain convinced that they are frauds, and do not deserve all they have achieved. Individuals with impostorism incorrectly attribute their success to luck, or interpret it as a result of deceiving others into thinking they are more intelligent than they perceive themselves to be.

While early research focused on the prevalence among high-achieving women, impostor syndrome has been recognized to affect both men and women equally.

They way I think about imposter syndrome is as an opposite to the Dunning-Kruger effect. Which is:

In the field of psychology, the Dunning–Kruger effect is a cognitive bias in which people with low ability at a task overestimate their ability. It is related to the cognitive bias of illusory superiority and comes from the inability of people to recognize their lack of ability. Without the self-awareness of metacognition, people cannot objectively evaluate their competence or incompetence.

So the Dunning-Kruger effect can be summarized (at least by me) as what happens when someone is so ill-informed and uncapable in a field that they fail to understand the limits of their ability.

This is the opposite of Imposter Syndrome, which I summarize as what happens when someone is informed enough, and capable enough to realize the size of the field they’re working in and understand the amount of things they don’t know.

I don’t think that’s the real psychological summary, but I think that’s really what the cause of people using the term in tech is.

What’s bad about imposter syndrome?

Imposter Syndrome is largely thought of as undesirable. My personal belief is that this is because it is, or can be, a source of great anxiety for the people that experience.

Constantly being in fear of someone discovering you’re a fraud is stressful. Anticipating the moment that someone catches you out, or that you fail publicly and suffer ridicule or repercussions because of it generates this anxiety.

The in-ability of people to realize their own competence is bad. There are lot of people I have met the suffer from this and don’t realize the quality they have and the value of their experience. They judge themselves by the knowledge and experience they don’t have, not what they do have.

What should we do about it?

The one thing that people with crippling imposter syndrome anxiety typically think, is that they feel this way because they’re and imposter, and they’re an imposter because they fear this way.

That’s just not true!

First, you aren’t an imposter because you feel this way. Every one of the *“best”** people I have met in technology feel this way
*(however you want to define best, I mean people I most respect from their technical eminence and cultural quality)

When you see conference talks from developers at big companies that are doing projects you think are cool, there are two things to know:

  1. They probably felt like an imposter at the beginning when that project was early, and the requirements were sketchy, and the technology choices were all wide open
  2. They might well feel that way if they came and joined your project on whatever you’re doing, because they might not know the tech you’re using, or the patterns you’re implementing for your specific tasks.

Now I might be wrong about some people, on some projects, but I am sure I am right more than I am wrong about this. One of the ways I know this is that I still suffer from it.

I lead Software Architecture for Avanade. It’s a big company, with big clients, and we do big projects, some of them are cutting edge, some aren’t. I teach a lot of people about software architecture, about design patterns, development culture, and how to build distributed systems successfully, but I don’t know everything. Here is a list of technologies that easily make me feel like an imposter:

  • Kubernetes
  • Service Meshes
  • SAP
  • AWS and Google Cloud (I know Azure)
  • YAML
  • JavaScript and it’s various frameworks
  • Objective C
  • Go - the language
  • Good C++

That’s a pretty decent list of modern, important technologies. It’s not like I don’t know anything about them (except maybe SAP), but they can rapidly make me feel out of my depth.

When I focus on that list, I can feel anxious about it. “How can I talk about cloud architectures but not be able to run a Kubernetes cluster on my dev machine?”

I know lots of people like me. Nobody knows everything about everything. Lots of people have some major things they wish they knew more about. I’d like to learn more about all the things on my list, and I do at about 1/3 the speed I want to.

How do we get rid of Imposter Syndrome

I don’t think we can really get rid of imposter syndrome, and perhaps we shouldn’t want to. It’s good to know what our weaknesses are and what we need to learn. It keeps our ego’s in check and stops us from being at the Dunning-Kruger end of the scale.

What we need to do is get rid of the anxiety. We can’t allow our Imposter Syndrome to hold us back. You need to keep in mind two things

1) What I said about everyone feeling it. Its normal and good to be aware of what you don’t know and really it’s a sign that you are capable of meta-cognition and have a large enough understanding of the field to have it.

2) The list of things you can do and experience you have grows every single day. You get smarter every day, you gain experience, learn from your mistakes, read new things, see new things. You fix bugs, write tests, solve problems and get better every time. Don’t forget that you get stronger every day!

Keep hold of the good side of imposter syndrome and try your best to drop the bad. Celebrate the successes in your career and accept the mistakes as growth experiences.

Be inspired by the list of things there is to learn, but don’t feel like you have to learn everything. Technology is too broad a field for that. Learn what you want to learn about, and practice what you want to learn about.