Welcome!
Hi this is John with this week’s Developing Skills - Skills for Developers looking to develop their careers.
If there is a topic you’d like to see covered, please let me know by replying to this email📧
Tip of The Week: Don’t Criticise
“From the logs we saw something weird was happening in the chunk lambda. We’ve identified a potential bug and are creating a test for it, once …”
Mark was cut off by Dan butting in: “That’s not going to account for the increase in DynamoDB write though, that lambda doesn’t even write to DynamoDB! You must be looking at the wrong thing!”
“We’re starting from the beginning of the process and…”
But Dan cut Mark off again: “Well that’s dumb! We know the problem is a cascade of writes to DynamoDB. The only thing that writes to that is the audit lambda. You should have started there!”
Mark was getting visibly annoyed now, he didn’t like being interrupted, but he hated being publicly criticised.
After the meeting Mark did fix the bug he found, along with several others, including one in the place Dan thought might be the issue. He also complained to his manager about Dan’s behaviour and was reluctant to take on any work that might result in him having to collaborate with Dan. He wasn’t the only one.
Eventually, as good a software engineer as he was, Dan was let go because the team couldn’t work with him.
So what’s wrong with criticism?
Well, criticise is defined as: “to express disapproval of someone or something”. It’s even worse when you look at the list of words that mean the same (synonyms): attack, castigate, chastise, condemn, rail, and slam.
Ouch, who wants to be on the receiving end of that?
In short when you criticise someone you are going to upset them. You’re going to lose any goodwill you had with them. Instead of having a potential ally in future, you have a potential enemy.
Yet many software engineers seem to make it their personal duty to criticise the work of anyone and everyone around them. Sure they might be smart but that does not give them license to tear down everyone else.
Their behaviour hurts their teams too. The very people who could and should be coming to them for help are now reluctant to do so. After all who wants to deal with someone who attacks them? So instead of improving the work of the people they criticise they create barriers to collaboration, reducing the effectiveness of the team.
The problem is criticism wastes a lot of time and energy. It puts people on the defensive and makes meetings like the one Mark and Dan were in unproductive.
Ah, but what about constructive criticism I hear you ask.
The reality is many people take criticism personally. To them it’s criticism and they don’t know what your intention was. Even if you tell them it’s intended as constructive criticism, they’re still likely to feel bad. That doesn’t mean you can’t correct someone, it just means you need to take care how you do it.
So next time you feel like criticising pause and ask yourself:
Why are you going to criticise them?
Are you trying to help them?
Or are you trying to make yourself look better?
What is the positive outcome you want?
Is there a better way to achieve it?
When you really do need to correct someone here are 3 simple tips:
Do it in private, don’t put them in a position where they feel the need to publicly defend themselves.
Focus on the behaviour, facts, work or data, not on the person.
Soften the blow. Praise what you can. Offer some positive feedback and support on what they are right about / did well.
You can read more about how to correct people effectively in my earlier post: YOU ARE WRONG!
Two Ways I Can Help You Level Up As A Software Engineer:
I write another newsletter, Coding Challenges that helps you become a better software engineer through coding challenges that build real applications.
I have some courses available:
Become a Better Software Developer by Building Your Own Redis Server (Python Edition) which guides you through solving the Redis Coding Challenge in Python.
Build Your Own Shell (Go Edition) which guides you through solving the Shell Coding Challenge in Go.
I can't resist bringing in a great quote by Warren Buffett:
"Praise by name, criticise by category"
This is an excellent reminder, John.