Understanding Users as a Developer: Overcoming the curse of Knowledge.
Tags: webdev, programming, productivity, frontend
Published: 2023-07-29 02:32:47

As a developer, you may suffer from the "curse of knowledge." Does this mean you’re cursed? No, it indicates a lack of empathy on your part for your users. On that premise, this is not the time to build but to go back to the drawing board to see through the user. What will be the outcome of what you’ve built if the users can’t comprehend the ins and the outs of the software. Understanding the user as a developer will not only help you as a developer in meeting the user’s requirement but also to develop effectively.

In this article, you will learn:

- What the Curse of knowledge is
- How the Curse of Knowledge affect software developers
- How to overcome the curse of knowledge

## What is the Curse of Knowledge?
The curse of knowledge refers to a bias that occurs when a person who has knowledge finds it difficult or fails to empathize with individuals they are interacting with who do not possess the same knowledge.

The practical example that fits the description above is a tweet by @hacksultan:
{% embed https://twitter.com/hackSultan/status/1683837950378020864 %}
This tweet appeared on my Timeline while I was writing this article and it gave me the motivation to write about what the picture depicts - Curse of Knowledge!

## How does the Curse affect software developers
Software developers are better expected to have the hard skill rather balancing it with the soft skill. I mean you're meant to handle both. It seems funny when you ask from a developer whether he has some sense of empathy. They probably reply you with "but that would not build the product!"

Thus, a developer's inability to communicate and understand the user is  a maanifestation that he has the bias.

Consider a scenario where you, an experienced software developer got a contract to build an e-commerce platform to be used by Angie for her small online business and wants to reach a broader customer base. Angie has a limited knowledge on how to use digital platforms.

You delve into developing the software without gathering user requirement or intend copying another built e-commerce platform. Your mind is on the complicated algorithms you’re going to use and the libraries that will best do the job. After you’re done implementing the nice features and building the software, you felt confident that what you’ve built is better than Shopify’s. 

You feel on top of the world while showcasing the finished platform to her, started explaining the underlying architecture, the data structure and the features you implemented. But she struggles to navigate the website, update product listings and manage customer orders seamlessly. At that point, you wonder what the problem is?
Yes, there is a problem! You’ve just developed what Angie (the user) is unable to use. Imagine paying for something you can’t control. You failed as a developer not because you didn't produce what she requested, but rather because you didn't think of yourself as the user, which is a sign that the curse of knowledge is at work.

## Overcoming the Curse of Knowledge
To overcome the curse of knowledge, the following ways will guide you in developing a successful software:

### Developing an empathetic Mindset
As a developer, possessing empathy is a crucial soft skill. It involves the ability to comprehend another individual's emotions by trying to envision yourself in their situation. Although some may view it as a mere feeling, it extends beyond that. By doing so, you are empathizing with the user and gaining insight into their positive and negative experiences while using your product.

For example, a mobile application you’re meant to develop for a 3-year-old must be something that doesn’t frighten and avoid him from using the app next time. Instead, use nice sounds and graphical interfaces that would entice him and creates a lingering memory anytime he uses it. This can be achieved only if you take yourself as a 3-year-old using that app.

I mean who expects a 3-year-old to operate it with a Command Line Interface! (Laughs)

### Making User research
Developers may learn a lot by understanding the needs, attitudes, and issues that users face by conducting user research, which is not just for designers to perform. Because it enables you to see things from their perspective,and this method is similar to studying the user.

Every project should start with it, or you should do it if your clients suggest a modification. This approach highlights the requirements that must be met, but it does not force you to figure everything out right now. You offer a quality product while simultaneously saving time.

User research can be achieved through the following means: 

- Conducting a user interview

- Interwing a Subject Matter Expert

- Drawing conclusions from gathered Data

- Carrying out market research

- Conducting a usability test

Any one of the aforementioned techniques, alone or in combination, will do because they will be helpful while developing software.

### Usability Testing
You want to examine how users interact with the software you've created during this phase. It entails the employment of a team that could include your users or users who are a representative of your users. They are shown this piece of software in order to test its many features and determine how well it will meet their demands.
 
At this point, any difficulties or ambiguities the user may experience will be made clear. Additionally, usability testing discloses whether user expectations are satisfied and provides the opportunity to make changes if necessary. After that, using what you've learned, you can make wiser decisions.

Usability testing is an iterative process because after testing, you receive feedbacks, you go back to the drawing board, develop and still have to test. A good working ethics go through this loop.  During this process, you detect bugs or discover the best features the users probably need.

### Continuous Learning and Improvement
There is a need to stay informed of the users need and the industry trends. The technologies you used in building a software product in the past might not be relevant anymore. This might involves you learning and mastering new technologies or tools, reading publications on new trends in the industry. 

It can be beneficial even to engage with your users. Due to social or economic causes, they can have a brand-new expectation that needs to be fulfilled. In the event that the product is unable to satisfy these needs, there is a chance that users would start looking for better alternatives, rendering the product obsolete.

For example, Stack Overflow website was popularly used as a platform for asking and answering questions related to coding lost its streak after the introduction of ChatGPT. The website’s traffic dropped because the latter application uses Artificial intelligence which is now the users’ favorite. 

To respond to such problem, Stack Overflow built an AI tool called OverflowAI integrated into the website platform. The new tool has additional features appropriate and convenient to be used by developers.

Thus, the culture of learning and receiving feedback should be nurtured as this would help you understand the users.

## Conclusion 
One of the major thing that could hinder a successful software development is the developer's inability to overcome the Curse of knowledge. Overcoming them is a soft skill that will make the users happy because the developer shared his pain and joy during development.

The empathy you have while developing is an addition to what user research will showcase at the beginning of development. While testing your users, learning and receiving feedbaack from users helps in making informed decisions thereon.

I hope this article has provided insights on what the curse of knowledge is and ways you can overcome them.

## Thank you for reading!
For any question, find me on [Twitter](https://twitter.com/Mohfeyi) and [Linkedin](https://www.linkedin.com/in/al-ameen-mustafa)

Bye!!!