<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Feedback · Jared Lynskey</title>
    <link>https://jared.lynskey.co.nz/en/tags/feedback/</link>
    <description>Short stories of value on software engineering and engineering leadership — performance reviews, hiring and scaling teams, CI/CD, DevOps monitoring and agentic AI. Written from Seoul.</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>© 2026 Jared Lynskey</copyright>
    <lastBuildDate>Mon, 26 Oct 2026 00:00:00 +1200</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/en/tags/feedback/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Engineering Performance Reviews: How I Run Them, With a Template and Examples</title>
      <link>https://jared.lynskey.co.nz/en/posts/2024/2024-04-27-performance-reviews/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/en/posts/2024/2024-04-27-performance-reviews/</guid>
      <pubDate>Sat, 27 Apr 2024 00:30:03 +0000</pubDate>
      <dc:creator>Me</dc:creator>
      <category>Engineering Manager</category>
      <category>Performance Reviews</category>
      <category>KPI</category>
      <category>Feedback</category>
      <category>Software Engineering</category>
      <category>Leadership</category>
      <description>How I run performance reviews for software engineers: what each side should expect, the agenda I follow, KPIs that fit the person, a review template you can copy, self-review questions, and examples of feedback specific enough to act on.</description>
      <content:encoded><![CDATA[<p>A useful performance review for a software engineer is a two-way conversation, not a verdict. The engineer brings a self-review, the manager brings specific examples, and you both leave with two or three measurable goals you agreed to and a written record of them. Below is how I run one, the template I fill in, and what specific feedback sounds like next to the vague kind.</p>
<p>Since taking over an engineering team earlier this year, performance reviews have gone from something that happens <em>to</em> me to something I&rsquo;m responsible for running. I&rsquo;m writing this partly to organise my own thinking, so take it as notes from someone figuring it out rather than gospel.</p>

<h2 class="relative group">Why bother with reviews at all?
    <div id="why-bother-with-reviews-at-all" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-bother-with-reviews-at-all" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The purpose, at any level, comes down to two things: help people keep learning, and make sure the ones performing beyond their role actually get rewarded for it.</p>
<p>Plenty of small companies claim they don&rsquo;t have the time or resources for reviews, and quietly fall back on tenure as the only signal for who&rsquo;s ready for a senior role. That&rsquo;s a mistake, and not just because tenure is a lazy metric. Skipping reviews removes the two-way channel between employer and employee, and the working relationship suffers for it.</p>
<p>It cuts in both directions. An engineer can be working in what they honestly believe is the best way for the company while their habits, methods, or communication style drift somewhere unhelpful — without feedback, nobody catches it. And employers who never hear from their people in a structured way stay comfortably oblivious to what those people actually think of the company.</p>

<h2 class="relative group">What each side should walk in expecting
    <div id="what-each-side-should-walk-in-expecting" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-each-side-should-walk-in-expecting" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>From the employee&rsquo;s side the list isn&rsquo;t complicated. They want to know how their work lines up with the team&rsquo;s goals, what they&rsquo;re doing well, and where to improve — specifically, not &ldquo;communicate better&rdquo;. They want their contributions recognised, a real conversation about career progression and training, and a process that&rsquo;s fair and based on their work rather than office politics.</p>
<p>From my side of the table, I expect people to arrive with a self-assessment: their own view of what went well and what didn&rsquo;t. I&rsquo;m hoping for openness to feedback rather than a defence lawyer&rsquo;s opening statement, a genuine discussion about future goals, and honest insight into how they feel they fit into the team. Reviews are also when I do my own planning — team composition, potential promotions, who needs what kind of development.</p>

<h2 class="relative group">One framework won&rsquo;t fit every engineer
    <div id="one-framework-wont-fit-every-engineer" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#one-framework-wont-fit-every-engineer" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Engineering teams span different cultural backgrounds, experience levels, and specialities, and the same review script doesn&rsquo;t work for everyone. Equal treatment and fair treatment aren&rsquo;t the same thing; the approach has to flex with each person&rsquo;s needs, career stage, and contribution. The baseline is making sure every engineer&rsquo;s role and responsibilities are clearly defined and actually match their compensation.</p>
<p>The place this bites hardest is titles and pay. When someone is unsure about their title or feels ready for promotion, vague encouragement is poison. What works is concrete: agree on specific challenges or project goals that serve as the benchmark for the next rank, so advancement has objective criteria instead of vibes. Same for compensation — if someone feels underpaid or wants more responsibility, put measurable targets into their plan that spell out what needs to happen before the next review to justify the change. Then actually hold both sides to it at that review.</p>
<p>Improvement feedback needs the same treatment. A specific training programme, workshop, or project aimed at a specific gap is useful. &ldquo;Keep growing your skills&rdquo; is not.</p>

<h2 class="relative group">Benchmarks start at the first meeting
    <div id="benchmarks-start-at-the-first-meeting" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#benchmarks-start-at-the-first-meeting" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>The first review meeting with a new report is mostly about setting the baseline. Walk through what the role actually involves and how it feeds team and company goals. Agree on the measurable outcomes performance will be judged against. Set goals for the near term and further out. It&rsquo;s also the right moment to talk about culture and expected behaviour, how and when feedback will arrive, what resources and mentorship are available, and what the career path from their seat looks like. None of this is thrilling, but every later review is easier because it happened.</p>

<h2 class="relative group">The agenda I use after that
    <div id="the-agenda-i-use-after-that" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-agenda-i-use-after-that" aria-label="Anchor">#</a>
    </span>
    
</h2>
<ol>
<li>Small talk. It sounds trivial, but it takes the tension out of the room, and the rest of the conversation is more honest for it.</li>
<li>Run through the agenda so nobody gets ambushed by a topic.</li>
<li>Growth since the last review — name the progress explicitly. People rarely notice their own.</li>
<li>Current performance, strengths first.</li>
<li>Areas for improvement, each with a specific, realistic target attached.</li>
<li>Career plans, and whether the current work actually points at them.</li>
<li>Targets, goals, and actionable items for the next review.</li>
</ol>

<h2 class="relative group">KPIs only work if they&rsquo;re personal
    <div id="kpis-only-work-if-theyre-personal" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#kpis-only-work-if-theyre-personal" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>For engineers on a product team, KPIs have to fit both the team&rsquo;s objectives and the individual. Front-end, back-end, and full-stack roles differ; junior and senior roles differ more. Commit volume might tell you something about a junior developer, and it tells you nothing about a senior engineer whose main output is architectural decisions. That&rsquo;s why KPIs get set in a conversation, not copied from a template.</p>
<p>The areas I look at:</p>
<ul>
<li>Quality of code: error rates, adherence to standards, how often their work needs bug fixes</li>
<li>Project delivery: milestones and deadlines met</li>
<li>Innovation and problem solving: efficiency improvements, hard problems actually resolved</li>
<li>Collaboration: peer reviews, contribution to team goals and discussions</li>
<li>Personal development: learning goals hit, certifications, new technologies picked up</li>
<li>Customer impact: feedback from users, engagement with the features they shipped</li>
</ul>
<p>On the measurable side, unit testing is an input I&rsquo;ve been warming to. <a href="https://www.infoq.com/articles/unit-tests-performance-review/"  target="_blank" rel="noreferrer">This article</a> from InfoQ looks at folding unit testing into performance reviews — the mechanics of it, and what it does to team culture — and argues for mixing qualitative and quantitative measures of code health. Worth a read if you&rsquo;re hunting for KPIs that don&rsquo;t reduce engineers to line counts.</p>
<p>Whatever you pick, agree on it together in the review or a 1:1, and revisit it as roles, projects, and technology shift. A KPI nobody agreed to is just a stick.</p>

<h2 class="relative group">The template I fill in
    <div id="the-template-i-fill-in" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-template-i-fill-in" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>I keep one document per person and add a section per review, so the history is in one place. This is the skeleton:</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="gu">## Performance review: [Name], [period]
</span></span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gs">**Role and level:**</span> [title, and what that level means on this team]
</span></span><span class="line"><span class="cl"><span class="gs">**Goals from last review:**</span> [copied from the previous section]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Self-review (filled in by the engineer beforehand)
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> What went well, with an example or two
</span></span><span class="line"><span class="cl"><span class="k">-</span> What didn&#39;t, and what they&#39;d do differently
</span></span><span class="line"><span class="cl"><span class="k">-</span> What they want to be doing in a year
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Progress on last review&#39;s goals
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> [Goal]: met / partly / not met, with the evidence
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Strengths (specific examples)
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> [What they did, when, and what it changed]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Areas to improve (each with a target)
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> [Behaviour or skill] → [what &#34;better&#34; looks like] by [date]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Career and level
</span></span></span><span class="line"><span class="cl"><span class="k">-</span> Where they are against the next level, and what&#39;s missing
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Goals until the next review
</span></span></span><span class="line"><span class="cl"><span class="k">1.</span> [Measurable goal]
</span></span><span class="line"><span class="cl"><span class="k">2.</span> [Measurable goal]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="gu">### Agreed actions
</span></span></span><span class="line"><span class="cl">- [Who] will [do what] by [when]</span></span></code></pre></div></div>
<p>The self-review comes in a day or two before the meeting, never during it. Reading it first changes the conversation: half the time the engineer has already named the thing I was going to raise, and we can spend the meeting on what to do about it.</p>

<h2 class="relative group">Questions for the self-review
    <div id="questions-for-the-self-review" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#questions-for-the-self-review" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>These are the prompts I send ahead of time. They&rsquo;re open on purpose, so the answers tell me how someone sees their own work, not just what they did:</p>
<ul>
<li>What are you most proud of since the last review, and why that?</li>
<li>Where did you get stuck, and what would have unstuck you sooner?</li>
<li>What feedback have you had from teammates or reviewers that stuck with you?</li>
<li>Which of last review&rsquo;s goals do you think you met, and which do you want to drop or change?</li>
<li>What do you want to learn next, and is your current work giving you a chance to?</li>
<li>What should I be doing differently as your manager?</li>
</ul>
<p>The last question gets the most awkward pauses and the most useful answers.</p>

<h2 class="relative group">What specific feedback sounds like
    <div id="what-specific-feedback-sounds-like" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-specific-feedback-sounds-like" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>Most bad review feedback isn&rsquo;t harsh, it&rsquo;s vague. Here&rsquo;s the difference, with examples of the kind I try to write:</p>
<table>
	<thead>
			<tr>
					<th>Vague</th>
					<th>Specific</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>&ldquo;Communicate better.&rdquo;</td>
					<td>&ldquo;On the payments migration, the delay surfaced in the sprint review rather than when you found it two weeks earlier. Next time, flag a slip in the team channel the day you see it.&rdquo;</td>
			</tr>
			<tr>
					<td>&ldquo;Great job this quarter.&rdquo;</td>
					<td>&ldquo;Your write-up of the caching options let us decide in one meeting instead of three. Keep doing those for anything that takes more than a day to choose.&rdquo;</td>
			</tr>
			<tr>
					<td>&ldquo;Be more senior.&rdquo;</td>
					<td>&ldquo;At the next level, I&rsquo;d expect you to own a feature&rsquo;s design end to end. Lead the design review for the search rework and bring two options with the trade-offs.&rdquo;</td>
			</tr>
			<tr>
					<td>&ldquo;Code quality needs work.&rdquo;</td>
					<td>&ldquo;Three of your last ten PRs needed a follow-up fix for missing edge cases. Add tests for the failure paths before asking for review, and we&rsquo;ll look at the rate again next quarter.&rdquo;</td>
			</tr>
	</tbody>
</table>
<p>Each specific version names an event, says what it changed, and points at something the person can do next. It takes longer to write, which is exactly why I make myself collect examples through the quarter instead of trying to remember them the night before.</p>

<h2 class="relative group">Write it down
    <div id="write-it-down" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#write-it-down" aria-label="Anchor">#</a>
    </span>
    
</h2>
<p>After the meeting, write a summary: the key points discussed, any issues raised, the action items, and the objectives both of you agreed to. It sounds bureaucratic, but the written record is what prevents the &ldquo;that&rsquo;s not what we agreed&rdquo; conversation six months later. Documented issues get tracked instead of evaporating, action items hand the next review its opening agenda, and people take goals more seriously once they&rsquo;re on paper.</p>
<p>That&rsquo;s the whole system, really: clear expectations from day one, KPIs shaped to the person, everything documented, and follow-up on every action item. A review that isn&rsquo;t a two-way conversation with measurable outcomes is a checkbox exercise, and engineers can smell a checkbox exercise from the calendar invite.</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2024/2024-04-27-performance-reviews/featured.jpg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>How to Run a Sprint Retrospective That Leads to Real Change</title>
      <link>https://jared.lynskey.co.nz/en/posts/2023/2023-09-01-retrospecs/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/en/posts/2023/2023-09-01-retrospecs/</guid>
      <pubDate>Fri, 01 Sep 2023 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Feedback</category>
      <category>Loops</category>
      <category>Retrospectives</category>
      <category>Teams</category>
      <description>What I&#39;ve learned running sprint retrospectives: the meeting is the easy part, the follow-through is what makes it count.</description>
      <content:encoded><![CDATA[<p>I&rsquo;ve sat in plenty of retrospectives that were genuinely good conversations and changed absolutely nothing. The format was never the problem — the follow-through was. I&rsquo;ve been running the retros on my team lately, so here&rsquo;s where I&rsquo;ve landed.</p>

<h4 class="relative group"><strong>The meeting is the easy part</strong>
    <div id="the-meeting-is-the-easy-part" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-meeting-is-the-easy-part" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>The structure is almost embarrassingly simple. After a sprint or a project phase, the team sits down and works through three questions:</p>
<ol>
<li>What went well?</li>
<li>What didn&rsquo;t go well?</li>
<li>What can we improve?</li>
</ol>
<p>That&rsquo;s it. The point is the feedback loop: pause regularly, look at what actually happened, and feed it back into how you work. A team that never pauses just repeats itself.</p>

<h4 class="relative group"><strong>What separates useful retros from venting sessions</strong>
    <div id="what-separates-useful-retros-from-venting-sessions" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-separates-useful-retros-from-venting-sessions" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Candour, mostly. People will only name the real problem if they&rsquo;re confident it won&rsquo;t be held against them, so the safety of the room matters more than whichever format you picked. And the sharpest observations usually come from the quiet people — a retro where only the lead talks is a status meeting with extra steps.</p>
<p>The other half is what happens after the discussion. Every issue worth fixing should leave the room as an action item with a name and a deadline attached. Then — and this is the part most teams skip — open the next retro by reviewing last time&rsquo;s items. Nothing kills retros faster than everyone quietly realising the action items are decorative.</p>
<p>Where you can, bring numbers too. Opinions like &ldquo;the sprint felt slow&rdquo; go in circles; a chart usually settles it.</p>

<h4 class="relative group"><strong>The failure modes</strong>
    <div id="the-failure-modes" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-failure-modes" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Three I&rsquo;ve seen up close: retros that turn into blame (fix the system, not the person), retros that run the identical format for a year until everyone&rsquo;s on autopilot (change it up), and retros with no follow-up at all — which, as above, is the fatal one.</p>
<p>None of this is specific to software, by the way. Marketing campaigns, event management, research projects, manufacturing — anything with a repeating cycle benefits from the same loop. But wherever you run them, the test is the same: did anything actually change before the next one? If not, you&rsquo;ve just been talking.</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-09-01-retrospecs/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
    <item>
      <title>How to Give Feedback to Someone Who Gets Defensive</title>
      <link>https://jared.lynskey.co.nz/en/posts/2023/2023-03-18-empathic-feedback/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/en/posts/2023/2023-03-18-empathic-feedback/</guid>
      <pubDate>Sat, 18 Mar 2023 11:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>feedback</category>
      <category>communication</category>
      <category>management</category>
      <category>emotional intelligence</category>
      <category>leadership</category>
      <category>professional development</category>
      <description>To give feedback to someone who gets defensive, lower the threat before you raise the issue: one specific behaviour, its impact, a question, then a way forward. What I say, what I do when they push back, and when to stop.</description>
      <content:encoded><![CDATA[<p>To give feedback to someone who tends to get defensive, make the conversation feel less like a threat before you get to the issue. Talk to them privately and soon after it happens, and pick one thing. Describe a specific behaviour and its impact rather than their character, then ask for their view before you suggest a fix. If they push back, don&rsquo;t push harder. Acknowledge how they&rsquo;re feeling, go back to the facts, and be willing to finish the conversation another day.</p>
<p>That&rsquo;s the short version. The longer one is below, because I&rsquo;ve had feedback conversations go wrong the same way more times than I&rsquo;d like to admit: I raise something, the other person&rsquo;s shoulders go up, and from that moment neither of us is really listening.</p>

<h4 class="relative group">Why people get defensive in the first place
    <div id="why-people-get-defensive-in-the-first-place" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-people-get-defensive-in-the-first-place" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Defensiveness isn&rsquo;t stubbornness, or at least it rarely starts that way. It&rsquo;s what people do when they feel threatened, and feedback threatens more than we tend to think. You&rsquo;re nominally talking about a pull request or a missed deadline. What the other person hears is a question about whether they&rsquo;re good at their job, whether they belong on the team, whether you&rsquo;ve been quietly thinking this for months.</p>
<p>Once someone feels that, their attention goes to protecting themselves, not to the point you&rsquo;re making. Arguing harder only confirms the threat. So most of what works below is about lowering the stakes first and only then getting to the substance.</p>
<p>It also helps to remember that some people come into these conversations already bruised. A previous manager who only ever spoke up to criticise, a culture where mistakes got people sidelined. You can&rsquo;t fix that history in one meeting, but it explains why a mild comment sometimes gets a much bigger reaction than it deserves.</p>

<h4 class="relative group">Before the conversation
    <div id="before-the-conversation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#before-the-conversation" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Most feedback conversations are decided before they start. A few things I do now that I didn&rsquo;t used to:</p>
<p>I pick one thing. If I&rsquo;ve saved up five issues, the person hears a prosecution, not feedback. The other four can wait, and often turn out to be symptoms of the first one anyway.</p>
<p>I do it soon. Feedback about something that happened six weeks ago lands as &ldquo;why are you only telling me now?&rdquo;, which is a fair question with no good answer. A day or two after the event is about right: soon enough that it&rsquo;s fresh, late enough that neither of you is still hot.</p>
<p>I do it privately, and I don&rsquo;t do it over chat if I can avoid it. Written feedback loses tone, and a defensive reader fills the missing tone in with the worst possible version. If it has to be written because the team is remote or across timezones, I keep it short and offer a call.</p>
<p>And I check my own state. If I&rsquo;m annoyed, the other person will pick it up within the first sentence, whatever words I use. Some feedback I&rsquo;ve given would have gone much better if I&rsquo;d waited until I&rsquo;d stopped being irritated.</p>

<h4 class="relative group">What to actually say
    <div id="what-to-actually-say" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-to-actually-say" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>The structure I keep coming back to is the one usually called situation, behaviour, impact (SBI): when it happened, what they did, and what it caused. The point is that each part is observable. There&rsquo;s nothing in it about who they are, only about what happened.</p>
<p>Here&rsquo;s the difference in practice. Say a developer merged a change on a Friday afternoon without waiting for review, and it broke checkout over the weekend.</p>
<p>The version that gets walls up: &ldquo;You always rush things out. You need to be more careful.&rdquo;</p>
<p>The version that has a chance: &ldquo;On Friday the payment change went in without a review, and checkout was down for a few hours on Saturday. I&rsquo;d like to understand what happened, because I don&rsquo;t think it was carelessness.&rdquo;</p>
<p>The second one names one event, says plainly what it cost, and ends by assuming good intent. &ldquo;Always&rdquo; and &ldquo;never&rdquo; are the words that do the most damage. They turn one incident into a judgement of character, and the other person will immediately think of the counterexample that proves you wrong.</p>
<p>I also try to own the observation. &ldquo;I noticed&rdquo; and &ldquo;I&rsquo;m concerned&rdquo; are honest about the fact that this is my view, offered from my side, and they leave room for me to have missed something. Often I have.</p>
<p>Then I stop talking and ask. &ldquo;How did it look from your side?&rdquo; There&rsquo;s usually context I didn&rsquo;t have, like a deadline someone else set or a reviewer who was off sick. Even when there isn&rsquo;t, the question tells the person this is a conversation and not a verdict.</p>
<p>Feedback also lands far better with a way forward attached. Not a list of problems but &ldquo;next time, could we&hellip;&rdquo;. Better still if the way forward comes from them.</p>

<h4 class="relative group">When they push back anyway
    <div id="when-they-push-back-anyway" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#when-they-push-back-anyway" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>You can do everything right and still get resistance. It tends to come in a few recognisable forms, and each one needs a slightly different response.</p>
<p>The most common is denial: &ldquo;that&rsquo;s not what happened.&rdquo; Don&rsquo;t argue about it. Go back to what you both can see, like the commit, the message or the date, and ask what you&rsquo;re missing. If the facts really are disputed, it&rsquo;s fine to say &ldquo;let&rsquo;s both look at it again and pick this up tomorrow.&rdquo;</p>
<p>Then there&rsquo;s deflection, as in &ldquo;well, the requirements kept changing&rdquo; or &ldquo;so-and-so does it too&rdquo;. There&rsquo;s often some truth in it, so acknowledge it rather than dismissing it: &ldquo;That&rsquo;s fair, and we should fix the requirements problem too.&rdquo; Then bring it back gently: &ldquo;Separately from that, I want to talk about the review step.&rdquo;</p>
<p>A counter-attack, like &ldquo;you merge things without review all the time&rdquo;, is the hardest one not to match. Take a breath. If they&rsquo;re right, say so, because it&rsquo;s the fastest way to lower the temperature, and you&rsquo;ve just shown the openness you&rsquo;re asking them for. Then come back to the original point.</p>
<p>Shutting down, whether that&rsquo;s silence or &ldquo;fine, whatever you say&rdquo;, looks like agreement and isn&rsquo;t. I&rsquo;ll name it softly, something like &ldquo;it seems like this didn&rsquo;t land well, and that&rsquo;s okay&rdquo;, and offer to continue later. Forcing a response from someone who&rsquo;s withdrawn just gets you a fake one.</p>
<p>Over-apologising (&ldquo;I&rsquo;m terrible at this, I&rsquo;m so sorry&rdquo;) is defensiveness too, just pointed inwards. The person is protecting themselves by getting the criticism in first. Reassure them that it&rsquo;s one specific thing and not their whole performance, and move on to what happens next.</p>
<p>Through all of these, the one rule I try to hold is not to match their energy. When someone gets defensive, my instinct is to get defensive right back, and that&rsquo;s the one move guaranteed to sink the conversation. If I stay level, the temperature usually comes down on its own. It helps to say the feeling out loud, something like &ldquo;I can tell this is frustrating to hear&rdquo;, rather than pretending the tension isn&rsquo;t in the room.</p>

<h4 class="relative group">Know when to stop
    <div id="know-when-to-stop" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#know-when-to-stop" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Sometimes none of it works and the walls stay up. Pushing harder at that point achieves nothing. It&rsquo;s fine to park the conversation and come back in a day or two once things have settled. The feedback will still be true tomorrow, and people are often much more reflective once they&rsquo;ve had a night to sleep on it. Some of the best follow-up conversations I&rsquo;ve had started with the other person saying &ldquo;I&rsquo;ve been thinking about what you said.&rdquo;</p>
<p>That one took me the longest to learn.</p>

<h4 class="relative group">After the conversation
    <div id="after-the-conversation" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#after-the-conversation" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>What happens in the following week matters as much as the conversation itself. If the person changes the behaviour, say you&rsquo;ve noticed, explicitly and soon. That&rsquo;s how they learn feedback from you isn&rsquo;t only ever bad news, and it makes the next conversation easier.</p>
<p>And ask, when it fits, how the feedback landed. &ldquo;Was that fair?&rdquo; balances things and shows the openness you&rsquo;re hoping for in return. When I moved into management I started doing this routinely, and it caught a couple of times where I&rsquo;d been clearer in my head than out loud.</p>

<h4 class="relative group">In short
    <div id="in-short" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#in-short" aria-label="Anchor">#</a>
    </span>
    
</h4>
<p>Lower the threat before you raise the issue. Pick one thing, raise it privately and soon, describe the behaviour and its impact rather than the person, and ask for their side before suggesting a fix. When they push back, don&rsquo;t match it. Acknowledge the feeling, return to the facts, and be willing to stop and pick it up another day. Then follow up, because the conversation after the conversation is where trust gets built.</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-03-18-empathic-feedback/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
