This post is part of my Tech Lead Series, a collection of practical advice for engineers stepping into leadership roles.
Giving hard feedback is uncomfortable. That’s why most people avoid it. But avoiding it doesn’t make the problem go away. It just delays the conversation until it’s worse for everyone.
Why hard feedback matters
People can’t fix what they don’t know is broken. When you see a performance issue, an attitude problem, or a skill gap and don’t address it, you’re denying that person the chance to improve.
You’re also being unfair to your team. If an engineer consistently ships late, everyone else slows down. Dismissive behaviour in code reviews stops people from contributing. When you don’t address these problems, you’re choosing the comfort of avoiding one conversation over the wellbeing of the whole team.
Hard feedback is a form of respect. You’re treating someone as capable of hearing the truth and acting on it. The alternative, staying quiet, assumes they can’t handle it. As Camille Fournier notes in The Manager’s Path, “when they believe that their manager sees the good things they do, they’ll be more open to hearing about the areas where they might improve.”
Principles
A few ideas guide how I approach these conversations.
Sooner is better. Small issues addressed early are minor corrections. The same issues left for months become serious problems. If you notice something in week two, address it in week three, not month six.
Specific is better than vague. “Your work has been slipping” is hard to act on. “The last three PRs had bugs that made it to production, and you’ve missed two sprint commitments” is specific and something they can act on.
Behaviour, not character. You’re addressing what someone did, not who they are. “You interrupted colleagues in the last three meetings” is about behaviour. “You’re rude” is about character. One can be changed. The other feels like an attack.
Private, not public. Hard feedback happens in 1:1s, not in team meetings. Public criticism shames people. Private conversations allow for honest discussion.
Direct, not cruel. You can be clear without being harsh. “I need to see improvement in the next month” is direct. “You’re the worst performer on the team” is cruel and useless.
The conversation
A structure that works for me:
State the purpose. Don’t hide what the conversation is about. “I want to talk about some concerns I’ve had with recent work.” Let them know this is serious.
Share what you’ve seen. Use specific examples, and stick to facts rather than judgements. “In the last sprint, two of your stories weren’t completed, and the one that shipped had a bug that caused an hour of downtime.”
Explain why it matters. “When stories don’t get completed, the team has to pick up the slack. When bugs ship, we lose customer trust and spend time on firefighting.”
Ask for their view. You might not have the full picture. “What’s your take on this? Is there context I’m missing?” Sometimes there are good reasons. Sometimes you learn about blockers you can remove.
Set clear expectations. Be specific about what needs to change. “Going forward, I need you to complete your committed stories and test more before marking things done.”
Agree on next steps. What happens now? A plan to fix the issues? More check-ins? Specific support you’ll provide? Make it real.
Write it down. Write up what was discussed and share it. This creates accountability and protects both of you if things escalate.
Handling reactions
Hard feedback often triggers emotional reactions. Some common ones and how to handle them.
They get defensive and explain why each example isn’t really their fault. Acknowledge their view without backing off. “I hear that there were constraints, and those are worth discussing. But the pattern concerns me regardless of the reasons.”
They deflect and point to other people’s problems instead. Redirect. “We’re talking about your situation right now. Other issues are separate conversations.”
They go quiet and won’t engage. Give them space. “I know this is a lot to process. You don’t have to respond now, but I’d like to check in again tomorrow.”
They get angry or hostile. Stay calm. “I can see this is frustrating. I’m not trying to attack you. I’m trying to help us find a way forward.”
They cry. Don’t panic or rush to end the conversation. Pause, offer a tissue, give them a moment. The feedback still needs to be heard.
Your job is to deliver the message clearly and kindly, not to manage their emotional response. Let them react, acknowledge their feelings, but don’t let the reaction derail the conversation.
Following up
The conversation is only the beginning.
Check in often. Don’t wait months to see if things improved. Weekly or fortnightly, ask how things are going, note progress, address continued concerns.
Name improvement. When things get better, say so. “I’ve noticed the last two sprints have gone much better. Nice work.” Positive feedback matters.
Escalate if needed. If things don’t improve despite clear feedback and support, you need to escalate. This means involving HR, starting formal processes, or having honest conversations about whether this role is the right fit.
Keep records. Document your conversations, the expectations you set, and whether they were met. This protects both of you and makes sure nothing gets forgotten.
Common mistakes
Don’t sandwich it. Hiding criticism between compliments waters down the message. The person hears the praise and misses the point. Be direct about what needs to change.
Don’t wait. The longer you leave it, the worse it gets.
Don’t be vague. Fuzzy feedback is useless. “Do better” doesn’t tell anyone what to do differently.
Don’t make it personal. Attacking someone’s character guarantees defensiveness. Stick to behaviour and impact.
Don’t skip the follow-up. Feedback without follow-up is pointless. The conversation is step one, not the whole process.
And don’t avoid it. This is the most common mistake of all, and hoping that problems go away on their own has never worked.
When it doesn’t work
Sometimes, despite clear feedback and genuine support, things don’t improve. This is hard but important to accept.
Not everyone can do every job. Some people are in the wrong role, or have problems that feedback can’t reach, or hear the feedback and choose to ignore it.
When you’ve been clear and supportive and improvement still doesn’t happen, it’s time for a different conversation. That might mean a performance improvement plan, a role change, or an exit.
You gave them information and opportunity. What they do with it is their choice.
The hardest part
The hardest part isn’t the conversation itself. It’s the days before, when you’re dreading it, writing scripts in your head and looking for reasons to postpone.
The anticipation is always worse than the reality. Once you’re in the conversation, you’re problem-solving, not suffering. And afterwards, regardless of how it went, you’ve done your job. You’ve given someone the information they need to get better.
Published on . Co-authored with AI.