Last year this colleague told me the feedback I gave him in PRs crossed a line and I've since gone to great lengths to think about I deliver it. I actually think I'm very respectful and considerate in how I present it. Invariably I just ask him what he thinks about other solutions.
We spoke about this again last week and I reminded him that there wasn't any judgement in the feedback I was giving him; that part of my job is to criticise his work but that in no way do I consider it a reflection of his ability.
Some of the time he acknowledges that his work could be improved but in most instances however he's defensive and argumentative. His rationale doesn't stand up to basic questioning and it's obvious he's just making it up as he goes along. I've even shown him how I review his work, what I look for etc.
Often I'll reach a point where I don't have the energy and cave. He knows this and keeps pushing me until I eventually just approve his work. I don't want to make him feel bad but sometimes I have to draw on my experience say if I think something's a concern, like a brittle test or unclear code. To me, this is the whole point.
I told my manager all this was making me feel uncomfortable, distracting me from my other work and causing stress. While I want to help, it feels like I'll never be able to break through with my colleague. I'd prefer not have anything to do with his PRs and just focus on my work and of my other colleagues (who don't seem to react in the same way.)
Has anyone in the HN community had experiences similar to this and what did you learn? Should I merely accept the situation as it is and try to move on?
Mostly, the people who had a hard time responding to constructive feedback were young. They might have listened to what I had to say, but not really heard me.
After 5-7 attempts on my part, I considered them a lost cause. And they'd have to learn on their own. I was probably giving them too much respect.
I'd say, let this colleague be. If you still have to provide PRs, then just provide it on Approve/Not approve basis. If your manager requests that you more specific, then provide your honest feedback and kick it up to the manager to decide whether to approve or not approve.
But if you manager is unwilling to deal with this problem, maybe explore your options
Some people are already full of IDEAS and super-hacks that they cannot grasp more or then they are better than you.
So you must let it be and give more simple suggestions.
Instead of:
"doing xx will create zzz I think we may do better doing Z"
You go to criticism bullet-proof small-can't-make-it-agains-you as:
"Please consider the use XX on scaling"
Imagine I start doing BJJ and there is a master who says:
"Look you must use your elbow like this.."
And I say:
"NOOOO that is wrong.. I saw I youtube that I should use my feet.."
I think a lot of people will be happy to have someone help/mentor them. Don't waste your wisdom with this guy.
Because If you get bitter it may shut the opportunities to other people who will really appreciate your feedback/mentor.
As others have mentioned approach matters a lot. Saying "this is wrong, make it X to fix it" will be received poorly most of the time. Instead you can phrase it as a conversation in the form of "What do you think of refactoring this endpoint to follow the conventions we follow throughout this repo [link to examples]. It'll make the codebase more consistent and easier to follow along for others" or "I believe using `new Buffer()` has some security issues and has been deprecated [link to deprecation notice]. We can use `Buffer.from()` instead which has the same interface." (this examples are trivial but as things get more complicated who knows... maybe what you thought was right is incorrect)
For minor things such as formatting preference I strongly recommend getting a linter/formatter at stick to what it chooses. Make sure your CI enforces its formatting.
What changed my perspective was the talks and books around Radical Candor.
The basic idea is this, you need to get people into the right state of mind through genuine empathy and shared trust before they will be ready to hear feedback. Otherwise, it's human nature to become defensive and not hear it.
If it comes from someone you know and trust, then you'll hear the feedback as constructive. If it's from a stranger, or someone who you see as a rival, then you'll see it as a threat.
It can take a long time to build enough trust with people to get them into a place where you can provide constructive feedback. But it's crucial to actually getting the feedback to achieve the outcome you wan.
Maybe you should. A younger, less experienced colleague may be feeling insecure about the difference in skills, so they are taking critique from you more personally than they should. Perhaps you need to spend as much energy finding things to celebrate about their work, and put that in the PRs. In general if you can make > 80% of a critique positive feedback, with < 20% negative feedback, it will likely be taken much better. It will also build trust because they know you do appreciate their work, so they will not be as defensive in the future.
That being said how teachable your colleague is an unknown. So you may need to manage the situation rather than fix it.
Sometimes, the more direct and assertive you are to people that tend to get defensive, will make them more defensive.
Maybe break down their barrier by making them trust you first?
Make them see what they do wrong indirectly first instead of pointing it to them?
Maybe try to understand their thought process first and see if you can learn from them? Maybe his intention is sound but he couldn't communicate it clearly to you out of nervousness? Or maybe you can get to the basis of their logic, the root cause, and tweak it from there!
Anyway, I am actually curious what do they mean by your PR comments crossing the line? In what way? Is there some mistake made due to cultural differences?
Maybe bring the discussion to a more public channel, a common ground, and get help from an expert from a neutral party. But this approach will need you to make sure you don't have the slightest bit of intention to bring them down ad hominem. At least, if you want to change the person, you would want the person to acknowledge first why they need to change.