Blog

The curse of knowledge as a software engineer

What is the curse of knowledge, and how does it impact software engineering?

Jordan Burnett
By Jordan Burnett

Have you ever been in a situation where someone explained something to you, and it felt like they were speaking in a different language?

Or maybe you've been the one explaining something, only to see confusion on the other person's face. This is often due to what we call "the curse of knowledge"

What is the curse of knowledge?

The curse of knowledge is a cognitive bias that occurs when someone assumes that others have the same background knowledge they do.

As a result, they unintentionally overestimate how well others understand what they're explaining. This happens because once we know something, it's difficult to imagine not knowing it. We forget what it was like to be in the shoes of someone unfamiliar with the topic.

The term was coined in 1989 by economists Colin Camerer, George Loewenstein, and Martin Weber. They found that people with more expertise in a subject struggle to communicate that knowledge to others who are less familiar with it.

This bias can affect anyone but is particularly common in highly specialized fields like technology, medicine, or engineering, where jargon and complex concepts are part of everyday conversation.

How it impacts communication

The curse of knowledge leads to communication breakdowns in various contexts, from casual conversations to professional settings. Some of the key impacts to look out for are:

  • Overuse of jargon: Experts often use technical terms or jargon without realizing that others may not be familiar with these terms. While jargon can be useful within a group of specialists, it can alienate or confuse others who don't share that expertise.

  • Assumption of prior knowledge: When explaining something, the expert may skip over foundational information, assuming that the other person already understands the basics. This can leave the listener lost, as they don't have the necessary context to follow along.

  • Inability to simplify: Experts often struggle to simplify complex ideas. What feels intuitive or "obvious" to them might actually require a lot of background knowledge to understand. They may find it hard to break down their explanations into more digestible pieces of information.

  • Different expectations: The curse of knowledge can lead to misaligned expectations. For instance, an engineering lead may explain a new feature with the assumption that everyone understands the technical dependencies, only to find out later that the non-technical team misunderstood key aspects of the plan.

Real-world examples of the curse of knowledge

The curse of knowledge shows up in many workplace scenarios, particularly in industries with specialized knowledge, such as software development, finance, or healthcare. Here are the top three places where I see it creep into technical teams:

  1. Technical documentation: Developers may write documentation filled with acronyms, technical terms, and coding conventions, assuming readers will understand it all. This can make the documentation difficult for newcomers or less experienced team members to follow.

  2. Product presentations: A product manager might present a feature to stakeholders, assuming that everyone understands the technical architecture behind it. However, non-technical team members may miss crucial details because the explanation was too complex.

  3. Employee training: A senior engineer may train a new hire and skip over key explanations, assuming the new team member is familiar with the company's tools, processes, or codebase. This leaves the new hire struggling to keep up.

How to overcome it

While the curse of knowledge can be a barrier to effective communication, there are several strategies you can use to overcome it:

Ask yourself questions

One of the simplest ways to counteract the curse of knowledge is to step into the shoes of your audience. Ask yourself, "What would I want to know if I were hearing this for the first time?"

This helps you become more mindful of the knowledge gap between you and the listener. You can also reflect on the questions you had when you first learned the topic to guide how you explain it to others.

Start with the basics

Even if you're talking to someone who might have some experience in your field, it's often helpful to start with the basics. By laying the foundation first, you ensure that everyone is on the same page before diving into more complex ideas.

In technical conversations, this could mean explaining key concepts or terms before moving into how a system works or why a particular approach was chosen. Don't assume that just because someone is in the same industry, they know the same things you do.

Use analogies to your advantage

Analogies are a powerful tool for making complex ideas more relatable and easier to understand.

For example, instead of saying "The API throttles requests based on server capacity," you might say, "Think of it like a traffic light that controls how many cars can enter an intersection at once to prevent a traffic jam." Analogies can make abstract ideas more concrete, especially for non-technical audiences.

Encourage questions

One of the best ways to ensure your message is understood is to invite questions. Create a comfortable environment where the other person feels confident asking for clarification. This can be especially important in cross-functional teams where non-technical members may hesitate to ask questions for fear of looking inexperienced.

Encourage active feedback by asking, "Does this make sense?" or "Should I go over that again?" These prompts give the other person the chance to signal when they're lost without feeling embarrassed.

Break it down into bite-size pieces

When explaining a complex topic, try breaking it down into smaller, more manageable pieces of information. This approach, often referred to as "chunking," allows your audience to digest one idea at a time before moving on to the next.

For example, if you're explaining how a complex system works, you might start by discussing the front-end interface, then move to the backend architecture, and finally talk about how the two interact. By breaking the information into smaller parts, you make it easier for the listener to follow along.

Practice active listening

Overcoming the curse of knowledge is not just about how you explain things; it's also about how you listen.

Active listening means fully engaging with the other person's responses and adapting your explanation based on their understanding. If someone looks confused or asks a question, it's a signal to adjust your communication approach.

Ask clarifying questions, listen to feedback, and make adjustments as needed. This helps ensure that your message is getting across clearly.

Empathy is key

The curse of knowledge can create invisible barriers to effective communication, but with the right strategies, these barriers can be overcome.

At its core, overcoming this cognitive bias requires empathy. By putting yourself in the shoes of your audience, breaking down complex ideas, and creating space for feedback, you can communicate more effectively with both technical and non-technical team members.

Remember: good communication is not about showcasing your expertise but about making sure your message is understood. By practicing these techniques, you'll become a more effective communicator and collaborator.

If you're a software engineer in a cross-functional team, you may be interested in capture.dev.  A simple yet powerful bug reporting tool that makes it easy for anybody to create helpful bug reports, with all the technical context engineers need, in just a few clicks.