Dealing with Criticism

9 minutes, 1 link


Updated August 7, 2023

We’ve all been criticized at some point in our careers, and it’s safe to say that it’s never a great feeling. It can be difficult to receive criticism, even if it’s intended to be constructive. Criticism can be a hit to your ego and sometimes leave you feeling lost and confused, especially when you feel so confident in your work.

Whether you like it or not, criticism is sometimes necessary in order to foster a healthy engineering organization and to maintain an organized codebase that can grow and evolve over time. As a developer, you’ll receive feedback throughout your career in many different areas, such as:

  • Code reviews. Other engineers may find issues with the syntax, logic, or readability of the code you submit for review.

  • Design reviews or brainstorming sessions. There is always subjectivity when it comes to architecting solutions to solve problems. Sometimes your proposed design will differ from your coworkers’ ideas, or they may pick apart your design.

  • Your manager. You may receive direct feedback from your manager about specific things that you need to improve, such as your organizational skills, attention to detail, work ethic, ownership, or attitude.

  • Product managers. Although you may have spent weeks on a feature, the solution you deliver may not be in line with what the product owner or customer was expecting.

While no one ever wants to be criticized, how you process the feedback can make a big difference. Accepting constructive criticism at work is an important stepping stone towards developing maturity and becoming a better developer. The hard part though is to learn to separate the content of the suggestion from the way that it was delivered. Criticism is not always delivered well, so it’s easy to get upset if it’s done in an insensitive way. And if the criticism is delivered over chat, email, or some other form of written text, the tone is often lost and can be interpreted differently than the author intended it to be.

The thing to keep in mind is that you can often still learn a great deal from criticism, even if it’s delivered in a way that’s insensitive or not as constructive as it could have been. If you are able to mentally separate the essential content of the criticism from the style or tone of the feedback, you’ll still be able to learn from it, even though it may not be what you wanted to hear.

Additionally, it’s important to separate the criticism from the person giving it. There may be coworkers who you don’t always agree with, that get on your nerves, or that have rubbed you the wrong way in the past, but that doesn’t mean you should automatically discount their feedback. You could learn some valuable things from these people, if you’re able to let go of any biases you may have towards them.

So, what can you do in these scenarios? Let’s look at a few things you can do to turn a negative situation into a positive one.

Control Your Response

This is the most important and often the most difficult aspect of dealing with criticism. The way you respond to criticism is an indicator of your maturity and professionalism as a software engineer. Your reaction may be visible to your manager and your teammates, and if you’re not able to control your emotions when responding to criticism, you may risk hurting your reputation or your teammates’ trust in you.

The first step is to be aware of your emotional reaction. If you notice you’re getting upset about someone or something, ask yourself why it’s making you so upset. Having self-awareness about your emotional state helps you process your feelings and be more mindful about how you should respond.

Unlock expert knowledge.
Learn in depth. Get instant, lifetime access to the entire book. Plus online resources and future updates.
Now Available

If possible, wait to respond until you’ve been able to reflect on the feedback and gather your thoughts. It’s often best to refrain from responding immediately to feedback because your emotions may get the best of you. You may say something you will regret later, or you may not be able to think clearly in the moment. Instead, it’s better to accept the feedback and allow yourself to process and internalize the suggestions first. Giving yourself some time allows you to reflect and think about how you should handle the suggestions instead of responding immediately with excuses or defensiveness, and you will avoid saying something you may later regret.

Process the Feedback

No matter how good you are at your job, there is always room for improvement. When faced with constructive criticism from your boss or coworkers, try to reflect on the reason behind their feedback. Why are they giving you this feedback? There may be a good reason behind their actions, and if you’re able to understand fundamentally why you’re receiving criticism, you’re more likely to learn from their suggestions and make better decisions in the future. There may be important details you’ve overlooked that they’re bringing to your attention.

Try asking yourself these questions when you receive constructive criticism:

  • Are there reasons why I might have approached the problem in the wrong way?

  • Where does my design fall short?

  • Did I misinterpret the problem or task?

  • If there is a better solution proposed, what makes it better than mine?

  • Are there solutions that combine benefits of my approach with a suggested alternative?

caution Note that it’s never 100% certain that the feedback you’re getting is correct and that your approach was wrong. Sometimes, developers who review code don’t have the full context or may misinterpret something.

Asking yourself these questions, along with others designed to get to the root of the issue, will help you better understand the downsides of your approach. Perhaps there was additional context that would have been helpful to know when making a decision, or maybe there was a design pattern you weren’t aware of that was a better fit for the problem. Whatever the case may be, it’s important you understand why you’re receiving the feedback in the first place. This self-awareness alone will show that you are mature enough to handle criticism in the first place.

Learn from Others

Receiving unexpected feedback may hurt your confidence, but don’t lose sight of the bigger picture. This is your opportunity to grow as an engineer. Once you’ve accepted that you can be better, the hard part is over. Then, it’s time to figure out what you can do to improve. These small changes compound over time and can help you become a better engineer quicker than you think.

There’s a lesson to learn every time you receive constructive feedback, so don’t squander an opportunity to improve yourself. If you choose to ignore the feedback, you could be missing opportunities to grow as an engineer, especially if it comes from people with more seniority than you. They may have years’ worth of experience that they’re trying to pass on to you. Perhaps they made a mistake when they were younger, and they don’t want to see you repeat those same mistakes. Or maybe they’ve noticed something that you could be doing better that helped them earlier in their career. Whatever the reason, don’t take advice from your senior coworkers for granted. They’ve been in your shoes. They’re trying to help you avoid the same mistakes they once made themselves.

Track Your Accomplishments

As developers, we have to maintain incredibly complex mental models about how codebases work, and those models change continuously as new code is written, merged, and deployed to production. Over time it becomes harder and harder to recall what you worked on. When you think back on what you’ve built over the last few months, it may be difficult to remember everything you worked on. Days, weeks, and months go by, and you may not feel like you’ve accomplished a whole lot, which sometimes leads to impostor feelings. In reality, you complete a lot more work than you probably realize. The hard part is remembering everything you’ve done.

A simple but effective way to curb those impostor feelings is to keep a log of what you’ve worked on each week. Keeping track of what you’ve accomplished has a number of benefits:

  • If you’re ever feeling like an impostor, it helps to look back at all the features you’ve built, bugs you fixed, and your major accomplishments throughout your career.

  • You’re reading a preview of an online book. Buy it now for lifetime access to expert knowledge, including future updates.
If you found this post worthwhile, please share!