<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Birdcar</title><description>Nick Cannariato&apos;s writing on internal tools, consulting, solutions engineering, and the small stuff.</description><link>https://www.birdcar.dev/</link><language>en-us</language><atom:link href="https://www.birdcar.dev/rss.xml" rel="self" type="application/rss+xml"/><item><title>Just build it twice</title><link>https://www.birdcar.dev/writing/just-build-it-twice/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/just-build-it-twice/</guid><description>AI didn&apos;t make me faster. It made me willing to throw away a draft I would have died defending.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I was reading &lt;a href=&quot;https://news.ycombinator.com&quot;&gt;Hacker News&lt;/a&gt; the other day, as one does, and a post titled &lt;a href=&quot;https://nolanlawson.com/2026/05/25/using-ai-to-write-better-code-more-slowly/&quot;&gt;&quot;Using AI to write better code more slowly&quot;&lt;/a&gt; had climbed near the top. I read it, and then I just kinda sat there chewing on it while I worked for the afternoon. Ultimately, I think Nolan has named something I&apos;d been turning over for months without quite being able to articulate.&lt;/p&gt;
&lt;p&gt;I&apos;ve been writing about AI tools for a little while now, With the general tone being somewhere between &lt;a href=&quot;https://www.birdcar.dev/writing/your-ai-wrote-a-bug/&quot;&gt;lightly skeptical and inquisitive&lt;/a&gt;. Right now I&apos;m basically of the belief that AI leaves the hard problems exactly as hard as they were before. The easy stuff is inarguably easier, and boilerplate is functionally eliminated, but it isn&apos;t the society-ending inflection point everyone keeps fretting about.&lt;/p&gt;
&lt;p&gt;What Nolan&apos;s post did was clear a path through the part of the question I hadn&apos;t worked out.&lt;/p&gt;
&lt;p&gt;Before I&apos;m branded a hater or in denial, let me be clear about where I&apos;m standing: I&apos;m enthusiastic about these tools. I use them every day, and I&apos;ve built things in the last year (including a business) that I would not have started, much less finished, without an agent (or several) at my elbow. I regularly teach, encourage, and recommend the use of these tools at work and as a freelancer&lt;/p&gt;
&lt;p&gt;Having said that, I also try very hard to think critically about my tools, which is the only way I know how to keep using anything in good conscience. So when I say the skeptics are wrong, I mean it. They&apos;re wrong, full stop. And when I say the hype people aren&apos;t quite right, I mean something more particular: they&apos;re not sure what they&apos;re actually right about. Somewhere between those two positions is a much smaller, much weirder claim, and that&apos;s the thing I want to talk about.&lt;/p&gt;
&lt;h2&gt;Speed? Well.. kinda&lt;/h2&gt;
&lt;p&gt;The dominant narrative says AI makes engineers 10x faster, 30x faster, sometimes 100x faster, depending on which CEO is in front of a camera that day. The numbers vary, but the gospel is the same. Type a prompt, get code, ship feature, repeat. Whoever ships fastest wins, and the agent is the unlock.&lt;/p&gt;
&lt;p&gt;I have been doing this long enough to know that the slow part of building software was never typing. It wasn&apos;t typing twenty years ago and it isn&apos;t typing now. The slow part is figuring out what to build, why to build it, and how to be confident that what you built actually does the thing you thought it would do. The slow part is the part where you sit with a half-working prototype and realize that the &lt;em&gt;real&lt;/em&gt; problem isn&apos;t the bug you&apos;re hunting, it&apos;s that the entire framing of the feature was wrong.&lt;/p&gt;
&lt;p&gt;An agent &lt;em&gt;does&lt;/em&gt; help with that, kind of. Just not in the way that folks are talking about right now.&lt;/p&gt;
&lt;p&gt;As many detractors point out, an agent will gleefully accelerate you into a wall. It will generate thousand-line refactors against (&lt;code&gt;{your, its}&lt;/code&gt;) flawed premise with admirable confidence. I think anyone who uses an LLM even casually for development has watched this happen.&lt;/p&gt;
&lt;p&gt;This is not new criticism, lots of smart people have said it. You know the agent makes you faster at the parts you were already doing thoughtlessly and confidently incorrect about the parts you needed to slow down on.&lt;/p&gt;
&lt;p&gt;So I kept pulling at the thread. If the speed framing is wrong, and the agent doesn&apos;t help with the hard parts, what &lt;em&gt;is&lt;/em&gt; it doing that&apos;s worth my time? Because the honest answer, the one I kept landing on, is that there is something. I think critically about my tools. I would not still be reaching for these every day if I couldn&apos;t tell you, plainly and in one sentence, what they are actually doing for me. So let me tell you.&lt;/p&gt;
&lt;h2&gt;Fail faster, but also more completely&lt;/h2&gt;
&lt;p&gt;The agent has lowered the cost of building the same thing twice.&lt;/p&gt;
&lt;p&gt;That is the entire delta. That&apos;s where I&apos;m actually faster. Everything I value about working with these tools collapses into that one sentence.&lt;/p&gt;
&lt;p&gt;The slow, painful part of building something is not the typing. It&apos;s also not, exactly, the thinking. It&apos;s that for many problems, you have absolutely no idea what you&apos;re doing. The only way to figure out what you actually want is to build the wrong thing first and use it for a while. You don&apos;t know what ergonomics you want from a CLI until you&apos;ve typed the wrong invocation seventeen times. You don&apos;t know what shape your data should have until you&apos;ve written the query that exposes how badly you got it wrong. You don&apos;t know what a feature should feel like until you&apos;ve shipped a version that feels off, and you can finally put a finger on &lt;em&gt;why&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;For most of my career, this was a luxury. Building software was expensive enough in terms of both time and money that &quot;build it twice on purpose&quot; was a catastrophic mistake. The kind of story you tell in your job interview about how you failed one time. In reality, most teams build it once, ship it, suffer with it, and then maybe in eighteen months get the budget for a &quot;v2&quot; that&apos;s usually still constrained by the bones of v1. The cost of throwing the first one away was high enough that nobody actually threw the first one away.&lt;/p&gt;
&lt;p&gt;What agents have &lt;em&gt;actually&lt;/em&gt; made faster and cheaper is &lt;em&gt;being wrong&lt;/em&gt; and more importantly &lt;em&gt;learning&lt;/em&gt; that you&apos;re wrong. They have made me willing to throw a draft in the trash that I would have died defending six years ago. That is a different thing, and it is bigger than it sounds.&lt;/p&gt;
&lt;h2&gt;You only learn what you want by using the wrong thing&lt;/h2&gt;
&lt;p&gt;I have a problem I haven&apos;t solved before. I don&apos;t really know what I want. I have a vibe, a constraint, maybe a half-formed sentence about what &quot;good&quot; looks like. In a previous era I would have done one of two things: stared at a blank file for two days writing pseudocode, or built a careful, deliberate v1 that I would then have been emotionally married to by the time I realized it was the wrong v1. (Technically, the third thing would be &quot;preemptively give up and live with the problem sucking&quot;).&lt;/p&gt;
&lt;p&gt;Now I do something different. I open up Claude or Codex, dump out everything I&apos;m half-thinking, and let it interview me into a spec. The agent then does something I cannot easily do for myself via &quot;rubber duck&quot; talking or white-boarding, which is fill in the gaps in my own thinking. The places where my thinking was fuzzy, where I would have shrugged and waved a hand and said &quot;we&apos;ll figure it out as we go,&quot; get filled in. Then the agent builds the thing the spec asks for, and I start trying to use it.&lt;/p&gt;
&lt;p&gt;Here, finally, is where the work actually happens. I use the thing the agent built, and within an afternoon I can usually tell you in detail what is wrong with it. The code is ok-to-good. Bugs are absolutely present, and fixing them is often a clarifying experience, but what I &lt;em&gt;usually&lt;/em&gt; find out is wrong is the &lt;em&gt;shape&lt;/em&gt;. Even with the gaps filled in, I was foundationally incorrect about what I wanted to build, and I could not see that until I had the working thing in front of me to use.&lt;/p&gt;
&lt;p&gt;That clarity is impossible without the v0. I cannot predict in advance what will feel off about a system I have not yet used. I don&apos;t know that anybody can, reliably. The people who say they can are lying, or they&apos;re working on problems they have already solved (or mostly solved) before.&lt;/p&gt;
&lt;p&gt;So I throw it out. I go back to to my tools with everything I now know that I didn&apos;t know yesterday. I write a new spec that is dramatically sharper than the first one, because the first one taught me what was actually load-bearing. I let the agent build the new thing. Two generations, two days, and I have a foundation I trust enough to stand on. That foundation is not a 10x productivity gain. It&apos;s something more valuable: a thing I would not have arrived at any other way.&lt;/p&gt;
&lt;h2&gt;When in doubt&lt;/h2&gt;
&lt;p&gt;None of this is a productivity claim. I am not telling you agents will make your work twice as fast.&lt;/p&gt;
&lt;p&gt;What I am telling you is this: for the class of problem where you don&apos;t yet know what you want, the cost of finding out has dropped enough to matter. By enough that I now build throwaway drafts on purpose, on a Tuesday afternoon, as a standard part of how I work. That&apos;s the change. That&apos;s the whole pitch.&lt;/p&gt;
&lt;p&gt;The framing of &quot;AI = speed&quot; has been making me crazy because it sets up a thing to argue about that isn&apos;t the interesting thing. The interesting thing is that we now have a tool that makes the second-draft possible at the level of the individual engineer. We used to need a team of ten and an eighteen-month roadmap to rewrite something. Now I can rewrite it on a Tuesday afternoon, knowing what I know on Tuesday, not what I thought I knew on Monday morning.&lt;/p&gt;
&lt;p&gt;So when in doubt: just build it twice.&lt;/p&gt;</content:encoded></item><item><title>Your AI wrote a bug</title><link>https://www.birdcar.dev/writing/your-ai-wrote-a-bug/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/your-ai-wrote-a-bug/</guid><description>52 bug-fix loops in 6 months, and why the &apos;10x developer&apos; narrative is missing the point</description><pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I&apos;d been using Claude Code for about a week when I asked it to scaffold a Laravel authentication module. It generated the routes, the controllers, the middleware, the views. Clean code. Well-structured. Proper separation of concerns. I skimmed it, nodded, ran the tests.&lt;/p&gt;
&lt;p&gt;Green across the board. I pushed to staging, opened the browser, typed in credentials, and watched it redirect me to a 500 error. The middleware was checking for a session token that the login controller never set. The tests passed because the test helper bypassed middleware entirely.&lt;/p&gt;
&lt;p&gt;I fixed it in ten minutes. But the thing that stuck with me wasn&apos;t the bug. It was how convinced I&apos;d been, for about thirty seconds, that the AI had just written a flawless auth system. The code &lt;em&gt;looked&lt;/em&gt; right. The tests &lt;em&gt;said&lt;/em&gt; it was right. The only thing that caught the problem was actually trying to log in.&lt;/p&gt;
&lt;p&gt;I want to tell you this was a one-time thing, that I learned my lesson and it never happened again.&lt;/p&gt;
&lt;p&gt;It happened 51 more times.&lt;/p&gt;
&lt;h2&gt;The story we tell ourselves&lt;/h2&gt;
&lt;p&gt;There&apos;s a narrative around AI coding assistants that goes something like this: developer installs AI tool, developer becomes dramatically more productive, developer ships features at speed no human could match, developer is now a 10x engineer. The AI companies tell this story. The tech press tells this story. The LinkedIn thought leaders &lt;em&gt;love&lt;/em&gt; this story.&lt;/p&gt;
&lt;p&gt;And it&apos;s true, in the same way that saying &quot;a car goes 80 miles per hour&quot; is true. It omits the traffic, the fuel stops, the wrong turns, the flat tire in New Mexico, and the hour you spent in a rest stop parking lot arguing with Google Maps. The destination speed is real. The journey speed is different.&lt;/p&gt;
&lt;p&gt;I&apos;ve been &lt;a href=&quot;/writing/six-months-talking-to-a-machine/&quot;&gt;tracking my Claude Code usage&lt;/a&gt; for six months now. Buried in those almost four thousand prompts are 52 distinct bug-fix loops. Moments where Claude Code generated something, I accepted it, and then reality intervened. That&apos;s roughly one bug for every 75 prompts, or about two per week. Some were trivial. Some cost me hours.&lt;/p&gt;
&lt;p&gt;Let me stop telling you the productivity story. Let me tell you the bug story instead.&lt;/p&gt;
&lt;h2&gt;What actually happens&lt;/h2&gt;
&lt;p&gt;A bug-fix loop, as I&apos;ve come to think of it, follows a depressingly predictable pattern.&lt;/p&gt;
&lt;p&gt;I ask Claude Code to build something. It builds it. The output looks reasonable. If there are tests, they pass. I move on to the next thing. Then something breaks, or I notice an edge case, or a real user hits a path the tests don&apos;t cover. I go back. I read the code Claude Code wrote, often for the first time with real attention. I find the problem. I explain it. Claude Code fixes it. Sometimes it introduces a new problem in the fix. Sometimes the fix is perfect. Sometimes I fix it myself because explaining the issue would take longer than changing two lines.&lt;/p&gt;
&lt;p&gt;The 52 loops break down roughly like this: about 20 were genuine logic errors where the generated code did the wrong thing. About 15 were integration failures where the code worked in isolation but broke when connected to real systems, databases, APIs, authentication layers. About 10 were subtle specification mismatches where Claude Code built what I asked for instead of what I meant. The rest were edge cases that nobody would catch without production traffic.&lt;/p&gt;
&lt;figure class=&quot;bfm-figure&quot; data-width=&quot;wide&quot; data-kind=&quot;chart&quot; data-src=&quot;./data/bug-fix-loops.json&quot; data-type=&quot;bar&quot;&gt;&lt;img src=&quot;./data/bug-fix-loops.json&quot; alt=&quot;&quot;&gt;&lt;figcaption&gt;Most loops were logic and integration failures, not edge cases.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;None of these are surprising. They&apos;re the same bugs humans write. The difference is in the &lt;em&gt;feeling&lt;/em&gt;. When I write a bug myself, I have a mental model of the code that includes the bug. I know what I was thinking when I wrote it, so I can reason about where the thinking went wrong. When Claude Code writes a bug, I don&apos;t have that mental model. I have to build it retroactively, reading code I didn&apos;t write to understand decisions I didn&apos;t make. That&apos;s closer to debugging a colleague&apos;s code than debugging your own, and it requires a different set of skills.&lt;/p&gt;
&lt;h2&gt;The gap in the mental model&lt;/h2&gt;
&lt;p&gt;This is the part I keep circling back to.&lt;/p&gt;
&lt;p&gt;When you write code by hand, the bugs are yours. You understand them because you built the context they live in. When you direct an AI to write code, the bugs are still yours (you shipped them), but you lack the construction context. You&apos;re responsible for code you didn&apos;t think through, and the debugging requires you to think through it after the fact. You&apos;re held to account for decisions you never made.&lt;/p&gt;
&lt;p&gt;In practice, this means AI-assisted development isn&apos;t faster in the way people think it is. The generation step is faster, yes. The code appears in seconds. But the verification step expands to fill the time the generation step saved. I don&apos;t spend less total time per feature. I spend the time differently: less on writing, more on reading. Less on construction, more on inspection. Less on &quot;does this compile&quot; and more on &quot;does this actually do what I need it to do.&quot;&lt;/p&gt;
&lt;p&gt;My dozens of scope-expansion follow-ups tell the same story from a different angle. These are prompts where I said &quot;also add X&quot; or &quot;can you also handle Y&quot; after Claude Code delivered something that technically met the spec but missed the fuller picture. The AI did what I asked. I hadn&apos;t asked for enough. The cost of underspecification is real, and it compounds, because each &quot;also add&quot; builds on a codebase that was designed without the addition in mind.&lt;/p&gt;
&lt;h2&gt;What the numbers actually show&lt;/h2&gt;
&lt;p&gt;If I&apos;m honest about what six months of data tells me, it&apos;s this: AI coding assistants make the easy parts trivially easy and leave the hard parts exactly as hard as they were.&lt;/p&gt;
&lt;aside class=&quot;bfm-callout bfm-callout--key&quot; role=&quot;note&quot; data-callout-type=&quot;key&quot;&gt;&lt;span class=&quot;bfm-callout-title&quot;&gt;Key takeaway&lt;/span&gt;&lt;p&gt;The generation step got faster. The verification step expanded to fill the time the generation step saved. The total time per feature didn&apos;t move much; the bottleneck did.&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;Scaffolding a project? Trivial. Generating boilerplate? Instant. Writing tests for well-defined functions? Handled. Converting a Python script to TypeScript? Fifteen minutes, and honestly pretty good. These are the tasks that take time but don&apos;t take &lt;em&gt;thought&lt;/em&gt;, and the AI eats them for breakfast.&lt;/p&gt;
&lt;p&gt;Designing an architecture that will hold up under real usage? Exactly as hard. Catching the integration bug that only manifests when two subsystems interact under load? Harder, actually, because you have less intuition about code you didn&apos;t write. Knowing when the generated code is subtly wrong in a way the tests won&apos;t catch? That&apos;s a skill, and it&apos;s a new skill, and nobody&apos;s teaching it.&lt;/p&gt;
&lt;p&gt;The 10x claim measures the easy parts. &quot;Look how fast I generated this CRUD API!&quot; Yes, you did. The CRUD API was never the bottleneck. The bottleneck was understanding the domain well enough to know which CRUD operations your users actually need, and what happens when two of them run concurrently, and where the validation belongs, and which error messages are helpful versus which ones will &lt;a href=&quot;/writing/your-metrics-are-bullshit/&quot;&gt;generate support tickets&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Those questions didn&apos;t get easier. They got more important, because the AI removed all the other reasons to slow down and think.&lt;/p&gt;
&lt;h2&gt;The skill nobody&apos;s measuring&lt;/h2&gt;
&lt;p&gt;I don&apos;t have a clean name for the competency that actually matters here. It&apos;s the ability to read AI-generated code critically, to spot the structural weaknesses, the false-positive test suites, the integration gaps, the specification mismatches. Before AI assistants, code review was something you did to other people&apos;s work. Now it&apos;s something you do to your own, constantly, because the &quot;other person&quot; generated your implementation and you need to verify it.&lt;/p&gt;
&lt;p&gt;The developers who are genuinely more productive with AI tools aren&apos;t the ones who accept the output. They&apos;re the ones who&apos;ve gotten fast at &lt;em&gt;reading&lt;/em&gt; the output, knowing where the seams are, and testing the seams before they ship.&lt;/p&gt;
&lt;p&gt;I&apos;m still learning this. Fifty-two bugs in six months means I&apos;m catching about two per week &lt;em&gt;after&lt;/em&gt; they&apos;ve gotten past my initial review. The ones I catch before they land, I don&apos;t count. I&apos;m getting better at the before-they-land part, but better is relative, and the bugs are real.&lt;/p&gt;
&lt;h2&gt;What I&apos;d tell someone starting out&lt;/h2&gt;
&lt;p&gt;Don&apos;t trust green tests. Run the thing. Click the buttons. Hit the endpoints. The tests might be testing the wrong assertion, or bypassing the layer where the bug lives, or passing because the test helper sets up state that production never will.&lt;/p&gt;
&lt;p&gt;Don&apos;t skip reading the code. The thirty seconds you save by not reading the implementation will cost you two hours when the bug surfaces in staging. AI-generated code is not self-documenting. It&apos;s plausible-looking, which is more dangerous.&lt;/p&gt;
&lt;p&gt;Expect the iteration. Budget for it. Your first prompt will get you 80% of the way there, and the remaining 20% will take 80% of the time. This is just the Pareto principle wearing a new hat, and it applies to AI-assisted development the same way it applies to everything else.&lt;/p&gt;
&lt;p&gt;The AI didn&apos;t make you a 10x developer. It made you a developer who generates code at 10x speed and verifies it at 1x speed. The bottleneck moved to you, to your ability to read what was generated and know whether it&apos;s right. If that sounds less exciting than the LinkedIn version, it&apos;s because it is. It&apos;s also true, and true is more useful than exciting when you&apos;re staring at a 500 error in staging wondering why the test suite is green.&lt;/p&gt;</content:encoded></item><item><title>The tools that build the tools</title><link>https://www.birdcar.dev/writing/the-tools-that-build-the-tools/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/the-tools-that-build-the-tools/</guid><description>The productivity gains from AI coding tools are real. The hidden overhead is also real. Here&apos;s what happens when you try to fix it.</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;aside class=&quot;bfm-aside&quot;&gt;&lt;p class=&quot;aside__title&quot;&gt;Epigraph&lt;/p&gt;&lt;p&gt;We shape our tools and thereafter our tools shape us.&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;You install an AI coding assistant. You type a prompt. It writes some code. You fix the parts it got wrong. You type another prompt. This is the loop, and for most people it stays the loop forever. Prompt, generate, fix, repeat.&lt;/p&gt;
&lt;p&gt;I did this for about three months. It was useful. I built things faster than I would have alone. I explored codebases I didn&apos;t know. I generated documentation nobody else was going to write. The tool was good at its job, and I was good at asking it to do that job, and that was the whole story.&lt;/p&gt;
&lt;p&gt;Then in December something shifted, and the story stopped being about a tool and started being about a system.&lt;/p&gt;
&lt;h2&gt;Thirty-three skills and a problem I didn&apos;t know I had&lt;/h2&gt;
&lt;p&gt;I now have a custom skill ecosystem inside Claude Code. Custom slash commands that trigger multi-step workflows. Custom agents that handle specialized tasks. Custom hooks that enforce rules before and after every tool call. If I type &lt;code&gt;/commit&lt;/code&gt;, it doesn&apos;t just commit. It runs a semantic analysis of the changes, generates a conventional commit message, validates it against the project&apos;s style, runs pre-commit hooks, and only then creates the commit. If I type &lt;code&gt;/new-post&lt;/code&gt;, it loads my writing voice profile, selects a narrative framework from a catalog of 25, walks through a structured content pipeline, runs a humanization audit against an AI-slop blacklist, and writes a blog post to the right file path with correct frontmatter.&lt;/p&gt;
&lt;p&gt;This sounds like overengineering. It probably is overengineering, depending on who&apos;s counting. But the economics changed in a way I didn&apos;t anticipate.&lt;/p&gt;
&lt;h2&gt;What is: life without skills&lt;/h2&gt;
&lt;p&gt;Before the ecosystem, every session with Claude Code started from zero context. I&apos;d open a project, explain what I was working on, remind it of the conventions, specify the file paths, describe the output format I wanted. Every. Single. Time.&lt;/p&gt;
&lt;p&gt;For a customer reply at work, this meant: find the relevant codebase, search for the API endpoint, read the implementation, check the public docs, cross-reference with any recent changes, understand the customer&apos;s specific configuration, and then draft a response in the right voice for a developer audience. That&apos;s forty minutes of context-building before I write a single sentence.&lt;/p&gt;
&lt;p&gt;For a blog post, this meant: explain my writing voice, describe the narrative structure I wanted, list the things I didn&apos;t want (no em dashes, no &quot;delve&quot;, no thesis-at-the-top), specify the frontmatter format, point to example posts. Every time. The same instructions, rephrased slightly, hoping this time it would stick.&lt;/p&gt;
&lt;p&gt;The repetition wasn&apos;t Claude Code&apos;s fault. It&apos;s an LLM. It doesn&apos;t remember. But the repetition was my problem, and I was spending 20-30% of my working time on it.&lt;/p&gt;
&lt;h2&gt;What could be: the first skill&lt;/h2&gt;
&lt;p&gt;The first skill I built was &lt;code&gt;/customer-reply&lt;/code&gt;. It&apos;s a workflow that researches across the codebase at work, Slack threads, Zendesk tickets, and public docs, then drafts a response in my voice. I spent maybe three hours building it. It runs in under two minutes now, and the output is good enough that I edit rather than rewrite.&lt;/p&gt;
&lt;p&gt;Three hours of investment. Two minutes per use. I send maybe 10-15 customer replies per week. The math is trivially obvious in retrospect, but I didn&apos;t think of it as math at the time. I built the skill because I was annoyed by the repetition, not because I&apos;d calculated the ROI.&lt;/p&gt;
&lt;p&gt;But after that first skill worked, something clicked. The repetition wasn&apos;t just annoying. It was a tax on every session, and the tax was compounding because I was using Claude Code more every week.&lt;/p&gt;
&lt;h2&gt;What is: the hidden cost of unstructured AI work&lt;/h2&gt;
&lt;p&gt;This is the part most people don&apos;t see. The productivity story around AI coding assistants focuses on the generation: how fast it writes code, how many lines per minute, how it compares to a human. Nobody measures the overhead.&lt;/p&gt;
&lt;p&gt;I went back through my history and looked at prompts that were pure setup. Context-setting and convention-reminding prompts that didn&apos;t produce any artifact. They were 15-20% of my total prompts in October and November. By January, as I used Claude Code for more complex tasks, the percentage was climbing toward 25%. A quarter of my prompts were about telling the tool how to do its job, not about the job itself.&lt;/p&gt;
&lt;p&gt;This is the same pattern I&apos;ve &lt;a href=&quot;/writing/your-metrics-are-bullshit/&quot;&gt;written about in support organizations&lt;/a&gt;. The metric that looks good (prompts per day, tickets per hour) hides the metric that matters (what percentage of effort goes to the actual work versus the machinery around it). The volume goes up, and you feel productive, and the overhead goes up too, and you don&apos;t notice because you&apos;re busy feeling productive.&lt;/p&gt;
&lt;h2&gt;What could be: the multiplier nobody&apos;s measuring&lt;/h2&gt;
&lt;p&gt;After &lt;code&gt;/customer-reply&lt;/code&gt;, I built &lt;code&gt;/commit&lt;/code&gt;, &lt;code&gt;/new-post&lt;/code&gt;, &lt;code&gt;/review-pr&lt;/code&gt;. Then I started building skills for skills: a skill-forge that generates new skills from brain dumps, a skill-validator that checks quality, a skill-optimizer that improves descriptions for better trigger accuracy. Meta-tools. Tools that build tools.&lt;/p&gt;
&lt;p&gt;My skill usage went from 1% of prompts in October to 30% at peak in February. That 30% isn&apos;t just &quot;I used a shortcut instead of typing a long prompt.&quot; Each skill invocation replaces a sequence of 5-15 prompts that would have included the context-setting, the convention-reminding, the format-specifying overhead. The compression ratio is roughly 10:1 when you account for everything a skill encodes.&lt;/p&gt;
&lt;p&gt;The part I didn&apos;t anticipate: the overhead didn&apos;t just shrink. It moved. Instead of spending 25% of my time telling Claude Code how to do things, I spend maybe 5% of my time maintaining and improving the skills that tell it for me. The maintenance is also more pleasant, because it&apos;s a design problem (how do I encode my preferences?) rather than a repetition problem (how do I say the same thing again?).&lt;/p&gt;
&lt;h2&gt;What is: the obstacle nobody talks about&lt;/h2&gt;
&lt;p&gt;The obstacle is this: building an AI skill ecosystem requires the same kind of systems thinking that most people using AI assistants don&apos;t think they need. You have to notice the patterns in your own work. You have to identify which repetitions are worth encoding and which are one-offs. You have to design abstractions over your own workflows, which means understanding your workflows well enough to see their shape. And then you have to sit down and build something, which is slower than just typing the same prompt again.&lt;/p&gt;
&lt;p&gt;Most developers can do this. It&apos;s the same skill as refactoring code: spot the duplication, extract the pattern, parameterize the variation. But most developers don&apos;t think to apply it to their AI interactions because the AI interaction feels like a conversation, not a system. You don&apos;t refactor a conversation.&lt;/p&gt;
&lt;p&gt;Except you can. And when you do, the conversation stops being a conversation and starts being an interface, a programmable surface that you shape to match how you actually work.&lt;/p&gt;
&lt;h2&gt;The flywheel&lt;/h2&gt;
&lt;p&gt;The reason this compounds isn&apos;t just time savings. It&apos;s that each skill I build teaches Claude Code more about how I work, which makes the next skill easier to build, which means I build more skills, which means Claude Code knows more about how I work. The context I used to provide manually is now encoded permanently. The conventions I used to repeat are now enforced automatically. The workflows I used to manage in my head are now executable.&lt;/p&gt;
&lt;p&gt;In February, I built a blog post from brain dump to finished draft in 45 minutes. Not because Claude Code is fast at writing. Because the skill encoded my voice, my narrative preferences, my formatting rules, my quality checks, and my file structure. I wasn&apos;t directing a generative model. I was running a pipeline that happened to use a generative model as one of its components.&lt;/p&gt;
&lt;p&gt;That&apos;s the shift. You go from &lt;em&gt;using an AI tool&lt;/em&gt; to &lt;em&gt;building a system that uses an AI tool&lt;/em&gt;. The tool gets better because you made it better, not because the model improved. The next model improvement will compound on top of what you&apos;ve already built, rather than starting from scratch.&lt;/p&gt;
&lt;p&gt;I don&apos;t think most people using AI coding assistants will build a 33-skill ecosystem. I don&apos;t think they need to. But I think the gap between &quot;I use Claude Code&quot; and &quot;I&apos;ve built workflows on Claude Code&quot; is going to be the gap that separates productive AI-assisted developers from the rest. Not prompt engineering. Not model selection. Whether you&apos;re using the tool, or whether you&apos;ve made the tool yours.&lt;/p&gt;</content:encoded></item><item><title>Six months of talking to a machine</title><link>https://www.birdcar.dev/writing/six-months-talking-to-a-machine/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/six-months-talking-to-a-machine/</guid><description>What 4,000 prompts taught me about the thing I was actually learning</description><pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I keep a file called &lt;code&gt;history.jsonl&lt;/code&gt; on my laptop. I didn&apos;t put it there. Claude Code did, logging every prompt I&apos;ve sent since October. The other day I counted the lines: 3,976. Six months, almost four thousand requests, across a dozen projects and at least five programming languages. That&apos;s roughly 23 prompts per day if you average it, though &lt;a href=&quot;/writing/your-metrics-are-bullshit/&quot;&gt;averages lie&lt;/a&gt;, and I should know better than to trust them.&lt;/p&gt;
&lt;figure class=&quot;bfm-figure&quot; data-width=&quot;wide&quot; data-kind=&quot;chart&quot; data-src=&quot;./data/six-months-prompts.json&quot; data-type=&quot;line&quot;&gt;&lt;img src=&quot;./data/six-months-prompts.json&quot; alt=&quot;&quot;&gt;&lt;figcaption&gt;Monthly prompt count, October through March.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;I wasn&apos;t looking for this file. I was looking for something else entirely, the way you find an old journal in a drawer when you&apos;re hunting for a screwdriver. But once I started reading, I couldn&apos;t stop. Not because the prompts were interesting on their own. Most of them are mundane. But the &lt;em&gt;shape&lt;/em&gt; of them, the way they change from October to March, told a story I hadn&apos;t noticed while I was living it.&lt;/p&gt;
&lt;h2&gt;The long-message era&lt;/h2&gt;
&lt;p&gt;My first prompts average almost 300 characters. That&apos;s roughly two solid sentences, sometimes three. They&apos;re polite, contextual, and careful. &quot;Given the database schema located in &apos;./packages/api/db/data/schema.sql&apos;, generate a mermaidjs diagram explaining the database entity structure and all relationships.&quot; I&apos;m specifying file paths. I&apos;m explaining what I want and why. I&apos;m framing the task before delegating it.&lt;/p&gt;
&lt;p&gt;Reading them now, they sound like emails to a new contractor. Here&apos;s the work, here&apos;s where to find things, here&apos;s what I need back. There&apos;s a formality to it, a hedging, that I recognize from every first week at a new job. You over-explain because you haven&apos;t calibrated trust yet. You don&apos;t know what the other party knows, so you fill the gaps preemptively.&lt;/p&gt;
&lt;p&gt;October and November were almost entirely exploration. &quot;Tell me about the service in this directory.&quot; &quot;Explain how it gets configured for an end user.&quot; I was mapping territory, using Claude Code the way I&apos;d use a senior engineer who happened to have read every file in the codebase. The questions were genuine. The answers were useful. But I was doing the thing people do when they get a new tool: I was testing it, not trusting it.&lt;/p&gt;
&lt;h2&gt;Something shifts in December&lt;/h2&gt;
&lt;p&gt;Thirty-three prompts in October. Six in November. Then almost 200 in December and nearly 900 in January. The volume change is dramatic, but the character of the prompts shifts in a way the numbers don&apos;t capture. My December prompts start telling Claude Code to &lt;em&gt;build&lt;/em&gt; things. Not explain, not describe, not diagram. Build. &quot;Create a plugin that does X.&quot; &quot;Generate tests for Y.&quot; &quot;Scaffold this project.&quot;&lt;/p&gt;
&lt;p&gt;I don&apos;t remember making a conscious decision to change how I worked. That&apos;s what interests me about reading the history. The shift happened gradually, prompt by prompt, as I accumulated evidence that the tool could carry more weight. There wasn&apos;t a moment where I thought &quot;okay, I trust this now.&quot; There was just a slow erosion of the hedging. I stopped specifying file paths for things it already knew about. I stopped explaining context it could infer. I started writing prompts that assumed a shared understanding we&apos;d built over weeks.&lt;/p&gt;
&lt;p&gt;By January I&apos;m building a &lt;a href=&quot;/writing/the-tools-that-build-the-tools/&quot;&gt;plugin ecosystem&lt;/a&gt;. Custom skills, custom commands, custom hooks. I&apos;m not asking Claude Code to help me do my work. I&apos;m asking it to help me build tools that change how I do my work. That&apos;s a different relationship entirely.&lt;/p&gt;
&lt;h2&gt;Trust encodes as brevity&lt;/h2&gt;
&lt;p&gt;By March my average prompt is about 150 characters. Half the length of October. A third of my prompts are under 50 characters. &quot;fix the tests.&quot; &quot;use the commit skill.&quot; &quot;check types.&quot; Some of them are just slash commands, five characters invoking a workflow I spent hours designing in January.&lt;/p&gt;
&lt;p&gt;The popular narrative is that prompt engineering is a skill you learn, a set of techniques you apply, a craft you refine. And maybe it is, for people using ChatGPT for one-off questions. But in a sustained working relationship with a coding assistant, what actually happens is closer to what happens with any colleague: you develop shared context, and the shared context makes the communication shorter.&lt;/p&gt;
&lt;p&gt;I started writing paragraph-length messages to a stranger. I ended sending five-word commands to a collaborator. The compression isn&apos;t laziness. It&apos;s trust.&lt;/p&gt;
&lt;h2&gt;The work migrates&lt;/h2&gt;
&lt;p&gt;Something happened that I didn&apos;t expect, and I&apos;m still working through what it means.&lt;/p&gt;
&lt;p&gt;In October I was using Claude Code to understand code. In March I was using it to build tools that build tools. The ratio of &quot;explain this to me&quot; to &quot;build this for me&quot; inverted completely. But the skills I&apos;m exercising as a developer haven&apos;t atrophied. If anything, they&apos;ve shifted upward. I spend less time writing boilerplate and more time thinking about system design. Less time debugging syntax and more time debugging architecture.&lt;/p&gt;
&lt;p&gt;The work doesn&apos;t disappear. It migrates. I used to spend an hour writing a test suite. Now I spend that hour deciding what the test suite needs to prove. I used to spend a morning scaffolding a project. Now I spend that morning designing the project&apos;s constraints.&lt;/p&gt;
&lt;p&gt;I notice this most in the burst projects. I built a full-stack salary negotiation tool in two and a half days. A working fine-grained authorization demo with role hierarchies, resource policies, and a live permissions playground in two days. These aren&apos;t prototypes or proof-of-concepts. They&apos;re applications with real data models, real auth flows, real UI. The prompt counts (about 150 and 100, respectively) just show the scale of the conversation, not the thing that mattered. What mattered was that I was thinking at the architectural level the entire time, deciding what the app needed to &lt;em&gt;be&lt;/em&gt; rather than wrestling with how to make it &lt;em&gt;work&lt;/em&gt;. I&apos;m not faster because Claude Code types for me. I&apos;m faster because I can hold the whole system in my head and direct its construction without the cognitive interruption of implementation details.&lt;/p&gt;
&lt;h2&gt;What I&apos;m not sure about&lt;/h2&gt;
&lt;p&gt;I want to be honest about the parts I haven&apos;t figured out.&lt;/p&gt;
&lt;p&gt;I worry about the exploration I&apos;m not doing. When I wrote code by hand, I stumbled into things. I&apos;d be implementing a feature and notice an edge case, or discover a library function I didn&apos;t know existed, or realize the data model was wrong in a way that only became visible when I tried to wire things up. Some of my best architectural insights came from the friction of implementation. When you delegate the friction, do you lose the insights?&lt;/p&gt;
&lt;p&gt;I don&apos;t know. The history file is full of &lt;a href=&quot;/writing/your-ai-wrote-a-bug/&quot;&gt;bug-fix loops&lt;/a&gt;, moments where Claude Code did the thing wrong and I had to dig in and course-correct. Those moments are still learning moments. But they&apos;re reactive, not exploratory. I&apos;m finding bugs, not finding ideas.&lt;/p&gt;
&lt;p&gt;There&apos;s also the language question. I&apos;ve written meaningful code in Laravel, Next.js, Python, and Rust over these six months. That&apos;s a breadth I wouldn&apos;t have attempted without an AI assistant. But the depth is different. I can direct a Rust implementation. I can read one. Can I &lt;em&gt;think&lt;/em&gt; in Rust? I&apos;m not sure I can, and I&apos;m not sure this tool is teaching me to. It&apos;s teaching me to think &lt;em&gt;about&lt;/em&gt; Rust, which is useful but isn&apos;t the same thing.&lt;/p&gt;
&lt;h2&gt;What the history file actually shows&lt;/h2&gt;
&lt;p&gt;Counting lines in a file is a productivity story, and on the surface this is one. Four thousand prompts, a dozen projects, measurable compression in communication overhead. The numbers are real.&lt;/p&gt;
&lt;p&gt;But that&apos;s not what the history file actually shows. What it shows is a relationship forming. The gradual accumulation of shared context. The slow calibration of trust. The shift from formal requests to shorthand. The evolution from &quot;help me understand this&quot; to &quot;help me build this&quot; to &quot;you know what to do.&quot; These are the same patterns you see in any productive working relationship. The medium is different. The dynamics are not.&lt;/p&gt;
&lt;p&gt;I think about this when people ask me whether AI coding tools are worth adopting. The question assumes the value is in the output, the code produced, the tasks completed. And the output is real. But the more interesting thing is what happens to &lt;em&gt;you&lt;/em&gt; over six months of sustained collaboration. How you think changes. What you spend your attention on changes. The boundary between your ideas and your implementation dissolves in a way that is genuinely new, at least to me, in twenty years of writing software.&lt;/p&gt;
&lt;p&gt;I don&apos;t know what the next six months look like. My March prompts are already so compressed that there&apos;s not much room left to shorten them. The skill ecosystem I&apos;ve built is sophisticated enough that I&apos;m maintaining it more than extending it. Maybe the next phase is something I can&apos;t predict from the current trajectory, the way October-me couldn&apos;t have predicted the plugin ecosystem of January.&lt;/p&gt;
&lt;p&gt;I&apos;ll keep counting the lines, though. The file keeps growing, and the shape of it keeps telling me things I didn&apos;t know I was learning.&lt;/p&gt;</content:encoded></item><item><title>The other side of empathy</title><link>https://www.birdcar.dev/writing/the-other-side-of-empathy/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/the-other-side-of-empathy/</guid><description>The costs we sweep under the rug while we grin and bear the emotional labor of being an organization&apos;s nervous system</description><pubDate>Wed, 25 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;aside class=&quot;bfm-aside&quot;&gt;&lt;p class=&quot;aside__title&quot;&gt;About this post&lt;/p&gt;&lt;p&gt;This post is adapted from a talk I gave at an Elevate CX conference in the fall of 2024. I&apos;ve restructured it for the page, but the core argument and most of the language are preserved from the original.&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;I&apos;m not going to tell you empathy is bad.&lt;/p&gt;
&lt;p&gt;I want to be clear about that up front because I know what it looks like when a white dude in tech gets up and starts poking at empathy. You&apos;re expecting me to recommend &lt;em&gt;Radical Candor&lt;/em&gt; or &lt;em&gt;The Hard Thing About Hard Things&lt;/em&gt; or one of the other books recommended by people who want to wrap their assholery in a veneer of &quot;tough love&quot; or &quot;misunderstood genius.&quot; I am not that guy. I do not think &quot;all these feelings&quot; have ruined the workplace. I&apos;m aware that there are power dynamics at play, almost all of which have been designed to benefit me rather than limit me.&lt;/p&gt;
&lt;p&gt;I promise: I am not saying &quot;screw empathy, everyone should toughen up and be jaded like me.&quot;&lt;/p&gt;
&lt;p&gt;But.&lt;/p&gt;
&lt;p&gt;But but but.&lt;/p&gt;
&lt;p&gt;I think we need to talk about empathy. Specifically, I want to talk about the &lt;em&gt;other&lt;/em&gt; side of it. The costs we sweep under the rug while we grin and bear the emotional labor of being an organization&apos;s nervous system.&lt;/p&gt;
&lt;h2&gt;The neurodivergent pastime of googling &quot;Am I a sociopath?&quot;&lt;/h2&gt;
&lt;p&gt;Too real? Am I alone there?&lt;/p&gt;
&lt;p&gt;I had a really hard time in my early career. I found myself repeatedly running into confusing situations where I was unable to understand what was being asked of me. I really, deeply cared about fixing things for customers. I wanted them to enjoy and be excited about whatever product I was working on, whatever new feature I thought was cool. I wanted to help them get the most out of it. And I was good at it.&lt;/p&gt;
&lt;p&gt;But I found myself regularly annoyed at people who, in retrospect, were just having feelings I hadn&apos;t been allowed to have growing up. The hypo-sensitivity (and in some cases &lt;em&gt;in&lt;/em&gt;sensitivity and resentment) I&apos;d been gifted meant that it was genuinely hard for me to understand how emotions came into play for customers, co-workers, bosses, or even myself.&lt;/p&gt;
&lt;p&gt;Over and over again I&apos;d get feedback like: &quot;You&apos;re killing it! You&apos;re thorough, good at explaining things, clearly passionate, easy to listen to... could you be nicer when you talk to customers? I think you need to focus on empathy.&quot;&lt;/p&gt;
&lt;p&gt;For the record, they were right. I absolutely needed to work on that. But it left this constant question rattling around in my head:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why do I feel like some kind of exception? Why does it seem like everyone here just naturally feels things for customers, sees that as a core piece of being good at this work, and I don&apos;t?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I started to heal a bit. Let go of the resentment, anger, and criticism I was holding onto. Started to connect with people and get even better at my job, to say nothing of my actual relationships. The imposter feelings started to subside. They were replaced by a new thought I couldn&apos;t stop chewing on:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why does it feel like everyone is so deeply exhausted?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;We&apos;re all trying to find the guy that burnt us out&lt;/h2&gt;
&lt;p&gt;In trying to answer that question, I&apos;ve discovered a curious thing: support people, more than most, seem to be angry. At everything. Angry at our tools. Angry at our leadership. Angry at the industry. Angry at the decisions our team is making. Angry at the decisions other teams are making. Angry at each other. Angry at nothing in particular.&lt;/p&gt;
&lt;p&gt;And yet, I&apos;ve found that support people are the least likely to &lt;em&gt;know&lt;/em&gt; that what they&apos;re feeling is anger.&lt;/p&gt;
&lt;p&gt;We&apos;re not really allowed to be angry. Some of us might have never been allowed to be angry, even in our personal lives. We&apos;re professional empaths. We&apos;ve built our entire identity on caring really hard about our customers, about the products we support, and about the people we work with. We hire for it, evaluate it constantly, and use &quot;empathy&quot; as a kind of thought-terminating cliche to correct others or ourselves if we ever let the mask slip too far.&lt;/p&gt;
&lt;p&gt;The problem is that when anger doesn&apos;t have a place to go, when it&apos;s pushed down or ignored, it shows up as exhaustion. Deep, crushing, unbelievable exhaustion and hurt.&lt;/p&gt;
&lt;p&gt;Think about whether any of these resonate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You&apos;re deeply, deeply tired, in a way that sleep doesn&apos;t fix.&lt;/li&gt;
&lt;li&gt;You&apos;ve felt personally victimized by a seemingly innocuous decision at work.&lt;/li&gt;
&lt;li&gt;You fantasize about certain coworkers or leaders realizing they were wrong about some decision and apologizing earnestly.&lt;/li&gt;
&lt;li&gt;You&apos;ve been emotionally hijacked, unable to let things go even when you&apos;ve already voiced your position and been outvoted.&lt;/li&gt;
&lt;li&gt;You&apos;ve found it hard to let go of those arguments &lt;em&gt;even after you&apos;ve left the company where you were having them&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;You swing wildly between feeling numb and feeling overwhelmed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything I&apos;ve just described are textbook symptoms of empathy burnout, and we&apos;ve got it bad. Not just as individuals, but as a community and career path.&lt;/p&gt;
&lt;p&gt;We&apos;ve told people they need to be empathetic, but we&apos;ve given very little support or clarity on how to manage empathy sustainably. We spend almost no time acknowledging how power imbalances and bad-faith actors affect and complicate our centering of empathy.&lt;/p&gt;
&lt;p&gt;In over a decade in this space, I&apos;ve heard no serious discussion of when apathy, distance, boundaries, anger, or other &quot;negatively&quot; coded emotions should be allowed or even encouraged. We implicitly discourage considering those emotions as valid or useful in our work.&lt;/p&gt;
&lt;p&gt;We&apos;ve built our identities, our teams, and in some cases our professional morality on being endlessly empathetic caretakers. And when we find ourselves collectively destroyed by that approach, we find fresh people to take on the role.&lt;/p&gt;
&lt;h2&gt;&quot;How are you so calm right now?&quot;&lt;/h2&gt;
&lt;p&gt;So what do we do? We can&apos;t keep exhausting ourselves, but we also can&apos;t stop caring. Empathy &lt;em&gt;is&lt;/em&gt; important to our work. But it&apos;s draining us. What do we actually change?&lt;/p&gt;
&lt;p&gt;I&apos;m not going to pretend to have all the answers. But over years spent both finding my own niche in this profession and learning from some truly gifted leaders and colleagues, I&apos;ve arrived at three questions I think are worth using as a starting point.&lt;/p&gt;
&lt;h3&gt;Who&apos;s your focus?&lt;/h3&gt;
&lt;p&gt;The first thing we do is stop pretending we can focus our empathy indiscriminately on everyone. It&apos;s not that you &lt;em&gt;shouldn&apos;t&lt;/em&gt; be empathetic with everyone at a human level in your day-to-day interactions. It&apos;s that the &lt;em&gt;focus&lt;/em&gt; of your caring, your empathetic effort, is going to be limited because you&apos;re a human. To be effective as a person and an organization for the long haul, you need a shared way of triaging your emotional labor.&lt;/p&gt;
&lt;p&gt;One thing I&apos;ve observed over the years: when you start out, the focus of your empathy is easy. It&apos;s the customer in front of you. As you grow in your career, no one comes by to say &quot;your empathy is more effective in this other place now.&quot; By default you keep focusing it on &quot;customers,&quot; but you kind of implicitly change who &quot;customer&quot; means to be &quot;wherever your work queue comes from.&quot;&lt;/p&gt;
&lt;p&gt;If you&apos;re in ops, it&apos;s easy to squint and begin seeing the engineering team as your customers. If you&apos;re in management, it&apos;s easy to see leadership as your customers. The dynamic this creates is that support cares about everyone else, but that energy, focus, and empathy is never returned. And much like a single parent who finally snaps when a child doesn&apos;t refill the ice cube tray, we find ourselves exhausted and resentful.&lt;/p&gt;
&lt;p&gt;So write it down. Role by role:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;In the queue?&lt;/strong&gt; Your empathy focuses on the customer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Working ops?&lt;/strong&gt; Your empathy focuses on the support people working the queue.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In management?&lt;/strong&gt; Your empathy focuses on your team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Senior leadership?&lt;/strong&gt; Your empathy focuses on your org.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ask yourself: &quot;Who is the primary group I&apos;m supposed to focus on?&quot; Once you&apos;ve got that, start filtering the stuff you&apos;re doing by whether it&apos;s for them. Start figuring out how to stop doing the stuff that isn&apos;t.&lt;/p&gt;
&lt;h3&gt;Who should you be fighting?&lt;/h3&gt;
&lt;p&gt;Ok, maybe &quot;fight&quot; scares some people. Let&apos;s say: who&apos;s outside of your area of concern? Who do you advocate to on behalf of your focus group?&lt;/p&gt;
&lt;p&gt;We talk endlessly about empathy, but apathy is just as much a skill and a tool. We need it to be effective.&lt;/p&gt;
&lt;p&gt;Right now, in burnout, your apathy is probably uncontrolled. You feel it because your nervous system is shutting down, and that means sometimes it&apos;s directed at people or problems who actually need your focus.&lt;/p&gt;
&lt;p&gt;After you&apos;ve written down who your focus is, write down the teams you work closely with who are &lt;em&gt;not&lt;/em&gt; your focus. Do it for yourself. Do it role by role in your organization. Create specific exclusions where you get to not care.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;In the queue:&lt;/strong&gt; you advocate to anyone and everyone for the customer, and don&apos;t care about the noise.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In ops:&lt;/strong&gt; you advocate to engineering and product for the queue workers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In management:&lt;/strong&gt; you advocate to other managers and senior leaders for your team.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In senior leadership:&lt;/strong&gt; you advocate to the rest of the leadership team on behalf of Support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Who are you missing?&lt;/h3&gt;
&lt;p&gt;Those first two questions are things you can do right now, personally and with your teams. But the final thing we have to consider: do we have the right people to actually execute on this?&lt;/p&gt;
&lt;p&gt;A side effect of our over-indexing on empathy is that we&apos;re pretty conflict-averse as a crowd. We&apos;re bent heavily towards &quot;fawn&quot; in our stress and trauma responses, and that means we&apos;re not great at direct advocacy. I&apos;d argue that part of the problem with the first two questions isn&apos;t that we don&apos;t &lt;em&gt;know&lt;/em&gt; who we should be focusing on or fighting for. It&apos;s that we&apos;re not great at doing it. We expect the rest of the org to be as empathetic as we are, and we&apos;re not great at pushing back when they&apos;re not.&lt;/p&gt;
&lt;p&gt;The final thing you need to do is ask yourself: do I have the right people to do this? If the answer is no, start looking at your hiring pipeline and focus on people who are a little more comfortable with conflict and advocacy. I&apos;m not saying hire callous assholes. I&apos;m saying that as a profession we need to swing the pendulum back towards a balance of dispositions, not just empaths.&lt;/p&gt;
&lt;h2&gt;Get angry&lt;/h2&gt;
&lt;p&gt;I don&apos;t think anything I&apos;ve said here is groundbreaking. Most of you have probably heard some version of this before, almost certainly from someone smarter. Some of you are actually extremely good at this, and your existence in this space helped me find my own place and figure all of it out.&lt;/p&gt;
&lt;p&gt;But let&apos;s be honest: we&apos;re already burnt out and it&apos;s 2024. Some of us have been laid off multiple times. Some of us spent months looking for work. We&apos;re scared, we&apos;re tired, and the urge to fawn or keep our heads down and keep our jobs by not bothering anyone is strong.&lt;/p&gt;
&lt;p&gt;I get it. But I also know we can&apos;t keep going like this. We can&apos;t keep burning out and then replacing ourselves with fresh people who will burn out in turn. We can&apos;t keep pretending that empathy is the only tool in our toolbox, or that it can be used indiscriminately.&lt;/p&gt;
&lt;p&gt;We need to do something productive with this anger before it consumes us.&lt;/p&gt;
&lt;p&gt;So get angry. Let it out. Fight for yourself, for your team, for support as a profession. Get mad as hell and refuse to take it anymore, then hire reinforcements who can give you the data and tools to do that well.&lt;/p&gt;</content:encoded></item><item><title>Your metrics are bullshit</title><link>https://www.birdcar.dev/writing/your-metrics-are-bullshit/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/your-metrics-are-bullshit/</guid><description>Breaking the doom cycle of support metrics with service level thinking</description><pubDate>Wed, 01 May 2024 00:00:00 GMT</pubDate><content:encoded>&lt;aside class=&quot;bfm-aside&quot;&gt;&lt;p class=&quot;aside__title&quot;&gt;Epigraph&lt;/p&gt;&lt;p&gt;Those who believe that what you cannot quantify does not exist also believe that what you &lt;em&gt;can&lt;/em&gt; quantify, &lt;em&gt;does&lt;/em&gt;.
— The Tyranny of Metrics&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;The companies in this story are not real, but you&apos;ve worked there. The people in this story are not real, but you know them.&lt;/p&gt;
&lt;h2&gt;Welcome to the doom cycle&lt;/h2&gt;
&lt;p&gt;You&apos;re in support at Big Tech Company. You got this job after leaving Starbucks five years ago, worked your way up to senior support employee, and you&apos;re frustrated. Your leaders just told your team there was no new headcount for this year although you&apos;ve lost some key folks and followed that up by increasing weekly ticket quotas by five. When you complain, you&apos;re told to &quot;do more with less.&quot;&lt;/p&gt;
&lt;p&gt;You love the product and enjoy your team, but this is intolerable. You start interviewing.&lt;/p&gt;
&lt;p&gt;An authentication startup that just graduated Y-Combinator, closed its first round of funding, and is making its first &quot;real&quot; support hire looks promising. You get the gig; it&apos;s stressful in the way startups are, but you feel impactful. You&apos;re eight equals working on a product you all believe in. When you talk about customer needs, everyone listens. When there&apos;s debate over a particular solution, you don&apos;t always win, but you feel heard. You build a small team, collecting folks from the diaspora of talent scattered by the company you left, finding new folks who impress you. You&apos;re a team of five or six Support folks doing incredible work. The camaraderie is palpable. You communicate well, you solve problems as a unit. You are experts. You accomplish more as a six-person team than the 20-person team at your previous gig. Success!&lt;/p&gt;
&lt;p&gt;But the gears of the doom cycle are creaking to life.&lt;/p&gt;
&lt;p&gt;Like many catastrophes, it comes in the guise of good news: a $100M A-round! The Engineering and Product teams explode. The user base explodes. And, predictably, so does your support queue. Your response times -- one of the only things you&apos;re measuring -- slip a little, but your team rallies. You know it can&apos;t hold, but are cautiously optimistic.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The queue continues to explode.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You ask for headcount and your founders, aloof and stressed, tell you to hire whoever you need. Your team balloons to 50, and response times drop. You promote a bunch of your first hires. Many are first-time managers; they&apos;re nervous and inexperienced, but want to do a good job.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The queue continues to explode&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Your new folks are struggling to learn and keep up. The glowing online reviews about your company&apos;s support turn nasty. Sales wants to guarantee enterprise customers four-hour resolutions.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The queue continues to explode.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The founders drag you into a meeting; they&apos;re seeing complaints everywhere and they don&apos;t understand. They want ambitious goals and marked improvement. They don&apos;t say &quot;or else,&quot; but you hear it. So you and your managers set the performance metrics you used at your last job: Support Professionals will spend six-ish hours a day in the queue, and two-ish hours on the project work that needs doing in a still-growing organization.&lt;/p&gt;
&lt;p&gt;Slack goes silent as people live in DMs, keeping their heads down. Your managers are frustrated, the numbers still aren&apos;t looking good. Product updates ship and no one tells Support. Your docs are out of date. Your backlog is in the hundreds and growing. You fire some folks who aren&apos;t meeting their ticket quotas, a first for you.&lt;/p&gt;
&lt;p&gt;The numbers stabilize, but it&apos;s still not great. Everyone is frustrated. Everyone is angry. Your first hire leaves, taking a job at a new AI startup as their first support hire.&lt;/p&gt;
&lt;p&gt;As things improve a little, you move a couple of people to focus on docs. You raise the weekly ticket quota by five. Your managers tell you that your team works overtime to keep their numbers looking good. They ask for more headcount.&lt;/p&gt;
&lt;p&gt;You tell them they need to &quot;do more with less.&quot;&lt;/p&gt;
&lt;h2&gt;There are rules, but we consistently break them&lt;/h2&gt;
&lt;p&gt;Was that uncomfortable? A little close to home? I used to think this was how growth works. To get around it, I avoided any company I thought was at the end of the cycle.&lt;/p&gt;
&lt;p&gt;But the doom cycle isn&apos;t inevitable: it&apos;s a known result of misusing metrics.&lt;/p&gt;
&lt;p&gt;There are known and pernicious effects that come from misunderstanding numbers, especially when those numbers measure human effort and determine someone&apos;s continued employment or salary. They&apos;ve been studied for decades across professions, cultures, and economies. There are rules that, when you break them, damage your team and turn people against each other.&lt;/p&gt;
&lt;p&gt;The ways we measure and motivate Support Professionals violate almost all of these rules.&lt;/p&gt;
&lt;h3&gt;Goodhart&apos;s Law&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.&lt;/p&gt;
&lt;p&gt;-- Charles Goodhart (1975. Problems of Monetary Management: The U.K. Experience)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or more simply:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When a measure becomes a target, it ceases to be a good measure.&lt;/p&gt;
&lt;p&gt;-- Marilyn Strathern (1997. Improving ratings&apos;: audit in the British university system)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We often approach support with the false assumption that all customers are broadly the same, so their support expectations are the same. Economics has this flawed idea of a &quot;Homo Economicus,&quot; a universal stand-in for a person who always acts to maximize their self-interest. This person doesn&apos;t exist, and neither does &quot;Homo Customericus.&quot;&lt;/p&gt;
&lt;p&gt;Based on this false belief, we invent &quot;industry standard&quot; benchmarks and expectations that apply to every support team and customer experience, and then use them to set targets for and measure the success of individual Support Professionals. We measure how many tickets a person answers -- something customers don&apos;t know or care about -- as a proxy for their support experience. We measure average handle times, something users don&apos;t care about and which is highly variable. We obsess over finding &quot;magic&quot; single numbers that tell us if our support is good or if a Support Professional is good.&lt;/p&gt;
&lt;p&gt;Goodhart&apos;s law says that when we do that -- when we take some benign observation of how a human-centered system operates and make a specific value of that measurement a target or a goal -- we destroy the usefulness of the observation.&lt;/p&gt;
&lt;h3&gt;Campbell&apos;s Law&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;The more any quantitative social indicator is used for social decision-making, the more subject it will be to corruption pressures and the more apt it will be to distort and corrupt the social processes it is intended to monitor.&lt;/p&gt;
&lt;p&gt;-- Donald T. Campbell (1979. Assessing the impact of planned social change)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When a number determines whether you keep your job, you&apos;ll do anything -- including cheat -- to improve it.&lt;/p&gt;
&lt;p&gt;Support leaders focus a lot on Customer Satisfaction (CSAT) ratings. Almost no one really knows what their company&apos;s real CSAT rating is. Senior leaders get measured by whether that number goes up or down. Cherry-picking ensures it goes in the right direction:&lt;/p&gt;
&lt;p&gt;&quot;Oh, don&apos;t send the satisfaction survey to anyone who&apos;s gotten a refund.&quot;&lt;/p&gt;
&lt;p&gt;&quot;Make sure we don&apos;t send a survey to anyone from that company, they hate us.&quot;&lt;/p&gt;
&lt;p&gt;Your ICs cherry-pick to reach their ticket quota. You do it to keep your CSAT up, and it&apos;s a rational strategy for inflating a number that&apos;s (1) not entirely within your control and (2) arbitrarily used to punish you. You know that the CSAT number doesn&apos;t tell the whole story and absolutely isn&apos;t within Support&apos;s control, so you find ways to minimize the damage. That&apos;s cheating. That&apos;s data corruption. Ultimately, this corruption pressure hurts both your Support organization and your customers.&lt;/p&gt;
&lt;h3&gt;Surrogation&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;The tendency for managers to lose sight of the strategic construct(s) the measures are intended to represent, and subsequently act as though the measures are the constructs.&lt;/p&gt;
&lt;p&gt;-- Willie Choi; Gary Hecht; William B. Tayler (2013. Strategy Selection, Surrogation, and Strategic Performance Measurement Systems)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[A] manager charged with &apos;delighting the customer&apos; who uses customer satisfaction surveys to gauge strategic success may begin to see maximizing survey results as the strategy, and behave accordingly.&lt;/p&gt;
&lt;p&gt;-- Willie Choi; Gary Hecht; William B. Tayler (2011. Lost in Translation: The Effects of Incentive Compensation on Strategy Surrogation)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Surrogation equates &quot;Well, the number went up&quot; with &quot;fulfilling our mandate to empathize with and serve customers.&quot; We&apos;re incentivized to take measures that keep the number up even though they go against our goal of improving customer satisfaction, because we&apos;ve decided that a good number &lt;em&gt;is&lt;/em&gt; customer satisfaction. It&apos;s the final boss of the Support game, and it&apos;s why we don&apos;t question the obvious corruption of our measurements when we should: the measurement itself has become the goal.&lt;/p&gt;
&lt;p&gt;How many Support teams have a CSAT rating above 80% but don&apos;t tell their company leadership what their customers say about their product on Reddit? We&apos;ve mistaken our ability to improve that number (the measure) with our customer&apos;s actual satisfaction (the actual goal that measure is intended to represent).&lt;/p&gt;
&lt;p&gt;We&apos;re tired, we&apos;re angry, we&apos;ve seen our organizations decimated for not meeting arbitrary goals written by people who don&apos;t understand our work. There has to be a better way.&lt;/p&gt;
&lt;h2&gt;Service agreements that serve us&lt;/h2&gt;
&lt;p&gt;I think most of us have heard of an SLA before -- a Service Level Agreement. SLAs are the &lt;em&gt;last&lt;/em&gt; piece of a three-piece puzzle. Changing our approaches to all three levels has the potential to transform your Support org and your customer experience.&lt;/p&gt;
&lt;p&gt;First come Service Level Indicators (SLIs). Service Level Indicators are the raw numbers that describe how your system is performing. Most Support metrics are SLIs. Second, you have Service Level Objectives (SLOs). This is your &quot;target&quot;: a number -- preferably a range -- for a service that is measured by an SLI. If you have an SLI that shows your team is consistently and collectively responding to tickets in eight hours on average, your SLO will say that your 75th percentile response time is eight hours.&lt;/p&gt;
&lt;p&gt;Third -- always last and with the involvement of the sales, engineering, and legal teams -- you have SLAs or Service Level Agreements. These are an explicit contract with your users that includes the consequences for missing certain SLOs.&lt;/p&gt;
&lt;p&gt;You can define all three in ways that avoid the doom spiral and incentivize team effectiveness.&lt;/p&gt;
&lt;h3&gt;Start with objectives - human-centered objectives&lt;/h3&gt;
&lt;p&gt;To design a system for measuring and understanding your service level, start with your objectives. Actively &lt;em&gt;avoid&lt;/em&gt; starting with what you can measure;  this road leads straight to surrogation land. Start with objectives, based on  &lt;em&gt;your&lt;/em&gt; users&apos; realities and core needs.&lt;/p&gt;
&lt;p&gt;I once did Support for a developer-focused platform. If we had chosen phone support as our main channel, most of our users would have revolted. They want email, and the emails they appreciate are, quite frankly, terse. They want to tell you about an issue, and then they don&apos;t want to hear anything at all until  the thing is fixed. Many were happy as hell with a simple &quot;heard&quot; or &quot;fixed, thanks.&quot;&lt;/p&gt;
&lt;p&gt;What we defined as &quot;good&quot; support was hyper-specific to &lt;em&gt;our&lt;/em&gt; users. Your customers are &lt;em&gt;yours&lt;/em&gt;. Think about them, not about standards or industry trends. How do &lt;em&gt;they&lt;/em&gt; want to be talked to? What are &lt;em&gt;their&lt;/em&gt; expectations for response times? What channels do &lt;em&gt;they&lt;/em&gt; care about, and &lt;em&gt;how much&lt;/em&gt; do they care about those channels? (And if you don&apos;t know the answers, you have an easy fix: &lt;em&gt;ask your customers&lt;/em&gt;.)&lt;/p&gt;
&lt;p&gt;How do you define specific, useful objectives? Start here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Keep it concrete.&lt;/em&gt; Don&apos;t say &quot;we want every user to feel whole in their soul after contacting us.&quot; How would you ever really know?  Instead, get specific: &quot;90% of users who write to support for a non-blocking issue should get a response in no more than eight hours.&quot; You know what your non-blocking issues are; you can keep a list (ideally publicly, so your users know what to expect from you.)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Avoid absolutes.&lt;/em&gt; Notice how precise that example was? That&apos;s on purpose. It&apos;s tempting to provide absolutes like &quot;everyone gets a response in four hours,&quot; but all systems have limits. Your Support team members are not a bunch of interchangeable cogs with the same skills, gifts, and speed. Avoid absolutes to create space for your diverse employees and users.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Don&apos;t have too many.&lt;/em&gt; You want concrete objectives in that you want to focus on specific things your users care about, but you &lt;em&gt;also&lt;/em&gt; want as few of those objectives as possible. Two or three is a good place to start.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Embrace imperfection.&lt;/em&gt; You will not get this right the first time. Adjust objectives up or down, or scrap them and start over as you learn more. Last year&apos;s numbers mean nothing if your user base grew by 25% this year! Don&apos;t aim for perfect, aim for progress.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Build in buffers.&lt;/em&gt; Your goal isn&apos;t a set of objectives that you have to work overtime to keep. Your goal is an error budget.If you know you can respond to everyone in eight hours, set your SLO as the third quartile of requests in that time. That gives you a buffer to experiment with ways of preventing tomorrow&apos;s tickets rather than struggling through today&apos;s and constantly straining as you grow.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Make metrics with meaning&lt;/h3&gt;
&lt;p&gt;You have some objectives now, and now you need to figure out how to know if you&apos;ve met them. This is where you start thinking about SLIs and metrics.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Track fewer, more meaningful indicators.&lt;/em&gt; An objective &lt;em&gt;can&lt;/em&gt; have multiple measurements associated with it, but I&apos;m going to humbly suggest that you start associating objectives with specific measurements. And wherever possible, those measures should not be proxies for what you&apos;re trying to achieve. In other words, if you take the example of &quot;the third quartile of conversations get a response from Support in eight hours&quot;, that has a direct measurement you can use: How long it takes for your team to respond to conversations. This isn&apos;t always possible, but it&apos;s important that your team can see how they&apos;re directly affecting things together and begin thinking as a team.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Use distributions, not averages.&lt;/em&gt;  Averages are neat and clean, but their abstraction hides important nuance. If Jeff Bezos walks into a room of 100 people and we take an average, they&apos;re all billionaires. If we used that average to decide, &quot;Everyone has to give 10 million dollars to charity every day until they die,&quot; is that doable? Did the average help you make a smart decision? Or did it lie to you and make things worse? What you want are distributions. &quot;99.9% of people in this room have a net worth of $80k, and 0.01% have a net worth $161b&quot; Distributions group data, show you outliers, and give you more information. Whenever possible, use distributions and avoid averages.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Resist corruption.&lt;/em&gt; Nothing changes if you cherry-pick these numbers. You have to count &lt;em&gt;everything&lt;/em&gt;; it&apos;s the only way you&apos;ll know the truth. This should be a less scary proposition now that you&apos;re using SLOs and SLIs that describe and measure distributions. Those difficult customers whose CSAT scores you don&apos;t want to see? They&apos;ll fall into that top 1%, and you&apos;ve built a buffer for that.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Lose your misleading leaderboards&lt;/h3&gt;
&lt;p&gt;Apple used to tell Genius Bar employees that if they wanted to, it could replace the entire Genius Bar with a vending machine that spits out replacement devices and reads the warranty off the device. It doesn&apos;t, because it&apos;s not just paying Geniuses to fix iPhones -— it&apos;s paying them to fix the relationship that the customer has &lt;em&gt;with Apple&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Your customers aren&apos;t reacting to their experience with the wait time or the individual Support Professional they&apos;re talking to. They&apos;re reacting to their relationship with your product and your company being broken. They don&apos;t care how many tickets each person is answering, or even what your total headcount is. They just want help.&lt;/p&gt;
&lt;p&gt;As a Support leader, it&apos;s tempting to lose that perspective by obsessing over each individual Support Professional&apos;s response numbers, but this is another form of surrogation. It leads you away from all of the levers that could improve your objectives and enable you to help folks and towards the belief that making everyone&apos;s response numbers roughly the same &lt;em&gt;is the same thing&lt;/em&gt;. This keeps you from recognizing when the most impactful work is work that can&apos;t be measured directly.&lt;/p&gt;
&lt;p&gt;With that in mind, you should:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Hide individualized data.&lt;/em&gt; The only people who should be seeing individualized data are the individual employee and their direct manager. That&apos;s it. If you&apos;re not the person who the data is about and you are not the one managing that person, you should only be seeing team-level distribution data about &lt;em&gt;the system&lt;/em&gt;. You do not have enough context to make judgments about individualized data. Hiding that data will bring teamwork back to your organization.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Prioritize celebrating team success over individual achievement.&lt;/em&gt; Your objectives are set at the team level because that&apos;s how customers experience your support. So celebrate the team working together to solve a problem: One person answered 400 tickets in a day because someone else hopped out of the queue to do crisis communication and a third person was writing user-facing docs to stop the deluge of tickets. Celebrate them all for communicating and working together to solve the problem and meet the team&apos;s objectives. And not just in the moment — remember how they worked together when performance review season comes around.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Focus on team-based, differentiated solutions.&lt;/em&gt; Now that objectives aren&apos;t individualized and it&apos;s not terrifying or career-ending to leave the queue and solve root issues, you have an incentive to work as a team to hit your objectives and maintain your service level. Some people are going to love answering tickets and hate being a liaison to product. Other folks are going to have a knack for writing docs that keep users from opening tickets at all. Let people be good at different things. Focus on hiring, compensating, and enabling team players with differentiated skills.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Breaking the cycle&lt;/h2&gt;
&lt;p&gt;Nothing I&apos;ve written here is that radical in practice, but it &lt;em&gt;is&lt;/em&gt; a departure from the &quot;best practices&quot; and received wisdom we&apos;ve been relying on for decades. This is a call to center the Support Professionals, the customers they support, and our end goal of providing the best possible support. The doom cycle is avoidable, but avoiding it takes effort, intention, and care.&lt;/p&gt;
&lt;p&gt;At the beginning of the cycle, we&apos;re in the queue all day. We&apos;re painfully aware of the flaws with this system of individualized objectives. It keeps us from proactively helping customers and doing our best work. When we become leaders, however, we fall back to the systems we know, believing that we can tweak and tame it to produce a different outcome.&lt;/p&gt;
&lt;p&gt;The problem is that the system spends all its time measuring a tiny picture of the effort of your individual employees. We have convinced ourselves that this measurement is a perfect surrogate for the objectives and business outcomes that we&apos;re trying to achieve, but as we&apos;ve seen above, that surrogacy leads us away from true understanding.&lt;/p&gt;
&lt;p&gt;True understanding is difficult to achieve. It requires us to think deeply about &lt;em&gt;our&lt;/em&gt; customers, businesses, and goals. There are few standard metrics or formulas that can help us, and it&apos;s possible we aren&apos;t currently tracking the information we need. But we can&apos;t sidestep that work by focusing on the data that&apos;s easy to measure, like how many conversations each person answers in a day. That measurement doesn&apos;t actually tell us anything useful about the work of our team.&lt;/p&gt;
&lt;p&gt;Your Support Professionals know what they&apos;re doing. They know what&apos;s wrong with the product, your Support Level, and the customer experience. They know the big-picture fixes that would provide relief if they just had the time to focus on anything other than the constantly ticking clock. They want to do good work, they want to see their business succeed, and they want customers to have a good experience from the moment they begin using your product or service. Listen to them. Trust them.&lt;/p&gt;
&lt;p&gt;If you take nothing else from this, I want it to be that Support work is done by teams of people -- not a collection of individual queue crushers -- and it takes diverse skills, dispositions, focuses, and areas of expertise to do well. Make sure that the way you measure the work reflects that.&lt;/p&gt;</content:encoded></item><item><title>Yetto values: Joy Matters</title><link>https://www.birdcar.dev/writing/joy-matters/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/joy-matters/</guid><description>The central, animating philosophy of Yetto and what it means in practice</description><pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I think about death kind of a lot, and I have for most of my life.&lt;/p&gt;
&lt;p&gt;I realize that might seem like a weird way to start a blog post about joy -- or any post about company values for that matter -- but it&apos;s true, and I think it&apos;s relevant. 21% of your total waking hours over a 76 year lifespan will be spent working, with another 33% sleeping. In total, that translates to you spending over half of your life either unconscious or laboring.&lt;/p&gt;
&lt;p&gt;Actually, this number also only accounts for time actually spent &lt;em&gt;at&lt;/em&gt; work, and that 21% is measured across the whole life, which means your childhood -- whether carefree or traumatic -- doesn&apos;t count. This also means that every hour of commuting, every moment of stress you have before and after going into work, every period of alone time you need because you&apos;re too exhausted from the day, every minute you spend checking your notifications from bed; adds to that total number of hours you spend between birth and death toiling to survive.&lt;/p&gt;
&lt;p&gt;It&apos;s an astounding theft. No matter how much you love your job, how much you succeed, or how great your co-workers are; the fact is that -- unless something fundamental changes about the ordering of our society -- you&apos;re going to be living your life around your work, and not the other way around.&lt;/p&gt;
&lt;p&gt;How much more horrifying is it, then, that our tools, colleagues, and employers often aggravate rather than alleviate this reality?&lt;/p&gt;
&lt;h2&gt;You&apos;re not gonna make the world a better place&lt;/h2&gt;
&lt;p&gt;Plenty of companies claim they want to take care of employees, customers, and the world writ large -- the ham-fisted insistence that all these startups are going to &quot;make the world a better place&quot; is a recurring jab at these claims from Silicon Valley under a decade ago -- but in practice, when rubber meets the road, that amounts to little more than lip service.&lt;/p&gt;
&lt;p&gt;We&apos;re not special, we aren&apos;t claiming to fix the world or be immune to the pressures of capitalism. Having said that, we believe there &lt;em&gt;are&lt;/em&gt; values and structures that can help you order your company in such a way that when compromise must exist, you can at least triage it to ensure consistency with what matters most to you. It&apos;s good to be specific about what your values mean in practice -- as mentioned above, we&apos;ve all seen platitudes be nothing more than propaganda -- but your concrete policies and decisions are a reflection of the company&apos;s philosophical beliefs, whether those are explicit (e.g. &quot;Don&apos;t be Evil&quot;) or implicit (i.e. &quot;we exist to make money, everything else is secondary. Greed is good.&quot;).&lt;/p&gt;
&lt;p&gt;With that in mind, I present to you the central, animating philosophy of Yetto and its founders: Joy Matters.&lt;/p&gt;
&lt;h2&gt;But that doesn&apos;t mean you can&apos;t do good&lt;/h2&gt;
&lt;p&gt;&quot;Joy&quot; meaning &quot;that which isn&apos;t necessary, but makes life better&quot;; &quot;Mattering&quot; meaning &quot;Joy itself is enough of a reason to do something, we don&apos;t need another motive.&quot; This two-word sentiment is our first-filter for everything everything from product decisions to company policy, and it&apos;s remarkably effective.&lt;/p&gt;
&lt;p&gt;From a product perspective, it means asking questions like &quot;does it increase or decrease joy and psychological safety for a support professional to be able to easily compare their ticket output to their colleagues?&quot; and then refusing to build dashboards that allow for that comparison when the answer is &quot;No&quot;, regardless of how many managers or leaders want it. It means obsessing over details like how many tabs or browser windows a support professional would need to have open to do their job effectively, and trying to reduce that to as close to &quot;one&quot; as possible.&lt;/p&gt;
&lt;p&gt;At the company level, it means rejecting the culture of &quot;speed at all costs&quot; that is endemic to startups and choosing to build deliberately and resiliently. It means trying to figure out what the minimum amount of hours everyone at the company can work while still being able to do their jobs. 32 hours? 24 hours? Let&apos;s find out. It means asking &quot;Why do we pay people different amounts of money based on where they live?&quot;&lt;/p&gt;
&lt;p&gt;None of these decisions or ideas are world-changing, and they&apos;re not trying to be. What they &lt;em&gt;are&lt;/em&gt; trying to do is make working life a little more joyful for everyone we can. Joy matters, and increasing it is enough of a goal in and of itself.&lt;/p&gt;
&lt;h2&gt;Are you the fuel? Or the operator?&lt;/h2&gt;
&lt;p&gt;All three of us have worked on building and supporting developer tooling for the last decade or more, but a better way of understanding this experience is that the problems we like solving involve improving people&apos;s daily experience of work; as much as we can, in any way we can. We&apos;ve been front-line support professionals, documentation engineers, technical writers, platform engineers, support leaders, ops specialists, and internal tooling developers. We will talk about how this experience informs building Yetto ad-nauseam, but the unifying focus we all share as a result is a deep, first-hand understanding that the current slate of tools for support professionals are not built to maximize their joy and productivity; they&apos;re built to contain, measure, and control them.&lt;/p&gt;
&lt;p&gt;We aim to change that, and we hope you join us in our attempt.&lt;/p&gt;</content:encoded></item><item><title>Data is a curse</title><link>https://www.birdcar.dev/writing/data-is-a-curse/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/data-is-a-curse/</guid><description>Why looking at support data in isolation leads you astray</description><pubDate>Wed, 26 Jul 2023 00:00:00 GMT</pubDate><content:encoded>&lt;aside class=&quot;bfm-aside&quot;&gt;&lt;p class=&quot;aside__title&quot;&gt;Originally published&lt;/p&gt;&lt;p&gt;This originally appeared on the Yetto blog on 2023-07-26. Co-authored with &lt;a href=&quot;https://www.linkedin.com/in/brian-a-levine&quot;&gt;Brian Levine&lt;/a&gt;.&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;Customer support teams, like most teams now, rely on data for decision making. We move forward based on what we think the data shows us. Our understanding of our business and our customers is often driven by what our data tells us. We think data can tell us an unbiased story about our products, our businesses, our teams, our employees, and our customers.&lt;/p&gt;
&lt;p&gt;We look at first reply times, ticket resolution times, handle times, and wait times to see how well we are helping people. We analyze inbound volumes and outbound volumes to measure the health of a support queue. And with great reverence we collect customer satisfaction scores and net promoter scores to measure the quality of the support we provide. All this data will surely tell us what we need to do to make the customers happy.&lt;/p&gt;
&lt;p&gt;It&apos;s true that data can be useful for many things. We can use inbound volume and outbound volume to know when we need to hire more staff. It can help us schedule teams to be available when customers are most often opening support requests.&lt;/p&gt;
&lt;p&gt;And yet! And yet we view support data in isolation. On its own, it gives us a hazy view of reality at best and a misleading funhouse mirror view of it at worst. The data cannot tell us how well we are doing at the overall job of customer support. Ultimately, it is not &lt;em&gt;support&apos;s&lt;/em&gt; responsibility to make the customers happy: it is the &lt;em&gt;company&apos;s&lt;/em&gt; responsibility.&lt;/p&gt;
&lt;p&gt;Customers email a company to solve a problem they are having. It might be a bug in an app or a package lost in transit or a refund for product that wasn&apos;t what they expected. They aren&apos;t emailing &lt;em&gt;support&lt;/em&gt; to solve their problem, they want &lt;em&gt;the company&lt;/em&gt; to solve the problem. By measuring customer satisfaction with the support experience and fawning over charts of reply times and handle times, we ultimately focus on the wrong things. The data leads us astray. Those reply times and handle times are a small portion of a larger lifecycle. Other teams are involved in the issue - product teams who design the app, engineering teams who developed it, logistics teams who get physical products shipped around the world, finance teams who forecast and track revenue, marketing and sales teams who get the product into people&apos;s hands.&lt;/p&gt;
&lt;p&gt;It is said that you can only change what you can measure. Or, perhaps more accurately, &quot;If you can&apos;t measure it you can&apos;t manage it.&quot; (This quote ironically misattributed to W. Edwards Deming despite his statement being the opposite.) People take this clever sounding advice and measure the number of hours their employees are working and the speed with which they are answering emails or phone calls or Twitter threads. However, we can only get faster at the things that support teams do in isolation if we only measure those teams in isolation and fixate on driving the numbers towards our weekly/monthly/quarterly/annual goals. These decisions don&apos;t necessarily make the product better or improve the customer&apos;s experience. They might, though. We don&apos;t know! We don&apos;t know because the data we most often look at cannot tell us. Some of those decisions, however, definitely make people&apos;s lives worse. People are burned out by metrics. People are fired for not meeting a threshold for calls answered or tickets resolved, or they work an extra 10, 15, even 20 hours a week to make up those numbers.&lt;/p&gt;
&lt;p&gt;This all sounds like I am against collecting data. Like I&apos;m suggesting that we stop looking at numbers and let people do whatever they want. And while I (Brian) think that &lt;em&gt;might&lt;/em&gt; be a good idea and a worthwhile experiment, it is not what I&apos;m suggesting. I am instead suggesting that we look at data within a larger context. We need to look at data as an organization and as a company. Support ticket volume goes down when products have fewer issues that need fixing. Reducing the number of those issues happens fastest when teams work together to find problems, build a roadmap for addressing them, and communicate that to customers. It&apos;s a team effort and our data should reflect that.&lt;/p&gt;
&lt;p&gt;I say that data is a curse because we look at segments of data and make decisions that &quot;move the needle&quot; but don&apos;t make a meaningful impact on the business - revenue, retention, expansion, etc. Looking at support data (what friction customers are encountering) alongside other data from across the company - product data (what are we building and why), engineering data (how are we building it and how quickly), marketing and sales data (who is interested and what they want). It&apos;s only by looking at a holistic set of data in context that we can see what makes customers happy or frustrated and what leads them to continue using a product, buying from a vendor, or recommending products or services to other people. Support data in isolation (and really any team&apos;s data in isolation) can only give a sliver of an insight and the likelihood of making good decisions based on that is as good as not.&lt;/p&gt;
&lt;p&gt;I hear you all nodding your heads while saying, &quot;Yes but...&quot;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;But how can we measure the performance of the support team?&lt;/li&gt;
&lt;li&gt;But how can we know who is doing a great job and who needs coaching?&lt;/li&gt;
&lt;li&gt;But how do we know who would make a good coach?&lt;/li&gt;
&lt;li&gt;But how do we know when to promote people?&lt;/li&gt;
&lt;li&gt;But how do we know when to fire people?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The answers to these aren&apos;t easy. If you are looking for data to tell you how your team is doing in isolation, you need to talk to your team more. Maybe the support agent answering 50% as many tickets per week as the team average is handling more difficult tickets. Or maybe they&apos;re just more thorough than other people. And maybe that&apos;s totally fine, but you&apos;ll only know by talking to the people on the team and working with them, rather than looking at a ream of numbers every day or week.&lt;/p&gt;
&lt;p&gt;Maybe the bottleneck to happier customers isn&apos;t the speed with which each individual team member answers tickets but in how well the teams work together to solve customer problems. If these are your &quot;Yes but...&quot; issues, then you aren&apos;t measuring how well your teams are working together and your don&apos;t know with certainty where the bottleneck is. Since you&apos;re collecting data on issue handle times and ticket responses per week, that&apos;s where you feel you can affect change. The answer is to dig deeper, collect more data from more teams across the company and look at it all together. And acknowledge that some decisions won&apos;t be less arbitrary by using whatever data you happen to have available.&lt;/p&gt;
&lt;p&gt;To summarize all of this, data is only as useful as the story it tells us. When we look at small bits of it at a time, we only get part of a story. If we want to shift our thinking from &quot;measurable&quot; to &quot;impactful&quot;, we have to rethink our data strategy and stop looking at each team&apos;s performance in tightly bounded boxes. We also have to acknowledge that the data we collect can only ever tell part of a story. When it comes to people - and especially how we manage people and teams - we need to understand the work and the individuals doing that work. People are not machines and should not be expected to perform within precise tolerances. Every time I see a dashboard showing ticket resolution times for the support team or KPIs and OKRs asking support to reduce handle times or response times, I think of all the support professionals struggling to meet those demands without knowing how or if they are making a positive impact on the business or the customer.&lt;/p&gt;</content:encoded></item><item><title>You&apos;re already doing all hands support</title><link>https://www.birdcar.dev/writing/youre-already-doing-all-hands-support/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/youre-already-doing-all-hands-support/</guid><description>Why your company is already doing all hands support — just badly</description><pubDate>Wed, 14 Jun 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Back in April, I was walking around Chicago with Brian during Yetto&apos;s first in-person meetup, and I said something that started an interrogation. I don&apos;t remember what I said and in some ways it doesn&apos;t matter -- robust dialogue, jovial hyperbole, and good-natured ribbing are how all three of us enjoy interacting -- but I distinctly remember it being low stakes enough that I found myself asking &quot;Why is this so shocking to you? It seems like a weirdly big deal.&quot; Brian&apos;s response was &quot;You and I are so deeply similar that when we disagree on stuff it&apos;s noticeable and shocking.&quot;&lt;/p&gt;
&lt;p&gt;I find that quote echoing back in my head as I write my &quot;rebuttal&quot; to Brian&apos;s belief that we should stop doing all hands support. I&apos;ve known his thoughts on this topic for a while now, and in some ways they&apos;re deeply persuasive to me. As a support professional who&apos;s been doing this work in every kind of role and company imaginable for the last decade, I &lt;em&gt;want&lt;/em&gt; to agree with him wholeheartedly. I find myself nodding along and doubting myself as I read it back.&lt;/p&gt;
&lt;p&gt;And yet, something felt incorrect and I couldn&apos;t put my finger on it. I located my discomfort as I read it for the hundredth time, when I was about to resign myself to writing &quot;I was wholly naive and we should stop doing this&quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Several times when a CEO has asked me to implement all hands support at their organization, I have asked how they implement &quot;All Hands Finance&quot; or &quot;All Hands Engineering&quot;. We don&apos;t do those things because we understand that those roles require unique skills and it takes time to hone those skills for the specific business. Asking someone to do &quot;all hands account payable&quot; for one week a year would seem both preposterous and dangerous. And I think the same applies to customer support. If we believe that support professionals bring a unique skill set and a unique value to the business, as I mentioned in the last section, then we should also believe that not everyone at the company &lt;em&gt;can&lt;/em&gt; do that job successfully.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On first glance, this is a persuasive point. In fact, it knocked me on my heels the first time Brian said it to me. But reading this again I realized something: &lt;strong&gt;I&apos;ve never once worked somewhere that &lt;em&gt;didn&apos;t&lt;/em&gt; do all hands support.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Don&apos;t get me wrong, I&apos;ve worked &lt;em&gt;lots&lt;/em&gt; of places that didn&apos;t have formal all hands support programs, at least not the kind that Brian is talking about. But unlike accounting, finance, and other specialized roles in your organization, that doesn&apos;t stop everyone from doing it anyways; it just stops them from knowing how to do it well.&lt;/p&gt;
&lt;h2&gt;Support is different&lt;/h2&gt;
&lt;p&gt;Do I believe that support professionals bring a unique skill set and value to the business? Yes, wholeheartedly and without equivocation. More than that, I believe that the skills required to provide company-changing, customer-salvaging, product-defining support require &lt;em&gt;years&lt;/em&gt; of experience, honing, and mentorship to develop. Those kinds of support professionals are worth whatever you have to pay them, and I in no way want to devalue their work.&lt;/p&gt;
&lt;p&gt;But supporting customers, as a function of your business and also as an activity, is categorically different than a lot of specialized roles.&lt;/p&gt;
&lt;p&gt;I&apos;ve never seen an engineer hop into an &lt;code&gt;#accounts-payable&lt;/code&gt; channel in Slack with an &lt;code&gt;@here&lt;/code&gt; demand to drop everything they&apos;re doing to help an angry influencer on Twitter. I&apos;ve never seen Security get ordered by another department to retool their entire workflow for the next three weeks to prioritize an important contract that sales wants to land. Both of those suggestions are &lt;em&gt;daily&lt;/em&gt; occurrences in your company&apos;s &lt;code&gt;#support&lt;/code&gt; channel.&lt;/p&gt;
&lt;p&gt;But between events like escalation-via-founder, engineers on Twitter debugging in DMs, marketing folks getting LinkedIn DMs about unreleased products, and lots and lots of &quot;urgent&quot; questions from enterprises throwing their weight around, your whole company is &lt;em&gt;already&lt;/em&gt; doing all hands support.&lt;/p&gt;
&lt;p&gt;The problem is they suck at it, won&apos;t stop sucking at it, and aren&apos;t interested in your professional opinion on why they should defer to you. After all, how hard could it be to talk to customers? They do it all the time.&lt;/p&gt;
&lt;h2&gt;Where I&apos;m coming from&lt;/h2&gt;
&lt;p&gt;My positive feelings about all hands support come from working at Zapier. Wade, one of the co-founders, made it clear from day one that every employee was &lt;em&gt;required&lt;/em&gt; to spend 8 hours &lt;em&gt;per week&lt;/em&gt; in the support queue helping customers; no exceptions, founders included.&lt;/p&gt;
&lt;p&gt;During onboarding, every employee spent a portion of each day learning how to support users. They paired with incoming support professionals and received training from the company&apos;s support trainer. They learned how to use the support tools required to do it well, how to identify which tickets were ok for them to work vs which ones should be escalated to the professionals, and importantly, they learned the &quot;why&quot; of support and the consequences of even small deviations from a system designed to serve millions of people with only 30 professionals.&lt;/p&gt;
&lt;p&gt;Were they great at support? Not at first. They were never as good as the full time support professionals, but because it wasn&apos;t a &quot;one week a year&quot; thing and we had dedicated people assigned to answer questions and pair with them, they maintained junior-level, tier-1 capabilities at minimum and the benefits far outweighed the costs.&lt;/p&gt;
&lt;h2&gt;What made it worth it?&lt;/h2&gt;
&lt;p&gt;Like Brian mentioned, it&apos;s a massive investment of both the company and Support&apos;s resources to make this kind of all hands support happen. Among other things, you need to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Staff a dedicated training team.&lt;/li&gt;
&lt;li&gt;Fly that team in for onboarding (if you do in-person onboarding) or schedule time during onboarding for each employee to learn from them (if you&apos;re fully remote for onboarding).&lt;/li&gt;
&lt;li&gt;Have Support account for sub-junior employees in the queue and ensure that they have something to do.&lt;/li&gt;
&lt;li&gt;Regularly remind new employees that it&apos;s not optional and they &lt;em&gt;have&lt;/em&gt; to do this.&lt;/li&gt;
&lt;li&gt;Sacrifice 8 hours a week of everyone&apos;s focus on their day to day work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With all those costs, what was the result? Why is it something I still can&apos;t let go of?&lt;/p&gt;
&lt;p&gt;First, I have &lt;em&gt;never&lt;/em&gt; worked somewhere where the Support team was more valued or respected. Far from Brian&apos;s concern that this devalues support, at Zapier my time and attention were treated like an intrinsically valuable, limited resource. Other teams routinely praised the Support team with specific encouragements from tickets they came across and learned from. Engineers would catch an edge case that affects some small percentage of users before shipping the feature and would explicitly delay shipping it &lt;em&gt;so they don&apos;t overwhelm support&lt;/em&gt;. It honestly freaked me out for a while, it felt Stepford-esque.&lt;/p&gt;
&lt;p&gt;Second, engineers spent &lt;em&gt;way&lt;/em&gt; more time fixing their customers&apos; everyday pain. Wade once said something to the effect of &quot;If you make an engineer answer the same question 50 times, it&apos;ll be fixed by Monday&quot;; my experience there bore that out.&lt;/p&gt;
&lt;p&gt;Finally, rather than lowering support quality, it aligned the whole company on the right way to talk to customers about the product. Support teaches you the awesome and terrifying power of words. We have decade-long discussions about whether and in what specific contexts saying &quot;Sorry&quot; is appropriate. It&apos;s the kind of thing that seems like an overreaction until you get named in a former-customer&apos;s lawsuit for &quot;admitting fault&quot; in their costly data loss issue. You want to stop Sales from promising features on Friday that the product doesn&apos;t do yet? Make them answer the angry email about it next Wednesday.&lt;/p&gt;
&lt;h2&gt;How my thinking has changed&lt;/h2&gt;
&lt;p&gt;It pains me to admit that I think Brian is &lt;em&gt;ultimately&lt;/em&gt; right here. At the end of the day, the kind of all hands support I&apos;m describing above is rare to the point being non-existent. Most companies don&apos;t have the buy in, culture, will, or desire to do it well. I admit that my resistance to fully agreeing with Brian is that I experienced the platonic ideal implementation.&lt;/p&gt;
&lt;p&gt;I can&apos;t help but feel that it&apos;s still worth fighting for though. I don&apos;t agree that expecting everyone to effectively help customers and communicate information clearly inherently devalues trained, career support work anymore than teaching everyone to write inherently devalues the works of Ursula K. Le Guin or Samuel R. Delaney. If you&apos;re an organizational leader and you agree with me, the components of successful all hands support are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Frequency&lt;/strong&gt;: You have to do it more often than &quot;once a quarter&quot; or &quot;once a month.&quot; Ideally it needs to be for some inflexible number of hours every week, scheduled as it makes sense to the individual (e.g. 8 hours a week, scheduled into the week at the discretion of the individual employee). This isn&apos;t so much a best practice as a minimum bar, if you&apos;re not in the queue every week then you&apos;re woefully behind on what customers are experiencing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Totality&lt;/strong&gt;: If it&apos;s all hands support, than it&apos;s &lt;em&gt;all&lt;/em&gt; hands. A single exception to this rule will destroy it. No one -- especially not senior leaders -- can opt out and willful failure to comply &lt;em&gt;must&lt;/em&gt; face consequences. In my opinion, if you&apos;re doing this it should go in the employee contract so folks know that it&apos;s an expectation going in. It needs to be a top-level value you not only hold but celebrate.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deference&lt;/strong&gt;: Your Support team, from the newest team member to management, will always know more and be better at this than you. Give them power over the program and the resources to do it well. Don&apos;t make training the rest of the company someone&apos;s &quot;20% time&quot; gig. Make it clear that they are the experts every single chance you get and celebrate specific things they&apos;ve accomplished and not just &quot;Wait time is down and the queue is being handled.&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you&apos;re not a founder, VP, or C-suite executive fully committing to the system I described above? If you&apos;re a Support leader or team member who longs for Product and Sales to feel the pain they&apos;ve caused you and your team?&lt;/p&gt;
&lt;p&gt;I get it. I do.&lt;/p&gt;
&lt;p&gt;But the bottom line is that in most cases, if you have some influence and want to affect the most change with the fewest resources, it&apos;s probably not worth it to start with all hands support. In fact, even if you &lt;em&gt;are&lt;/em&gt; doing some form of all hands support you should do what Brian suggests. Your team will thank you.&lt;/p&gt;
&lt;p&gt;No matter what you choose to do, for the love of all that is good and the sanity of your team, have a talk with your leadership about how they shouldn&apos;t be an escalation point for the public. Make the consequences of careless words and actions visible to the rest of your organization.&lt;/p&gt;
&lt;p&gt;Because if your company isn&apos;t gonna do all hands support, then they should &lt;em&gt;actually&lt;/em&gt; stop.&lt;/p&gt;</content:encoded></item><item><title>Stop giving me take homes</title><link>https://www.birdcar.dev/writing/stop-giving-me-take-homes/</link><guid isPermaLink="true">https://www.birdcar.dev/writing/stop-giving-me-take-homes/</guid><description>A support professional&apos;s case against take-home assignments in hiring</description><pubDate>Wed, 31 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;aside class=&quot;bfm-aside&quot;&gt;&lt;p class=&quot;aside__title&quot;&gt;About this post&lt;/p&gt;&lt;p&gt;Nick here: BCC is a series of anonymized posts enabling Support Professionals to publish their thoughts and create public discussion about topics that would otherwise happen in private DMs. The Yetto team is deeply excited to present today&apos;s post -- our first in this series -- and we believe it&apos;s both timely and unbelievably well argued.
&lt;em&gt;Are you a support professional who has something to say? Reach out to Brian (&lt;a href=&quot;/authors/balevine&quot; class=&quot;bfm-mention&quot;&gt;&lt;span class=&quot;at&quot;&gt;@&lt;/span&gt;balevine&lt;/a&gt;) or Nick (&lt;a href=&quot;/authors/birdcar&quot; class=&quot;bfm-mention&quot;&gt;&lt;span class=&quot;at&quot;&gt;@&lt;/span&gt;birdcar&lt;/a&gt;) In the Support Driven or Elevate CX Slack communities, we&apos;d love to chat.&lt;/em&gt;&lt;/p&gt;&lt;/aside&gt;
&lt;hr&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;As a customer support professional, I&apos;m accustomed to navigating a tricky job-hunting landscape. Avoiding work-from-home scams. Figuring out which companies just want bodies as chum for poorly-treated customers and which companies truly value their customers and the holistic business benefits the Support function provides. Getting through a few interviews before finding out a company wants me to provide those comprehensive Support services for call center pay.&lt;/p&gt;
&lt;p&gt;But after a decade of filling out job applications, customizing my resume and cover letter for every unique opportunity, enduring round after round of seemingly endless start-up interviews, there&apos;s one thing that I&apos;ve come to hate about job-hunting more than anything else in the Tech world: take-home projects.&lt;/p&gt;
&lt;p&gt;Take-home projects (also sometimes called take-home assignments) are ostensibly meant to weed out unserious and unqualified candidates and highlight the outstanding ones. But in reality, I&apos;ve found they often fail to measure relevant skills, unnecessarily lengthen already excessively long interview processes, put demands on my time that as a caregiver is difficult (if not impossible) to accommodate for a job I may not get, and are an excuse for employers to extract free labor from vulnerable people with little to no recourse for recovering their work.&lt;/p&gt;
&lt;h2&gt;Why Take-Homes Are Exploitative Bullshit&lt;/h2&gt;
&lt;p&gt;I&apos;ve worked hard to hone my technical problem-solving and emotional intelligence -- vital skills for customer support professionals -- and I&apos;m excellent at both. This isn&apos;t hubris; my professional worth and aptitude is demonstrated in my resume, in the references my peers and supervisors provide on my behalf, and in the work samples I provide in my portfolio.&lt;/p&gt;
&lt;p&gt;Yet despite these tangible proofs of my ability and experience, almost every interview process I&apos;ve been a part of during my Support career has involved a take-home project. It&apos;s not at all uncommon for the take-home project to ask me to write a help center article or answer help desk tickets, as if I were a new Support worker with no work examples to my name or experience under my belt.&lt;/p&gt;
&lt;p&gt;Every time I&apos;m sent a take-home project I think to myself -- did they not read my resume? Do they think I somehow cheated my way through 10 years of verifiable work experience? Did they not look at the sample work they asked for? What&apos;s the point of completing the job application if they don&apos;t read any of it?&lt;/p&gt;
&lt;p&gt;Or worse: the also not-uncommon take-home project that asks me to do actual work the company clearly needs done, like evaluating and correcting weaknesses in a company&apos;s support community program or drafting a training program for new Support hires (both real projects requested by potential employers in the past).&lt;/p&gt;
&lt;p&gt;Either I&apos;m asked to prove I can do the most basic work of a Support professional, or I&apos;m asked to provide a potential employer free labor in exchange for a chance at a job (not a promise of a job! Just the chance of being considered!), and either option is incredibly insulting to me as a candidate.&lt;/p&gt;
&lt;p&gt;It&apos;s also become increasingly apparent to me that tech companies are just disrupting wage theft -- innovating new ways to steal labor from vulnerable people who need the work. If you&apos;re in a low-wage job, or in a hostile workplace and desperate to get out, or if you&apos;ve been laid off and unemployment is a ticking time bomb about to go off -- are you going to say no to a take-home project? Even if you suspect it&apos;s a company&apos;s excuse to get work done on the cheap? Probably not.&lt;/p&gt;
&lt;p&gt;I&apos;ve also been on the hiring side of take-home projects, and it&apos;s just as infuriating. I hear my employers claim they want to hire women, people of color, older workers, and other people underrepresented in Tech, and yet still design 2-8 hour take-home projects that only folks who have the privilege of time, of money, and of power could possibly complete with any quality.&lt;/p&gt;
&lt;p&gt;When candidates withdraw from the interview process because they understandably can&apos;t or won&apos;t complete the take-home project, my employers are affronted, as if this is an insult or red flag instead of a candidate&apos;s very reasonable exercise of agency. When I point out that perhaps the candidate didn&apos;t want to give us free labor, they scoff. They say things like, &quot;we can&apos;t compromise our standards,&quot; or &quot;how will we know if they&apos;re a top performer?&quot;&lt;/p&gt;
&lt;p&gt;I bite my tongue until it bleeds, because otherwise I&apos;d reply, &quot;just admit that you want to go the easy route and hire a white dude and be done with it,&quot; and then I&apos;d be a job seeker again facing down another take-home project, weighing my need for the job and salary against my sense of self-worth.&lt;/p&gt;
&lt;p&gt;For everyone except the most privileged, take-home projects are like playing the lottery -- you know you&apos;re probably going to lose and that someone else is going to benefit from your loss. But you can&apos;t win if you don&apos;t play, and employers know it.&lt;/p&gt;
&lt;h2&gt;So If Not Take-Homes, Then What?&lt;/h2&gt;
&lt;p&gt;Ah, I can hear you asking -- if we don&apos;t use take-home projects, how will we measure a candidate&apos;s empathy, their patience and tenacity, their google-fu, their critical thinking?&lt;/p&gt;
&lt;p&gt;My counter-question is this: is your take-home project actually measuring those things? The very nature of take-home assignments means that they tend to ask candidates to give solutions to well-defined problems or provide detailed consultations for finite projects, but in reality, Support work is rarely so concrete or predictable.&lt;/p&gt;
&lt;p&gt;And take-home assignments are often not effective at evaluating the candidate&apos;s ability to dig into problems they don&apos;t know much about, their willingness and aptitude for working with others, their capacity for adapting their approach when necessary -- essentially, their emotional intelligence and intellectual elasticity. We know this is true because take-home projects almost always come with a subsequent review interview, or come in addition to several rounds of face-to-interviews that evaluate for culture and values fit.&lt;/p&gt;
&lt;p&gt;In my experience, take-homes are a dysfunctional shortcut for employers who are either too lazy to put in the effort to do things differently and reach more highly-qualified candidates, or they don&apos;t have the expertise to really zero-in on what they&apos;re looking for in a candidate, especially if it&apos;s for a non-technical role as Support roles frequently are. (Although I genuinely believe this is true regardless of the type of role, but that&apos;s an argument for another blog.)&lt;/p&gt;
&lt;p&gt;This means that in order to replace a take-home project with a more equitable and accurate measure of a candidate&apos;s fit for a role, employers need to be thoughtful and deliberate about determining what skills and competencies the role truly needs.&lt;/p&gt;
&lt;p&gt;At the risk of providing yet more free labor for companies that surely have the resources to figure this out for themselves, here are some suggestions.&lt;/p&gt;
&lt;h2&gt;Scenarios, Live Projects, and Writing Samples / Portfolios&lt;/h2&gt;
&lt;p&gt;Scenario-based questions and live projects are great ways to tease out a candidate&apos;s ability to navigate difficult situations with empathy and patience, their critical thinking process, and their ability to provide the right solution at the right time for the right problem.&lt;/p&gt;
&lt;p&gt;Scenario-based questions and live projects are especially helpful when you have specific problems in your Support organization that you know a candidate will need to solve. Both scenario-based questions and live projects are time-boxed, which limits the complexity of the candidate&apos;s answer (thus limiting the chance their work will be exploited) while giving a candidate the opportunity to demonstrate how their experience allows them to meet the challenges they&apos;ll face in the role.&lt;/p&gt;
&lt;p&gt;Scenarios and live projects also allow you, the employer, to evaluate the most important skills a Support professional needs in order to excel in any Support role: are they able to learn new things, troubleshoot, and problem-solve on the fly? How do they deal with uncertainty, frustration, and stress? Can they effectively explain what they&apos;re doing? How do they communicate with peers and supervisors? Do they know when to admit they&apos;re struggling and ask for help?&lt;/p&gt;
&lt;p&gt;It&apos;s a frustrating waste of everyone&apos;s time to ask experienced candidates to prove they know how to do basic support work like answering tickets, but it&apos;s perfectly reasonable to want to be sure a candidate&apos;s writing and communication skills will match the needs of a Support role.&lt;/p&gt;
&lt;p&gt;This is where work samples or writing portfolios come in. Most experienced support professionals are very well-versed in writing help documentation, training material, and even blog posts, and most will be able to provide one or two existing samples upon request. This is a much better option than asking a candidate to write a help center article for your company in a take-home project; it&apos;s less exploitative, and it tells the candidate that not only do you respect their time, but you also recognize and value the experience demonstrated in their resume and application.&lt;/p&gt;
&lt;h2&gt;But If You Must Do Take-Homes, Do Better&lt;/h2&gt;
&lt;p&gt;If you&apos;ve gotten this far and you&apos;re still thinking that I&apos;ll pry take-home assignments from your cold, dead hands -- well, I can&apos;t stop you from being wrong. But if you&apos;re going to do take-homes, there are ways to not be an asshole about it.&lt;/p&gt;
&lt;p&gt;For starters, shorten the take-home as much as possible, and limit it to only the type of work the candidate would be doing if they got the job. For an (unfortunately real) example, if they&apos;re going to be managing a team of front-line agents, don&apos;t ask them to do market research and make recommendations for how to improve your mobile app to be more competitive with other companies&apos; apps.&lt;/p&gt;
&lt;p&gt;Secondly, shorten your overall interview process as much as possible, and only ask a candidate to complete a take-home project if you&apos;re otherwise sure the candidate is a good fit for the role. If you&apos;re asking a candidate to go through 5-6 rounds of interviews plus a 2-8 hour take-home project, that&apos;s 5-13 hours of time you&apos;re taking away from that candidate, who you may not hire, and who is likely repeating this process with other companies as well. Aside from making your company more competitive comparatively, it&apos;s also just decent and more equitable to reduce the demands you&apos;re making on a person&apos;s largely uncompensated time.&lt;/p&gt;
&lt;p&gt;Lastly, pay candidates for completing the take-home project, regardless of whether the take-home assignment actually contains real work the candidate might do in the role. Again, aside from making your company incredibly competitive, it&apos;s also just the right thing to do. If you&apos;re asking a candidate -- or anyone -- to do work they wouldn&apos;t otherwise do, you should pay them.&lt;/p&gt;
&lt;p&gt;How much you should pay will obviously depend on the role and the work involved. My advice is to use the hourly rate on the high-end of the salary range for the role in question and then multiply that by the number of hours the take-home project will take to complete. Having said that, a flat rate is also acceptable, and it never hurts to default to generosity.&lt;/p&gt;
&lt;p&gt;Could paying people for their time or eliminating the take-home altogether get expensive? Certainly, if you don&apos;t know what you&apos;re looking for or haven&apos;t properly screened candidates as they move through the hiring process. But hiring the wrong person is also incredibly expensive, both in terms of time and revenue lost, so committing the resources to ethically finding the right person for the right role at the right time?&lt;/p&gt;
&lt;p&gt;That&apos;s priceless.&lt;/p&gt;</content:encoded></item></channel></rss>