<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Between Code and Culture]]></title><description><![CDATA[Honest insights and dry-humored truths about the messy human systems inside product, engineering, and operations. If you build, fix, or hold things together at work, this is your corner of the internet.]]></description><link>https://www.between-code-and-culture.tech</link><image><url>https://substackcdn.com/image/fetch/$s_!JBar!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png</url><title>Between Code and Culture</title><link>https://www.between-code-and-culture.tech</link></image><generator>Substack</generator><lastBuildDate>Wed, 22 Apr 2026 10:34:17 GMT</lastBuildDate><atom:link href="https://www.between-code-and-culture.tech/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mateja Verlic Bruncic]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[betweencodeandculture@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[betweencodeandculture@substack.com]]></itunes:email><itunes:name><![CDATA[Mateja Verlic Bruncic]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mateja Verlic Bruncic]]></itunes:author><googleplay:owner><![CDATA[betweencodeandculture@substack.com]]></googleplay:owner><googleplay:email><![CDATA[betweencodeandculture@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mateja Verlic Bruncic]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Your new direct report doesn't sleep]]></title><description><![CDATA[On leading teams where half the contributors are human and the other half don't care about your org chart]]></description><link>https://www.between-code-and-culture.tech/p/your-new-direct-report-doesnt-sleep</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/your-new-direct-report-doesnt-sleep</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 13 Apr 2026 06:07:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!igKC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Jack Dorsey published <a href="https://block.xyz/inside/from-hierarchy-to-intelligence">a post</a> tracing organizational design from the Roman legions to AI. Two thousand years of history, one conclusion: <em>managers are information routers, and AI routes information better</em>.</p><p>I read it twice.</p><p>The first time, I was nodding. The history lesson is genuinely good. The diagnosis of hierarchy as an information bottleneck is accurate. And the vision of a &#8220;world model&#8221; that <em>maintains a continuously updated picture of the entire business, replacing layers of status meetings and alignment rituals</em>? Anyone who&#8217;s ever sat through a three-hour quarterly review wondering who this was actually for will feel the pull. </p><p>The second time, I started counting assumptions. I ran out of fingers.</p><h2>The pitch</h2><p>Dorsey&#8217;s argument goes like this: humans can effectively manage three to eight people. This biological limit forces organizations to add coordination <em>layers</em>. Each layer slows information. AI removes the constraint by maintaining a <strong>shared model of business state</strong> that everyone can access directly. Result: fewer managers, more builders, faster decisions. Yay!</p><p>He proposes three roles. Individual contributors who build. Directly Responsible Individuals who own problems that span multiple teams for defined periods. Player-coaches who develop people while still building. No pure managers. The world model handles alignment. And pigs might fly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!igKC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!igKC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!igKC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!igKC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!igKC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!igKC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1601835,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/194003619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!igKC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!igKC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!igKC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!igKC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff42d638d-4b46-4ffa-ab6e-3572c068ef6e_1200x896.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;ve spent any time in an organization larger than a dozen people, you feel the appeal. The layers, the alignment meetings, the <em>translated-twice-before-it-reaches-you</em> version of a decision someone made three weeks ago. All real friction and all worth reducing.</p><p>But <em>reducing friction</em> and <em>removing the people who manage friction</em> are different operations.</p><h2>Why everyone hates middle management (and why they&#8217;re wrong)</h2><p>I don&#8217;t know when middle management became the villain of every organizational redesign. We show up in every consulting deck as the &#8220;layer to eliminate.&#8221; Every new model, from <a href="https://www.holacracy.org/">Holacracy</a> to AI world models, starts with the same premise: <strong>the problem is the people in the middle.</strong></p><p>I&#8217;m in the middle. Let me tell you what the middle actually does.</p><p>We translate strategy into work and work into strategy. We absorb pressure from above so teams can focus. We absorb frustration from below so leadership hears what's actually going on, not the version that got cleaned up on the way up. We are, in the most literal sense, the <strong>shit shovelers</strong>. The people who handle what nobody else wants to touch: the difficult conversation, the impossible deadline negotiation, the moment when the plan falls apart and someone has to figure out what happens next.</p><p><a href="https://www.ddi.com/about/media/global-leadership-forecast-2025">DDI surveyed 11,000 leaders</a> across 50 countries. Trust in immediate managers dropped from 46% to 29% between 2022 and 2025. A 37% decline. Forty percent of leaders have considered quitting. Seventy-one percent report heightened stress. And frontline leaders are three times more likely than senior executives to have concerns about AI.</p><p>The people closest to the work are the most stressed, the least trusted, and the most worried about what&#8217;s coming. And the organizational response is: let&#8217;s remove their roles.</p><p>We all know how the Flat Earth theory ended. Flat orgs are heading the same way, just with better branding.</p><h2>Flat org, meet Flat Earth</h2><p>Every five years or so, someone announces a better way to organize humans. Holacracy at Zappos. Squads at Spotify. No managers at Valve. Each experiment started with genuine insight and ended the same way: when you strip out the visible structure, you strip out the map. What replaces it is informal, unaccountable, and <em>works for people who already know everyone</em>. The people who already know who actually calls the shots adapt fine. Everyone else is guessing. Ever heard of the <em>cool kids club</em>? It&#8217;s real.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I21N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I21N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!I21N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!I21N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!I21N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I21N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1697976,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/194003619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!I21N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!I21N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!I21N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!I21N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8efa50-f13c-41ce-8e2e-6ad097dfc999_1200x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Dorsey&#8217;s DRI model sounds great on paper. Own a problem that spans multiple teams for 90 days, pull whatever resources you need. But who picks the problems? Who decides the scope? Who steps in when 90 days isn&#8217;t enough? Those are hierarchy decisions. They just lost the job title that made them visible.</p><p>I&#8217;ve lived through what happens when &#8220;flat&#8221; and &#8220;empowered&#8221; become excuses to stop communicating.</p><p>Years back we tried the &#8220;every team is an island&#8221; approach once. Autonomous. Self-directed. No cross-team dependencies to slow anyone down. It took a couple of weeks before one team shipped a change that broke the system downstream, and the other team spent a Friday afternoon troubleshooting with <em>we haven&#8217;t changed anything, what the hell happened?</em> </p><p>Within a month the teams were on <em>us vs. them</em> terms. We had to undo the islands. Rebuild the bridges. Make sure people crossed paths, in Slack, in person, in whatever worked. Because it turns out we were part of a living, connected system, and pretending otherwise just meant the surprises were bigger and the blame was louder.</p><p>I&#8217;ve also seen team members find out about features they&#8217;d have to sell, by accident, because the <em>empowered</em> team building it didn&#8217;t think to tell anyone before shipping. These were the same people who thought keeping others in the loop meant asking for permission &#8212; which, if you think about it for more than five seconds, is a bit silly. Empowerment favors action. Less so communication. So they shipped fast, almost in secrecy, so no one could slow them down. Then complained that marketing had no materials and sales had no pitch. </p><p>The popular take is that hierarchy is the obstacle and flattening is progress. The hierarchy you removed is the hierarchy you can&#8217;t see. You didn&#8217;t eliminate power dynamics, just made them harder to challenge.</p><h2>Now add agents to the mix</h2><p>This is where it gets interesting, and by interesting, I mean nobody is prepared for this.</p><p>The conversation about AI and organizations splits neatly into two camps. Camp one: AI eliminates jobs (FOMO, rush to deploy, keep buying tools that don&#8217;t work yet). Camp two: AI augments jobs (it&#8217;s just a tool, relax, nothing will change). Neither camp is talking about the specific, practical, Monday morning reality of <em>managing</em> teams that include <em>both</em> humans and AI agents.</p><p>Your team now includes contributors that never get tired, never push back, and never tell you when you&#8217;re wrong. See the problem?</p><p>An agent can generate 80% of a deliverable before your human engineer has finished scoping the edge cases. The agent&#8217;s output looks complete. It passes tests. It even has comments. What it doesn&#8217;t have is context about why the third endpoint was deliberately left slow, or that the product team changed direction in a hallway conversation yesterday.</p><p>Now imagine the reality <strong>most of us actually work in</strong>. A codebase with ten thousand lines built over years, without documented decisions about why anything was done the way it was. If you&#8217;re lucky only half the people who wrote it aren&#8217;t at the company anymore. Exception on workaround on exception, with some good practices... and then more exceptions, because sometimes <em>customer value first, stability later</em>. </p><p>An agent will build its own understanding of that code. It might, at some point, revert the fix you shipped last week for a critical production issue and in worst case commit straight to master without hesitation. Because from the agent&#8217;s perspective, why not? It doesn&#8217;t know the backstory. It isn&#8217;t always good at following instructions. And nobody told it that particular line of code was load-bearing in a way that doesn&#8217;t show up in tests.</p><p>Meanwhile, the humans on your team are watching. The engineer who used to be your strongest contributor at their core task is now slower than an agent at that same task. Their value hasn&#8217;t decreased. Judgment, institutional knowledge, the ability to read the room and flag something the spec missed. All still critical. But their confidence has taken a hit because the visible measure of contribution, the thing they built their identity around, isn&#8217;t special anymore.</p><p><a href="https://hbr.org/2026/02/how-to-foster-psychological-safety-when-ai-erodes-trust-on-your-team">HBR published an article with research findings</a> on what happens when AI provides confident but incorrect information: it creates &#8220;trust ambiguity.&#8221; People stop trusting the AI and start distrusting each other&#8217;s use of it. The team fragments. Nobody agreed on how much to trust it, and now nobody trusts each other&#8217;s judgment either.</p><p>And it&#8217;s not just the ICs. Now that leaders have AI tools too, they brainstorm with agents, get excited about the output, and send over two sentences of high-level instruction with &#8220;the details are in the linked Claude chat.&#8221; No useful context. No evaluation of whether this even makes sense. No pause to ask the agent <em>what could go wrong</em> or <em>why might this not work</em>. Before, they&#8217;d come to the team for input. Now they arrive with a solution the agent designed without knowing anything about our codebase, our constraints, or the three times we already tried this. Just vibes, a link, and an encouraging &#8220;Just do it!&#8221; Helping the team think, apparently.</p><p>This is happening now, in real organizations, by real leaders who used to ask their teams for input before making decisions. Is this the new reality? Maybe. But the trust ambiguity isn&#8217;t just about agent output anymore. It&#8217;s about whether your boss ran the idea past a human before they ran it past you.</p><p>This is where Dorsey's "world model handles alignment" falls apart. The world model can track velocity, customer metrics, system health. What it can't track is your best engineer getting a little quieter every week, because he's been flagging the same risks for months, nobody's picking it up, and the only questions he gets are "how fast?" and "why not faster?" It can't see the reluctance to make hard calls when you know no one has your back if it goes wrong. It won't notice that the work has quietly stopped being the kind anyone would put on a CV. It tracks the work., but it sure misses the people doing it.</p><h2>The stuff that isn&#8217;t machine-readable</h2><p>People are not rational agents who write everything down, communicate clearly, and follow the optimal path. Sometimes they&#8217;re tired. They run out of energy, will, or both. They don&#8217;t want to write documentation. They skip the standup because they&#8217;ve got nothing to show yet and don&#8217;t want to say that out loud. They avoid the hard conversation because it&#8217;s Thursday afternoon and they&#8217;ve already had three that week. And other times they&#8217;re on fire. Full of ideas, moving fast, shipping things, and the last thing they want is to slow down and write it up. <em>Let&#8217;s just build!</em> They&#8217;ll document it later. (They won&#8217;t.)</p><p>There&#8217;s a name for this kind of environment. <a href="https://www.iftf.org/insights/navigating-the-age-of-chaos-a-sense-making-guide-to-a-bani-world-that-doesnt-make-sense/">Jamais Cascio</a> calls it BANI: Brittle, Anxious, Nonlinear, Incomprehensible. It replaced VUCA, which described the environment from the outside. BANI describes how it feels from the inside. That&#8217;s not a strategic framework. That&#8217;s a regular day at the office.</p><p>Dorsey&#8217;s model is optimized for a world that isn&#8217;t BANI. It assumes the system is comprehensible, that causation is linear, and that the structure is resilient. BANI says: your system is brittle, your people are anxious, causation is nonlinear, and some of what&#8217;s happening is genuinely incomprehensible. Not temporarily unclear. It doesn&#8217;t fit in a model. Period.</p><p>Cascio himself said something that stuck with me: <em>define the purpose, not the path</em>. He calls it &#8220;flexive intent.&#8221; Get everyone pointed at the same thing, then let them figure out how to get there. Which is really just admitting that control was always an illusion. But someone still has to hold the purpose steady when the path keeps changing. Someone has to notice when the team has gone quiet. Someone has to do something about it. That&#8217;s my job.</p><h2>So what do I actually do with this</h2><p>Leadership theorists have a name for the archetype they think will thrive in BANI environments: the <em><a href="https://www.forbes.com/sites/kevinkruse/2025/02/10/futurecaster-the-new-leadership-model-for-a-bani-world/">Futurecaster</a></em>. Visionary, agile, innovative, relational, resilient. It reads well in a keynote abstract.</p><p>Now try selling that to a team that&#8217;s been through three strategic pivots in 18 months, watched half their colleagues get laid off, and has a leadership team that oscillates between <em>we need to adopt AI yesterday</em> and <em>actually, let&#8217;s wait for Q3 to decide</em>. Your team isn&#8217;t hungry for another vision. They&#8217;re hungry for someone who will stop changing the plan every time a CEO publishes a blog post.</p><p>Your VP is going to keep forwarding the latest AI hype article with <em>thoughts?</em> attached. The C-suite is going to keep chasing every shiny tool that promises 10x productivity. That&#8217;s not malice. That&#8217;s leadership FOMO, and it&#8217;s everywhere right now. You can&#8217;t change the people above you. <strong>You can change how you absorb what they send down.</strong></p><p>So the competencies that matter aren&#8217;t new. They&#8217;re old competencies applied to a context that didn&#8217;t exist 18 months ago.</p><p><strong>Cognitive flexibility</strong> is the <a href="https://www.weforum.org/publications/the-future-of-jobs-report-2025/in-full/3-skills-outlook/">World Economic Forum&#8217;s</a> polite way of saying: <em>you need to hold two contradictory ideas at breakfast and still make a decision by lunch</em>. In practice, it looks like switching between &#8220;evaluate this agent&#8217;s output for subtle errors&#8221; and &#8220;support this human who feels their role is disappearing&#8221; in the same hour. Holding &#8220;hierarchy can be oppressive&#8221; and &#8220;hierarchy can be clarifying&#8221; at the same time, and knowing which one is true right now, for this team, for this decision. I started building this by spending time in rooms where people think differently than I do. Sitting in on sales calls when my background is engineering. Joining product discussions for the platform my team supports. Cognitive flexibility grows from problems shaped differently than the ones you&#8217;re used to. No workshop replicates that.</p><p><strong>Emotional resilience, and beyond it, anti-fragility.</strong> Resilience is surviving stress and returning to baseline. Anti-fragility is getting stronger because of it. Your humans are anxious about the agents. The agents produce without caring about the anxiety they generate. You sit in the middle, absorbing the tension so the team can function. Nobody wrote a job description for this. You&#8217;re doing it anyway.</p><p>What I&#8217;ve learned is that vulnerability is what makes this work. When I started saying &#8220;I don&#8217;t have a playbook for human-agent team dynamics, we&#8217;re figuring this out together,&#8221; the team didn&#8217;t lose confidence. They stopped pretending they had it figured out, too. And that&#8217;s when we started actually solving problems instead of performing competence at each other. I&#8217;ve been on teams where the leader was the last to know something was going wrong. It&#8217;s never because the team didn&#8217;t see it. It&#8217;s because nobody thought telling the leader would change anything.</p><p><strong>Sensemaking.</strong> Nobody talks about this one enough. AI has made it easier to generate options, strategies, and recommendations. It has not made it easier to determine what matters. The shift I keep coming back to: it&#8217;s not &#8220;what should we do&#8221; anymore. It&#8217;s &#8220;what&#8217;s actually happening here.&#8221; Without it, more information just creates confusion. Teams get stuck in debate mode. Executives reverse decisions. Meetings multiply. You&#8217;ve seen this week. I&#8217;ve started forcing precision before action: what decision are we actually making? What are the constraints? What are we explicitly choosing <em>not</em> to do? Boring questions. But the teams that ask them consistently spend less time undoing decisions nobody remembers making.</p><p><strong>The fortitude to embrace calculated risk</strong> means deploying agent-generated work you can&#8217;t fully verify, accepting that your team will make mistakes in a category of failure that didn&#8217;t exist before, and owning outcomes you didn&#8217;t directly produce. <a href="https://www.inc.com/nick-selby/how-fomo-is-turning-ai-into-a-cybersecurity-nightmare/91261473">Inc. reported</a> that AI implementations fail because executives deploy without addressing the operational, cultural, and governance stuff first. <em>The technology usually works fine. Everything around it doesn&#8217;t.</em> </p><p>There&#8217;s a name for the two sides of this: <strong>FOMO</strong> (racing to adopt) and <strong>FOMI</strong> (fear of massive implosion from deploying recklessly). Nearly <a href="https://www.montecarlodata.com/blog-ai-fomo-is-tearing-your-company-apart/">94% of C-suite executives</a> report dissatisfaction with their AI solutions, and their response is to buy more AI solutions. That anxiety rolls downhill. By the time it reaches your team, the excitement has curdled into exhaustion. So you make the call anyway. Keep the blast radius small. Be honest when something breaks.</p><p>Some weeks I feel like a sponge for organizational FOMO. Every day, another signal that everything is about to change. Another article forwarded, another tool to evaluate, another <em>have you seen what X company is doing with AI?</em> I have to be careful not to get sucked in myself. Because it&#8217;s easy. The excitement is real, the pressure is real, and falling behind feels like a thing that could actually happen to you. But if I pass all of that through to the team unfiltered, they don&#8217;t get motivated. They get whiplash. So I translate instead. <em>This is what it means for us. This is what changes. This is what stays the same.</em> Some days, translating is the only useful thing I do.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q6IG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q6IG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!q6IG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!q6IG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!q6IG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q6IG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1716093,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/194003619?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q6IG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!q6IG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!q6IG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!q6IG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21fcde29-8ece-4c6f-b7da-bfe835564f82_1200x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The <a href="https://www.weforum.org/stories/2025/01/future-of-jobs-report-2025-jobs-of-the-future-and-the-skills-you-need-to-get-them/">WEF says 70% of job skills will change by 2030</a>. That&#8217;s probably true. But it doesn&#8217;t mean 70% of what makes you good at your job will become irrelevant. The technical surface changes. The human part stays. Judgment, trust-building, the ability to hold contradiction, the courage to make a call when the data is incomplete. Those don&#8217;t have a half-life. They compound.</p><p>The futurecaster isn&#8217;t someone who sees the future. It&#8217;s someone who holds the team together while the future arrives in unpredictable, nonlinear, incomprehensible bursts. That&#8217;s a middle management skill. Always has been.</p><h2>Where Dorsey is right</h2><p>I don&#8217;t want to be unfair. The post identifies a real problem. Layers of human coordination <em>do</em> slow information. AI <em>can</em> compress that overhead. The &#8220;world model&#8221; concept, a continuously updated shared picture of business state, is genuinely useful. If your organization&#8217;s primary bottleneck is information routing, AI coordination will help.</p><p>And honestly? Parts of Dorsey&#8217;s vision would make my job easier. A system that automatically surfaces upcoming changes, pulls relevant context from scattered Slack threads and private channels, sends reminders about releases before they surprise the team next door. I&#8217;d take that. Right now, too much information lives in the heads of a few people or buried in channels most of the org doesn&#8217;t even know exist. If AI can make that visible, that&#8217;s not replacing middle management. That&#8217;s giving us better tools to do the work we&#8217;re already doing.</p><p>But most organizations I&#8217;ve worked in aren&#8217;t primarily bottlenecked by information routing. They&#8217;re bottlenecked by decision avoidance, because the system rewards not deciding over deciding wrong, and by <strong>the gap between what leadership says and what the operating system actually does</strong>. Those aren&#8217;t information problems. They&#8217;re <strong>human problems</strong>. And human problems don&#8217;t get solved by replacing the humans with a model.</p><p>The competency future leaders need has nothing to do with thriving without hierarchy. Build structures honest enough to be challenged and flexible enough to handle what&#8217;s coming. And then say, clearly and out loud: this is new, I don&#8217;t have it figured out, and we&#8217;re going to build the answer together.</p><p>That won&#8217;t fit in a world model. But it might fit in a team.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">For the people doing the job nobody wrote a job description for.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[You are the weather]]></title><description><![CDATA[You went home thinking it was a perfectly normal day. Your team didn't.]]></description><link>https://www.between-code-and-culture.tech/p/you-are-the-weather</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/you-are-the-weather</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Tue, 07 Apr 2026 06:13:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HzBu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>&#8220;Why are people too sensitive? I can&#8217;t even ask a question without them feeling hurt.&#8221;</em></p><p>A few weeks later, same leader. You pull him aside and tell him he hurt someone on your team. He doesn&#8217;t see it coming.</p><p><em>&#8220;Why doesn&#8217;t anyone say anything to me?&#8221;</em></p><p><em>You</em> said something. He heard the words. He didn&#8217;t hear what you meant.</p><p>They do say something. They say it to you. You bring it to him. He listens, nods, and explains why it doesn&#8217;t count. They hadn&#8217;t said it to him directly.</p><p>What&#8217;s missing from that framing: most people won&#8217;t say it directly. Not because they have nothing to say, but because walking up to a leader you don&#8217;t have a relationship with, especially one who isn&#8217;t even yours. One who doesn&#8217;t ask. One who doesn&#8217;t make it easy. That takes guts. A bit of recklessness, even. And with someone who gets defensive the moment feedback lands and will spend the next ten minutes convincing you that you&#8217;re wrong about how you feel, most people do the math quickly. It&#8217;s not that they&#8217;re afraid. They just don&#8217;t see the point.</p><p>So they say it sideways. To you. In feedback forms where nobody asks about a leader who doesn&#8217;t manage them. The message reaches him only when someone like you carries it &#8212; and even then, it doesn&#8217;t always count.</p><div><hr></div><p>But maybe you&#8217;ve also been <em>the leader nobody said it to directly</em>.</p><p>He is not unique. This particular blind spot is more common than anyone admits out loud. I've worked with enough leaders to know that most of them aren't malicious. They're just not looking. They're focused on the work, on the output, on what's wrong and how to fix it, and somewhere in that focus they stopped noticing what their mood does to the people around them. Their team feels it. Other teams feel it. Sometimes the whole company feels it. And yet nobody hands them a mirror.</p><div><hr></div><h2>The walk-in</h2><p>A textbook example of such a leader: smart, direct, usually right about the things he cares about. He also has a walk-in that can ruin a morning before anyone has opened a laptop. He doesn&#8217;t mean to. It comes naturally.</p><p>Barely a hello. An expression that says he&#8217;s already rendered a verdict about something and you probably won&#8217;t like it. Someone asks him something: short answer, all business, maybe an eye-roll for good measure. The team reads all of this before he&#8217;s sat down. They adjust. Conversations get a little more careful. Someone decides not to bring up the thing they were going to bring up. A difficult question gets postponed to next week. <em>Not today.</em> Nobody says why.</p><p>This is <em>weather</em>. The team didn&#8217;t cause this. They can&#8217;t fix it. They just have to live in it for the rest of the day. And he has no idea. Which is actually the worst version of this. At least if you know you&#8217;re doing it, you can do something about it. This is the kind where the leader goes home thinking it was a perfectly normal day.</p><p>It&#8217;s not just the walk-in. It&#8217;s the <em>tone</em> when he asks a question. The <em>grimace</em> he doesn&#8217;t know he&#8217;s making. The way a &#8220;<em>just curious&#8221; lands like an interrogation</em>. The person sitting across from him can feel that something is already decided. He goes from <em>zero to shark</em> the moment he senses something is off. Not aggressive exactly, just circling, jaw slightly open, and everyone in the room can feel it. He&#8217;s not asking to understand. He&#8217;s asking to find the inconsistency. His radar doesn&#8217;t much care whether it&#8217;s intentional or just someone who didn&#8217;t have all the information.</p><p>I&#8217;ve seen people freeze in those moments. Not because they don&#8217;t have an answer, but because they can smell the agenda, and they know that whatever they say, it&#8217;s already going to land inside a conclusion that was drawn before the conversation started.</p><h2>Judgment day, every week</h2><p>The format that does the most damage is the one that&#8217;s supposed to do the most good: the <strong>one-on-one</strong>.</p><p>The pattern is always the same. The leader points out what&#8217;s not working, tells people what they need to improve, and genuinely believes they&#8217;re doing them a favor. When you ask if that&#8217;s all they do in these sessions, the surprise is always real. &#8220;<em>What? Should I say when they do something right? Because that&#8217;s obvious.</em>&#8221;</p><p><strong>It is not obvious. Not even a little.</strong></p><p>I know what it feels like to dread a one-on-one with someone who runs it this way. There was a time in my career when I had a session every week with a superior who worked the same way. Every time I walked in, I felt like I was at the dentist. Not a routine check-up, the kind where they pull something out without anesthesia. You sit down, you brace, you get through it, and then you spend the rest of the day trying to remember why you liked your job.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xeW7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xeW7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!xeW7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!xeW7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!xeW7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xeW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1933700,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/193273961?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xeW7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!xeW7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!xeW7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!xeW7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2be91a-8314-48bf-9a0d-b916374d31ed_1200x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I eventually said something, because that&#8217;s what I do. My manager was willing to work with me on it. We renegotiated how those sessions would go, and they became useful for both of us. I&#8217;m grateful for that. Maybe I was lucky. Not every manager takes that conversation well.</p><p>But I keep telling my team the same thing: you don&#8217;t know until you try. Prepare, give the feedback, brace for the aftermath. If the sessions already feel like the dentist, how much worse can it get? Open heart surgery, maybe. But unlikely. Maybe it&#8217;s a cultural thing. Maybe it&#8217;s a personality thing. But the cost of staying quiet is almost always higher than the cost of a conversation you actually prepared for.</p><p>Not everyone gets there. And when they don&#8217;t, something shifts after enough of these sessions. Remember that childhood game where the floor is lava and you have to cross the room without touching it? Same principle here, just different consequences. Certain topics become lava. Booking time with them becomes lava. The conversation that should happen gets rerouted through someone else, or dropped entirely. The next meeting runs unusually smooth. Nobody raises anything. The leader thinks: good, we&#8217;re aligned. No complaints. Progress.</p><p>They&#8217;re not aligned. They&#8217;re just waiting for it to be over.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-ED5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-ED5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!-ED5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!-ED5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!-ED5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-ED5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2045745,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/193273961?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-ED5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!-ED5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!-ED5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!-ED5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d5bcf3-e743-4df1-8fbc-43539327e198_1200x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When every one-on-one feels like judgment day, people stop performing for the work. They tell you what they think you want to hear. They don&#8217;t raise the thing that might open a conversation they&#8217;re not ready for. And you, sitting across from them, think you&#8217;re getting the full picture. You&#8217;re not. They&#8217;re in <em>self-preservation</em> mode.</p><p>You&#8217;re getting the edited version. Produced specifically for this room.</p><h2>No relationship, no landing</h2><p>The reason people end up in self-preservation mode is almost always the same&#8230; Some leaders confuse being <em>frank</em> with being <em>blunt</em> and wear it like a badge. No-nonsense. No-bullshit. Straight shooter. Great brand. Terrible weather. What they don&#8217;t see are the corpses they leave behind.</p><p>The difference: being <strong>direct</strong> means <strong>saying what you mean</strong>. Being <strong>blunt</strong> means <strong>not caring how it lands</strong>. Harsh, impolite, regardless of feelings, sometimes crossing into insensitive or outright rude.</p><p>Say someone hits a problem during implementation and has to bring bad news: something will take longer than expected, or they discovered an issue that changes the plan.</p><p>The direct version: &#8220;<em>Okay, how bad is it? What do we need to fix it?</em>&#8221; The person feels like they surfaced a problem. <br>The blunt version: &#8220;<em>How did you not catch this earlier? This should have been flagged in planning.</em>&#8221; The person feels like they are the problem.</p><p>You can have an opinion. You can give feedback, even the difficult kind. But you don&#8217;t get to skip straight to that without building something first.</p><p><strong>Feedback without relationship lands as attack</strong>. Not because the feedback is wrong (it might be completely right) but because the person on the receiving end has no evidence yet that <strong>you want good for them</strong>. Without that evidence, the brain doesn&#8217;t process it as input. It processes it as threat. Some people will push back and set a limit. Most will go quiet, wait for it to be over, and start growing a resentment that, after a while, stops being resentment and becomes a resignation letter.</p><p>The relationship is the prerequisite &#8212; and I know, because I&#8217;ve had to build one before telling a leader that his feedback style was driving people away. He listened. And then: &#8220;Fine. I&#8217;ll never ask another question.&#8221; Or: &#8220;Fine. I&#8217;ll stop giving feedback altogether.&#8221;</p><p>He listened, but he didn&#8217;t hear me. What landed was <em>stop</em>, not <em>differently</em>. He knows feedback is valuable. He just can&#8217;t yet see that the <strong>delivery is what determines whether it lands&#8230; or detonates</strong>.</p><h2>Some days you are the hydrant</h2><p>I am not a neutral observer in any of this. I&#8217;ve had to learn versions of this too.</p><p>Some days I am the dog. Some days I am the hydrant. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P7D4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P7D4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!P7D4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!P7D4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!P7D4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P7D4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1896913,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/193273961?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!P7D4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!P7D4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!P7D4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!P7D4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08cb1e80-a05f-45c5-8d3e-9993936222bf_1200x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On the <em>hydrant</em> days, I tell my team: today is not the best day to challenge me, I need focus and I need information fast. I don&#8217;t want sympathy, but if I&#8217;m normally high-energy and then go suddenly quiet, the team notices. And if I don&#8217;t say anything, they&#8217;ll assume it&#8217;s them. It&#8217;s not. It&#8217;s just weather under <em>active management</em>. Letting them know that keeps them safe, spares me some apologies, and gives us something to laugh about the next day. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HzBu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HzBu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HzBu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HzBu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HzBu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HzBu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:727350,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/193273961?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HzBu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HzBu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HzBu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HzBu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87252b38-a934-4b2d-a571-3aeccbd5e942_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On the dog days, there&#8217;s banter, there&#8217;s a bit of chaos, and that&#8217;s also fine, because that&#8217;s how you know the relationship you have with them can absorb both.</p><p>Not hiding your emotions isn&#8217;t the same as <em>dumping</em> them on people. <em>I&#8217;m frustrated about the timeline, not about your work. I&#8217;m having a rough day, bear with me.</em> Simple sentences. They give people information instead of making them guess. And <strong>when people aren&#8217;t guessing, they&#8217;re working</strong>. Which is what we want.</p><p>What I haven&#8217;t fully made peace with yet is <em>where that control ends</em>.</p><p>What I cannot do &#8212; no matter how good I get at this &#8212; is fully protect my team from <em>someone else&#8217;s weather</em>. You can be as transparent as you want about your own state. You can coach your team to name what&#8217;s happening, to give feedback when something isn&#8217;t okay, to set their own limits. You can remind them that <strong>if they say nothing, the other person will assume everything is fine</strong>. And sometimes the weather still comes in from somewhere you&#8217;re not standing. You notice it before they say anything: someone quieter than usual, an energy that wasn&#8217;t there yesterday. Sometimes they come to you. Sometimes you just watch it land and know exactly where it came from.</p><p>My instinct is always to get between them and <em>it</em>. But that&#8217;s not how empowered teams work. My job isn&#8217;t to be the umbrella forever. It&#8217;s to make sure they know how to hold one.</p><h2>Weather forecast</h2><p><em>Why are people too sensitive?</em></p><p><em>Why doesn&#8217;t anyone say anything?</em></p><p>The answer to the second is in the first. They stay quiet because they don&#8217;t see the point. And then one day, quietly, they do, just not to you. You get the resignation, not the conversation.</p><p>Feedback is only valuable if it lands, and it doesn&#8217;t land because the message is good. It lands if there is trust. That trust isn&#8217;t given. It&#8217;s built, slowly, in all the moments before the hard conversation: in the walk-in, in the one-on-one, in whether you showed someone their feelings were real. None of that is soft. It&#8217;s the only part that gets feedback through the door.</p><p>Weather isn&#8217;t always dramatic. Sometimes it&#8217;s just a look and a short answer. But the team is reading the forecast either way.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">The soft stuff isn&#8217;t soft. Essays on leadership for people who don&#8217;t believe in fluff.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Prepare for the worst, then forget you did]]></title><description><![CDATA[A pessimist and an optimist walk into a bar... err, office. They need each other. They also drive each other insane.]]></description><link>https://www.between-code-and-culture.tech/p/prepare-for-the-worst-then-forget</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/prepare-for-the-worst-then-forget</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 30 Mar 2026 06:13:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!feUR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A Slack notification came in last week. Potential new project. Exciting, ambitious, not totally aligned with what we&#8217;re doing but not crazy either. The kind of thing that doesn&#8217;t come along often.</p><p>My brain was three steps ahead before I&#8217;d finished reading the message. Not in the good way. I had a list of problems forming. Integration complexity. Scope creep. Dependencies nobody had mapped yet. Who inherits the maintenance when the excitement wears off. I know this movie.</p><p>I got to about seven reasons before I caught myself.</p><p>Counted to ten. Closed Slack. Said to myself: <em>not today, Satan</em>.</p><p><em>Let it play out. Don&#8217;t shut it down before it starts.</em> I&#8217;ve done this before. Walked into a conversation already holding a verdict I formed in the time it took to read a subject line.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wsP5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wsP5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wsP5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wsP5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wsP5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wsP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:672675,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/192488123?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wsP5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wsP5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wsP5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wsP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F657fa63c-c05a-4725-8cba-06dc72c45e1b_1200x896.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I deliberately caught myself. A couple of weeks earlier, my superior called me a <em>pessimist</em>. Not the first time. Most likely not the last. But this time it sent me down a rabbit hole: why does he see me that way when <em>I know I&#8217;m not</em>? I did some research. What I found made me pause this time with the Slack notification.</p><p>If I&#8217;m the pessimist in this story, he&#8217;s the opposite. The <em>endless optimist</em>. The <em>visionary</em>. Almost every time I raise potential problems, it triggers him. Every time he doesn&#8217;t acknowledge what I&#8217;m seeing, it triggers me. Two people who genuinely want the same thing, unable to hear each other.</p><p>The remark made me defensive in a way I hadn&#8217;t expected. I&#8217;m not a pessimist. <em>I believe in the projects we&#8217;re doing</em>. When I raise issues, I&#8217;m <em>not trying to kill the idea</em>. I&#8217;m trying to <em>catch what will hurt us before it does</em>, approach things from a better angle, think them through before the problems become crises.</p><p>That&#8217;s not pessimism. Is it?</p><p>The label stuck with me. Why does he see it that way? While doing the research, a different question started forming: <strong>when do we need the dark side and when do we need the bright side</strong>? In ourselves, in the people around us. <strong>When is the pessimist&#8217;s checklist the right tool, and when is it the thing getting in our way?</strong></p><p>I came across a piece by <a href="https://www.productgrowth.blog/p/the-upside-of-naivete">Rishikesh Ranjan</a> that pushed me further into it.</p><h2>When not knowing is the superpower (and its tab)</h2><p>Ranjan writes about George Dantzig, a PhD student who showed up late to a statistics lecture at Berkeley in 1939. Two problems were on the board. He assumed they were homework, copied them down, and handed in solutions a few days later with an apology that they had <em>seemed a little harder than usual</em>.</p><p>They weren&#8217;t homework. They were unsolved theorems that had stumped the field for years.</p><p>Ranjan puts it well: &#8220;<em>Naivety is the amplifier. Optimism or pessimism is the signal it amplifies.</em>&#8221; An <em>unskilled person</em> who doesn&#8217;t know what they don&#8217;t know <em>produces noise</em>. A <em>skilled person</em> who temporarily sets aside what they know about why something shouldn&#8217;t work? That&#8217;s where breakthroughs come from.</p><p>I hadn&#8217;t heard the story before. And I wish it were always that clean.</p><p>You build it, it works, it ships. Then real life happens. Problems surface. Edge cases multiply. The thing that seemed impossible to break starts breaking. The other mode kicks in: safety, not making it worse, keeping the lights on. The people doing that work are rarely the ones who built the thing.</p><p>Someone pays that tab eventually. Usually not the optimists who ran it up.</p><p>Nothing wrong with either side. You need both. If you&#8217;re a leader, the job is making sure they don&#8217;t end up hating each other.</p><p>There&#8217;s a concept in Zen Buddhism called <em>shoshin</em>, beginner&#8217;s mind. It gets romanticized. Usually interpreted as: <em>act like you know nothing</em>. That&#8217;s not it. <strong>Shoshin is a deliberate choice to re-enter a familiar domain with openness and curiosity.</strong> Not the ignorance of a beginner. The <strong>humility of someone who knows enough to realize they might be wrong.</strong></p><p>Marc Benioff does a version of this at Salesforce. Each year he runs a blank-slate exercise, questioning every assumption about the business as if seeing it for the first time. He&#8217;s learned that expertise, left unchecked, calcifies.</p><p>Benioff does it deliberately. Dantzig did it by accident. Shoshin is what it looks like when you <em>choose it</em>.</p><h2>Two camps, and why they need each other but drive each other insane</h2><p>A pessimist and an optimist walk into a bar. Err... an office. They have to deliver a project. This is where the joke ends and real life starts. They&#8217;re representatives of two types involved in every project. I&#8217;ll exaggerate.</p><p>Camp one: &#8220;Everything&#8217;s possible. Let&#8217;s not think about problems. Let&#8217;s just do it.&#8221;</p><p>Camp two: &#8220;Okay, what can go wrong? What trapped us last time? Which problems will we inherit from doing this new thing?&#8221;</p><p>These two groups often can&#8217;t understand each other. Camp one reads camp two as pessimists, people who think everything will fall apart, who find a problem in every direction. Camp two reads camp one as reckless, or worse: they can afford to be optimistic because they won&#8217;t be the ones fixing what breaks.</p><p>Both reads are wrong. Each camp is right about itself and wrong about the other. Camp one isn&#8217;t reckless. Camp two isn&#8217;t obstructive. They&#8217;re built for different phases of the same project.</p><p>Writing this reminded me of Good Omens, Terry Pratchett and Neil Gaiman&#8217;s book (and TV series, both worth your time). An angel who isn&#8217;t all good and a demon who isn&#8217;t all bad. The end of the world is looming and they have to stop it together. Neither could do it alone.</p><p>Pessimists vs optimists? Same thing. Slightly lower stakes than the apocalypse.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!feUR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!feUR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!feUR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!feUR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!feUR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!feUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:587319,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/192488123?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!feUR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!feUR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!feUR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!feUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F479f7d99-e7f6-4fa5-89d7-ec4f32e36c92_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m usually in the second camp. Btw. the pessimist label wasn&#8217;t the only one I&#8217;ve heard in the past. I&#8217;ve also been told <em>I&#8217;m looking for excuses not to build</em>. That one stung. Because it was so untrue. From the inside, I was asking the right questions: <em>do we need this, what problems will this create, are we solving the right thing?</em> From the outside, it looked like putting obstacles in the way. The same question sounds like rigor or obstruction depending entirely on who&#8217;s hearing it and what phase the project is in.</p><p>No, I&#8217;m not a pessimist. But I do have an operational mind. I&#8217;ve built things from scratch, probably more than people assume. But I&#8217;ve also been part of the team that gets called when something someone else built starts leaking, needs maintaining, or breaks in ways nobody planned for. Years of that will do something for you.</p><p>There&#8217;s a name for what most of us are actually doing every day: <a href="https://psyche.co/guides/want-things-to-go-well-plan-like-a-defensive-pessimist">defensive pessimism</a>. Not a personality trait. A deliberate coping strategy: you set low expectations, run through scenarios of what could go wrong, and prepare for the outcomes you&#8217;re dreading. The fire you&#8217;ll need to fight. The dependency nobody mapped. The scope that will quietly double.</p><p>Done right, it lowers your anxiety, helps you handle what actually breaks, and builds acceptance of whatever the outcome is. Taken too far, it increases anxiety, convinces you the failure is so inevitable there&#8217;s no point trying, and (this one hits close to home) creates friction with people who find it hard to be around someone always bracing for impact.</p><p>The last one sounds familiar. Not a personality clash. A strategy clash.</p><p>Julie Norem&#8217;s research gave me something I hadn&#8217;t expected: evidence that the mode works. She studied two groups: strategic optimists, who prepared by imagining success and staying positive; and defensive pessimists, who prepared by mentally rehearsing everything that could go wrong.</p><p>Both groups performed at roughly the same level.</p><p>The 30% gap in their predictions (pessimists expected worse, optimists expected better) collapsed to near-zero at the point of actual performance. More striking: when researchers gave defensive pessimists cheerful, encouraging feedback before the task (&#8221;You&#8217;re going to do great! Don&#8217;t worry!&#8221;), their performance dropped by 29%. The cheerful coaching didn&#8217;t help them. It sabotaged them. Their anxiety wasn&#8217;t a bug. It was the mechanism they used to prepare.</p><p>The problem isn&#8217;t optimism or pessimism. Early planning needs the bright side to get started. Deeper planning needs the dark side, but not all of it. Execution needs both.</p><h2>The anxiety tax on expertise</h2><p>There&#8217;s a cost to knowing things. <em>The more you understand about how a system can fail, the higher the threshold for action.</em> Sometimes so high you never actually start.</p><p>I&#8217;ve seen this with experienced engineers. They know the edge cases. They&#8217;ve been burned by the migration that corrupted production data, and the API that changed without warning. Every scar makes the next decision heavier. They can see all the ways it might go wrong. </p><p>Startup mythology loves to celebrate the opposite. Evan Spiegel at 21. Zuckerberg at 19. The Collison brothers in their early twenties. The narrative: <em>youth and inexperience are advantages</em>. And sometimes they are, not because young founders know less, but because they haven&#8217;t accumulated enough failure patterns to trigger the <em><strong>anxiety tax</strong></em>.</p><p>The data tells a different story. The <a href="https://www.nber.org/papers/w24489">NBER&#8217;s 2018 study</a> found the average age of top-performing founders is 45. Experience predicts higher success rates on average. The teenage prodigies are survivorship-bias highlights (we only hear about the ones who made it), not the pattern. Both deserve airtime. Although only one gets the magazine covers.</p><p>Whenever someone has a <em><strong>brain fart</strong></em> (<em>an idea that&#8217;s arrived before it&#8217;s been thought through</em>), I go quiet. The checklist starts. Have we thought about this angle? What problems are we creating three projects from now? Who inherits this? I hate repeating mistakes. What I hate more is when other people repeat theirs and I have to clean up after them. I&#8217;ve become (and no leadership book has ever put it this way) a <em>professional shit shoveler</em>. Someone whose job has repeatedly involved dealing with what other people&#8217;s enthusiasm left behind. One of my previous teams made it official: they called it &#8220;General of Shit Shoveling&#8221; mode, gave me a badge, and stood by my side as a small shit shoveling army. It was funny. Gallows humor, but also accurate.</p><p>How does shit shoveling start? Usually with a project that has real potential and not enough hard questions asked upfront.</p><p>A project gets proposed. The people behind it dismiss the complexity, wave off the timeline, treat the hard parts as solvable later. Not afraid. Collaborative. Creative. Those are real strengths, and I mean that sincerely.</p><p>Then the project starts. Reality shows up. What was manageable becomes the most critical thing in the building. People get pulled in without context. Another thing breaks. The pressure compounds because the runway was shorter than anyone admitted. <em>Nobody likes solving shitty problems with artificial urgency created by ignoring reality for too long.</em> Hence the badge.</p><p>I can see it coming from a mile away. I&#8217;ll say something. I&#8217;ll nudge, warn, coordinate. Sometimes it doesn&#8217;t matter. The shit arrives on schedule regardless. At some point you just put the badge on.</p><p>Seeing it coming isn&#8217;t intuition. It&#8217;s <strong>systems thinking</strong>.</p><p>Systems thinking is what gives you the map. Once you understand how a system works, every new proposal arrives with ripples attached. Some good. Some less good. Some neutral until they become someone&#8217;s problem two projects later. The system will have to change anyway. Not the issue. The question is whether you&#8217;re changing it with your eyes open. Not pessimism. It&#8217;s seeing things as they are: complex and intertwined.</p><p>You can&#8217;t just turn this mode off. It doesn&#8217;t respond to &#8220;just be more positive.&#8221; It took years to build and it exists for real reasons. Putting it down, even temporarily, even when you need to, takes actual energy. Not a mindset shift. It&#8217;s a skill. But a skill worth learning.</p><h2>Not today, Satan (reprise)</h2><p>Dantzig solved those theorems because he didn&#8217;t know they were impossible. He was a PhD mathematician working at the edge of the field and the <em>accidental ignorance</em> just removed the ceiling. A good example of how not knowing a constraint can sometimes be exactly what solves the problem. And a note for those of us with more scars than average: maybe stop whispering &#8220;this can&#8217;t be done&#8221; before someone else has had a chance to find out for themselves. Who knows, maybe they&#8217;ll find a way nobody has before them.</p><p>You can&#8217;t reproduce that accident. You can&#8217;t unknow what you know. But you can choose when to use it.</p><p>Back to that Slack notification. This is why I set it down. I still saw the problems. I&#8217;ll probably still be right about most of them. But I recognized that wasn&#8217;t the moment for that particular skill. The problems will get their turn. The checklist will come out. Just not before the thing has had a chance to breathe.</p><p>There&#8217;s a time and a place for the pessimist, and a time and a place for the optimist. Most people know which camp they&#8217;re in. Fewer know when to step aside.</p><p>The visionary will probably still get triggered the next time I raise a problem. So will I when he doesn&#8217;t acknowledge what I&#8217;m seeing. But now I understand what we&#8217;re actually arguing about. And that changes what I can do about it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Prepare for the worst. Forget you did. Repeat. Subscribe if this sounds familiar.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The invisible org chart won't put itself on your resume]]></title><description><![CDATA[On doing a lot for other people and still having an answer when James McAvoy asks.]]></description><link>https://www.between-code-and-culture.tech/p/the-invisible-org-chart-wont-put</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/the-invisible-org-chart-wont-put</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 23 Mar 2026 06:52:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eeb5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s a scene at the end of <em>Wanted,</em> the movie with Angelina Jolie and James McAvoy, where Wesley Gibson (James) turns directly to the camera and asks: </p><div class="pullquote"><p><em>&#8220;What the f* have you done lately?&#8221;</em></p></div><p>I can&#8217;t shake it. Possibly because of a small, entirely reasonable crush on James McAvoy. Mostly because of the line.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eeb5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eeb5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eeb5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eeb5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eeb5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eeb5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:386337,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/191795163?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eeb5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eeb5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eeb5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eeb5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ce08a73-0fec-4157-98a9-f497d26d3e30_2304x1728.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m approaching two decades of working with engineering teams. For most of it, the answer to the question of what I&#8217;d accomplished felt natural: <em>we</em> solved this, <em>we</em> shipped that, <em>we</em> got through that rough quarter together. I was proud of that. I still am.</p><p>But the closer I got to where decisions actually get made, the more often I got a slightly different flavor of the question. Not "What did the team do?", because that part was obvious, and I couldn't take credit for it anyway, but more like "What did <em>you</em> do, specifically?" Gulp.</p><p>I never prioritized myself &#8212; not really. Company first, team second, me somewhere after that. More than once I set aside my own goals so someone on the team could grow into the opportunity instead. I judged it the right call for them and for the company. Still do.</p><p>There&#8217;s a difference between putting others first and not having an answer for yourself. Especially when you want to grow. When someone is deciding whether to give you more scope, more responsibility, more trust, &#8220;we did this together&#8221; stops being enough.</p><p>It&#8217;s possible to have a <em>real</em> answer to that question, even when most of your work shows up in other people&#8217;s outcomes. <em>Not instead</em> of helping others. <em><strong>Alongside</strong></em>.</p><p>Those two things can coexist. They should. But they don&#8217;t by default.</p><p>Looking back, I didn&#8217;t log the decisions, the things I prevented, the fires nobody saw coming. But I&#8217;m doing it now, and this is part of my system: written down so the next version of me, and future generations <em>if they still have a need for this kind of thing</em>, have a slightly shorter path. Dear future me, you&#8217;re welcome in advance.</p><h2>How you earn it</h2><p>Some people who are building informal influence don&#8217;t realize they&#8217;re doing it, because they&#8217;re too busy doing it.</p><p>So here&#8217;s what it looks like. </p><p>You&#8217;re getting CCed on decisions that technically aren&#8217;t yours. Usually not because someone was being inclusive, but because your opinion has proven useful enough that leaving you out started to feel like a risk.</p><p>People are running things by you before the meeting. <em>&#8220;I wanted your read on this before we bring it to the team.&#8221;</em> Not from politeness. They trust you. Someone decided the conversation would be better with your input already in it.</p><p>You&#8217;re getting pulled into rooms you weren&#8217;t invited to. The room needed something you have: context, a question nobody else thought to ask, the ability to slow things down in the right moment.</p><p>Newer people find their way to you with questions that aren&#8217;t technically yours to answer. It has nothing to do with the title, believe me. You don&#8217;t make them feel stupid for not knowing <em>yet</em>.</p><p>If two or three of these are happening, you&#8217;re already building something real.</p><p>So how do you build it? It starts with being genuinely useful. People come to you because you have answers, or because you&#8217;ll think alongside them until they find one. You give them a different angle on a business problem. You&#8217;re willing to brainstorm, to be a sparring partner, regardless of whether you&#8217;re their manager or not. You don&#8217;t mind sending the Slack message to someone on a different team, a different office, jumping on a Zoom call to loop them in or share something useful. You go to them. You don&#8217;t wait to be asked.</p><p>And when someone comes to you with something you can&#8217;t solve, you don&#8217;t turn them away. You think about who actually can help, and you give them the next step, the next person. It takes your time. It doesn&#8217;t always scale. But this is how <em>social credits</em> get built.</p><p>At a certain point (director level and beyond) the mode shifts from being helpful to being an accelerant. You run informal alignment sessions before the formal decision meeting, so when everyone sits down, rough consensus already exists. You take ownership of a cross-team dependency and just start coordinating it, without waiting to be assigned. You write the proposal, call the meeting, make it easy for people to say yes. You convene rather than direct.</p><p>You also learn to escalate strategically, not as a sign of failure, but as a tool. <em>&#8220;I want to move forward on X. Here&#8217;s where I need a decision or alignment.&#8221;</em> Clear, non-political, keeps things moving without making them a battle.</p><p>And momentum on anything significant almost always starts the same way: <em>two or three peers</em> who are bought in before it goes anywhere formal. </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a3704227-2a37-456b-a503-cdd5d257ddc6&quot;,&quot;caption&quot;:&quot;You see it pretty quickly. The broken handoff no one has fixed because fixing it would require two teams to agree on who owns the problem. The decision that gets made the same wrong way every quarter because the people with the information and the people with the authority are never in the same room. The dynamic everyone knows about and nobody names, at&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;One person is a complainer&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing human-first leadership from the operator's chair. Real moments, straight talk about the patterns that repeat, the systems underneath and people in between.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-02T07:13:27.175Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!tdej!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/one-person-is-a-complainer&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:189578379,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>And at some point, you&#8217;ll see the return. A team that&#8217;s already swamped will find a way to help you, not because they have to, but because of the relationship. Someone who is usually guarded, entrenched, will sit down and actually think with you. You&#8217;ll be called the glue. You&#8217;ll be the one who points out the &#8220;us versus them&#8221; framing in the room and says, out loud, that you&#8217;re the same company working toward the same goals, even when it&#8217;s uncomfortable, even when looking away would be so much easier. People will listen. None of it required a title.</p><h2>Building for one (a fair one)</h2><p>Making other people successful is a genuinely good career strategy, not a consolation prize for people who didn&#8217;t want a title anyway. </p><p>When you help someone get promoted, you have an ally with more reach. Mentor a junior engineer who becomes senior and you&#8217;ve got someone you trust on every team they join. Unblock a stuck PM and the goodwill comes back in ways you can&#8217;t predict. </p><div class="pullquote"><p><em>The investment in others isn&#8217;t separate from your own ambition. For people who lead without formal power, it&#8217;s often how it works.</em></p></div><p>But &#8212; and this is the <em>note to self</em> part &#8212; none of that exempts you from also <strong>building something for yourself</strong>. Something <strong>fair</strong>. Something you&#8217;d be proud of.</p><p>The higher you go, the less this is optional. At some point someone will ask, in a promotion conversation, in an interview, in a room where your name is on the table. Not what you enabled. What you <strong>did</strong>.</p><p>I&#8217;d been so oriented outward for so long that my own trajectory had gotten quiet. Not gone. Just... quiet.</p><p>I could describe in detail what everyone I was mentoring wanted to get better at over the next six months. When someone asked me the same question about myself, I had to think longer than I expected.</p><p>Crisis? No. Mere information.</p><p>What I figured out: treat your own development as a commitment, not a leftover. One goal, protected time, the same level of intention you&#8217;d give to someone you were mentoring. Enough to know whether you&#8217;re actually moving toward something, or just moving.</p><p>You&#8217;re not less generous for having a direction, the two don&#8217;t compete.</p><p>This is especially tricky when you lead engineering teams. You&#8217;re not directly responsible for adoption or new sign-ups. That lives in product. You can&#8217;t count lines of code, and it wouldn&#8217;t mean anything if you did. So you have to be more deliberate: what is your actual contribution to the business? Quality of what the team ships? Their ability to move fast without creating debt downstream? Fewer incidents? A team that didn&#8217;t exist six months ago and now can?</p><p>Those are the right questions. I stopped asking what I owned and started asking which ones I was <em>in</em>. Once I did, the contribution was more visible. What it still needed was <em>a</em> <em>record</em>: written down before the details dissolved into &#8220;we did a lot of good work that quarter.&#8221;</p><h2>Keep a Captain&#8217;s Log</h2><p>Leading without authority is hard to prove by design. You didn&#8217;t ship the feature; you unblocked the three teams that did. You didn&#8217;t make the decision; you were the reason the worse one didn&#8217;t get made. You didn&#8217;t build the culture; you kept it from eroding during the reorg. You got business and tech speaking the same language. You cleared the obstacle nobody else had the standing to clear. You put out a fire that would have cost six weeks. You kept a person from leaving quietly.</p><p>All real. None of it appears anywhere unless you <strong>write it down</strong>.</p><p>Start a log &#8212; a Captain&#8217;s Log, if you want to be nerdy about it. Build it inside your own personal operating system: a simple structure of folders and markdown files, easy to create and maintain, tool and OS agnostic, and readable by any AI you point at it. One file per day, one file per week, whatever works. One entry per thing that would otherwise disappear from your memory.</p><p><em>&#8220;Clarified technical constraints for PM, saved a week of misaligned work.&#8221;</em><br><em>&#8220;Pushed back on the architecture approach before the review. Team reconsidered.&#8221;</em><br><em>&#8220;Advocated for [person] in the reorg discussion. Their scope was preserved.&#8221;</em></p><p>This isn&#8217;t a brag sheet or a LinkedIn content calendar. Just notes, so that when someone eventually asks what you&#8217;ve been doing, the answer comes with actual examples and not a vague gesture at things you half-remember.</p><p>The invisible org chart reflects real influence. It just won&#8217;t speak for itself in the room where formal decisions get made. <strong>That part&#8217;s on you.</strong></p><p><strong>A habit</strong> beats a retrospective every time. Nobody reconstructs eighteen months of invisible work the night before it matters. You can&#8217;t remember what the team did, let alone what your part in it was. You either kept the log or you&#8217;re improvising. Improvising is how you end up saying &#8220;<em>we did a lot of good things</em>&#8221; when someone needs to hear what <em>you</em> did specifically.</p><p>With AI it&#8217;s easier now than it&#8217;s ever been. A quick daily check-in, a few minutes, and you get a different angle on what happened and where your contribution actually was, without the guilt of claiming credit, because you&#8217;re not claiming it. You&#8217;re just seeing it clearly.</p><p>I built a system to do exactly this: analyze the log, surface the patterns, build a record over time. The raw notes stay private: unfiltered, honest, not written for an audience. But out of that stream of words and thoughts, AI can extract what matters, summarize it, categorize it, shape it into something I can actually use for a yearly review, a promotion conversation, or just to stay oriented on where I&#8217;ve been and where I&#8217;m going.</p><p>It&#8217;s also how I stay disciplined: daily and weekly review built into the system. I&#8217;m not using it as evidence of being busy, but as a material to look at critically. What am I actually producing? What needs to change? The log isn&#8217;t only a record. It&#8217;s a feedback loop.</p><p>It&#8217;s same logic as investing: <strong>start early, stay consistent, let it compound</strong>. But it&#8217;s not too late to start today. With AI making this a five-minute daily habit, there are no excuses left.</p><p>At the end of a day, a week, or a role, I want to be able to look back and actually see what I built. Not just what <em>survived</em> in the memories of team members and myself. Some things stick, but a lot gets forgotten. Smart people write things down.</p><p>I need to be the first one who&#8217;s proud of what I&#8217;ve done. That matters, independent of whatever anyone else decides it&#8217;s worth.</p><h2>What the f*** have you done lately?</h2><p>When the time comes, imagine <em>James</em> looking straight at you.</p><p>A promotion conversation. A job search. Or eventually, someone who loves you asking what you spent all those years doing.</p><p>He&#8217;s not asking about your promotion. He&#8217;s asking what you actually did: with the time you had, with the people you worked with, in the third of your life you handed to a company. </p><p>Did you make the people around you better? Did you make the place worth spending that time in? Did you move anything, <em>even slightly</em>, in a direction that mattered?</p><p>The Captain&#8217;s Log isn&#8217;t only evidence for a performance review. It&#8217;s how you know your own answer. Not the polished one. The real one. The one you can look at and say: <strong>I was paying attention. I knew what I was doing and why.</strong></p><p>So when the question comes &#8212; and it will &#8212; you don&#8217;t have to guess.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">The log starts here. Subscribe.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[You lost them before you got there]]></title><description><![CDATA[You had the data, analysis and recommendation. They still didn't hear you.]]></description><link>https://www.between-code-and-culture.tech/p/you-lost-them-before-you-got-there</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/you-lost-them-before-you-got-there</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Tue, 10 Mar 2026 07:54:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Owat!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I had this movie in my head: walk into the meeting, give the leaders all the context, build the case piece by piece, and at the end they&#8217;d say &#8220;Hell yeah, Mateja. Smart. Right decision.&#8221;</p><p>Instead I ended up standing outside the meeting room sulking. We never even got to my ask. Somewhere in the preamble I&#8217;d lost them, and I didn&#8217;t see it coming.</p><p>What happened?</p><h2>The test</h2><p>If someone only heard your first sentence in a meeting, would they understand why you&#8217;re talking?</p><p>Most engineers fail this test. Not because they lack clarity of thought, quite the opposite. Because they&#8217;ve been trained to <em>start with context</em> instead of <em>the point</em>. You know this pattern, don&#8217;t you? You&#8217;ve probably done it yourself. I know I have.</p><p>Engineer starts speaking. Background first, then more background, then some data, and finally the thing that actually matters. By which point, the PM is mentally reviewing their inbox and the exec has already moved to the next meeting in their head.</p><p>Leadership doesn&#8217;t want to hear the story of Frodo going to Mordor and back. They want to know: <em>did he throw the ring in the pit? If not, why not, what&#8217;s the plan, and does he need resources to sort it out?</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Owat!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Owat!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!Owat!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!Owat!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!Owat!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Owat!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f66da1d5-68da-4c80-ab45-de5798774153_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2023907,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/190435815?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Owat!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!Owat!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!Owat!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!Owat!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66da1d5-68da-4c80-ab45-de5798774153_1200x896.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The first sentence should answer one question: <strong>why are we talking about this?</strong></p><p>First sentences that pass the test:</p><p>&#8220;<em>This feature will take 6 weeks, not 2.</em>&#8221;</p><p>&#8220;<em>This deployment will break mobile clients unless we coordinate the rollout.</em>&#8221;</p><p>&#8220;<em>We need three more engineers or we&#8217;re missing the deadline.</em>&#8221;</p><p>Compare with how engineers actually start these conversations:</p><p>&#8220;<em>So, yesterday I was working on the authentication service and ran into some issues with the session handling...</em>&#8221;</p><p>&#8220;<em>I wanted to talk about the roadmap and some of the complexity we&#8217;ve been discovering as we dig into the requirements...</em>&#8221;</p><p>&#8220;<em>There&#8217;s been some discussion about the deployment process and coordination with other teams...</em>&#8221;</p><p>These openings don&#8217;t tell you anything. They promise that <em>eventually</em> you&#8217;ll get to something important. Maybe. If the meeting doesn&#8217;t run over.</p><p>So this isn&#8217;t a listening problem, but a <strong>communication structure problem</strong>.</p><h2>Two languages, one room</h2><p>I started thinking about this after reading <em>First Minute</em> for a book club, a book that formalizes the whole problem into a structure. Turns out the pattern is common enough to warrant its own book. Which means you&#8217;re not <em>uniquely bad</em> at this. You&#8217;re just doing what everyone does. Maybe not after reading this.</p><p>Engineers communicate the way engineers communicate. Thorough. Sequential. Everything on the table before you reach the conclusion. That&#8217;s not a flaw, it&#8217;s what makes you good at building systems, writing design docs, reviewing code.</p><p>But leadership operates on different constraints. Less time. More context switches. They&#8217;re not reading your design doc. They&#8217;re in a meeting with ten other things pulling for their attention. Their default is conclusion-first. Bottom line up front. What do you need and why.</p><p>Two different languages. Both internally consistent. Neither wrong. And yet <em>here we are.</em></p><p>The problem is when you use the engineer language in a leadership context. Context-first works when someone chooses to read your work, they can skim ahead, reread, control the pace. Documentation, design docs, pull requests: all fine there.</p><p>It fails in real-time conversations.</p><p>When you start with context in a meeting, people don&#8217;t know where you&#8217;re going or why they should care. Are you raising a problem? Proposing a solution? Just providing an update? By the time you arrive at the conclusion, you&#8217;ve lost most of them.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;28e4a0d9-2ffa-47ae-8d0c-ae8cdf599303&quot;,&quot;caption&quot;:&quot;The universe served me this quote today, and it landed with perfect timing, as if it knew I had a story and a lesson to share.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Debating physics in a room full of poets&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing human-first leadership from the operator's chair. Real moments, straight talk about the patterns that repeat, the systems underneath and people in between.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-11-17T22:46:52.199Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!x9Z5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F815552ed-b1ea-474f-a632-1f8a22f9cd58_4096x4096.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/debating-physics-in-a-room-full-of&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:179015131,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>But changing this is hard. Starting with the conclusion feels risky. That&#8217;s an <em>assertiveness</em> problem as much as a <em>structure</em> problem.</p><p>The situations can be simple stuff:</p><ul><li><p>Should we attend this conference?</p></li><li><p>Should we give a talk there?</p></li><li><p>Should we even have this meeting?</p></li></ul><p>Sometimes it&#8217;s bigger: should we spend a quarter on refactoring and ship no features?</p><p>I&#8217;ve been shut down in both. And lived to tell the tale, obviously.</p><p>Imagine you&#8217;re about to propose something you know will get pushback. Something that challenges the current direction, asks for resources people don&#8217;t want to give, or requires a change nobody asked for.</p><p>The instinct: build up to it. You might reason: if they understand the reasoning first, they&#8217;ll follow me to the conclusion. If I lead with the conclusion and they might just say no with a snap decision, case closed, no fair hearing. At least with context I give myself a chance to be understood.</p><p>The logic is understandable. It&#8217;s also <strong>backwards</strong>.</p><p>You&#8217;re not giving them context so they&#8217;ll understand, you&#8217;re hoping context will function as pre-agreement. Unfortunately, they&#8217;re not tracking your reasoning step by step, building toward your conclusion with you. They&#8217;re waiting. And by the time you get there, they&#8217;ve been waiting long enough that the attention is somewhere else.</p><p>Even if you give them all the context in advance, they&#8217;re still going to challenge. Context-first just means the challenge comes after you&#8217;ve already lost half the room.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;eb092d1e-b6d4-454f-a255-5523c74be3ca&quot;,&quot;caption&quot;:&quot;If Bear Grylls ever had to survive a modern engineering organization instead of a rainforest, the show would look different.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Assertiveness: the survival skill Bear Grylls forgot to mention&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing human-first leadership from the operator's chair. Real moments, straight talk about the patterns that repeat, the systems underneath and people in between.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-02T23:16:56.733Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!WXl7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96add571-cc43-45ae-81c9-a766d4c92753_1024x768.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/assertiveness-the-survival-skill&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:180260975,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>This plays out in individual conversations. But the bigger cost is what it does over time.</p><h2>The reputation you don&#8217;t know you&#8217;re building</h2><p>Some people believe communication doesn&#8217;t actually matter and that if you&#8217;re good enough, the work speaks for itself. That you get promoted on technical merit alone. It can happen, just maybe not to you or when you&#8217;d like it to happen... or never.</p><p>The higher you go, the better you need to be at communicating. Not just technically. With leadership, across teams, with people on other teams who don&#8217;t share your context. There are exceptions &#8212; engineers who got to senior levels on pure technical output &#8212; but they&#8217;re rare enough that betting your career on being one is essentially playing the lottery.</p><p>Unless you feel lucky, it&#8217;s easier and better to work on the communication.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PDBw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PDBw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!PDBw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!PDBw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!PDBw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PDBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1826797,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/190435815?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PDBw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!PDBw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!PDBw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!PDBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F664cd5aa-69c0-4c0c-9c38-9e1673a64fe0_1200x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This pattern of going context-first doesn&#8217;t just make you less effective in the moment. It damages your credibility over time.</p><p>Over half your work time is spent communicating, verbally, in writing, in meetings. Every one of those interactions leaves an impression: it shapes how people see you, your credibility, your judgment, your potential. Believe it or not, poor communication is one of the major gates to promotion, especially into leadership. Not technical gaps. Not bad judgment. <em>Communication</em>.</p><p>You&#8217;re building a reputation in every meeting. The question is what kind.</p><p>When you consistently bury your point, people stop listening to your openings. They know you&#8217;re going to take a while to get there, so they tune out until you do. Except now you have to work even harder to get their attention back, and sometimes you never do.</p><p>The cruel part? You walk out of the meeting without what you came for. You were the most prepared person in the room, you brought the data, did the analysis and came up with the recommendation. You still got ignored.</p><p>Structure undermines you before you get to the point. The language you use once you&#8217;re there is <em>its own problem.</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;932f3ecc-bd61-470f-ab59-3d1a4b206a96&quot;,&quot;caption&quot;:&quot;You&#8217;re in a meeting walking a group through a decision that took three days, two whiteboard rewrites, and one mild identity crisis.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Stop saying &#8220;does that make sense?&#8221;&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing human-first leadership from the operator's chair. Real moments, straight talk about the patterns that repeat, the systems underneath and people in between.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-05T06:08:02.072Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!H8qx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4774c653-a562-479c-ab29-3e4de9373f35_1024x1024.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/stop-saying-does-that-make-sense&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:180275023,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:3,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2>Same information, different order</h2><p>Start with the conclusion, then back it up.</p><p>&#8220;We&#8217;re going to miss the launch by three weeks. We&#8217;ve finished 60% of the work with 40% of the time left. I looked at three options: cut scope, bring in more people, or push the date. Here&#8217;s what I recommend and why...&#8221;</p><p>The problem lands in the first sentence. Data follows. Recommendation after that.</p><p>This isn&#8217;t dumbing it down. If they want to dig in, the frame is already there. If they agree, you&#8217;ve saved everyone five minutes of preamble.</p><h2>The exception (there is one)</h2><p>Sometimes you do need to establish context before the point. When the audience doesn&#8217;t have the background knowledge to understand the conclusion or when the problem is so unexpected that leading with it would be confusing.</p><p>Knowing how much context to give requires knowing your audience, especially what they already know, what decisions they&#8217;re focused on, what&#8217;s actually on their mind when you walk in. That&#8217;s a different skill, and it starts before the meeting.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;37b3bad6-f53b-471e-bbd7-e596c41e8eae&quot;,&quot;caption&quot;:&quot;I follow around 50 Slack channels. Maybe more.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Everyone saw it coming except you&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing human-first leadership from the operator's chair. Real moments, straight talk about the patterns that repeat, the systems underneath and people in between.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-09T06:48:57.413Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Laqe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/everyone-saw-it-coming-except-you&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:187277804,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p><strong>Ask yourself: does the context enable understanding, or is it just preamble?</strong></p><p>We went through this when we wanted to replace our in-house authentication with a third-party identity provider. For months we&#8217;d been struggling to get resources to implement SSO. Other providers already had it built in. We were slowly losing ground every time a potential customer asked about single sign-on and we had to explain why we didn&#8217;t support it.</p><p>We couldn&#8217;t walk in and say &#8220;<em>we&#8217;re bringing in a third-party authentication provider, it costs money, kthxbye</em>.&#8221; </p><p>That conclusion without context would have landed as an unnecessary expense. The reaction would have been: why do we need this when we already have something that works?</p><p>One sentence of context changed the frame: &#8220;We&#8217;ve been losing enterprise deals because we don&#8217;t support SSO, and building it in-house would take six months. Here&#8217;s what I recommend.&#8221;</p><p>Same conclusion. One sentence of setup. Completely different reception. Context is one sentence, not three paragraphs.</p><p>Next time try this: cut your opening and start with your second sentence. Would anything of value be lost? If not, there you go. Drop it.</p><h2>Before and after</h2><p>Before your next meeting, write down your first sentence. Does it contain the point, or does it contain setup?</p><p>If it&#8217;s setup, put the conclusion first. If someone only heard that sentence, would they know why you&#8217;re talking? If yes, you&#8217;re done. If no, try again.</p><p>This feels unnatural at first. You&#8217;ll feel like you&#8217;re being too direct, too blunt, like you&#8217;re skipping important information. You&#8217;re not. You&#8217;re putting the important information first. The rest is still there, you&#8217;re just not making people wait through setup to get to it.</p><p><strong>Standup:</strong> &#8220;Login is broken in staging. I&#8217;m fixing it now, should be done by noon.&#8221; Not: &#8220;Yesterday I was working on authentication and ran into some issues with the session handling that I&#8217;m still debugging.&#8221;</p><p><strong>Architecture review:</strong> instead of opening with &#8220;I&#8217;ve been looking at our infrastructure and thinking about how we handle growth,&#8221; you open with &#8220;Our current setup breaks at 5x our current load. We need to fix it before Q3.&#8221; Everything else follows from that.</p><p><strong>Stakeholder update:</strong> &#8220;We&#8217;re two weeks behind schedule because the API keeps changing.&#8221; Not: &#8220;There have been some challenges with the integration work and coordination with the backend team.&#8221;</p><p>I&#8217;ve been in every one of these meetings. On both sides... and caught myself jumping in and cutting engineers off to get to the point faster. Not good. I stopped, I decided to coach them instead.</p><p>Here&#8217;s a thought: If you&#8217;re already using AI tools for code and emails, you can use AI for this too. Paste what you&#8217;re about to say, ask it to restructure it conclusion-first. Takes thirty seconds.</p><h2>Say the thing</h2><p>When you&#8217;re about to speak, stop. What&#8217;s the one thing others need to know? Start there.</p><p>Your first sentence is not a warm-up, an introduction, or context for the thing you&#8217;re about to say. It <em>is your point</em>. Say it.</p><p>Most of us fail the test because we think communication is about being thorough. It&#8217;s not. You can be completely thorough and still get ignored. Being thorough means you covered everything. Nobody said they were listening.</p><p>Now the tough question: what are you optimizing for, being right or being heard?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe to BCC. I could build up to why, but you just read an entire essay about that.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><br>why I shouldn&#8217;t</p><p>  that.</p><p>  why I shouldn&#8217;t.</p><p></p>]]></content:encoded></item><item><title><![CDATA[One person is a complainer]]></title><description><![CDATA[Two people is a pattern. Three is a movement.]]></description><link>https://www.between-code-and-culture.tech/p/one-person-is-a-complainer</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/one-person-is-a-complainer</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 02 Mar 2026 07:13:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tdej!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You see it pretty quickly. The broken handoff no one has fixed because fixing it would require two teams to agree on who owns the problem. The decision that gets made the same wrong way every quarter because the people with the information and the people with the authority are never in the same room. The dynamic everyone knows about and nobody names, at least not in the rooms where it could actually be addressed.</p><p>You feel the urgency. You start pushing.</p><p>And then one of two things happens.</p><p>Nothing moves.</p><p>Or worse: <em>you become the problem</em> in someone else&#8217;s narrative.</p><p>I&#8217;ve been both versions. The <strong>complainer</strong> more than once. Partly because I&#8217;ve always believed you can always do something. Small, partial, imperfect. But something. That belief is mostly useful. It&#8217;s also the thing that keeps you pushing long after the evidence suggests you should stop.</p><p>There&#8217;s a particular version of this I recognize. You&#8217;ve read about <em>groupthink</em>. You know the value of the <em>devil&#8217;s advocate</em>, of the person who names what the room won&#8217;t name. You know that lone <em>dissenters</em> have sometimes been on the right side of history. Ruth Bader Ginsburg spent years writing opinions for audiences that didn&#8217;t exist yet. So you feel equipped. Maybe even a <em>little proud</em> to be the one pointing at the thing that is obviously broken and could so easily be fixed.</p><p>Oh man.</p><p>As Skunk Anansie put it: <em>it takes blood and guts to be this cool, but I&#8217;m still just a clich&#233;.</em></p><h2>Wait, what?</h2><p>Then I read <em>The Fifth Discipline</em> by Peter Senge. It&#8217;s about building learning organizations, about developing the collective capacity to solve problems, with systems thinking at the core. If you haven&#8217;t figured that out by now: yes, I am a fan of <strong>systems thinking</strong>.</p><p>There was this quote on change and how one person rarely changes things...</p><div class="pullquote"><p><em>One person is a complainer. Two people are a support group. Three people are a movement.</em></p></div><p>Wait, what?</p><p>I was always proud of my courage to say things as they are. And now I&#8217;m the complainer? What the hell?!</p><p>So I went back through my own experience anyway. The attempts that went nowhere and the ones that actually moved something. Oh yes, I noticed the pattern.</p><p>One person raising a concern is a <strong>complaint</strong>. Two people raising the same concern independently is a <strong>pattern</strong>. Three people is something an organization has to reckon with.</p><p>This isn&#8217;t about volume. Bringing twelve people to a meeting to validate your concern doesn&#8217;t make it more legitimate. It makes you look like you&#8217;ve been running a campaign. And organizations that feel <em>organized against</em> tend to get <em>defensive</em>, not <strong>reflective</strong>.</p><p>The number matters because of what it represents: <strong>independent confirmation</strong>. Three people who arrived at the same diagnosis through different paths, with different contexts, without coordinating their stories. That&#8217;s not one person&#8217;s frustration amplified, but a pattern. <strong>And patterns deserve attention</strong>.</p><h2>Up is the wrong direction</h2><p>If I got a dollar every time I went to my manager to seek support and address the problem, I&#8217;d be rich by now. And most likely wouldn&#8217;t be writing this essay. Remember the complainer from the previous section? Yep. That was me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ftpX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ftpX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ftpX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ftpX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ftpX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ftpX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1564676,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/189578379?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ftpX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ftpX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ftpX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ftpX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8f7badd-4117-4618-a880-7e2ea1f6c0ab_2304x1728.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When the <em>wall of nothing-moving</em> appears, the intuitive response is to escalate. Go to your manager. Frame the problem carefully. Prepare the case. Ask for support.</p><p>You get nodding heads in the meeting. Nodding heads, by the way, often mean <em>I want this conversation to end</em> more than <em>I&#8217;m going to do something about this.</em> Two weeks later, nothing has changed.</p><p>Escalating up this way rarely works, and for a reason nobody states directly: asking your manager to fix a problem that exists on their watch requires them to <em>acknowledge that something is wrong on their watch</em>. That&#8217;s a harder ask than it looks. It&#8217;s not that managers are dishonest or defensive. It&#8217;s that <strong>validating a systemic concern implicates them in having missed it, allowed it, or failed to address it</strong>. The higher up you take it, the higher the implicit cost of saying <em>yes, this is real.</em></p><p>So the system gives you a polite nod and moves on. Your concern is noted.</p><p>After enough of those conversations, you start reading the signs differently. You learn when to keep pushing and when to step back, regroup, and wait. For a better moment. Or another person who&#8217;s been watching the same pattern from a different seat.</p><p><strong>Building sideways</strong> is different. Finding peers who share the diagnosis doesn&#8217;t threaten anyone. You&#8217;re not asking someone to admit a failure. You&#8217;re discovering that two people independently arrived at the same place, from different starting points. <em>Nobody has to lose face. Nobody has to own a problem they didn&#8217;t see coming.</em></p><p>Upward convincing requires the other person to give something up. Peer-building doesn&#8217;t.</p><p>Most leaders get stuck because they keep trying the move that feels most direct. Escalate, make the case, repeat with better framing. When the more effective move is lateral. Find the people who already see it.</p><h2>The quiet signals</h2><p>It doesn&#8217;t look like a formal coalition. No manifesto. No document. No Slack channel called #fix-this-org-dysfunction. It&#8217;s quieter than that.</p><p>You&#8217;re noticing who names the same problems in different rooms. Who uses the same language to describe a dynamic, without knowing you&#8217;ve been using it. Who brings up the same topic in 1:1s that you&#8217;ve been circling around in yours.</p><p>Then there&#8217;s a subtler one. Who stays after the meeting to say what they didn&#8217;t say in it.</p><p>The things people say in the hallway after a meeting ends or in a Slack DM ten minutes later, on the walk back from the meeting room, those are often the things they actually believe. They didn&#8217;t say them in the meeting for reasons that made sense to them: the power dynamics weren&#8217;t right, they didn&#8217;t want to be the first one to name it, they&#8217;ve learned that certain observations land badly in certain rooms.</p><p>When someone says a version of what you&#8217;ve been thinking, in a context where they had no reason to know you were thinking it, that&#8217;s your second <em>witness</em>.</p><p>You don&#8217;t recruit them. You just confirm: &#8220;I&#8217;ve noticed that too.&#8221; And then you listen to where the conversation goes.</p><p>It&#8217;s a small thing. It doesn&#8217;t feel small.</p><p>Ask who has tried to fix the same thing before you arrived. Ask what&#8217;s been tried before, not to catalog the failures, but to find the people who cared enough to try. Those are <em>your people</em>. They already see it. They just stopped trying alone.</p><h2>When seeing isn&#8217;t doing</h2><p>Sometimes you find the people. They see it. They&#8217;ll talk about it in 1:1s, in the hallway, in the meeting after the meeting. Plenty of people to talk about it with. But when it comes to actually making a move, most back out. Safety really is in numbers. They just don&#8217;t feel it that way. And you&#8217;re back to pushing alone, except now you know it&#8217;s not you, it&#8217;s the system. Fuel to your fire, baby!</p><p>I try to encourage the people I&#8217;ve found. Let&#8217;s try this. Let&#8217;s do that. It&#8217;s on us, we can do something here.</p><p>Sometimes it works. Sometimes it doesn&#8217;t. And I&#8217;ve had to make peace with that too. Not everyone is willing to throw themselves on a sword. That&#8217;s not a judgment. It&#8217;s a different calculation, and it deserves respect.</p><h2>The wiggle</h2><p>And sometimes you look and find no one.</p><p>You pay attention in 1:1s. You listen in retrospectives. You describe what you see without pushing your conclusion and wait to see if someone else completes the sentence. You notice who stays after meetings.</p><p>The coalition isn&#8217;t here.</p><p>Sometimes you&#8217;re <em>genuinely</em> alone, after <em>genuinely</em> looking. Maybe the coalition doesn&#8217;t exist here. <em>Maybe you&#8217;re wrong about the problem.</em> Both are worth knowing.</p><p>This isn&#8217;t giving up. It&#8217;s <strong>calibrating</strong>.</p><p>That same book gave me a framework to look back, not just forward. Why did some things shift quickly? Why did others take so long? In some of those cases, the coalition was already there. I just didn&#8217;t see it as one. I heard people talking about the same things, in the same frustrated tone, in different rooms. But I didn&#8217;t connect the dots. Didn&#8217;t think: these people and I could actually push on something together.</p><p>Before I can accept that &#8220;this is just how things are&#8221;, the questions start. <em>Have I really done everything? Have I really tried every angle? Maybe there&#8217;s just one more thing. Maybe this one will tip things over.</em> (There is always one more thing.)</p><p>I&#8217;ll wiggle and wiggle, not willing to let myself be dragged into the vortex of &#8220;not right.&#8221; And this can take days. Sometimes years.</p><p>And after all of that, I talk myself out of it altogether. <em>Maybe this is just the way we do things here.</em></p><p>Or do we? (See?)</p><p>I still don&#8217;t know if that&#8217;s wisdom or stubbornness. Or both.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tdej!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tdej!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tdej!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tdej!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tdej!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tdej!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1809599,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/189578379?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tdej!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tdej!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tdej!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tdej!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F200f8f6a-3718-48f1-a305-e08ec0f054f0_2304x1728.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Small, specific, durable</h2><p>When it does come together, the question becomes what to do with it.</p><p>The goal isn&#8217;t to change the company. It&#8217;s to change the conditions.</p><p>The changes that tend to hold aren&#8217;t the ones that required full organizational awakening or a mandate from above. They&#8217;re the ones where two or three people agreed on a small, specific problem and made a small, specific change that held up when no one was watching it.</p><p>Fix one meeting. One handoff. One decision-making process that currently happens in the wrong place with the wrong people. Small enough that it doesn&#8217;t require a mandate. Specific enough that you can tell if it worked. Durable enough that it survives when you&#8217;re not in the room.</p><p>Then do it again.</p><p><em>One percent at a time.</em></p><p>The coalition doesn&#8217;t need to be about changing the whole system. It needs to be about changing <em>this thing</em>, right here, with enough witnesses that the change is real and not just yours.</p><p><strong>That&#8217;s often enough.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">One reader is just a reader. You know what two is. Subscribe and be the pattern.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Stop being the decision bottleneck]]></title><description><![CDATA[Four gaps between saying 'you're empowered' and your team believing it]]></description><link>https://www.between-code-and-culture.tech/p/how-to-stop-being-the-decision-bottleneck</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/how-to-stop-being-the-decision-bottleneck</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Tue, 17 Feb 2026 06:36:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MCDv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I used to tell my team: &#8220;<em>Just do your magic.</em>&#8221;</p><p>We were small. The team was mature (not necessarily super senior), self-organizing, accountable. Pure poetry. Empowerment wasn&#8217;t something we talked about, it just existed. I could step back, and things happened. Good things.</p><p>I loved being in that space.</p><p>A couple of years later, a different company. Bigger one. Different teams. Different maturity levels. Different leadership styles. Competing priorities. Time pressure. Multiple forces pulling in different directions.</p><p>The magic disappeared. Turns out &#8220;just do your magic&#8221; doesn&#8217;t scale with organizational complexity. No shit, Sherlock.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MCDv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MCDv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!MCDv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!MCDv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!MCDv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MCDv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1678882,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/188165451?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MCDv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!MCDv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!MCDv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!MCDv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5f27cc-5855-4c1d-a3a4-dc47eafb4410_1200x896.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;d still tell people: &#8220;You&#8217;re empowered. Feel empowered to say something, do something, make a decision.&#8221;</p><p>They nodded... and then they came back asking for approval on things I said they owned, stayed quiet about problems I thought they&#8217;d surface, or stopped making decisions entirely and just waited for me to weigh in.</p><p>I wondered: How is this possible? They&#8217;re not happy with how things are. Why aren&#8217;t they doing something about it?</p><p>Turns out, it was a systems problem disguised as a people problem.</p><p>Most leaders think empowerment is about <em>giving</em> autonomy. Let people make decisions, step back, trust the team. Boom, done.</p><p>Wrong.</p><p>Empowerment isn&#8217;t something you <em>give</em>. </p><p>It&#8217;s something you <em>enable</em> through four things most leaders skip: <strong>clarity</strong> about what good judgment actually looks like, <strong>trust</strong> that matches your behaviors to your words, <strong>calibration</strong> that knows when to step in and when to step back, and <strong>safety</strong> that makes it okay to be wrong, learn, and try again.</p><p>Most leaders don&#8217;t intentionally create these gaps. The patterns emerge, either from pressure, from old habits, from not realizing what needs to be made explicit. But the impact is the same: empowerment exists only on paper while your team goes through the motions, waiting for the real decision from you.</p><p>The key is noticing these patterns and understanding what&#8217;s actually happening.</p><h2>The clarity gap: They can&#8217;t read your mind</h2><p>People can&#8217;t exercise judgment in a vacuum. They need to know what you&#8217;re judging them on.</p><p>I&#8217;ve experienced this from both sides.</p><p>I remember a situation where I got a challenge to solve a problem: &#8220;get from A to Z&#8221;. I did it, found a way that worked, and delivered the solution. My manager was disappointed. I felt empowered until I figured out something was missing.</p><p>Turns out, he wanted me to go A, B, C, D through Z, not just get to Z. He had a specific approach in mind, but never told me I was being judged on <em>how</em> I got there, not just <em>that</em> I got there.</p><p>I thought I was solving for the outcome, but he was evaluating the process. You bet there was some <em>tension</em> and bad mood on both sides, but we talked it through afterward, and it was a good conversation.</p><p>I explained that I couldn&#8217;t read his mind, and despite years of leadership training, telepathy was never covered in any workshop. I didn&#8217;t know he had a specific path in mind. And at my level, I see multiple paths, multiple solutions. I chose the one that made sense given what I understood about the constraints and goals. Have I mentioned I&#8217;m used to being empowered?</p><p>We both realized he had two options going forward. Truly empower me to pick the path and trust my judgment, or be very specific upfront about his expectations so I could tell him whether I could meet them or not.</p><p>Either way works. What doesn&#8217;t work is vague empowerment followed by disappointment when I make a different choice.</p><p>We set clearer expectations after that conversation.</p><p>The situation above uncovered the clarity gap.</p><p><strong>Most of the time the problem isn&#8217;t that your team lacks judgment. The problem is you haven&#8217;t defined what they&#8217;re being judged on.</strong></p><h3>Why &#8220;just do your magic&#8221; stops working</h3><p>What used to be implicit in my small team had to become explicit in bigger, more complex organizations.</p><p>With my early team, shared context meant we all knew what magic looked like. In companies with competing priorities, cross-functional dependencies, and political considerations, I had to define it explicitly. When I didn&#8217;t, &#8220;just do your magic&#8221; became meaningless.</p><p>Once I started providing clarity - defining what good looked like, what constraints mattered, what decisions were theirs - the magic came back. It wasn&#8217;t about their capability. It was about giving them the context to use it.</p><p>But even with clarity, empowerment doesn&#8217;t always click immediately. At another company, the team had been told what to do for so long that when I said &#8220;you decide,&#8221; they froze like I&#8217;d asked them to defuse a bomb. Freedom without practice feels a lot like risk. They needed to learn how to be empowered, not just be given permission.</p><p>Clarity helps. But it&#8217;s not the only thing that matters.</p><p>Vague empowerment sounds like &#8220;You own this domain&#8221; or &#8220;You decide&#8221; (but you have unstated preferences).</p><p>People spend more energy guessing what you want than doing the work. They self-censor or over-escalate, make decisions you later walk back. Pure clarity failure.</p><h3>Making the implicit explicit</h3><p>Define what you&#8217;re optimizing for. What you can&#8217;t compromise. What &#8220;good enough&#8221; looks like.</p><p>Which decisions are theirs to make? Which need your input? Which need approval?</p><p>When speed conflicts with quality, which wins?</p><p>What are the hard boundaries they can&#8217;t cross?</p><p>This takes time. Feels like overhead. Feels like you&#8217;re over-explaining things that should be obvious.</p><p>Do it anyway. Your alternative is playing guessing games forever. Making implicit explicit is the foundation that makes empowerment possible.</p><p>Without it, &#8220;you&#8217;re empowered&#8221; means &#8220;good luck guessing what I actually wanted. I&#8217;ll let you know when you get it wrong.&#8221;</p><h3>Empowerment isn&#8217;t &#8220;do whatever you want&#8221;</h3><p>And don&#8217;t mistake empowerment for: &#8220;Do whatever you want, however you want, whenever you want, as long as we get results.&#8221;</p><p>Real empowerment needs boundaries, constraints, and expectations. It needs clarity about what success looks like, what&#8217;s off-limits, and when to involve others.</p><p>Without those, you don&#8217;t have empowered teams making good decisions. You have chaos pretending to be autonomy. Congratulations, you&#8217;ve created anarchy with a mission statement.</p><p>Real empowerment is freedom <em>within</em> clear boundaries.</p><p>You define the outcomes, the non-negotiables, the constraints, the decision rights.</p><p>Then you give people space to figure out <em>how</em> to deliver within those boundaries.</p><p>Vague freedom without structure is just stressful. People don&#8217;t know if they&#8217;re succeeding or failing, if they&#8217;re making the right calls or veering off-course. They&#8217;re constantly second-guessing because there&#8217;s no framework to guide their judgment.</p><p>So yes, empowerment requires clarity. But it also requires accepting that clarity includes boundaries, not just freedom.</p><h2>The trust gap: Your micro-behaviors give you away</h2><p>You told them they&#8217;re empowered... and then you checked their work.</p><p>They saw it. The act itself was not the problem, the problem was how it was done.</p><p>The trust gap isn&#8217;t what you <em>say</em> about empowerment. It&#8217;s what your <em>behaviors</em> reveal about whether you actually trust them.</p><p>I watched this happen to a senior engineer.</p><p>A senior stakeholder asked him for an estimate on a project: &#8220;You&#8217;re responsible for estimates on this. You&#8217;ve worked on similar things before. How much time will this take?&#8221;</p><p>The engineer gave his estimate. The leader didn&#8217;t like it, no surprise here, because it was too long.</p><p>Instead of asking about assumptions with an open mind, or exploring what was driving the timeline, he went task by task, challenging everything. <em>Everything</em>. Every hour, every detail and tried to shave off hours until the stakeholder was semi happy with the estimate. It was like being on a tribunal. He didn&#8217;t shave off any functionality, just pushing the engineer to commit to something he knew he won&#8217;t be able to pull through.</p><p>The engineer later told me it was one of the lowest moments for him.</p><p>&#8220;If you don&#8217;t trust me with my expertise, then why do you have me?&#8221;</p><p>That&#8217;s the question people ask themselves when you say they&#8217;re empowered but your behavior says otherwise.</p><p>People don&#8217;t need your permission to feel unempowered. They can see the gap between what you say and what you do.</p><p>The gap makes people go through the motions. They make &#8220;decisions&#8221; they know will get reviewed, while waiting for the real decision to come from you.</p><p>This creates a pattern where people stop exercising judgment and start waiting for direction.</p><h3>Real trust means shipping their decision, not yours</h3><p>Real trust means letting decisions stand <em>even when you&#8217;d decide differently</em>.</p><p>Not wrong decisions. <em>Different</em> decisions.</p><p>When someone makes a choice you wouldn&#8217;t make, you have to ask: &#8220;Is this wrong, or just different?&#8221;</p><p>If it&#8217;s different but defensible, ship it, publicly support it, and make your trust visible. If it&#8217;s wrong, make that a teaching moment, not a reversal.</p><p>The cost of real trust is accepting outcomes you didn&#8217;t choose.</p><p>The benefit? A team that actually exercises judgment.</p><p>Count how often you review, revise, or redirect work you said they owned. What does that number tell you about trust?</p><h3>Challenge to learn, not to judge</h3><p>It&#8217;s easy to say &#8220;I trust my team.&#8221;</p><p>It&#8217;s harder to trust them with your behavior.</p><p>The gap shows up in how you respond when they bring you ideas, decisions, or approaches.</p><p><strong>Do you challenge to invite discussion, or to create defensiveness?</strong></p><p>There&#8217;s a difference.</p><p>Inviting discussion sounds like:</p><ul><li><p>&#8220;Walk me through your thinking here.&#8221;</p></li><li><p>&#8220;What tradeoffs did you consider?&#8221;</p></li><li><p>&#8220;Help me understand why this approach over that one.&#8221;</p></li></ul><p>Creating defensiveness sounds like:</p><ul><li><p>&#8220;<em>Why</em> would you do it that way?&#8221;</p></li><li><p>&#8220;Did you think about <em>[obvious thing]</em>?&#8221;</p></li><li><p>&#8220;That doesn&#8217;t make sense.&#8221;</p></li></ul><p>The first approach signals trust in their thinking. The second signals doubt that they thought it through at all.</p><p><strong>People can tell the difference.</strong></p><p>When they bring you something and you challenge everything (not to understand, but to question whether they thought at all), they stop bringing you things.</p><p>They don&#8217;t trust that you trust them. Because you don&#8217;t.</p><p>And when trust erodes, so does engagement. So does motivation. So does agency.</p><p>You can say &#8220;I trust you&#8221; all day. Your micro-behaviors will tell them what&#8217;s actually true.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qD_x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qD_x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!qD_x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!qD_x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!qD_x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qD_x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1616822,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/188165451?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qD_x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 424w, https://substackcdn.com/image/fetch/$s_!qD_x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 848w, https://substackcdn.com/image/fetch/$s_!qD_x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 1272w, https://substackcdn.com/image/fetch/$s_!qD_x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6fcf9d-9107-4dfd-8347-aa26a56e5748_1200x896.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>You can&#8217;t grant empowerment verbally</h3><p>The gap between what you say and what they experience is where empowerment breaks down.</p><p>You can&#8217;t tell someone to feel empowered any more than you can tell them to &#8220;just be confident.&#8221; Empowerment isn&#8217;t granted through words&#8212;it&#8217;s created through systems, behaviors, and consistency.</p><p>Without clarity, trust, calibration, and safety backing up your words, &#8220;you&#8217;re empowered&#8221; becomes noise. They hear it. They don&#8217;t feel it. And the gap tells them everything.</p><h3>Safety to be wrong</h3><p>Trust without psychological safety is permission to succeed, but <em>only if you don&#8217;t fail.</em></p><p>You can tell people they&#8217;re empowered, you can let decisions stand, but if they don&#8217;t feel safe being wrong, they won&#8217;t use the judgment you&#8217;re supposedly empowering.</p><p>I&#8217;ve watched this undermine empowerment more quietly than any other gap.</p><p>Someone makes a decision. It doesn&#8217;t go well. Not catastrophic, just not ideal. What happens next determines everything.</p><p>Remember that engineer with the estimates who got questioned behind his back? What did the team learn from watching that play out? Don&#8217;t give honest estimates. Give the number leadership wants to hear. Or pad everything because you&#8217;ll get questioned anyway. Or stop volunteering judgment entirely.</p><p>What it looks like when done right?</p><p>An engineer made a call to refactor a critical system during a feature release. It made sense technically but created timing risk. The release got delayed by a week. Not catastrophic, but not ideal.</p><p>The leader pulled them aside privately. Not to blame, but to understand: &#8220;Walk me through your thinking. What made this feel like the right call?&#8221; They explored the tradeoffs together. Turned out the engineer was optimizing for long-term stability but didn&#8217;t realize the business pressure on the timeline. Valid technical judgment, missing context.</p><p>The leader said: &#8220;Your instinct to fix this was right. Next time, let&#8217;s talk through timing tradeoffs before we commit. You still own this domain, and I want you to keep making these calls.&#8221;</p><p>Two months later, the same engineer faced a similar choice. This time they came to the leader first: &#8220;I think we should refactor this, but I know we&#8217;re under deadline pressure. Here&#8217;s the tradeoff. What do you think?&#8221;</p><p>They made the call together. The engineer learned. The leader stayed out of the way. That&#8217;s safety.</p><p>The team is watching what happens when someone gets it wrong. That tells them more about empowerment than anything you say.</p><h3>When people feel like assets instead of humans</h3><p>You can have perfect clarity. Calibrated involvement. Real trust in decision-making.</p><p>But if people feel invisible (or worse, like pieces you&#8217;re moving around a board), they stop bringing their thinking.</p><p>This shows up in small ways:</p><ul><li><p>Someone makes a good call. You don&#8217;t acknowledge it. They see it.</p></li><li><p>Someone brings a thoughtful analysis. You skip past it to your own conclusion. They stop analyzing.</p></li><li><p>Someone takes initiative. It goes well. Silence. They stop initiating.</p></li><li><p>Someone raises a concern. You dismiss it. They stop raising concerns.</p></li></ul><p>And it shows up in big ways:</p><ul><li><p>You talk about people as &#8220;resources&#8221; or &#8220;headcount&#8221; in front of them.</p></li><li><p>You exclude them from decisions that affect their work.</p></li><li><p>They can&#8217;t challenge your approach or your thinking.</p></li><li><p>You treat their execution as valuable, but not their judgment.</p></li></ul><p>You can repeat &#8220;be empowered&#8221; all day. If you don&#8217;t actually <em>let them</em> be empowered (if they&#8217;re excluded, dismissed, or talked about like assets to allocate), the words mean <strong>nothing</strong>. Nada. Diddly-squat.</p><p><strong>What does it look like when someone feels their judgment matters?</strong></p><p>An engineer raised a concern about the approach we were taking on a project. In a meeting, in front of the team. My first instinct was to defend the approach. We&#8217;d already decided, we were moving forward, raising this now felt like slowing us down.</p><p>I caught myself. Instead I said: &#8220;That&#8217;s a good question. Walk me through your concern.&#8221; They did. Turned out they saw a risk I&#8217;d missed. We adjusted the approach. I said in front of the team: &#8220;Thank you for pushing back on this. You saved us from a problem we would&#8217;ve hit later.&#8221;</p><p>What did the team learn? That challenging my thinking was valued, not tolerated.</p><p>Next meeting, someone else raised a concern. And another. We didn&#8217;t agree with all of them, but they kept bringing their thinking because they knew it mattered.</p><p>That&#8217;s what it looks like when people feel like <strong>thinking humans</strong> instead of <strong>managed assets</strong>.</p><p>What makes this real? Include people in decisions that affect their work before you&#8217;ve decided. Create space for them to challenge your approach, and actually listen when they do. Recognize good judgment out loud, not just outcomes. Ask for input before committing to direction.</p><p>Recognition isn&#8217;t a nice-to-have. It&#8217;s fuel.</p><p>When people feel their judgment matters, they bring more of it.<br>When they feel like managed assets, they shrink back to waiting for instructions.</p><p>When was the last time you explicitly recognized someone for good judgment, not just outcomes?</p><h3>When empowerment breaks under pressure</h3><p>I&#8217;ve watched this pattern repeat. Pressure arrives, empowerment disappears. A leader who normally steps back suddenly takes over, challenges everything, pushes their solution because it&#8217;s faster. The team notices and steps back.</p><p>One time, they might understand. But when it keeps happening, they learn the real rule: &#8220;You&#8217;re empowered... until things get <em>interesting</em>.&#8221;</p><p>That&#8217;s when empowerment becomes conditional, which isn&#8217;t empowerment at all.</p><p><strong>And then there&#8217;s THE HERO move. </strong></p><div><hr></div><p>I touched upon heroes in one of my early essays, you might want to check it out.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;21d3f711-dec7-48c9-b7e0-1e09e3a71c82&quot;,&quot;caption&quot;:&quot;The original MacGyver and the leadership myth we grew up with&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;The MacGyver School of Leadership&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing human-first leadership from the operator's chair. Real moments, straight talk about the patterns that repeat, the systems underneath and people in between.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-11-15T22:30:09.264Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!xHv1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66e10c5-a292-4c5b-8b88-5882b82c5fa2_1024x1536.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/the-macgyver-school-of-leadership&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:179004106,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:0,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><p>Heroism comes in many forms, here are two of them: bringing in someone else to save the day, or doing it yourself. It feels like you&#8217;re helping, like you&#8217;re being a good leader by stepping in. You&#8217;re solving problems! You&#8217;re saving time! You&#8217;re also teaching your team that you&#8217;ll always take over when things get real, but that&#8217;s tomorrow&#8217;s problem. The pattern undermines what you&#8217;re trying to build.</p><p><strong>What leadership actually looks like under pressure:</strong></p><p>The team is struggling. Deadline&#8217;s tight. You can see the solution clearly, and it would be faster if you just took over.</p><p>Don&#8217;t.</p><p>Instead, ask: &#8220;What are you stuck on?&#8221; Listen to their answer. Often they&#8217;re not stuck on the problem&#8212;they&#8217;re stuck on a constraint they think exists, or missing one piece of context, or haven&#8217;t considered an option they don&#8217;t know is available.</p><p>Give them that piece. Not the solution, the piece they&#8217;re missing.</p><p>&#8220;You know we can push back on that deadline if needed, right?&#8221;<br>&#8220;Have you considered approaching it from this angle?&#8221;<br>&#8220;What if you didn&#8217;t have to worry about backward compatibility here?&#8221;</p><p>Then step back. Let them solve it.</p><p>If they&#8217;re truly stuck and time is running out, step in&#8212;but do it collaboratively. &#8220;I have an idea. Want to talk through it together?&#8221; Not &#8220;Let me just do it.&#8221; Work the problem together. Explain your thinking. Ask them to poke holes in it. Make it a learning moment, not a rescue.</p><p>Two examples:</p><p>A team was stuck on an architectural decision two days before a deadline. The leader could see the answer but asked instead: &#8220;What&#8217;s making this hard?&#8221;</p><p>The engineer said they were worried about scalability. The leader asked: &#8220;For the launch or long-term?&#8221; The engineer realized they were over-engineering for scale they wouldn&#8217;t need for months. They made a simpler call, shipped on time, and learned to ask that question themselves next time.</p><p>Another time, a team was genuinely stuck. The problem was harder than anyone realized. The leader stepped in but said: &#8220;Let&#8217;s work this together. I&#8217;ve seen something similar before. Tell me your constraints, I&#8217;ll tell you what I&#8217;m thinking, and we&#8217;ll figure out if my approach works here.&#8221;</p><p>They solved it together. The team learned. The leader didn&#8217;t become a dependency.</p><p>The hero gets short-term relief and long-term dependency. The coach gets short-term discomfort and long-term capability.</p><p>If you want real empowerment to survive pressure, protect it when it&#8217;s hardest. <strong>That&#8217;s the test: when it&#8217;s hard, not when it&#8217;s easy.</strong></p><h2>The calibration gap: Too much help, not enough help, never just right</h2><p>Most leaders think empowerment is a scale from control to autonomy.</p><p>Less control = more empowerment.</p><p>Nope.</p><p>Both extremes prevent people from developing agency.</p><p><strong>Too much control</strong> turns into micromanagement. People disengage because you don&#8217;t trust them.</p><p><strong>Too little control</strong> turns into abandonment. People drown because you&#8217;re not providing the structure they need.</p><p>Effective empowerment isn&#8217;t maximum or minimum involvement. It&#8217;s <em>right-sized</em> involvement.</p><p>We leaders can miscalibrate both ways.</p><p>You won&#8217;t find this in your average empowerment advice book.</p><div class="pullquote"><p>Not everyone is ready for empowerment at the level you think they are.</p></div><p>If team members have been fake-empowered for months or years (told they own things while every decision gets second-guessed), you can&#8217;t flip a switch one day and expect them to know what to do with real autonomy.</p><div class="pullquote"><p>Empowerment requires responsibility and communication.</p></div><p>Without communication, trust erodes. When trust erodes, leaders pull back. When leaders pull back, people stop trying. A vicious circle.</p><p>You can set someone up for failure, then use that failure as proof that &#8220;people can&#8217;t handle empowerment.&#8221; Self-fulfilling prophecies are efficient that way.</p><p>A senior engineer was working on a very complex project. The leader thought: &#8220;He&#8217;s senior. He can handle everything.&#8221; Architectural decisions, writing the code, all the edge cases, dealing with the PM - all of it.</p><p>All good until it wasn&#8217;t. The project burned him to the ground.</p><p>Nobody checked in often enough with the technical challenges he was dealing with. He had to work in a new technology without much support from others. Then suddenly, after months of no pressure, came time pressure from senior management: this has to ship, ego in the game.</p><p>The engineer wasn&#8217;t used to this kind of freedom. He didn&#8217;t even want it. He felt abandoned, but he didn&#8217;t say anything. Asking for help felt like admitting weakness, like admitting he couldn&#8217;t handle it. He was introverted, kept everything inside, until it exploded.</p><p>The retrospective revealed he didn&#8217;t have good enough specifications, faced unreasonable expectations from the PM, and dealt with constant &#8220;Is it done yet? Is it done yet? Is it done yet?&#8221;</p><p>The leader thought this was empowerment. It was pure abandonment.</p><p>Senior title doesn&#8217;t mean someone wants - or is ready for - complete autonomy on a complex, high-pressure project with new technology and no support structure.</p><p>That&#8217;s not empowerment. That&#8217;s setting someone up to fail, then blaming them for it.</p><h3>Right-sized involvement beats maximum or minimum</h3><p>The goal isn&#8217;t to eliminate oversight. It&#8217;s about <em>matching your involvement to the context</em>.</p><p>I think about the person&#8217;s experience level, the task complexity, the risk level, and what breaks if this fails.</p><p>Junior engineers need more structure while staff engineers need strategic direction, not step-by-step guidance. Routine work gets less oversight, but novel problems need more collaboration. Low-stakes experiments get autonomy, while high-consequence decisions get structure. And I always ask: can we recover easily if this fails, or does this take down production?</p><p>Your involvement should change based on these factors:</p><ul><li><p>Tighter collaboration early in someone&#8217;s growth, more independence as competence proves out.</p></li><li><p>More structure on high-risk decisions, less on low-stakes experiments.</p></li><li><p>Clear check-in mechanisms (not approval gates, but visibility and support touchpoints).</p></li><li><p>Explicit escalation paths (when to involve you, what triggers discussion, where to ask for help).</p></li></ul><p>The goal isn&#8217;t to disappear. <strong>It&#8217;s to be useful.</strong></p><p>Your team doesn&#8217;t want you to vanish. They want you to show up in the right ways, at the right times.</p><h3>Hard enough to grow, safe enough to recover</h3><p>Real empowerment means people can stretch without breaking.</p><p>When you calibrate involvement correctly, you create room for people to try things slightly beyond their current capability, with enough support that failure isn&#8217;t catastrophic.</p><p>This is where people actually grow.</p><p><strong>Too much involvement</strong> leaves no room to fail safely. People can&#8217;t learn because you&#8217;re preventing mistakes before they happen.</p><p><strong>Too little involvement</strong> lets failures become catastrophic. People lose confidence because they&#8217;re drowning, not stretching.</p><p><strong>Right-sized involvement</strong> provides circumstances in which people can try, stumble, recover, and learn, with you close enough to prevent disaster but far enough to let them figure it out.</p><div class="pullquote"><p>Hard enough to be real growth, safe enough to be recoverable.</p></div><p>When someone&#8217;s learning something new, I learned not to prevent all mistakes. I had to make sure the mistakes they made were the kind they could learn from, not the kind that destroyed confidence or broke production.</p><h3>Not everyone wants maximum autonomy</h3><p>This is the part most empowerment advice misses.</p><p>Some people can&#8217;t function without high levels of autonomy. They need to drive decisions, own outcomes, shape direction. Take that away and they disengage. I&#8217;m one of those people. I&#8217;ve always been.</p><p>But not everyone is.</p><p>Some people want clarity, structure, and defined boundaries more than they want autonomy. They want to know exactly what&#8217;s expected, execute well, and not carry the weight of ambiguous decisions. That&#8217;s a preference, not a weakness.</p><p><strong>The mistake leaders make? Treating empowerment as one-size-fits-all.</strong></p><p>Giving too much autonomy to someone who wants structure creates anxiety, not freedom.</p><p>Giving too much structure to someone who needs autonomy creates frustration, not clarity.</p><p>Calibration isn&#8217;t just about experience level or task complexity. It&#8217;s also about what the person in front of you actually needs to do their best work.</p><p>Ask them. Don&#8217;t assume.</p><p>Some people will tell you: &#8220;I want more space to make calls.&#8221;</p><p>Others will tell you: &#8220;I need clearer direction on what you want.&#8221;</p><p>Both are valid. Both deserve respect.</p><p>The goal isn&#8217;t maximizing autonomy for everyone. It&#8217;s matching the level of autonomy to what makes each person effective.</p><h2>What real empowerment looks like</h2><p>Empowerment isn&#8217;t one thing. It&#8217;s four things working together:</p><p><strong>Clarity:</strong> Your team knows what good judgment looks like because you&#8217;ve defined success, constraints, and decision rights explicitly.</p><p><strong>Trust:</strong> Your behaviors match your words. When you say &#8220;you own it,&#8221; your actions prove you mean it.</p><p><strong>Calibration:</strong> Knowing when to step in and when to step back, based on the person, the task, the risk.</p><p><strong>Safety:</strong> People can be wrong, learn from it, and try again without fear of punishment or invisibility.</p><p>When all four exist, empowerment becomes real instead of just words.</p><p>People make decisions without guessing, exercise judgment without second-guessing, and know when to escalate versus when to move forward. They bring their thinking because it matters. They take initiative because failure is recoverable.</p><p>That&#8217;s when you stop being a bottleneck and start being a multiplier.</p><h2>The empowerment audit you won&#8217;t want to take</h2><p>So how do you know if you&#8217;re actually doing this?</p><p>This is the self-awareness part. You know, the uncomfortable bit where you realize you might be the problem. My favorite.</p><p>Most leaders genuinely believe they&#8217;re empowering their teams. The patterns I&#8217;ve described? They&#8217;re not obvious from the inside. They emerge gradually, shaped by pressure and habits and the complexity of the systems we work in.</p><p>The first step is noticing what you might not be seeing.</p><p>I built a quick self-assessment tool with Lovable to help you spot these gaps :</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://empowerment-compass.lovable.app&quot;,&quot;text&quot;:&quot;Start self-assessment on Empowerment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://empowerment-compass.lovable.app"><span>Start self-assessment on Empowerment</span></a></p><h2>Where to start</h2><p>Pick the gap that&#8217;s costing you the most right now.</p><p><strong>Missing clarity?</strong> List the 10 most common decisions in your area. For each one, define who decides, what constraints apply, what success looks like. Then share it. Make it explicit instead of assuming it&#8217;s obvious.</p><p><strong>Behaviors don&#8217;t match your words?</strong> Find one decision where someone chose differently than you would. If it&#8217;s not wrong, ship it. Publicly support it. Make your trust visible, not just stated.</p><p><strong>Miscalibrated involvement?</strong> Map your team by experience level and current projects. For each person, ask what&#8217;s the right level of involvement. Check in more where needed, step back where you&#8217;re overcorrecting.</p><p><strong>People don&#8217;t feel safe being wrong?</strong> Next time someone makes a recoverable mistake, have a private teaching conversation, not a public correction. Recognize someone for good judgment this week, not just outcomes. When someone brings bad news, notice your reaction and adjust it. Give someone who stumbled recently another shot at something similar.</p><div class="pullquote"><p>Empowerment isn&#8217;t about stepping back and hoping for the best. It&#8217;s about creating the clarity, trust, calibration, and safety that make good judgment possible.</p></div><p>I want a team so empowered, trusted, and supported that I can walk in with a business need or a problem and say: &#8220;<em>Now do your magic</em>.&#8221;</p><p>And they take it. Own it. Deliver it. And I&#8217;m proud of what they built.</p><p>That&#8217;s the dream.</p><p>But that dream has a lot underneath the surface.</p><p>It requires day-to-day communication that builds trust, difficult conversations when they&#8217;re needed, and support that flows both ways.</p><p>It means coaching through struggle instead of rescuing from it, being there for each other when things get hard, and solving things together.</p><p>It means not being too proud to ask for help, and not being too quick to jump in at the first sign of hesitancy. Sometimes people just need time to think things through.</p><p>&#8220;Just do your magic&#8221; still works. Turns out the magic was the systems we built along the way. (I had to. The setup was right there.)</p><p>But only when you&#8217;ve built the systems that make magic possible.</p><div class="pullquote"><p><strong>Your team doesn&#8217;t need permission to be empowered. They need you to create the conditions where empowerment is real.</strong></p></div><p>Start with one gap. Fix it. Build the foundation.</p><p>Then eventually magic can happen again.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Want a team that makes decisions without you? Subscribe for more essays like this.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Your team won't challenge your ideas (that's the problem)]]></title><description><![CDATA[Why teams won't challenge you and how to fix it]]></description><link>https://www.between-code-and-culture.tech/p/your-team-wont-challenge-your-ideas</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/your-team-wont-challenge-your-ideas</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Thu, 12 Feb 2026 07:29:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Rv0k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The architecture review is almost done. Lead engineer walks through the new microservices design. Solid work. Clean boundaries. Yes! Everyone&#8217;s nodding.</p><p>Then someone raises their hand. Someone who doesn&#8217;t usually speak up in these meetings.</p><p>&#8220;Why are we splitting this service? The load is low. We don&#8217;t have the team size to maintain multiple deployments. This adds complexity we don&#8217;t need yet.&#8221;</p><p>The room goes quiet.</p><p>Lead engineer&#8217;s face shifts. Not angry, exactly. Just... tight. &#8220;We&#8217;re planning for scale. This is how you design systems properly.&#8221;</p><p>The questioner backs down. &#8220;Yeah, makes sense. Just wanted to understand.&#8221;</p><p>Meeting continues. Decision stands.</p><p>Later, the same lead engineer complains to you: &#8220;Nobody on this team challenges anything. They just agree with whatever I propose.&#8221;</p><h2>The performance of openness</h2><p>You&#8217;ve seen this movie before. I know I have.</p><p>Leader asks if there are any concerns in a meeting where everyone knows the answer is supposed to be no. Engineering manager invites pushback on a timeline they&#8217;ve already promised to stakeholders. It&#8217;s not openness. It&#8217;s theater.</p><p>Real challenge doesn&#8217;t feel like a smooth meeting where everyone nods thoughtfully and agrees all around. Real challenge creates friction. It slows things down, makes people uncomfortable, and almost always makes them defensive.</p><p>This is especially important now. Speed matters more than ever. We&#8217;re making decisions faster and faster. And when speed is the priority, we&#8217;re tempted to skip the challenge phase. Why slow things down with questions when we could just move forward?</p><p>Challenging slows things down temporarily, but it speeds them up in the longer run. You either spend an hour now finding the holes in the plan, or you spend three months later fixing what you built on a broken foundation. The question isn&#8217;t whether to challenge. It&#8217;s whether people are willing to make the short-term sacrifice of slowing down to get it right.</p><p>When someone objects that challenging is a waste of time, the response is simple: challenging things now is cheap. Changing the course of action later is very expensive.</p><p>If your open-to-feedback culture never produces tension, nobody&#8217;s actually challenging anything.</p><p>They&#8217;re performing agreement while privately thinking you&#8217;re wrong.</p><p>This cost me. I used to end meetings feeling great because everyone was aligned. Then I&#8217;d get Slack messages an hour later about concerns people didn&#8217;t raise in the room. Four messages from four people. None of whom said anything when it mattered.</p><p>Turns out I was running a very efficient pipeline: meeting to Slack to nowhere.</p><p>The meeting wasn&#8217;t open. It was a performance. And I was the director demanding everyone stick to the script.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Rv0k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Rv0k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rv0k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rv0k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rv0k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Rv0k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1333569,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/187336543?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Rv0k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Rv0k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Rv0k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Rv0k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b2ee58b-6c40-437a-8e9b-07778ed28f30_2304x1728.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Real dissent isn&#8217;t polite</h2><p>Real challenge doesn&#8217;t sound like <em>interesting perspective, let me play devil&#8217;s advocate for a moment.</em> It sounds like <em>this assumption is wrong</em> or <em>we&#8217;re solving the wrong problem</em> or <em>this timeline is unrealistic and we&#8217;re setting ourselves up to fail.</em> Not polite or hedged. Direct.</p><p>It questions core assumptions, not implementation details. It doesn&#8217;t ask whether to use Postgres or MySQL. It asks whether we even need a database for this. It proposes alternatives - instead of microservices, here&#8217;s why a modular monolith solves this better right now. Sometimes it questions whether the problem is worth solving at all. Users aren&#8217;t asking for this, so why are we building it?</p><p>This is uncomfortable because challenge implies the person making the decision might be wrong. And most of us don&#8217;t handle that well, even when we claim we do. Especially when we claim we do.</p><h2>The tension is the point</h2><p>Challenge creates tension because it threatens three things leaders care about: momentum, authority, and certainty.</p><p>You&#8217;re ready to move forward. Someone challenging the decision means stopping, reconsidering, maybe changing course. That feels like going backwards when you were so close to checking this off your list. When someone questions your decision, it can feel like they&#8217;re questioning your competence. Especially if they&#8217;re doing it in front of others. You&#8217;ve already decided this is the right path. Challenge introduces doubt. And doubt is uncomfortable when you&#8217;re trying to project confidence.</p><p>So we shut it down. Not explicitly. We&#8217;re too sophisticated for that.</p><p>We say <em>let&#8217;s take that offline</em> or <em>good points, we&#8217;ll consider that</em>, then proceed exactly as planned. We say <em>we need to move forward</em> as if momentum is more important than being right.</p><p>The challenge goes away. So does the thinking.</p><p><strong>If someone challenges your idea and you feel defensive, that&#8217;s the signal it&#8217;s working.</strong> That discomfort means they&#8217;re questioning something you haven&#8217;t fully examined. The defensive feeling is your ego protecting a decision that might not be as solid as you thought.</p><p>Most of my best decisions came from challenges that made me uncomfortable first.</p><h2>The &#8220;not like that&#8221; problem</h2><p>Leaders say they want dissent. Then someone actually disagrees and the response is <em>not like that.</em></p><p>You wanted pushback, just... gentler and more collaborative. Perhaps phrased as a question instead of a statement? Definitely raised privately instead of in the meeting. Better yet, framed as curiosity instead of disagreement.</p><p>You wanted dissent that doesn&#8217;t actually dissent.</p><p>I watched a PM get blindsided by this. They asked the team whether users actually want this feature. Important question. But the product lead heard it as <em>you don&#8217;t know what you&#8217;re doing.</em></p><p>PM got feedback later: &#8220;You need to be more supportive of the team&#8217;s direction.&#8221;</p><p>The message was clear. Agree or stay quiet.</p><p>The gap between <em>we want people to challenge ideas</em> and <em>not like that</em> is where groupthink lives. People learn what kinds of challenge are actually safe. They learn which questions are allowed, and to phrase disagreement so carefully it stops being disagreement.</p><p>Then we wonder why nobody challenges anything. They tried once. It didn&#8217;t go well. They&#8217;re not making that mistake again.</p><h2>When pushback is just Steve being Steve</h2><p>But here&#8217;s the thing: not all challenge is valuable. Some people challenge everything, all the time, without offering alternatives. That&#8217;s not helpful dissent. That&#8217;s just Steve from team X who hasn&#8217;t liked an idea since 2019.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p_Hh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p_Hh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p_Hh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p_Hh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p_Hh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p_Hh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1887041,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/187336543?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p_Hh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p_Hh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p_Hh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p_Hh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17bbadfa-3ff0-4938-9e80-15c4723ebb29_2304x1728.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Good challenge is specific. It names what&#8217;s wrong and why. It proposes what to do instead. It&#8217;s aimed at making the decision better, not at proving the challenger is smart. Obstruction is vague - <em>I don&#8217;t think this will work</em> - with no specifics and alternative, just blocking.</p><p>Good challenge accepts when it&#8217;s overruled. The person made their case, the team considered it, the decision went another way, they move forward even if they disagreed. On the other hand, obstruction refuses to let go. Brings it up again next meeting. Undermines the decision after it&#8217;s made. Tells everyone privately it&#8217;s going to fail.</p><p>The hard part? Sometimes these look the same in the moment. Someone pushing back on your decision could be offering valuable perspective or being obstinate. You have to distinguish between the two without defaulting to <em>anyone who disagrees is being difficult</em>.</p><p>Ask yourself: are they questioning the decision or questioning whether you have the right to make it? Are they offering alternatives or just pointing out problems? Are they willing to commit after being overruled or still arguing two meetings later?</p><p>This is important: you don&#8217;t have to accept every challenge. Some are valid and improve the decision. Some are just people wanting to be against something. Acknowledge it, consider it, take what makes sense. Sometimes you&#8217;ll realize it&#8217;s important. Sometimes you&#8217;ll understand it but decide the tradeoff isn&#8217;t worth it. Both are fine. The key is actually considering it instead of dismissing it reflexively.</p><p>Worth asking yourself: do I want the right answer or do I just want to be right?</p><p>The other thing about timing: if everything is already laid out and things are in motion, if teams have already started implementing, pushback gets exponentially harder. This is why the right discussions need to happen at the right time - early, when the decision is still being made, not after everyone&#8217;s already committed resources.</p><p>Sometimes it takes one or two failed projects for people to understand this. When you&#8217;re three months into something that&#8217;s clearly not working, that&#8217;s when explaining sunk cost fallacy helps. The time and money already spent is gone whether you stop now or keep going. The only question is whether you want to spend more time and money on something that won&#8217;t work. Once people see this pattern play out, they get more comfortable challenging things earlier, before the costs pile up.</p><h2>Making it safe to disagree</h2><p>If you want real challenge, you have to make it safe. Not comfortable - safe. There&#8217;s a difference.</p><p>Start by making challenge explicit. I usually invest in the relationships with people before meetings, then at the beginning prompt them: &#8220;Please keep an open mind and open your chakras for a different point of view.&#8221; It&#8217;s a light way of saying we&#8217;re here to challenge each other&#8217;s thinking, not to agree.</p><p>Don&#8217;t ask if there are any concerns. That invites performance. Ask who&#8217;s willing to argue against this. Give the dissent a role - your job in this meeting is to find the holes in this proposal. Now challenging isn&#8217;t being negative. It&#8217;s doing the job.</p><p>If nobody wants to challenge because they don&#8217;t feel they have permission, use the devil&#8217;s advocate framing. &#8220;Let&#8217;s just entertain the thought - what if we&#8217;re looking at this wrong?&#8221; You&#8217;re giving people permission to explore different angles without feeling like they&#8217;re being negative or disloyal. It&#8217;s not disagreement. It&#8217;s thinking out loud together.</p><p>When you&#8217;re the one proposing something, invite the dissent yourself. Tell people you&#8217;re not married to the idea. You want to look at it from different angles, find any cracks and gaps in the plan.</p><p>When someone challenges you and they&#8217;re wrong, thank them anyway. Tell them you disagree but you&#8217;re glad they raised it. When they&#8217;re right? Say it publicly - you were right, I was wrong, this is better because you pushed back. People watch what gets rewarded. If challenge only gets thanked when it&#8217;s quiet and private, that&#8217;s what you&#8217;ll get.</p><p>The reality: there&#8217;s no guarantee you&#8217;ll be successful when you challenge something. Your point of view might not be the right one. But being quiet when things aren&#8217;t clear is definitely wrong. The cost of speaking up and being wrong is temporary embarrassment. The cost of staying quiet when you see a problem is watching the whole thing fail while knowing you could have said something.</p><h2>What this looks like in real meetings</h2><p>The best thing I ever did for my team&#8217;s willingness to disagree was changing my mind in a meeting after someone challenged my thinking. Not saying I&#8217;d consider it. Actually changing the decision right there. You&#8217;re right, this doesn&#8217;t make sense. Let&#8217;s do your version instead. Did it feel uncomfortable? Yes. Did it make me look less certain? Probably. Did it make the team more willing to challenge me in the future? Absolutely.</p><p>I worked with a tech lead where we became sparring partners. Complex problems - not just technical, but process, teams, infrastructure, how everything fit in the platform we were building. Sometimes it took us hours, sometimes multiple sessions, to get to a solution that finally ticked all the boxes. We&#8217;d give ourselves a pat on the back for solving it.</p><p>Then he&#8217;d say: &#8220;Okay, now that we have the perfect solution, let&#8217;s find three ways why this won&#8217;t work.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AySN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AySN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AySN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AySN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AySN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AySN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1253099,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/187336543?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AySN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AySN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AySN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AySN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d86459-839e-4e5e-aa61-d5ea1c7adfc5_2304x1728.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We became our own worst enemies by poking holes in the plan and finding reasons why things could fail. This helped us identify risks we&#8217;d missed in the excitement of solving it. We succeeded every time. Not by throwing away the plan - by identifying the gaps, addressing them, or documenting the risks and accepting the reality. That&#8217;s what good challenge looks like. You make the solution better by trying to break it first.</p><p>When someone questions a design, don&#8217;t make it about who they are or what their role is. Make it about the idea. Is the question valid? Then it doesn&#8217;t matter who asked it. I&#8217;ve seen engineers dismiss questions from people they don&#8217;t consider technical enough, questions they would have seriously considered if they came from someone with more credibility. The question was good. The dismissal was ego protection. If you want real challenge, judge the argument, not the person making it.</p><p>Something else that helps: build relationships with people before you challenge them. They need to know you&#8217;re not attacking them as people, you&#8217;re challenging the problem and the solution. When you have that foundation, you can push harder without it feeling personal. When someone gets animated and raises their voice explaining something, that&#8217;s often passion, not aggression. They care. But if you have a relationship with them, you can point out when they&#8217;re getting defensive and they&#8217;ll actually hear it. Without that relationship, the same comment feels like an attack.</p><p>Catch yourself mid-response when someone challenges you. You felt defensive. You&#8217;re about to explain why they&#8217;re wrong. That&#8217;s the moment to pause. Ask yourself: Is this a bad challenge or am I just uncomfortable? Is the question invalid or does it threaten something I haven&#8217;t thought through?</p><p>The defensive feeling is information. I&#8217;ve ignored it enough times to know: three months later, they were usually right.</p><p>Sometimes I&#8217;ll just say it out loud: &#8220;I&#8217;m being defensive right now. I need to think this through. Thank you for pushing back, bear with me while I work through this.&#8221; Naming the defensiveness doesn&#8217;t make you look weak. It makes the challenge land better because you&#8217;re not pretending to be open while mentally building your counterargument.</p><p>Building this kind of culture isn&#8217;t quick. It takes time and courage. It means showing people that you don&#8217;t need to be the smartest person in the room, that you don&#8217;t need to be right all the time. People will start accepting and valuing that you look at things from different perspectives. And they&#8217;ll start doing it themselves. The key is that these discussions happen at meetings, not in Slack an hour later.</p><h2>In your next team meeting</h2><p>You&#8217;re in your next decision-making meeting. Someone&#8217;s proposing something. You&#8217;re about to agree.</p><p>Stop for ten seconds.</p><p>Ask yourself: what would the opposing argument be? If someone challenged this, what would they say? Is anyone in the room thinking it but not saying it?</p><p>If nobody&#8217;s challenging it, someone should. Maybe that someone is you.</p><p>Or you&#8217;re the one making the proposal. You&#8217;re about to ask if there are any questions. Try this instead: ask what you&#8217;re missing, what&#8217;s wrong with this. Then wait. Actually wait. Count to ten if you have to. Let the silence be uncomfortable.</p><p>Someone will fill it. If they don&#8217;t, that tells you something about the room. When someone does challenge you, notice your reaction. Defensive? Annoyed? If you say <em>grateful</em>, I won&#8217;t believe you (and neither should you). That feeling tells you whether you actually want challenge or just the appearance of it.</p><h2>The alternative is comfortable groupthink</h2><p>The alternative to uncomfortable challenge is comfortable groupthink. Meetings where everyone agrees and decisions that go unopposed.</p><p>Then reality hits. The timeline was unrealistic or the users don&#8217;t want the feature. The architecture doesn&#8217;t scale and oh my, the strategy was based on a wrong assumption. And everyone says they had concerns but didn&#8217;t think it was the right time to bring them up.</p><p>Someone probably tried to raise this earlier. We called it staying positive or moving forward or being a team player. When being agreeable matters more than being right, you end up living with decisions that nobody actually believed in.</p><p>Real challenge is uncomfortable. That&#8217;s not a bug. That&#8217;s the whole point.</p><p>If it doesn&#8217;t create at least a little tension, it&#8217;s not challenging anything that matters.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"><strong>Want to build a team that actually challenges ideas?</strong> Subscribe to Between Code and Culture, where we figure out how to do the hard parts of leadership.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Everyone saw it coming except you]]></title><description><![CDATA[The squirrel-meerkat principle for building peripheral vision]]></description><link>https://www.between-code-and-culture.tech/p/everyone-saw-it-coming-except-you</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/everyone-saw-it-coming-except-you</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 09 Feb 2026 06:48:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Laqe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I follow around 50 Slack channels. Maybe more.</p><p>I refuse to get blindsided by the ground shifting underneath me while I&#8217;m heads-down on execution. That&#8217;s the reason, not boredom or a love of chatting all day.</p><p>Group channels. Project channels. My team&#8217;s work. Other teams&#8217; public channels. Customer success feedback. Engineering issues. I skim through them, read quickly, mark as read, move on. I don&#8217;t interact with most messages. I jump in when I know the answer and the situation is time-critical. Otherwise, I&#8217;m just watching.</p><p>When I brought this up in a meeting with my peers, I assumed everyone was doing the same thing. It seemed obvious. How else would you see what&#8217;s coming?</p><p>Turns out, they&#8217;re not.</p><p>They focus on their teams. They keep their heads down in the trenches. When I asked why they don&#8217;t track what&#8217;s happening across the company, the answer was always the same: &#8220;<em>I don&#8217;t have the bandwidth. I hate pings. I don&#8217;t want to see the unread messages bubble. It irritates me.</em>&#8220;</p><p>There&#8217;s more than just Slack. I listen, follow conversations, ask questions. I want to understand the bigger picture of what&#8217;s going on at the company: not every minute detail, but <strong>if information doesn&#8217;t come to me, I&#8217;ll go get it</strong>.</p><p>The first time this got me thinking was when I got feedback from my peers:</p><blockquote><p>&#8220;<em>You&#8217;re all over the place.</em>&#8221;</p></blockquote><p>I do my work just fine. But things are interconnected and I want to notice what&#8217;s happening around me.</p><blockquote><p>&#8220;<em>You can&#8217;t be everywhere.</em>&#8221;</p></blockquote><p>I don&#8217;t want to be everywhere. I&#8217;m in many places because information doesn&#8217;t always come looking for me.</p><blockquote><p>&#8220;<em>Why do you want to be at every meeting?</em>&#8221;</p></blockquote><p>Not every meeting. Just the ones where decisions affect me or my team.</p><blockquote><p>&#8220;<em>Why do you need to know what other teams are doing?</em>&#8221;</p></blockquote><p>Because we&#8217;re in a system. Things are never as simple as they seem at first sight.</p><blockquote><p>&#8220;<em>Why are you so curious?</em>&#8221;</p></blockquote><p>Why aren&#8217;t you?</p><p>I couldn&#8217;t understand why they were asking me that. Still can&#8217;t.</p><p>How can you <em>not</em> be interested in what other teams are doing? What they do affects us. What we do affects them.</p><p>I learned the hard way: making changes that ripple through three teams requires seeing those teams first. <strong>Ignorance isn&#8217;t a strategy, even when it&#8217;s unintentional.</strong></p><p>Some leaders operate like they&#8217;ll receive a weekly well-written memo with everything they need to know. Why go out there and waste time connecting with people, building relationships, listening?</p><p>What does this <em>actually</em> look like? A day or two after we introduce a change, communicate it in three channels, have everyone chatting about it for days, someone shows up and says, &#8220;I didn&#8217;t know this was happening. Why was I not informed/invited/included/etc?&#8221;</p><p>I&#8217;m always flabbergasted when this happens. How is that possible? How could you not see it? How could you not know?</p><p>Because you weren&#8217;t watching.</p><p>You&#8217;ll watch closed-door meetings happen two weeks before the reorg. You&#8217;ll notice the tone change in planning meetings before the priority shift. You&#8217;ll catch the project becoming problematic before it derails your sprint. You notice when signals shift.</p><p>A good leader is like a squirrel with a meerkat mindset: busy getting things done, but every few seconds they pause, look around, and think, <em>&#8220;What&#8217;s shifting that could bite us later?&#8221;</em> They&#8217;re not anxious. They&#8217;re attentive. The work keeps moving, and nothing jumps out of the bushes unannounced.</p><p>I&#8217;m calling this the <strong>squirrel-meerkat principle</strong>. Yes, I made that up. But you&#8217;ll remember it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Laqe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Laqe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Laqe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Laqe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Laqe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Laqe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:699609,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/187277804?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Laqe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Laqe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Laqe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Laqe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F129d6ce8-a25c-4c9f-9c1c-b66306a39883_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Not everyone does this. I&#8217;ve seen leaders miss all of it, be it the reorg, the priority shift, the project losing executive support. Then they wonder why their excellent work becomes irrelevant while they were building it. They stayed in their lane, heads down, all their time on execution. They missed the terrain that determines whether their execution even matters.</p><p>Great leaders don&#8217;t just optimize their own team, they understand how the system behaves. </p><div class="pullquote"><p>Most problems don&#8217;t start where they explode. They travel across teams first.</p></div><p>This isn&#8217;t paranoia. It&#8217;s peripheral vision.</p><h2>The tunnel vision tax</h2><p>&#8220;Stay in your lane&#8221; is advice that works&#8230; right up until it takes you out. It&#8217;s usually well-intentioned, but it quietly installs blinders and calls it discipline.</p><p>You&#8217;re not responsible for driving everyone else&#8217;s car, but if you refuse to look left or right, don&#8217;t act shocked when something slams into you at full speed.</p><div class="pullquote"><p>Situational awareness is part of ownership.</p></div><p>Don&#8217;t get me wrong. Deep expertise matters. Focused execution matters. But taken too far, narrow focus creates a special kind of professional blindness. Without understanding the terrain, even excellent work fails if it doesn&#8217;t connect to the system around it.</p><p>One step back changes everything. You stop seeing just your corner and start seeing the whole system with its connections and its dependencies. These are the forces that will derail your work if you&#8217;re not watching for them.</p><div class="pullquote"><p>Situational awareness is full focus on quality work while staying aware that the world outside exists. Things don&#8217;t surprise you because you&#8217;re tracking the surroundings.</p></div><p>I didn&#8217;t always see this. I learned it in earlier roles where I was deep in operational work, organizing my team&#8217;s priorities while constantly trying to unblock others so work could move end to end. Over time, a pattern emerged: when things slowed down, it wasn&#8217;t because people weren&#8217;t executing. It was because no one was stepping back far enough to see how the system was actually behaving. Just don&#8217;t step too far back or you might end up in a different company. Or fall off a cliff.</p><p>That realization pushed me to be more <strong>intentional</strong>. I learned to take a deliberate step back: creating space to assess, recalibrate, and lead with context rather than reaction. I trained myself to listen and observe signals before they become obvious, let alone urgent. My natural curiosity helped. Put together, these habits changed how I approached leadership: not as staying in my lane, but as understanding the terrain well enough to navigate it without constant firefighting.</p><p>I still get sucked in. I still get involved in too many things. But now I&#8217;m aware of it. I know I can&#8217;t stay down in the trenches anymore. But I&#8217;ve also gotten much better at telling the difference between the problems I actually need to solve and the circuses that are simply very loud, very shiny, and absolutely not mine.</p><h2>The invisible forces nobody puts on roadmaps</h2><p>Your work doesn&#8217;t execute in a vacuum. It ships in an organization with <strong>competing priorities, political dynamics, resource constraints, and direction changes</strong> happening constantly.</p><p>Most of these forces are invisible until they hit you. They&#8217;re actually not invisible, everyone just pretends not to see them until it&#8217;s too late.</p><p><strong>Money decides what survives</strong> regardless of what the plan says. Your project can be &#8220;strategic&#8221; and &#8220;high priority&#8221; while having zero people, no funding, and no one senior showing up to meetings. When the company actually allocates budget, the project with impressive slides but no resources dies first.</p><p><strong>Leadership&#8217;s attention</strong> flows like water. It pools around fires, shiny new things, what keeps executives up at night, what competitors are doing. When attention moves, priorities follow. The project that mattered last quarter becomes the project nobody asks about this quarter. If you&#8217;re heads-down building and don&#8217;t notice the attention shifted, you&#8217;ll find out when you ship to silence.</p><p>There are a dozen other forces that don&#8217;t announce themselves. VPs who aren&#8217;t speaking to each other. Teams not being aligned because they&#8217;re measured on different things. The company changing direction and making yesterday&#8217;s critical work tomorrow&#8217;s irrelevant code.</p><p>These forces show up in small moments that cascade.</p><p>Imagine a product manager who wants to improve onboarding. The change is thoughtful, well-intentioned, and clearly makes sense from a product standpoint.</p><p>Now imagine that same flow quietly sits under marketing&#8217;s paid campaigns where budgets, attribution, and targeting all built on assumptions about how the system behaves. While the PM refines onboarding, marketing is planning campaigns in one channel, engineering is preparing the rollout in another, and everyone is doing exactly what they&#8217;re supposed to be doing.</p><p>No one is wrong. Nothing is broken. Until it is.</p><p>The issue only shows up because someone (you) happens to be <strong>paying attention across teams and notices the collision before it happens</strong>. The fix is simple: get together to discuss the changes and adaptations needed on both sides.</p><p>One conversation. Thirty minutes. Crisis prevented.</p><p>The lesson here? Good decisions made in isolation are how most <strong>avoidable problems</strong> are born.</p><p>If you don&#8217;t catch such things early, the system will still teach you, it just prefers to do so loudly, publicly, and on a <em>very expensive</em> day.</p><p>This happens constantly. Someone makes a change that seems isolated but ripples through three other teams. A product decision that breaks a customer success workflow. An infrastructure update that derails a marketing timeline. All preventable if someone was watching the connections.</p><p>If you&#8217;re the person preventing such problems, don&#8217;t expect a thank you note for a disaster that didn&#8217;t happen. Consider it your job and give yourself a pat on the back. You&#8217;re not psychic. You just built peripheral vision. And this is good. Now move on and keep your eyes wide open and your ears to the ground.</p><h2>Building peripheral vision without becoming paranoid</h2><p>You can&#8217;t track everything. Trying to will make you useless at your actual work. You&#8217;ll hit a breaking point and realize you need to sample the signals: pick the channels that matter and focus on those.</p><p>You can build a lightweight system for the handful of signals that predict whether your work survives or becomes irrelevant.</p><p>This isn&#8217;t about attending every meeting or reading every email or Slack message. It&#8217;s about <strong>identifying specific patterns worth watching and checking them regularly enough to avoid expensive surprises</strong>.</p><h3>The minimum viable tracking system</h3><p><strong>People worth watching.</strong> Not everyone. Just the 3-5 people whose presence, absence, tone, or questions signal shifts in the company.</p><p>Your boss&#8217;s boss. People with influence over your work. The senior person backing your project (if one exists). The person on another team you depend on.</p><p>Track them lightly. Do they still attend your project meetings? Did their questions change from &#8220;how do we ship this?&#8221; to &#8220;how much does this cost?&#8221; Did they stop responding in Slack?</p><p>Presence and absence tell you where attention is flowing. Tone and questions tell you what leadership is optimizing for. When either shifts, your project&#8217;s position just changed.</p><p><strong>Budget signals.</strong> Money is truth. Hiring freezes, approval delays, cost-focused questions in planning meetings. These signals precede direction changes by weeks or months. If your project lacks actual budget, actual people, or senior leaders showing up, it&#8217;s <em>not actually a priority no matter what the plan says</em>.</p><p>Roadmaps can promise anything. It&#8217;s the budget and behaviors that matter.</p><p><strong>Meeting patterns and language shifts.</strong> When leaders have unusual closed-door sessions, announcements follow within a couple weeks. When fewer people show up to your project meetings, momentum is dying. When leadership stops saying &#8220;customer impact&#8221; and starts saying &#8220;cost optimization,&#8221; priorities just changed. The words change before the decisions get announced.</p><h3>The weekly scanning habit</h3><p>This doesn&#8217;t require hours, just some discipline. </p><p>Fifteen to twenty minutes, once a day or every other day. Scan leadership updates. Check plan changes. Notice who got promoted, hired, or moved. Monitor the channels across teams where tension surfaces before it becomes official conflict.</p><p>Not obsessively. Just enough to spot when patterns change.</p><p>Sometimes it takes longer. You find something that needs deeper investigation. That&#8217;s fine. The habit matters more than the exact time. This is operational awareness.</p><p>If you build this habit you&#8217;ll be rarely surprised.</p><h2>What this looks like in practice</h2><h3>Managing the noise</h3><p>I organize the 50+ channels into two categories: critical ones and scan-only. I check all of them at least once or twice a day. Not more. The critical ones get more attention. The rest get skimmed.</p><p>I learned to live with unread notifications. They don&#8217;t bother me anymore because I know they can wait. Not all pings are created equal. Some channels need close attention. Others can wait a few hours.</p><p>One of the leaders said he won&#8217;t join more channels because unread messages annoy him. He <em>needs</em> to read them. The pings distract him. So he stays out.</p><p>I get it. Unread badges are stressful. So is getting blindsided by a reorg, but at least that&#8217;s only once.</p><p><strong>In the (physical) office, I rarely wear headphones.</strong> Headphones put you in your own bubble. You can&#8217;t hear what&#8217;s going on around you. I learned to work in different environments with noise, to zone in on work but not completely. Just enough to focus while still picking up the things I need to notice. I hear when someone&#8217;s stuck. I catch when someone&#8217;s about to make a decision without full context. I notice tension forming before it becomes a problem.</p><p>I schedule my deep work early in the morning and try to let other people have their own focus time too. Another suitable slot is in the afternoon when pings are less likely. I leave the majority of my calendar flexible because this <em>is</em> my work: unblocking people, providing information, connecting dots, coordinating across teams.</p><p>Some days I hate meetings especially if they&#8217;re back to back. Other days I know exactly why I&#8217;m there. When time is being wasted, I&#8217;m the first to suggest ending early. When discussions sidetrack, I have no problem saying &#8220;Let&#8217;s get back on track.&#8221;</p><p>Not all meetings are created equal. We&#8217;re constantly experimenting with format, length, who needs to be there. We course-correct. The key is that people need to speak up when meetings go off track, whether they&#8217;re the organizer or just a participant.</p><h3>Making the connections</h3><p>In meetings, I listen and make notes. I don&#8217;t zone out. If I&#8217;m in a meeting, I make the best of it because people sharing information is one channel, Slack channels are another, and random chatter in the kitchen or at lunch is another. All of these help you understand what&#8217;s happening in the company. The key is to be present regardless of where you are or what channel you&#8217;re tuned into.</p><p>I&#8217;ve connected people who needed to talk to make better decisions or prevent something from going wrong. An engineer who didn&#8217;t have the full picture and would have caused problems downstream. A product manager who didn&#8217;t know marketing was running a campaign that their feature change would break. A team lead about to commit resources to a project that was quietly losing executive support.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mGPV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mGPV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mGPV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mGPV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mGPV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mGPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1093191,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/187277804?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mGPV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mGPV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mGPV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mGPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84ea3035-daae-4236-a987-ba351ea61cea_2304x1728.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Without this information, without this context, it&#8217;s easy to make wrong assumptions and in the end make bad decisions.</p><p>Giving energy to these channels is the price I pay for seeing what&#8217;s happening across the organization so I can make better decisions when I need to.</p><p>I&#8217;ve finally reached a place where people around me understand this. I don&#8217;t get the &#8220;you&#8217;re all over the place&#8221; feedback anymore. They actually like having someone who connects the dots, sees across teams, and flags what needs flagging.</p><p>Turns out &#8220;I told you so&#8221; is most persuasive when you never actually say it.</p><p>But I have to be careful not to swing to the other extreme: where I hear everything so they don&#8217;t have to. That&#8217;s not sustainable. And it&#8217;s not the point.</p><h2>Acting on what you see</h2><p>Seeing the signals doesn&#8217;t help if you don&#8217;t <strong>act on them</strong>. </p><div class="pullquote"><p>You can be the most educated person in the room and still watch the ship sail toward the wrong destination.</p></div><p><strong>Spot a project losing momentum?</strong> Ask directly. &#8220;I <em>noticed the VP stopped attending our check-ins. Is this still a priority?</em>&#8221; Either you find out it&#8217;s still important, or you find out it&#8217;s dying and you can pivot before wasting three more months.</p><p><strong>Money getting tight?</strong> Talk about your work in terms of what keeps leadership up at night. If they&#8217;re worried about cost, explain how your work saves money. If they&#8217;re worried about speed, explain how it gets things done faster. Your work hasn&#8217;t changed. Your pitch has.</p><p><strong>See misalignment forming?</strong> Escalate early. You can&#8217;t fix structural misalignment from an IC or middle-management position. But you can surface it early enough for someone with authority to address it before everyone wastes months building the wrong thing.</p><p><strong>Intuition says something&#8217;s off?</strong> Investigate. Your pattern recognition runs subconsciously before conscious awareness catches up. Stop and check. Most of the time, your intuition caught a real shift before your conscious mind connected the dots.</p><p>If you see the problem but don&#8217;t act, you&#8217;re choosing to watch the train wreck happen&#8230; knowing you could have prevented it.</p><h2>The payoff</h2><p>I started tracking signals years ago. The bigger the company, the more signals to follow. Made mistakes, adjusted the system, found what works. The usual.</p><p>Now I&#8217;m rarely caught off guard. There are some false positives when I see something that might become a problem but doesn&#8217;t. But the situations where I point something out to the people involved, where I suggest they talk, are way more frequent than the false alarms.</p><p>I don&#8217;t get the &#8220;you&#8217;re all over the place&#8221; feedback anymore. I&#8217;ve seen more leaders understanding that paying attention across teams is as important as doing quality work where your expertise is deeply needed. I&#8217;ve seen them listening more, connecting more, bridging gaps, talking to people, pointing things out. That&#8217;s a small win.</p><p>Sometimes I feel like a proud parent looking at them thinking, &#8220;Look at how quickly they&#8217;re learning.&#8221; Maybe I&#8217;ve spared them a lesson or two they would have learned the hard way.</p><p>Organizational changes are inevitable. Priority shifts. Strategic pivots. They happen no matter what you do. The only question is whether you&#8217;ll see them early enough to do something about it.</p><p>You can be the one who shows up two days after the change asking, &#8220;I didn&#8217;t know this was happening,&#8221; while everyone else has moved on.</p><p>Or you can build peripheral vision and situational awareness now.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Antifragile teams aren't stress-free, they're stress-trained]]></title><description><![CDATA[How to build teams that adapt when everything's changing]]></description><link>https://www.between-code-and-culture.tech/p/antifragile-teams-arent-stress-free</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/antifragile-teams-arent-stress-free</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 02 Feb 2026 06:53:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VGqa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I once fell into a ditch full of fallen leaves so deep only my head was visible, alone in woods where there might be bears. My knee was taped with duct tape after 35km of hiking. I was lost. I laughed, climbed out, and finished the trek.</p><p>Ten years later, that experience still helps me lead teams through chaos. Not despite the stress, but because of it.</p><p>An engineer told me last week: &#8220;I feel like I&#8217;m becoming obsolete every Monday.&#8221;</p><p>New AI coding tools. Framework updates that invalidate last month&#8217;s best practices. The skill you spent years building is suddenly table stakes because AI does it in seconds.</p><p>The stress isn&#8217;t visible like a production outage. There are no customers complaining and no Slack war room waiting for you. Just the <strong>quiet anxiety</strong> of not knowing if what you&#8217;re good at will matter next year.</p><p>Some engineers are paralyzed by this. Others are adapting faster than the technology changes.</p><p>The difference? The ones handling it best already learned something most leaders try to prevent: how to use stress as a tool, not avoid it as a threat.</p><p>I wrote recently about what&#8217;s left for engineers when AI writes the code.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4e1eeb7d-6f15-4f95-b214-6f3d1544c796&quot;,&quot;caption&quot;:&quot;You are on a path to senior position and you want to deliver the perfect code: not too complex, not too simple, exactly right to solve the problem in an elegant way given the real world you work in. At the end of the day you feel proud... proud of those beautiful lines and those smart decisions you made along the way.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;When AI writes the code, what's left for engineers?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing human-first leadership from the operator's chair. Real moments, straight talk about the patterns that repeat, the systems underneath and people in between.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-27T07:14:06.099Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!fehN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/when-ai-writes-the-code-whats-left&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:185895407,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:1,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>The answer: judgment, curation, prevention. The skills that matter when generation is cheap.</p><p>But that essay didn&#8217;t answer the harder question: <strong>how do you actually build those skills when everything&#8217;s changing this fast?</strong></p><p>The answer is counterintuitive: controlled stress exposure builds the capacity to handle any stress. Physical challenges build mental toughness. Emotional risks build professional courage. And recovery time is what makes it all stick.</p><p>The engineers handling the AI transition best aren&#8217;t the most enthusiastic or the most technically skilled. They&#8217;re the ones who already learned how to stay calm when they don&#8217;t know what&#8217;s coming next.</p><p>They built that muscle somewhere else. Now they&#8217;re using it here.</p><h2>Same pattern shows up everywhere</h2><p>You&#8217;ve seen it in my hiking story. The pattern shows up in every high-pressure situation - including how teams handle incidents at 2am.</p><p>Stressful situations either make or break people. You see who <em>a person is at the core</em> once you put them in an unfamiliar stressful situation like on-call or a feature release that you don&#8217;t expect to go smoothly. You have to get up in the middle of the night, something&#8217;s wrong, customers are affected, and you see how people respond to this kind of adversity.</p><p>In the past I enjoyed being part of the on-call group even if I wasn&#8217;t solving the problems. I was helping coordinate or communicate progress and solutions. But I enjoyed observing my team members stay calm, think through steps, not panic, and do those plan-do-check-act (PDCA) cycles a couple of times within half an hour. To me it was like watching a thriller where you know you are with a good guy, you&#8217;ll find way out of all the difficult situations and everything will be okay at the end.</p><p>And then there were times when a different person was on call. Nervous, jumping around without clear steps, panicking, escalating too soon or not escalating at all and at the end caving in without communicating where they are, what they&#8217;re doing. That was a totally different story to observe. I felt nervous, I felt this tension and I was not sure we&#8217;ll make it through the incident without major outage. My instinct would be, &#8220;Oh let&#8217;s call someone else.&#8221;</p><p>We had a couple of feature releases that went anything but smooth. Whatever could possibly go wrong went wrong. Regardless of pre-mortems we had, we still encountered some unpredictable situations and had to come up with solutions on the fly, pair thinking and coding at twice the speed we would have otherwise. But if the right combination of people was in the team releasing, whether it was Saturday morning or Monday evening, it was almost <em>beautiful</em>. It was intense, it was challenging. We were full of adrenaline. But it also bonded us, it made us believe that there is not a problem we cannot solve.</p><p>Another situation, this time regular release, something that should be simple and smooth. But there was one overly anxious person panicking at every normal little hiccup like it&#8217;s the end of the world and with this affecting everyone else to temporarily lose their cool and stress out.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VGqa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VGqa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VGqa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VGqa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VGqa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VGqa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:664226,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/186476609?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VGqa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VGqa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VGqa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VGqa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf1fb44c-09c4-4b97-b6a1-751f7ab8a8fa_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So what&#8217;s the difference between these two types? <strong>Personality</strong> plays a role - some people are naturally calmer under pressure. But that&#8217;s not the whole story.</p><div class="pullquote"><p>The real difference is exposure.</p></div><p>The engineers who handled chaos calmly had been through smaller versions of it before. They&#8217;d watched someone experienced navigate an incident and learned the pattern. Or they&#8217;d stumbled through one themselves, extracted the lesson, and built the muscle for next time.</p><p>The ones who panicked? They&#8217;d never had the chance to practice.</p><p>Maybe you kept them focused on feature work, shielding them from incidents. Maybe you always put the experienced people on the stressful stuff. You thought you were being kind - letting them concentrate on code instead of chaos.</p><p>You weren&#8217;t building kindness. You were building <strong>fragility</strong>.</p><p>They never learned how to think clearly when things break. They never saw how experienced engineers stay calm, work methodically through problems, communicate under pressure. They never built confidence that they can handle adversity.</p><p>Now when the real crisis hits - when you&#8217;re not available, when the experienced people are stretched thin - your team freezes.</p><h2>Resilient vs. antifragile</h2><p><strong>Resilient teams</strong> bounce back from stress. They survive challenges and return to baseline.</p><p><strong>Antifragile teams</strong> get <em>stronger</em> from stress. They don&#8217;t just survive challenges, they use them to build capacity.</p><p>The concept comes from Nassim Taleb, who distinguished between things that break under stress (fragile), things that withstand stress (resilient), and things that improve from stress (antifragile).</p><p>Your bones are antifragile. Apply controlled stress through exercise, and they grow denser. Shield them completely, and they become brittle.</p><p>Muscles are antifragile. Resistance training creates micro-tears that heal stronger <em>during recovery</em>. No resistance means atrophy. But constant resistance with no rest? That just breaks you down.</p><p>Like bones and muscles are for the body, team members and teams are for the company. The stronger and more antifragile team members, the stronger and more antifragile teams. You can selectively work with individuals to make them better at this and then collectively as a team as well.</p><p>A lot of leaders treat teams like they&#8217;re fragile. Shield them from all stress. Protect them from difficult situations. Take on the hard conversations yourself. I know I did in the past.</p><p>The result? A team that can&#8217;t handle the real crisis because they never practiced with the manageable ones.</p><h2>Not all stress builds capacity</h2><p>The stress &#8594; recovery &#8594; stronger cycle only works when all three parts are present. Stress breaks you down. Recovery builds you back up stronger. Skip recovery, and you&#8217;re just accumulating damage.</p><p>Chronic overwhelm with no recovery time just breaks people. The key is distinguishing between stress that develops and stress that destroys.</p><p>The best example is how physical challenges build mental toughness and emotional risks can build professional courage.</p><p>I learned this from my own experience and later read research supporting it. Exposure to controlled stress in one domain builds resilience that transfers to others.</p><h3>Physical challenges build mental muscle</h3><p>I used to do 45km orienteering treks. Amateur events where anyone could join. You&#8217;re in the middle of nowhere with only what&#8217;s in your backpack, a bit of courage, and grit to make it to the end. I was never the fastest, not even close, but I never gave up.</p><p>I mentioned that ditch earlier - here&#8217;s what actually happened. It was in a region where there could be bears. At the first 10 km my knees started throbbing. I was in the middle of nowhere - no houses, nothing. I thought: &#8220;Okay, maybe I should give up since my knee is hurting.&#8221; But I had duct tape in my backpack. I taped my knee and soldiered on for the next 35 km alone in the woods where there could be bears. Then I fell into a ditch full of leaves so deep that only my head looked out.</p><p>Still not giving up, I just found my way out. And laughed. It was funny. Happy I didn&#8217;t run into any bears. This experience, even 10-15 years later, gives me strength when I need it. If I managed to get out of that situation alone and lost, I can <em>bear anything</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fut4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fut4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fut4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fut4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fut4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fut4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:839807,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/186476609?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fut4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fut4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fut4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fut4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e8c6295-4680-4389-8457-1ed361a4ea50_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>While I can&#8217;t and won&#8217;t make all my team members go on a trekking in the middle of the woods, I still do encourage them to work out, to go and take care of themselves, of their body, and go through some hardship to be stronger <em>everywhere</em>, including at their work.</p><p>In the last couple of years a couple of my team members and myself attended obstacle races. Not to win, but to push ourselves. They challenging but they were also fun. And they bonded us through mud and sweat, through overcoming our fears and physical discomfort jumping or climbing over or under obstacles. We even had to climb under a tank. A real one.</p><p>The pattern shows up everywhere. Engineers who run marathons approach things differently. They&#8217;ve built the mental muscle to stay patient when solutions aren&#8217;t obvious. Leaders who do endurance sports handle organizational chaos with more calm. They&#8217;ve practiced discomfort.</p><p>This isn&#8217;t some sophisticated or mystical mechanism. You&#8217;re creating concrete experiences of stress &#8594; recovery &#8594; stronger. Your brain learns the pattern. Then it applies the pattern across domains.</p><p>And that recovery matters. The 45km trek worked because I didn&#8217;t do it every day. The obstacle races bonded us because they were occasional challenges, not constant grind.</p><h3>Emotional stress builds courage</h3><p>Most team members I ever worked with tried to avoid presentations, especially public speaking, regardless whether it was internal or (God forbid) external. But I always encourage them to just do it, to just try.</p><p>It&#8217;s much easier to try in front of smaller teams of team members that you might be more comfortable with. Where you can make mistakes, where you don&#8217;t have to perform because they already know you. You can just be you. You can try it.</p><p>They are terrified. Then do it anyway. Their hands might shake. Their voices might shake from the beginning.</p><p>Sometimes the presentations are rough. But they survive. Next time, they present again.</p><p>And the more times they do it, the sooner they get into the zone while presenting. Then eventually they will start enjoying it. It will never be perfect, and that&#8217;s not the point. The point is building capacity by confronting the fear.</p><p>This experience helps them handle high-stakes conversations that would have paralyzed them before. Not because presenting made them an extrovert. Because confronting a fear directly builds capacity for all future fear-inducing situations.</p><p>It doesn&#8217;t always have to be presentation in front of others. It can be speaking up at a meeting where stakes are high or where you have leaders present.</p><p>I know how hard it is. In comparison to many people I know I would consider myself a seasoned speaker. I&#8217;ve been at conferences and events with hundreds of people in the audience, I facilitated hackathons and workshops... but still I feel the anxiety, the mix of fear and excitement, too. Every time. When I&#8217;m at a presentation and would like to ask a question my heart starts pounding. Boom boom, I can hear it in my ears. I can feel it in my guts. I feel nervous. I usually need half a minute to decide whether to even raise my hand or not. But I know by now that once I speak it will be okay, and these 30 seconds gives me time to collect myself and then just do it. Once you ask the first question, the second one is much easier. </p><p>The heart pounding almost never goes away. It is a clear sign for me that <strong>yes, I am out of my comfort zone, and yes, I need to do this.</strong></p><p>This happens especially when you think your question is <em>stupid</em> or when you put too much importance on <em>what others will think (of you)</em>. But you know what? From my experience a lot of people there have exactly the <em>same stupid questions</em> in their mind. They&#8217;re just too afraid to ask them. Once you do, they might open up and ask something themselves.</p><p>The engineers who never face their fears stay fragile. They&#8217;ll avoid difficult conversations, delegate the presentations and their visibility will suffer.</p><p>Each avoidance reinforces fragility and <strong>each confrontation builds strength</strong>.</p><h3>Professional stress builds capability</h3><p>The team that&#8217;s never deployed a risky change can&#8217;t handle the inevitable risky deploy. The engineer who&#8217;s never led an initiative outside their expertise can&#8217;t adapt when the company needs something new.</p><p>We had only a couple of skilled engineers in on-call rotation. We needed to expand the pool but couldn&#8217;t just throw inexperienced engineers into 2am incidents.</p><p>Inspired by Chaos Monkey, we introduced monthly incident response drills. Database failovers, service degradation, partial outages. Simulated situations where more experienced engineers coached newer ones through the pressure. The stakes were controlled, but the stress was real.</p><p>The engineers loved it. They practiced thinking clearly under pressure without the panic of a real early morning incident. Our response times improved. We identified gaps in monitoring and playbooks. Most importantly, we built antifragile engineers who could handle whatever came their way.</p><p>Usually our engineers are candidates for on-call once they&#8217;re senior but I had one team member who said, &#8220;Let me in. I want to learn. I am excited about this. I want to be exposed to this kind of stress because truth be told you learn much more in these times than you do through regular work.&#8221; </p><p>He was really excited because he knew that he had a safety net of other on-call engineers who can help him out but he wanted to try, to jump in, to do it himself. And he did it. I don&#8217;t lose any sleep when he&#8217;s on call because I know we are in good hands. No matter what comes his way, he&#8217;ll find a way to solve it.</p><p>The teams that only take on projects where success is guaranteed never build the muscle to handle real uncertainty. They stay in their comfort zone until the company needs them to step outside it. Then they&#8217;re stuck.</p><h2>What harmful stress looks like</h2><p>Developmental stress is challenging but manageable. There&#8217;s recovery time. There&#8217;s learning built in. There&#8217;s support when things go wrong.</p><p>Harmful stress is chronic overwhelm with no processing time. No learning loops and no light at the end of the tunnel. Just constant fire-fighting with no space to understand what made the fires start.</p><p>I&#8217;ve seen teams ground down by this. Incident after incident with no post-mortem. Sprint after sprint with no retrospective. Pressure with no release valve.</p><p>That&#8217;s not building antifragility. That&#8217;s breaking people.</p><p>The difference comes down to three things:</p><p><strong>1. Can they handle this dose of stress with support?</strong> Or is it genuinely beyond their capacity even with help?</p><p><strong>2. Is there recovery time?</strong> Stress without rest is just burnout. Muscles grow during recovery, not during the workout.</p><p><strong>3. Is there learning?</strong> If you&#8217;re not extracting the lesson from the stress event, you&#8217;re just experiencing pain without growth. and you&#8217;re bound to repeat it again</p><p><strong>No to any of those three, and you&#8217;re not building antifragility.</strong> You&#8217;re just grinding people down. Recognize these three things and do your best to turn harmful stress into manageable challenges.</p><p>But sometimes you&#8217;re not the one creating the harmful stress. The business is pushing impossible deadlines. Leadership is stacking projects with no breathing room. The pressure is coming from above, and your team is getting ground down.</p><p>This is where you step in as a buffer. Your job isn&#8217;t to shield them from all stress - that would keep them fragile. It&#8217;s to make sure those three criteria are met. Fight for recovery time between major pushes. Push back on stacking another high-stress project when the team hasn&#8217;t processed the last one. Carve out space for retrospectives even when leadership just wants the fix and wants you to move on. Make sure your people have the support they need to handle the stress, not just survive it.</p><p>In situations like this being a leader means saying no upstream so your team can say yes to the right challenges.</p><h2>How to actually do this</h2><p>The goal isn&#8217;t to traumatize your team. It&#8217;s to create environments where they deliberately face manageable challenges.</p><h3>Run drills before the real crisis</h3><p>Run drills. Chaos engineering experiments. Pre-mortems. Practice scenarios where failure is safe but the pressure is real.</p><p>The teams that do this regularly don&#8217;t panic during real incidents. They&#8217;ve built the pattern recognition. They&#8217;ve practiced thinking clearly when systems are failing.</p><p>The teams that never practice stay fragile. When the real incident hits, they&#8217;re learning under maximum pressure. That&#8217;s not antifragility &#8212; it&#8217;s hoping for divine intervention.</p><h3>Give stretch assignments with safety nets</h3><p>Give stretch assignments with support. Projects outside someone&#8217;s comfort zone where failure is possible but trying matters.</p><p>The engineer who&#8217;s never led anything can&#8217;t suddenly become a tech lead. But they can lead a small cross-team initiative with you providing backup. Then a bigger one. Then they&#8217;re ready.</p><p>How I start this usually with mid-level engineers is by giving them a feature that&#8217;s bigger than anything they&#8217;ve done before, but manageable with support. I ask them to understand the problem, prepare solution, prepare task breakdown, milestones, estimates - everything that in the past someone more senior did for them. I ask them to validate these things with seniors so they get immediate feedback and we go through and try to figure out what they didn&#8217;t think of. Then I just let them do this project with regular check-ins to see if they need any help or to correct course if needed. I let them fail small stuff but I would not let them fail an important thing that would hurt their reputation, customers, or the company.</p><p>The pattern works for everything. Public speaking. Architecture decisions. Client conversations. Conflict resolution.</p><p>Start small. Make failure safe. Build the capacity gradually.</p><p>And build in recovery between stretch assignments. Don&#8217;t stack them back-to-back. The growth happens in the space between challenges, when people process what they learned and build confidence for the next one.</p><h3>Stop shielding, start coaching</h3><p>I stopped protecting people from every difficult situation. I let them practice navigating hard conversations with me as backup. I let them present with me in the room so I can back them up. I let them handle the stakeholder who&#8217;s frustrated, with me available if it escalates.</p><p>Each exposure builds capacity. Each protection reinforces fragility.</p><p>I used to think I was being a good leader by handling all the difficult conversations myself. I was actually preventing my team from developing the skill to handle them. I was a crutch.</p><p>Now I coach them through it. They lead the conversation. If it goes sideways, I step in. But most of the time, they handle it. And the next conversation is easier.</p><p>Sometimes I still jump in too soon as a hero to guard them. But they remind me: &#8220;Mateja, let me do it myself, no need to jump in immediately. I got this.&#8221;</p><p>This makes me proud from two reasons: they want to do it themselves and they spoke up because they want the opportunity.</p><h2>Extract the learning, not just the fix</h2><p>Stress without learning is just suffering. The difference between teams that get stronger and teams that just survive is what happens <em>after</em> the stress event.</p><p>Your post-incident review process reveals it all.</p><p>If you&#8217;re only asking &#8220;how do we prevent this?&#8221; you&#8217;re missing the growth opportunity. The better questions are:</p><ul><li><p>What did we learn about our systems?</p></li><li><p>What capacity did individuals develop?</p></li><li><p>What would have helped us respond faster?</p></li><li><p>Who grew through this experience?</p></li><li><p>What should we practice now that we know we&#8217;re weak at it?</p></li></ul><p>The teams that extract learning from every incident get stronger. The teams that just fix and move on stay at the same capability level.</p><p>Same thing applies to post-mortems, derailed projects, and stretch assignments that didn&#8217;t work out.</p><p>Some fixes are simple - tweaking processes or timing. Other times it&#8217;s more coaching through the hard parts. Whenever we have a challenging project, we try to do a retrospective afterwards where we speak up openly what worked and what didn&#8217;t. Not just from a technical perspective but also from a more human perspective. And a few things popped up in our retrospectives. We can&#8217;t do projects back-to-back without a cool-down period. And we can&#8217;t work on two big projects at the same time because it&#8217;s draining us.</p><p>We applied this into next quarter planning a bit better than we used to. We are still work in progress and we still do retrospectives, because we want to improve.</p><p>If you&#8217;re not asking those questions, you&#8217;re wasting the stress. You went through the pain without capturing the growth.</p><h2>The pattern that matters</h2><p>Teams that get stronger from challenges share a pattern. They don&#8217;t avoid stress. They create controlled exposure to it.</p><p>Physical challenges. Emotional risks. Professional stretch assignments. All three matter.</p><p>The engineering team that does a challenging sport together builds mental resilience. The individual who confronts their fear of public speaking builds courage that transfers everywhere. The engineer who takes on the unfamiliar tech stack builds adaptability.</p><p>None of this happens by accident. It requires creating environments where controlled stress is expected, where failure is safe, and where learning is extracted from every challenge.</p><p>The alternative is teams that only function in comfort. The moment real pressure hits, they fracture.</p><h2>For individual contributors: seek the stress, plan the recovery</h2><p>If you&#8217;re an IC reading this and thinking &#8220;my manager isn&#8217;t building antifragility,&#8221; you can still build it yourself.</p><p>Volunteer for the scary stuff. The presentation you&#8217;re dreading or the project outside your expertise. These aren&#8217;t distractions from your growth. They are your growth.</p><p>But here&#8217;s what most people miss: <strong>you have to plan recovery as deliberately as you plan the challenge</strong>.</p><p>What does recovery actually look like?</p><p><strong>After a stressful incident or release:</strong> Take the next day lighter. Don&#8217;t stack another high-pressure deadline immediately. Process what you learned - write it down, talk it through with someone. Give yourself permission to do routine work for a day or two while your brain integrates the experience.</p><p><strong>After an emotional challenge like a presentation or difficult conversation:</strong> Block 30 minutes after for decompression. Don&#8217;t schedule back-to-back high-stakes meetings. Acknowledge what you accomplished. The shaky hands during the presentation? That&#8217;s your system building capacity. Don&#8217;t force yourself to &#8220;power through&#8221; immediately to the next thing.</p><p><strong>In the face of ongoing change - AI, new tools, shifting tech landscape:</strong> Pick one new thing to learn deeply, not ten things surface-level. Schedule actual downtime. Not &#8220;I&#8217;ll rest when the project is done&#8221; but planned recovery time. Protect focused work time. Context-switching is stress without the growth.</p><p>The pattern is the same: </p><div class="pullquote"><p>controlled stress exposure + deliberate recovery = capacity building.</p></div><p>You don&#8217;t need your manager&#8217;s permission to seek challenges. But you do need to be smart about recovery. The engineers handling chaos best aren&#8217;t the ones grinding 24/7. They&#8217;re the ones who push hard, recover fully, and show up stronger next time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/p/antifragile-teams-arent-stress-free?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Do you know someone who could benefit from this? Asking for a friend :)</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/p/antifragile-teams-arent-stress-free?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/p/antifragile-teams-arent-stress-free?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h2>What to do Monday morning</h2><p>If you lead a team, ask yourself:</p><div class="pullquote"><p><strong>Are you building antifragility or protecting fragility?</strong></p></div><p>When the difficult stakeholder conversation comes up, do you handle it yourself or coach someone through it?</p><p>When there&#8217;s a stretch project, do you give it to the person who can definitely do it or the person who might fail but would grow from trying?</p><p>When incidents happen, do you extract learning or just fix and move on?</p><p>The teams that survive chaos aren&#8217;t the ones that never faced it. They&#8217;re the ones that practiced with manageable versions of it first.</p><p>Start small. Run an incident response drill. Give someone a stretch assignment with support. Let your team practice being uncomfortable while the stakes are low.</p><p>Because when the real crisis hits, and it will, you want a team that&#8217;s been here before. Not in this exact situation, but in situations where they thought clearly under pressure, tried something uncertain, and pushed through discomfort anyway.</p><p>That&#8217;s what antifragile looks like.</p><p>If I learned anything in my life is this: <strong>we&#8217;re tougher than we think we are</strong>.</p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Building teams that get stronger from challenges? Subscribe to Between Code and Culture, we&#8217;ll figure it out together.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[When AI writes the code, what's left for engineers?]]></title><description><![CDATA[Why judgment, prevention, and curation became the skills that matter]]></description><link>https://www.between-code-and-culture.tech/p/when-ai-writes-the-code-whats-left</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/when-ai-writes-the-code-whats-left</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Tue, 27 Jan 2026 07:14:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fehN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You are on a path to senior position and you want to deliver the <em>perfect code</em>: not too complex, not too simple, <em>exactly right</em> to solve the problem in an elegant way given the real world you work in. At the end of the day you feel proud... proud of those beautiful lines and those smart decisions you made along the way. </p><p>Some days you feel less proud. Perhaps a PM is pressuring you to whip up something good enough to give users the value before someone else does. But still, you have these good days to live for.</p><p>But this was <strong>yesterday</strong>. Today you woke up to a world that is totally different than it was yesterday. It seems that <em>craftsmanship isn&#8217;t that important anymore</em>. How did this happen? Why? Where did the fun go?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fehN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fehN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fehN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fehN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fehN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fehN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1070608,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/185895407?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fehN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fehN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fehN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fehN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bf0c82e-3886-4573-a273-37f2393f64d2_1200x896.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>A few weeks before <em>today</em></h2><p>By some random chance you were in a <em>strange</em> meeting. At least strange to you. Up until now you might not have been involved in planning, but this time you had to jump in for some reason.<br>The PM walked into planning with a feature spec. Sixteen pages. User interviews, wireframes, acceptance criteria. The team started estimating: two weeks, maybe three. Someone asks about database schema changes. Another about the API layer. You were already sketching microservices in your head. Tech lead lets you all talk for five minutes and then asked three questions.</p><p><em>Who asked for this?</em><br><em>What problem does it solve?</em><br><em>Can the existing admin panel already do this?</em></p><p>Ten minutes later, everyone realizes the whole thing can be solved by exposing an existing feature to a different user role. No new code. No sprint. No architectural debate that takes longer than the actual work.</p><p>The PM looks relieved. The team (including you) looks vaguely cheated because <em>they were ready to build</em> something interesting. Tech lead just saved two weeks of engineering time by asking what didn&#8217;t need to exist.</p><p>Their GitHub commit history will show nothing. Their performance review won&#8217;t list this under <em>features shipped</em>. But they just delivered more value in fifteen minutes than most engineers create in a month.</p><p>This is what being senior actually looks like. And it&#8217;s invisible.</p><h2>The value that doesn&#8217;t show up in GitHub</h2><p>Junior engineers are evaluated on what they build. How fast they ship. How fast they learn the domain knowledge. Lines of code written. PRs merged. Features deployed.</p><p>The metrics are concrete because the value is obvious: they&#8217;re learning to translate requirements into working systems. Output matters at this stage.</p><p>Then you hit mid-level and get really good at this. You write clean code. You know the patterns. You can architect elegant solutions. You take pride in the quality of what you ship. This is where it feels <em>right</em>. You&#8217;re a craftsperson. Your GitHub activity graph is a thing of beauty, deep green fields of your worthiness.</p><p>And then something uncomfortable starts happening.</p><p>You&#8217;re in more code reviews than implementations. More planning discussions than deep work sessions. People keep asking your opinion on things before they&#8217;re built.</p><p>The equation already shifted. Your value isn&#8217;t what you write anymore. It&#8217;s what you <em>prevent from being written</em>.</p><p>The unnecessary feature that creates years of tech debt. The over-engineered solution nobody can maintain. You get the idea.</p><p>Your Github doesn&#8217;t resemble the green pastures anymore. And that&#8217;s not bad, it just seems to you this way.</p><p>Because you&#8217;re not prepared for this shift.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N4lL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N4lL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N4lL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N4lL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N4lL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N4lL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg" width="1152" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:768338,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/185895407?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N4lL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!N4lL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!N4lL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!N4lL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F483a58a4-5725-488d-b6ae-4074cedb7397_1152x864.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why saying no is the highest leverage</h2><p>Every feature you ship creates a maintenance burden. Someone has to monitor it. Debug it. Update it when dependencies change. Explain it to new team members and even support users who misunderstand it.</p><p>One <em>harmless</em> example: the team wants to add a feature flag system. Sounds reasonable, right?</p><p>Feature flags solve deployment risk. They also create combinatorial explosions of system states. Six flags create 64 possible configurations. Most are never tested. Some are broken. And any of them can happen in production.</p><p>You just traded one problem for sixty-four.</p><p>Then you ask: what are we actually trying to solve? Turns out they want to A/B test one feature for two weeks. You suggest a time-based rollout instead. Same outcome, fraction of the complexity. No permanent infrastructure to maintain.</p><p>This is force multiplication. One conversation prevented months of maintenance burden. The team ships the feature, learns what they need, and moves on. No lingering infrastructure debt.</p><p>The best engineering leaders I&#8217;ve worked with have this in common: they say no more than they say yes. Not because they&#8217;re negative or risk-averse, but because they understand opportunity cost and want to say yes to the right things.</p><p>The engineer who can&#8217;t say no is just a backlog execution engine. The one who says no strategically is leading.</p><p>No sense optimizing for output when the game already shifted to judgment.</p><h2>The curation skill that AI makes critical</h2><p>AI can generate code in seconds. Entire functions, sometimes entire features. The initial reaction is panic: if AI can write code, <em>what&#8217;s left for engineers</em>?</p><p>Wrong question. AI made code generation <em>cheap</em>. It made <strong>code curation critical</strong>.</p><p>You ask AI to build an API integration. Thirty seconds later, you have 500 lines of code. It runs, tests pass, ships to staging.</p><p>Then you read it.</p><p>There&#8217;s redundant error handling. The retry logic will DOS your own service under load. If this is what you intended, good for you, but I doubt it. It&#8217;s using a deprecated version of the library, half the code is boilerplate that belongs in a shared utility, and the other half makes assumptions about the API that aren&#8217;t documented and will break silently when they change.</p><p>You delete 400 lines. Rewrite 50. Ship 100.</p><p>AI just made your judgment more valuable, not less.</p><p>Junior engineers using AI are productive until something breaks. Then they&#8217;re stuck because they don&#8217;t know how to evaluate what AI generated. They can&#8217;t tell good code from plausible garbage.</p><p>Senior engineers using AI move faster because they know what good looks like. They can review, refine, and reject in seconds. The fundamentals let them <em>treat AI like a junior developer</em>: helpful, needs oversight, occasionally brilliant, frequently over-complicated.</p><div class="pullquote"><p><em>When generation is cheap, curation becomes the constraint. <br>Can you tell if the code is correct? Secure? Maintainable? Necessary? That&#8217;s the value.</em></p></div><p>The engineers panicking about AI are counting lines of code. The ones who know they&#8217;re safe are counting decisions made.</p><h2>When your identity doesn&#8217;t match your career</h2><p>Now someone&#8217;s telling you the valuable skill is <em>not</em> writing code?</p><p>Your identity is tied to <em>I write excellent code</em>. That&#8217;s what you&#8217;re confident doing and that&#8217;s how you measure a productive day.</p><p>If you&#8217;re still measuring yourself by output, this feels like going backwards. <em>I&#8217;m not even doing real engineering anymore. I&#8217;m just...talking.</em></p><p>Some engineers resist this for years. They keep trying to be pure implementers because that&#8217;s where they feel valuable. They avoid planning meetings. They measure their worth by GitHub activity. Then they wonder why they plateau, why they&#8217;re passed over for senior roles, why engineers who <em>aren&#8217;t as good</em> get promoted past them.</p><p>It&#8217;s not that they&#8217;re not skilled. It&#8217;s that they&#8217;re optimizing for the wrong thing. They&#8217;re trying to be the best at a game that <em>stopped mattering</em> at this level.</p><p>Others make the shift but feel guilty about it. They&#8217;re <em>not coding</em> so they must not be contributing. They prevent a disaster but can&#8217;t point to a feature they shipped. They delete half a system and feel like they wasted time because there&#8217;s nothing new to show.</p><p>Both are wrong about what&#8217;s valuable. <strong>The market already decided.</strong> The people who can prevent bad work are worth more than the people who can only do good work.</p><p>Your identity has to catch up to where your career already is.</p><h2>The new scoreboard</h2><p>If your self-concept is <em>I write code</em>, AI is an identity crisis waiting to happen. If it&#8217;s <em>I solve problems and build systems</em>, AI is just <strong>another tool</strong>.</p><p>AI just compressed the timeline. Mid-level engineers used to have years to develop judgment before they needed it for promotions. Now they need to start building it immediately, while AI handles more of the implementation. You won&#8217;t become senior overnight. But you need to start acting more like one&#8212; asking different questions, making different decisions and honing slightly <em>different</em> skills.</p><p>This means updating how you measure your value. Stop counting commits. Start tracking how quickly you spot problems in requirements, how many architectural decisions you influenced, how effectively you questioned assumptions before code was written. The work shifted from writing code to deciding what code should exist.</p><p>None of this shows up in velocity metrics or GitHub stats. All of it shows up in team effectiveness, system quality, and whether people trust your judgment.</p><p>Measure how good you became at problem solving, how many subtle bugs you caught in AI-generated code, how well you designed the system for others to use.</p><h2>This isn&#8217;t the first time (and it won&#8217;t be the last)</h2><p>If you&#8217;re resisting this shift, you&#8217;re not alone. Engineers resist every time their value proposition changes. The pattern repeats. The adapters win and the resisters <em>plateau</em>.</p><p>In 1968, the <a href="https://www.researchgate.net/publication/221555451_Software_Engineering_As_it_was_in_1968">NATO Software Engineering Conference</a> declared a crisis. Programming had been math and art, which is a nice way of saying <em>ad-hoc</em>, <em>individual</em>, and <em>impossible to scale</em>. The shift to software engineering demanded <em>systematic rigor, planning, and discipline</em>. Engineers who saw themselves as creative problem-solvers resisted the <em>factory</em> metaphor. They insisted real programming was craft, not process. The ones who adapted became the first generation of professional software engineers. The ones who refused stayed hobbyists.</p><p>Fast forward to the 2000s. You write it, you throw it over the wall to ops. Then Amazon and Netflix said <a href="https://queue.acm.org/detail.cfm?id=1142065">you build it, you run it</a>. Engineers had to own production, on-call rotations, security, monitoring. Developers who saw themselves as pure coders resisted. <em>I&#8217;m not an ops person. I write code.</em> The ones who adapted became the high-value full-stack engineers who could ship and maintain. The ones who refused got stuck in legacy roles while the market moved to DevOps.</p><p>Same pattern with Agile in 2001. Waterfall engineers valued specialization, documentation, upfront planning. Agile demanded iteration, collaboration, generalists who could work across the stack. The specialists who insisted <em>I&#8217;m a backend engineer, not a generalist</em> watched as full-stack engineers became more valuable. Not because full-stack engineers were better coders. Because they could move faster with less handoff friction.</p><p>AI is creating another shift, but it inverts the pattern. Agile generalists were valuable because they could implement across the entire stack. AI-era generalists are valuable because they can think across domains while AI handles implementation. The new generalist isn&#8217;t someone who codes in five languages, but someone who understands business problems, architects solutions, validates AI output, and iterates on problem framing rather than implementation details. The engineer who insists <em>I just write code</em> is becoming today&#8217;s waterfall specialist.</p><p>Every shift follows the same script: <strong>the market redefines what&#8217;s valuable</strong>. Engineers with identities tied to the old definition resist. Adapters shape the new landscape. Resisters wait for things to go back to normal.</p><p>They don&#8217;t.</p><p>The engineers who thrived through these shifts weren&#8217;t necessarily the most technically skilled. They were the ones who recognized the pattern early and asked: <em>What does the market need now? How do I stay relevant? What&#8217;s my value if the old metric broke?</em></p><p>AI is the latest iteration of this pattern. And it&#8217;s happening faster than the previous ones.</p><p>The question isn&#8217;t whether this shift will happen. History already answered that.</p><h2>AI just made this shift non-optional</h2><p>If you were going to resist this shift for another few years, AI just killed that plan.</p><p>When code generation was slow, companies needed people who could type fast. When AI can generate a working feature in minutes, companies need people who can tell if that feature should exist at all and what should exist instead.</p><p>The shift from <em>write code</em> to <em>decide what to write</em> just became urgent. Not in five years. Now.</p><p>The engineers who aren&#8217;t panicking already made the shift. They knew their value was judgment, architecture, prevention, curation. AI made them more productive because they can generate, review, and reject faster. Their constraint got more valuable.</p><p>Career paths are changing, and some engineers are <em>helping shape them</em>.</p><p>Most leadership teams haven&#8217;t fully figured this out yet. We&#8217;re trying to understand what <em>senior engineer</em> even means when juniors with AI can ship features in days. The engineers who show up early to those conversations help define the criteria. The ones who wait find out later what the new bar is.</p><p>The shift is happening. Some are steering it. Others are watching it happen to them.</p><h2>How to navigate this shift </h2><h3>For engineers</h3><p>The engineers I&#8217;ve watched navigate this successfully started by asking themselves uncomfortable questions. What would your job look like if AI could write all the code you write today? If the honest answer is <em>I&#8217;d have nothing to do</em>, that&#8217;s a signal worth paying attention to.</p><p>Look at the senior engineers you respect. What are they doing with their time? Probably not grinding out features. The ones who made this shift started using AI differently&#8212;not just to generate code, but to challenge their solutions, help them brainstorm, identify weak spots in their thinking.</p><p>Another question worth sitting with: if you couldn&#8217;t touch code for a month, how would you add value? If you can&#8217;t answer it, you might need to develop different skills. Not guaranteed to be easy, but beats ignoring the pattern.</p><h3>For leaders</h3><p>You can&#8217;t force your team to see this shift. But you can create conditions where they&#8217;re more likely to notice.</p><p>What I&#8217;ve seen work: start measuring and recognizing different things. Problems identified and framed clearly. Architecture decisions that prevented future issues. Bugs caught in AI-generated code. Time from problem to deployed solution, not time coding.</p><p>The identity piece is tricky. Engineers tie their worth to craft. The leaders who handle this well don&#8217;t tell their teams coding doesn&#8217;t matter (it does), but help them see they&#8217;re moving up the value chain. <em>You&#8217;re too valuable to spend time on implementation that AI can handle. I need you focused on problems AI can&#8217;t solve.</em></p><p>Some practical <strong>forcing functions</strong> I&#8217;ve seen: require AI usage for routine tasks, make hand-coding the exception that needs justification, pair engineers on problem decomposition before any coding starts.</p><p>The emotional resistance is real. Some engineers feel like they&#8217;re cheating or losing skills. Acknowledging it directly seems to help. <em>Yes, you&#8217;re writing less code. That&#8217;s the point. Your judgment is what matters now, and judgment only develops by solving more problems, not by typing more characters.</em></p><p>Engineers who resist aren&#8217;t wrong or stupid. They&#8217;re measuring themselves by the old scorecard. The work is helping them see a different scorecard, which changes what they optimize for.</p><p>Some won&#8217;t make the shift. They&#8217;ll insist real engineering is code and plateau. I learned my job wasn&#8217;t to save everyone. It was to make the pattern visible.</p><p>The market is already sorting this out. Companies going AI-native are looking for engineers who can evaluate, architect, prevent, and decide, not just implement. The job descriptions have shifted. The interview questions have shifted. The career paths are shifting.</p><p>Some engineers are participating in defining what this looks like. Others are waiting for someone else to decide their value. </p><p><strong>Both are choices.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Navigating this shift? Subscribe to Between Code and Culture, where we figure out what engineering leadership looks like when everything keeps changing.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The code works fine, the humans keep breaking things]]></title><description><![CDATA[Mental models for code reviews, collaboration, and your blind spots]]></description><link>https://www.between-code-and-culture.tech/p/the-code-works-fine-the-humans-keep</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/the-code-works-fine-the-humans-keep</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Thu, 22 Jan 2026 07:21:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GA2-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your PR has been open for three days. You got twelve comments. All about variable naming. Three more about single quotes versus double quotes. And the one that makes your left eye twitch: requesting a blank line between functions.</p><p>Zero comments about whether the caching strategy will corrupt data when the cache and database get out of sync.</p><p>Zero about the race condition you&#8217;re pretty sure exists but couldn&#8217;t reproduce.</p><p>You fix the variable names, swallow your annoyance, add the blank lines. Merge it.</p><p>Three weeks later, the caching strategy causes data corruption in production. Everyone reviewed it and nobody actually reviewed it.</p><p>The code was the easy part. The humans were the problem. (Btw. this is a case of bike-shedding. More on that later.)</p><p><a href="https://open.substack.com/pub/betweencodeandculture/p/why-your-solutions-become-tomorrows?r=1d1aki&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true">Previous essay covered technical decisions</a>, especially how to diagnose problems, build solutions, think through consequences and the models that help you build the right thing the right way.</p><p>This one is about the other half: working with humans who have different context, different assumptions, different blind spots. And recognizing when <em><strong>you&#8217;re the one missing something</strong></em>.</p><p>These models help make collaboration less painful &#8212; for you and for them.</p><p>I&#8217;ll start with code reviews and feedback, since you encounter them daily and this is your most frequent touch point with <em>other human beings</em> you share the code with.</p><h2>Code reviews and feedback</h2><p><em>Give feedback that actually helps</em></p><p>I&#8217;ve seen code reviews range from thorough testing and detailed context to thumbs-up emoji and &#8220;<em>LGTM</em>.&#8221; My favorite: 3,000 lines of breaking changes with &#8220;<em>Sorry, a lot of code. Good luck reviewing this.</em>&#8221;</p><h3>Curse of knowledge</h3><p>You spent three days implementing the feature. You understand the data flow, the edge cases, the performance tradeoffs. You know why you chose this approach over the alternatives. You know which parts are temporary hacks and which are intentional design decisions.</p><p>The code reviewer sees none of this. They see 500 lines of changes across 12 files with a PR description that says &#8220;Add user filtering.&#8221;</p><p>You&#8217;re frustrated because they don&#8217;t seem to understand the obvious elegance of your solution. They&#8217;re frustrated the code makes no sense. Neither of you is wrong. You&#8217;re both suffering from the <strong>curse of knowledge</strong>.</p><p>The curse is that once you know something, <em>you can&#8217;t unknow it</em>. You can&#8217;t remember what it&#8217;s like to not understand. What&#8217;s obvious to you after three days of implementation is incomprehensible to someone seeing it for the first time.</p><p>This shows up everywhere in code reviews. You write a function that&#8217;s perfectly clear to you because you know the domain model. The reviewer asks basic questions that feel like they&#8217;re not paying attention. They&#8217;re not being difficult. They genuinely don&#8217;t have the context you spent days acquiring.</p><p>Or you&#8217;re the reviewer and can&#8217;t figure out why they did something the <em>complicated</em> way. You suggest the <em>obvious</em> simplification. Doh. </p><p>But after they explain the edge case you didn&#8217;t know about, the requirement that isn&#8217;t documented, and the reason the simple approach doesn&#8217;t work, you get your a-ha moment. You didn&#8217;t see it because you didn&#8217;t have <em>their knowledge</em>.</p><p>The curse works both ways. </p><div class="pullquote"><p><strong>You can&#8217;t see what&#8217;s unclear because it&#8217;s all clear to you. <br>They can&#8217;t see what&#8217;s obvious because they don&#8217;t have your context.</strong></p></div><p>The other person isn&#8217;t lazy, incompetent, or difficult. They&#8217;re just missing context.</p><p>A helpful PR description answers the questions the reviewer doesn&#8217;t know to ask. What broke? Why this fix instead of the obvious one? What did you try that didn&#8217;t work? What&#8217;s going to look weird but is intentional?</p><p>&#8220;Add user filtering&#8221; gives them nothing. &#8220;<em>Add user filtering because support is drowning in requests for this, tried X but it broke Y, so using Z approach</em>&#8221; gives them the context you spent three days acquiring.</p><p>Questions reveal gaps better than suggestions. &#8220;<em>Can you help me understand why we&#8217;re doing X?</em>&#8221; opens a conversation. &#8220;<em>This should be Y</em>&#8221; starts an argument (that can become a war with <em>keyboard warriors</em>). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0V7Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0V7Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0V7Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0V7Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0V7Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0V7Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg" width="1152" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:907739,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/185002969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0V7Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0V7Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0V7Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0V7Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae6916ed-9bee-4f4f-b82c-35604fd42263_1152x864.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You might be right that <em>it should be Y</em>. Or you&#8217;re <em>missing the context</em> that makes X necessary.</p><p>The curse of knowledge is <strong>invisible to you</strong>. You don&#8217;t know what you know that others don&#8217;t know.</p><h3>Chesterton&#8217;s fence</h3><p>I talked about <a href="https://www.between-code-and-culture.tech/i/183218751/debug-the-system-not-the-people">Chesterton&#8217;s fence before</a>, in the context of legacy processes and organizational decisions. The same principle applies to code.</p><div class="pullquote"><p>Before you remove something, understand why it was put there.</p></div><p>If you see a fence across a road and don&#8217;t know why it exists, don&#8217;t tear it down. Maybe it&#8217;s pointless. Maybe it&#8217;s preventing cattle from wandering. You don&#8217;t know until you ask.</p><p>You&#8217;re reviewing a PR. There&#8217;s a weird check: <code>if (data &amp;&amp; data.items &amp;&amp; data.items.length &gt; 0)</code> when a simple <code>if (data.items?.length)</code> would work. Looks like the author doesn&#8217;t know modern JavaScript. You suggest the cleanup.</p><p>They explain that production data sometimes has <code>items: null</code> instead of an empty array. The old API returned null, the new API returns empty arrays, but during migration both formats exist. The verbose check handles both. Your <em>improvement</em> would crash on legacy data.</p><p>Yep, the fence was there for a reason.</p><p>Or you&#8217;re refactoring old code and find a function that seems to do nothing. Just passes data through with what looks like unnecessary transformation. You delete it. Tests pass. You ship it. Three days later, reports are broken. The <em>unnecessary</em> transformation was handling a specific date format from an external API that only shows up in monthly reports. The daily reports use a different format. Your tests only covered daily data.</p><p>In code, the fence is any logic that seems wrong, unnecessary, or overly complicated. The check that looks redundant, the comment that seems obvious, the abstraction that feels like overkill, or the duplicate code that should be DRYed up.</p><p>Someone put it there. Maybe they were wrong, but maybe they were solving a problem you haven&#8217;t encountered yet. Maybe there&#8217;s a bug that only triggers in production. Maybe there&#8217;s a requirement that isn&#8217;t documented. Maybe there&#8217;s an edge case in data you haven&#8217;t seen.</p><p>I&#8217;ve seen engineers remove <em>dead code</em> that was handling a quarterly batch job. Delete <em>unnecessary</em> validation that was preventing a security issue. Simplify <em>overcomplicated</em> logic that was working around a database limitation. The code looked wrong because they didn&#8217;t have the context.</p><p>The shortest path to investigate is git blame, find the PR that added it, talk to the person who wrote it (if they&#8217;re still around), or search for related bug reports or incidents.</p><p>If you can&#8217;t find a reason and it seems genuinely pointless, the safer move is proposing removal while acknowledging uncertainty.</p><p>The code might be bad. Or you might not understand the problem it&#8217;s solving. Worth finding out which before tearing down the fence.</p><h3>Hanlon&#8217;s Razor</h3><p>Engineer submits a PR with a for loop instead of the functional map/filter chain you&#8217;d use. Your first thought: they don&#8217;t understand functional programming. Your comment: &#8220;This should use map/filter.&#8221;</p><p>When they respond, you learn that the dataset can be 100k items and the functional approach creates intermediate arrays that blow up memory. They profiled it. The for loop is 10x faster and uses a fraction of the memory.</p><p>You assumed incompetence, but the actual reason was performance optimization based on production data. <em>Apology accepted.</em></p><p>There&#8217;s a better approach here&#8212;one that keeps code reviews collaborative instead of adversarial. Use <strong>Hanlon&#8217;s Razor </strong>(<a href="https://www.between-code-and-culture.tech/i/182667576/hanlons-razor">sounds familiar?</a>) and interpret someone&#8217;s actions in the <em>most reasonable way possible</em> before assuming the worst.</p><p>If their code looks wrong, assume they had a reason before assuming they&#8217;re careless. Never attribute to malice or incompetence that which is adequately explained by <strong>different information, constraints, or incentives</strong>.</p><p>Someone uses a library you think is overkill for the problem. Maybe they know the requirements are expanding next quarter and the library handles the future cases. Maybe they tried the simple approach and hit limitations. Maybe there&#8217;s context you&#8217;re missing.</p><p>The opposite is assuming the worst possible interpretation.<br>&#8220;They wrote this because they&#8217;re lazy.&#8221;<br>&#8220;They didn&#8217;t follow the pattern because they don&#8217;t care about consistency.&#8221;<br>&#8220;They hardcoded this because they can&#8217;t think abstractly.&#8221;</p><p>Sometimes people <em>are</em> lazy. Sometimes they don&#8217;t care. But starting there kills useful discussion. They get defensive. You get frustrated. And the code? Doesn&#8217;t improve.</p><p>Start with thinking they must have had a reason. Ask what it was.<br>&#8220;I&#8217;m curious why you chose this approach instead of X?&#8221; is way more productive than &#8220;This should be X.&#8221;<br>The first one opens a conversation. The second one, <em>if not careful</em>, could escalate into a war.</p><p>Yes, maybe their reason is bad, or maybe they didn&#8217;t think it through. But asking gives them a chance to explain. If the explanation doesn&#8217;t make sense, you can discuss it. If they don&#8217;t have a good reason, they&#8217;ll often realize it themselves when they try to articulate it. The human version of rubber duck debugging works in code reviews too.</p><p>Charity doesn&#8217;t mean accepting bad code. It means assuming the person is trying to do good work and starting from there. Ask first, judge second. This way you&#8217;ll have to buy lunch less frequently.</p><h3>Bike-shedding</h3><p>Remember that PR from the opening? Three days in review, twelve comments about variable naming, zero about the caching strategy that eventually corrupted production data? That&#8217;s <strong>bike-shedding</strong>.</p><p>Here&#8217;s another: A PR comes in with a database migration to add a new payment processing table. Changes the schema, adds foreign key constraints, includes a data migration script that will run against production. If this goes wrong, payment data could be corrupted or lost.</p><p>But the review? Eight comments about table naming conventions. Four about whether to use <code>snake_case</code> or <code>camelCase</code> for column names. Two about index naming patterns. Zero about whether the migration is reversible. Zero about what happens if it fails halfway through. Zero about whether the foreign key constraints will lock the table during deployment.</p><p>Everyone has an opinion on naming conventions. Nobody wants to admit they&#8217;re not entirely sure how the migration rollback works.</p><p>Bike-shedding is spending disproportionate time on trivial decisions because they&#8217;re easy to have opinions about. The term comes from a committee designing a nuclear power plant spending hours debating what color to paint the bike shed while approving the reactor design in minutes. Everyone understands bike sheds. Nuclear reactors are complicated.</p><p>In code reviews, bike-shedding looks like focusing on style, formatting, naming, and other surface issues while ignoring architecture, security, performance, and correctness. The trivial stuff is easy to comment on. The hard stuff requires thought.</p><p>You&#8217;re doing it too. You see a complex PR, you&#8217;re not entirely sure you understand all the implications, so you comment on the parts you do understand. Formatting. Naming. Simple logic. It feels productive. You&#8217;re contributing to the review. (You&#8217;re not.) You&#8217;re avoiding the hard questions. Commenting on variable names is easier than admitting that you don&#8217;t fully understand how this refund flow works.</p><p>When getting only trivial comments as the author, asking explicitly for the hard review helps.<br>&#8220;This migration is risky. Please review the rollback strategy and error handling carefully.&#8221;<br>Tells reviewers where to focus instead of letting them debate naming conventions for an hour.</p><p>If you see lots of comments about formatting and zero about correctness, this is a clear sign of bike-shedding. Nobody really reviewed the hard parts. Everyone&#8217;s just hoping someone else did.</p><p>Good news: now you know how to spot this pattern, you can be the one who breaks it.</p><h2>Collaboration</h2><p><em>Work effectively with humans who aren&#8217;t reviewing your code</em></p><p>Code reviews are only one form of collaboration. The rest happens when you&#8217;re debugging, coordinating across teams, explaining what you&#8217;re building to people who don&#8217;t write code.</p><p>I know&#8212;you&#8217;d rather lock yourself in a dark room with the lights off and just code. &#8220;Just let me work. Just let me write code.&#8221; But you can&#8217;t. (It&#8217;s a whole aesthetic.) The work requires talking to people who have different context, different constraints, different information than you do.</p><p>These models help you do that without wanting to crawl back into the dark room.</p><h3>Rubber duck debugging</h3><p>Someone on my team gets stuck. I notice and ask if they need my help. They might smirk, because I <em>don&#8217;t know the details</em> of what they&#8217;re working on. But I don&#8217;t need to. I ask them to walk me through it. They start explaining. I listen without interrupting. Or if opportunity arises, I ask what sounds like a stupid question: &#8220;Wait, so when does this error actually happen?&#8221; or &#8220;What are you expecting to see instead?&#8221;</p><p>These questions are never as stupid as they sound. They&#8217;re usually the question the person forgot to ask themselves, or they break the loop of thought they&#8217;ve caught themselves into.</p><p>Halfway through explaining, they stop. &#8220;Hmmm. I think I know what it is....&#8221; They&#8217;ve hit their aha moment. The mental barrier breaks. I didn&#8217;t solve their problem. They solved it by having to explain it clearly enough for someone who doesn&#8217;t know the context. No need to <em>finish this conversation</em>. Let them pursue the next clue. If they look focused, quietly leave.</p><p>This is rubber duck debugging. The classic version involves explaining problems to a literal rubber duck on your desk.</p><p>The human version is better. And more convenient. You will look less like a nerd talking to a person than talking to an inanimate rubber object.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zYbg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zYbg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zYbg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zYbg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zYbg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zYbg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg" width="1152" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1152,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:700282,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/185002969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zYbg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zYbg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zYbg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zYbg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67219e0c-006a-4435-bb00-27fc544e90b0_1152x864.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Why it works? Explaining a problem out loud forces you to organize your thoughts. You think you understand it. Then you try to explain it and realize you&#8217;re unclear about a key detail. Or you&#8217;re making an assumption that doesn&#8217;t hold. Or you&#8217;re debugging the wrong part of the system. Speaking it out loud makes the confusion visible.</p><p>It works even when the listener doesn&#8217;t know the domain.</p><p>Being the listener means <strong>not solving</strong> the problem. It means asking clarifying questions and giving the person space to think out loud. Simple questions often trigger them to see what they missed. Sometimes the best help is just being there while someone works through it themselves.</p><p>When you&#8217;re stuck, find someone. A coworker. A manager. Someone who has no idea what you&#8217;re talking about. Explain the problem like they know nothing about it. Odds are you&#8217;ll solve it before you finish explaining.</p><h3>Information asymmetry</h3><p>PM files a request: &#8220;Users on the higher plan should be able to turn their own favicons on or off. Just add a toggle.&#8221;</p><p>Backend starts implementing. They dig into the code. Turns out this favicon functionality depends on three other toggles with mutually exclusive logic rules. It&#8217;s not <em>just a toggle</em>. They&#8217;d have to add completely new functionality and untangle a web of interconnected conditions.</p><p>Backend estimates it will take a couple of days to properly rewrite the rules.</p><p>PM response: &#8220;Why is this taking so long? It should be an hour.&#8221;</p><p>PM&#8217;s manager agrees. It&#8217;s one toggle. What&#8217;s the problem?</p><p>Three meetings and detailed code walkthroughs later, everyone finally understands: if you want this &#8220;simple toggle,&#8221; you have to unravel years of tangled conditional logic.</p><p>This is information asymmetry. You each have context the other doesn&#8217;t. PM knows what users need. Backend knows the technical reality. <strong>Neither of you knows what the other knows.</strong></p><p>This happens everywhere in engineering. Product knows user needs but not technical constraints. Backend knows database limitations but not what the frontend is trying to build. Infrastructure knows deployment complexity but not why the feature is urgent. Everyone operates with incomplete information and assumes the other side sees what they see.</p><p>There are <em>meetings</em> and there are <em>meetings</em>. More meetings won&#8217;t save you from information asymmetry, but better ones might. Or better yet: provide context in task descriptions and specs. Include it in kickoff meetings when explaining what you&#8217;re building and why, so engineers understand the problem space and constraints before they start with the implementation.</p><p>&#8220;We need this toggle because higher-tier users are asking for more control over their branding. It&#8217;s part of the enterprise package we&#8217;re launching next quarter.&#8221; Now backend knows why it matters. They might suggest: &#8220;We can ship a simplified version now and refactor the toggle system properly over the next sprint.&#8221; You get a solution. They avoid rushing a mess into production. Everyone wins because the context was shared.</p><p>Or you&#8217;re debugging a cross-team issue. Frontend says the API is returning errors. Backend says they&#8217;re seeing successful requests in the logs. You&#8217;re both looking at different data. Frontend is looking at client-side errors from network failures. Backend is looking at server logs that only capture requests that reached the server. The errors are happening before the request gets there. Neither team had visibility into the full picture.</p><p>Information asymmetry makes collaboration slow and frustrating. You repeat questions because the answer assumed context you don&#8217;t have. You make decisions that seem obvious to you but break things for another team. You wait for responses to questions that could have been answered in the original message if the context had been included.</p><p>Sharing context proactively closes the gap. Explaining why when asking for something. Documenting what you considered when making decisions. Sharing what you&#8217;re seeing when something goes wrong, not just your conclusion.</p><p>The other team isn&#8217;t being difficult. They&#8217;re working with different information.</p><h3>Brooks&#8217;s law</h3><p>Project is late. You&#8217;re two months behind schedule and the deadline isn&#8217;t moving. Management&#8217;s solution: add three more engineers to the team. Get this thing shipped. Surely more people means more throughput, right?</p><p>(It does not. And nine women still can&#8217;t give a birth to a child in one month.)</p><p>The new engineers join. You spend the first week getting them set up. Development environments. Access to systems. Explaining the architecture. Answering basic questions about how things work.</p><p>Second week: they&#8217;re trying to contribute but their PRs need heavy review. They don&#8217;t understand the domain deep enough. You&#8217;re spending more time reviewing their code than you would have spent just writing it yourself.</p><p>Third week: they introduce a bug because they didn&#8217;t know about a critical edge case. You spend two days debugging and fixing it. You&#8217;re now further behind than when they joined.</p><p>Brooks&#8217;s law from <em>The Mythical Man-Month</em> (1975) states that adding people to a late project makes it... <em>later</em>. Math is hard when it involves humans. The ramp-up time and communication overhead outweigh the productivity gains. This is counterintuitive. More people should mean more work getting done. In software, it often means less.</p><p>Every person you add increases communication paths exponentially. Three people mean 3 communication paths. Four people are 6 paths. Five people are 10 paths. Ten people: 45 paths. The <em>coordination overhead grows faster than the productivity</em>.</p><p>New team members need training. They need context. They need to understand the codebase, the domain, the team practices, the deployment process, the debugging techniques. Someone has to provide that. Usually the people who are <em>already behind</em>.</p><p>This doesn&#8217;t mean never add people. It means adding people has a cost and a delay before you see benefits. If you&#8217;re three months behind and add people, expect them to slow you down for the first month, break even in the second month, and start helping in the third month. If your deadline is in two months, adding people makes you miss it.</p><p>What actually helps late projects is (surprise, surprise!) cutting scope, extending deadlines, or fixing blockers that slow down the existing team. More people helps future projects. It doesn&#8217;t help the fire you&#8217;re currently fighting.</p><p>If you&#8217;re already behind and they&#8217;re adding team members anyway, set expectations. The new people will slow you down initially. You&#8217;ll miss the deadline you&#8217;re already going to miss, just by more. Then, three months from now when you&#8217;re working on the next thing, you&#8217;ll have a bigger team that&#8217;s actually productive. Tell management this now so they can act surprised later when it happens exactly as predicted.</p><p>Adding people is an investment in future capacity, not a fix for current delays.</p><h3>Bus factor</h3><p>Your senior engineer goes on vacation for two weeks. On day three, the authentication service breaks. Nobody else on the team knows how it works. The person on vacation wrote it. They&#8217;re the only one who&#8217;s touched it. They&#8217;re unreachable because they&#8217;re actually on vacation, which you&#8217;re now ruining with urgent Slack messages and desperate SMS messages.</p><p>In this case your <strong>bus factor</strong> is one. If that engineer gets hit by a bus (or goes on vacation, or quits, or gets sick), you&#8217;re in trouble. The bus doesn&#8217;t even need to be literal. A two-week vacation will do the same, but luckily it is <em>less terminal</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GA2-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GA2-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GA2-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GA2-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GA2-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GA2-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:755870,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/185002969?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GA2-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GA2-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GA2-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GA2-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff746dfa0-6e44-4d34-8288-1b4573bf5085_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When you figure out how many people need to disappear before your project fails, this is your <strong>bus factor</strong>. It&#8217;s morbid but accurate. If the answer is one, you have a single point of failure in your team. Time to add some redundancy.</p><p>This happens with critical systems that one person maintains, but it also happens with knowledge. The person who knows why the database is configured this way or the person who understands the contract with the external API, or the person who can debug the performance issues because they profiled the system two years ago. When they leave, that knowledge leaves with them.</p><p>Having experts own their domains feels efficient. It&#8217;s also fragile. Everything works perfectly until the expert goes on vacation... or decides to go on a different kind of vacation... like <em>in another company?</em> If you figure out <em>then</em> that you have a problem, well, you definitely have <em>a big problem</em>. Most likely the world won&#8217;t stop spinning, but it will slow down the company significantly.</p><p>Redundancy or at least partial overlaps of knowledge/ownership of critical systems are a must. Non-negotiable.</p><p>If you can&#8217;t get leadership support, do a bus factor dry-run: check out for a couple days (but keep an eye on Slack) and let them figure out how to solve things. Make it their problem, because ultimately it is their problem.</p><p>High bus factor <em>isn&#8217;t about everyone knowing everything</em>. It&#8217;s about critical things being understood by at least two people. The authentication system should have a primary owner and a secondary who&#8217;s contributed to it, reviewed the code, and could maintain it if needed. The deployment process should be documented well enough that two people can run it.</p><p>Pair programming helps. Code reviews help. Documentation helps. Cross-training helps. Rotating responsibilities helps. Anything that spreads knowledge from one person to at least one other person.</p><p>You know your bus factor is too low when you think <em>I can&#8217;t take vacation because nobody else can handle X</em> or when someone leaves and you panic about what they were working on.</p><p>When the bus factor for something critical is one, it needs fixing before the bus shows up. Have someone else pair on the next change. Document how it works. Do a knowledge transfer. Get the count to two.</p><p>One is not a team. It&#8217;s a dependency. A critical one.</p><h3>Premature consensus</h3><p>Team meeting to decide on the new architecture. The tech lead suggests microservices. Everyone nods. Sounds good. Makes sense. Let&#8217;s do it.<br>Meeting done in under an hour. Everyone&#8217;s aligned. You give yourself a pat on the back. Very efficient. We must be geniuses. <em>Efficient</em> geniuses.</p><p>Six months later, you&#8217;re drowning in service coordination complexity, distributed debugging, and deployment orchestration. Someone asks: &#8220;Why did we go with microservices again?&#8221; Nobody has a good answer. Everyone agreed at the time. Efficiently agreed, even. (Very efficient disaster.)</p><p>So what happened? Premature consensus. Agreeing without actually discussing. It looks like alignment but it&#8217;s really conflict avoidance. Nobody wants to be the person who slows down the meeting by asking hard questions. Nobody wants to disagree with the tech lead. So everyone says yes and you move forward with a decision that wasn&#8217;t really examined.</p><p>You see this in architecture decisions, tooling choices, process changes. Someone proposes something. It sounds reasonable. Nobody has strong objections they&#8217;re willing to voice. Agreement. Done. You like to move fast after all.</p><p>So, where&#8217;s the problem? The problem is that agreement without discussion creates fragile decisions. You didn&#8217;t explore alternatives. You didn&#8217;t stress-test the assumptions. You didn&#8217;t think through the second-order effects. You just said yes because it was easier than saying <em>wait, let&#8217;s think about this.</em></p><p>Six months later when the decision turns out poorly, nobody remembers why you made it. <em>It seemed like a good idea at the time</em> is the post-mortem conclusion.</p><p>Real consensus requires <strong>disagreement first</strong>. Someone needs to ask: &#8220;What are we giving up with this approach? What are the alternatives? What could go wrong? Why is this better than the simpler option?&#8221;</p><p>If nobody asks those questions, you&#8217;re not getting real buy-in. You&#8217;re getting polite compliance.</p><p>The tech lead suggests microservices. Someone asks: &#8220;What problem are we solving that requires microservices? Would we be better off with a modular monolith first?&#8221; Now you&#8217;re discussing tradeoffs. Someone else: &#8220;How will we handle distributed debugging?&#8221; Now you&#8217;re thinking through operational complexity. Someone: &#8220;Do we have the team size to maintain multiple services?&#8221; Now you&#8217;re considering capacity.</p><p>Maybe you still choose microservices. But now you&#8217;ve examined alternatives, considered the costs, and thought through the problems. The decision is stronger because it survived scrutiny.</p><p>Fast agreement in meetings is a signal. It often means <strong>people aren&#8217;t thinking it through</strong>. When major technical decisions get consensus in under 30 minutes, scrutiny is probably missing.</p><p>Disagreement isn&#8217;t bad. It&#8217;s how you find the holes in the plan before you build it. Refresh your memory about mental models like <a href="https://www.between-code-and-culture.tech/i/182793079/meeting-patterns-you-cant-unsee">Devil&#8217;s advocate that can help you with intentional dissent and detect groupthink</a>.</p><h2>Self-assessment and blind spots</h2><p><em>Know what you don&#8217;t know</em></p><p>You&#8217;re most dangerous when you don&#8217;t know what you don&#8217;t know. Camping on Mt. Stupid hurts you and everyone around you.</p><h3>Dunning-Kruger effect</h3><p>I&#8217;ve touched upon <a href="https://www.between-code-and-culture.tech/i/182793079/11s-arent-status-updates">Dunning-Kruger effect in the essay for leaders</a>, but it&#8217;s worth revisiting for ICs.</p><p>Sometimes it will seem like you&#8217;re ascending and descending its slopes daily, especially when working on demanding and complex problems.</p><p>In case you haven&#8217;t heard about it: Dunning-Kruger effect describes how you&#8217;re most confident when you know the least. Beginners overestimate their competence because they don&#8217;t know enough to recognize what they&#8217;re missing. Experts underestimate their competence because they know how much they don&#8217;t know.</p><p>You learn the basics of a technology and think you&#8217;ve mastered it. But you&#8217;ve learned enough to be dangerous. You can build something that works. You haven&#8217;t learned how to build something that works at scale, or handles edge cases, or performs well, or is maintainable.</p><p>Junior engineer learns SQL and thinks databases are simple. Writes queries that work in development with 100 rows. In production with 10 million rows, everything times out. They didn&#8217;t know about indexes, query planning, or database optimization.</p><p>Or you read about microservices and decide your monolith should be decomposed. You haven&#8217;t dealt with distributed debugging, service coordination, eventual consistency, or deployment orchestration. You know the benefits. You don&#8217;t know the costs because you haven&#8217;t experienced them. YOLO. (No, please don&#8217;t YOLO on this one.)</p><p>Confidence peaks early when you know just enough to build something. Then it drops as you discover how much you don&#8217;t know. Eventually it rises again as you develop expertise.</p><p>The dangerous zone is the peak also called Mount Stupid. You know enough to make decisions but not enough to make good ones. You&#8217;re confident but incompetent. This is when you propose rewriting the entire backend in the new framework you learned last week.</p><p>If you&#8217;re feeling very confident about something you learned recently, you&#8217;re probably on the peak. <em>I just learned X and it seems straightforward.</em> If someone with more experience snorts at this statement, you&#8217;re definitely there. The moment you think you&#8217;ve mastered something is probably the moment you&#8217;ve barely started understanding it. The descent through the valley of despair is inevitable. The climb back up the slope of enlightenment just comes with more humility.</p><h3>When Ikea effect and NIH syndrome have a baby</h3><p>Three weeks building a custom state management solution. It handles your exact use case perfectly. Someone suggests using Redux. Your reaction: <em>Redux is overkill. My solution is simpler and works better for what we need.</em></p><p>Is it actually better? Or do you just think it&#8217;s better because you built it? Hard to know when you&#8217;re the one who built it.</p><p>You might be under the influence of <strong>Ikea effect bias</strong>. You overvalue things you created yourself. The effort you put in makes you attached to the outcome, even when objectively better alternatives exist.</p><p>You built the furniture yourself. It&#8217;s wobbly and the drawers don&#8217;t close right, but you love it because you made it. Someone suggests buying a better one. No way. This one is special. (You know which drawer needs the exact angle to open. That&#8217;s craftsmanship.)</p><p>Same with code. You wrote a library that solves a problem. It works. Someone points out there&#8217;s a well-maintained open source library that does the same thing, handles more edge cases, and has better documentation. You defend your library. <em>It&#8217;s lighter weight. We control it. It&#8217;s tailored to our needs.</em></p><p>Maybe those reasons are valid. Maybe you&#8217;re just attached to your creation.</p><p>This is why engineers resist throwing away their code. You spent days or weeks building it. Deleting it feels like wasting that effort. So you keep it even when it&#8217;s not the best solution.</p><p>Or you&#8217;re refactoring and someone suggests removing a complex abstraction you built. Your first instinct is to defend it. <em>It&#8217;s needed for future extensibility.</em> Is it though? Or did you spend time building it and now you can&#8217;t let it go?</p><p>The Ikea effect makes you blind to better alternatives. You&#8217;ve invested effort, so you rationalize why your solution is correct instead of objectively evaluating it. Loss aversion kicks in.</p><p>Would you choose this solution if you hadn&#8217;t built it yourself? If someone else wrote this library or this abstraction, would you use it? If the honest answer is no, the Ikea effect is at work.</p><p>The length of your defense is a signal. When you find yourself explaining at length why your custom solution is better than the standard tool, you&#8217;re rationalizing, not evaluating. Let someone else look at it. They don&#8217;t have your attachment.</p><p>The code is a tool, not a baby. The effort spent building it taught you something. That was the value. The code itself is replaceable.</p><p>Team needs a solution for handling background jobs. There are mature, well-tested libraries: Sidekiq, Bull, Celery. Your team decides to <em>build their own</em>.</p><p>&#8220;We have specific requirements.&#8221; (Translation: &#8220;We want to build it ourselves.&#8221;)<br>&#8220;The existing tools are too heavy.&#8221; (Translation: &#8220;We haven&#8217;t actually evaluated them.&#8221;)<br>&#8220;It&#8217;ll be simpler to build exactly what we need.&#8221; (It will not be simpler.)</p><p>Six months later, you&#8217;re debugging race conditions, handling failed jobs, implementing retry logic, building monitoring, and dealing with edge cases the existing libraries already solved. You&#8217;ve most likely rebuilt a worse version of something that already existed.</p><p><strong>Not invented here (NIH) syndrome</strong> is rejecting external solutions because you didn&#8217;t build them. AKA if we didn&#8217;t make it, it can&#8217;t be right for us.</p><p>This is different from the Ikea effect (overvaluing what you built). This is <em>refusing to use what others built</em>.</p><p>You see a library that solves your problem. Your first instinct: <em>How hard can it be to build this ourselves?</em> Often the answer is <em>harder than you think</em>. The library handles cases you haven&#8217;t encountered yet. It&#8217;s been battle-tested in production. It has community support and documentation. Your version will have none of that.</p><p>But you build it anyway. Building your own is more satisfying than using someone else&#8217;s solution.</p><p>Or another team at your company built a tool that could work for you. You reject it: <em>Their use case is different. It&#8217;s not exactly what we need. We&#8217;d have to change our workflow.</em> So you build your own. Now you have two tools doing the same thing, both with partial solutions, neither as good as if you&#8217;d combined efforts.</p><p>The cost isn&#8217;t just the time building it. It&#8217;s the ongoing maintenance, the bugs you&#8217;ll hit that the mature tool already fixed, the features you&#8217;ll eventually need that the existing tool already has.</p><p>Sometimes building is the right choice. If the existing tools truly don&#8217;t fit your requirements. If the dependency adds more complexity than building. If you need something so specific that customization would be harder than starting fresh. <strong>Sometimes</strong>.</p><p>But most of the time, the appeal of building outweighs the practical case for it. Which is fine for side projects. Less fine when you&#8217;re six months in, debugging race conditions the mature library already solved.</p><p>If the existing solution came from inside your company instead of outside, would you use it? If yes, the problem isn&#8217;t the solution, but more likely <em>where it came from</em>.</p><p>Boring technology and proven libraries maintained by other people, that&#8217;s how you free up effort for problems unique to what you&#8217;re building. Let&#8217;s keep Ikea effect from having babies with NIH syndrome, nothing good will come of this.</p><h3>Peak-end rule</h3><p>Your memory doesn&#8217;t average experiences. It anchors on peaks and endings.</p><p>Six months on a project. Most of it was fine. Normal progress, normal challenges, nothing dramatic. Then the last two weeks were a disaster. The deployment failed three times. You worked late nights debugging and the launch was rocky.</p><p>When someone asks how the project went, you say: <em>It was rough.</em> You remember the disaster, not the six months of steady work. Those six months might as well not have happened. Your brain decided the last two weeks are the whole story. (If they&#8217;d asked in month four, you&#8217;d have said it was fine. But they didn&#8217;t ask in month four.)</p><p>This affects how you evaluate everything. A colleague is helpful for months, then snippy in one code review. You remember them as difficult. A project goes smoothly for weeks, then hits one major issue. <em>You remember it as problematic</em>.</p><p>The reverse too. A project is a grind but the launch goes well. You remember it as a success. A teammate is frustrating to work with but comes through in a crisis. You remember them as reliable.</p><p>You&#8217;re doing this to yourself too. You worked hard all quarter, shipped three features, then made one mistake at the end. When performance review comes, you focus on the mistake. Your manager might remember the steady delivery. You remember the peak moment of stress.</p><p>Or you&#8217;re debugging an issue for hours. Frustrating, stuck, making no progress. Then you solve it in the last fifteen minutes. The experience feels satisfying because it ended well. If you&#8217;d given up at hour three, you&#8217;d remember it as wasted time. Same three hours, different ending, completely different memory.</p><p><strong>Last impressions matter in code reviews, project retrospectives, and team interactions</strong>. The last thing that happens shapes how the entire experience is remembered.</p><p>The ending matters disproportionately. Meetings that end with clear next steps feel productive. Code reviews that end with acknowledgment of what worked well feel collaborative. Retrospectives that acknowledge what went right before diving into problems leave people energized instead of demoralized. Same content, different order, completely different memory.</p><p>When evaluating something, the average should matter more than the peaks and ending. Was the project actually bad, or did it just end badly? Is the person actually difficult, or did they just have one rough interaction?</p><p>Your memory is a highlight reel, not a documentary. <strong>Make sure you&#8217;re judging the full story, not just the clips that stand out</strong>. No need to treat the work as Instagram.</p><h2>I&#8217;m repeating myself</h2><p>You probably don&#8217;t need all of these at once. Pick one model. Notice when it applies. Course-correct before the pattern becomes expensive. Yeah, yeah, I&#8217;m repeating myself.</p><p>You can&#8217;t eliminate these patterns. They&#8217;re human. The goal is catching them earlier.</p><p>Engineering isn&#8217;t just solving technical problems. It&#8217;s collaborating on solutions, reviewing each other&#8217;s work, and being honest about what you know and don&#8217;t know.</p><p>Now go build something great together.</p>]]></content:encoded></item><item><title><![CDATA[Why your solutions become tomorrow's problems]]></title><description><![CDATA[And how to stop creating them in the first place]]></description><link>https://www.between-code-and-culture.tech/p/why-your-solutions-become-tomorrows</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/why-your-solutions-become-tomorrows</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 19 Jan 2026 07:06:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KPOj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Earlier essays covered mental models for everyday thinking and leadership. This one is different.</p><p>I work with engineers daily. I give them tasks, priorities, constraints. But I also want to give them tools. Mental models that help them manage complexity, question bad approaches, and push back when I&#8217;m wrong. These aren&#8217;t just frameworks for writing better code. They&#8217;re frameworks for navigating technical decisions when the path isn&#8217;t clear.</p><p>This essay walks through the lifecycle of technical work: diagnosing problems correctly, building the right amount, thinking through consequences before committing, and knowing when to kill approaches that aren&#8217;t working. </p><p>The thinking tools are universal. But engineering decisions have specific failure modes. Choose the wrong architecture? Months untangling it. Skip root cause analysis? The bug returns in different forms. Over-engineer for imaginary scale? Complexity you can&#8217;t maintain.</p><p>I count on my engineers to be strong sparring partners. To push back when the approach is wrong. To question constraints that don&#8217;t make sense. To call out when we&#8217;re optimizing for the wrong thing. These models give us shared language for those conversations. You can point at second-order effects I&#8217;m not seeing. I can ask if we&#8217;re stuck in a local optimum. We both get better outcomes when we&#8217;re using the same frameworks to think through problems.</p><p>The feedback loops in engineering are long. By the time you realize the pattern, you&#8217;ve made the expensive mistake. That&#8217;s why these models matter.</p><h2>Technical problem-solving</h2><p><em>Fix the root cause, not just the symptom</em></p><h3>Root cause analysis</h3><p>The alarm goes off at 2 AM. Again. You log in, check the dashboards, see which service crashed. You restart it. Maybe move some jobs to a different queue. Maybe bump up the instance resources. The customers stop complaining. The metrics look better. You go back to bed.</p><p>Three days later, same alarm. Same service. Same fix. Back to bed. At least you&#8217;re getting consistent practice at 2 AM deploys.</p><p>I watched a team do this for weeks. Distributed system, multiple services, queues backing up, customers reporting issues. Late-night calls became routine. Tweak the resources, restart the service, move the jobs. We&#8217;d mitigate, then rush back to project work the next day. Nobody had time to actually investigate. We were too busy with other stuff.</p><p>But then the poor soul who&#8217;s been walking around like a zombie, escalated things. No more patching! No money can give you back your sleep. So leadership had no other choice than to carve out the time, and I&#8217;m talking about weeks, not days. Pulled the best engineers from affected teams, put them in one room, same table, shared focus. There were no more &#8220;<em>I&#8217;ll ping the other team when they have time.</em>&#8221; and no fragmented efforts where one team has partial information and the other is underwater.</p><p>The root causes? Many. Single points of failure. Services that weren&#8217;t built to handle auto-scaling. Architecture not robust enough for temporary spikes. Every <em>fix</em> we&#8217;d done treated symptoms. The system was fundamentally broken for the load pattern it was experiencing.</p><p>Teams had tried to solve it before. But efforts weren&#8217;t aligned. One team would investigate their piece, hit a wall, try to coordinate with another team that didn&#8217;t have bandwidth. The investigation would stall. Putting everyone in one room changed that. The obstacles that had blocked months of fragmented investigation disappeared in days of coordinated work.</p><p>You&#8217;re treating symptoms but the system keeps creating the same problem in different forms. The bug you see keeps coming back because the structure underneath keeps producing bugs. Root cause analysis is detective work. Columbo asking &#8220;<em>just one more thing</em>.&#8221; Sherlock seeing what everyone else missed. Poirot insisting the details matter. Instead of  &#8220;<em>how do I make this go away right now?</em>&#8221; the question changes to &#8220;<strong>what&#8217;s creating this outcome?</strong>&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KPOj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KPOj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KPOj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KPOj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KPOj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KPOj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:805234,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/184838958?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KPOj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KPOj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KPOj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KPOj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21361e65-7cc9-49e0-96e9-c1f00d045626_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Columbo, Sherlock and Poirot are a good company to be in.</figcaption></figure></div><p>The fix isn&#8217;t always obvious. Sometimes it requires weeks of investigation. But you know you need to apply this model when the same problem keeps coming back, when you&#8217;ve <em>fixed</em> it three times and it appears again, when you see different symptoms with the same underlying issue, when your <em>solution</em> only works temporarily.</p><p>We know that patching symptoms feels productive, since you <strong>are</strong> fixing things and the metrics <strong>do</strong> look better. But you&#8217;re running in place. Find the root cause and fix it once, or keep patching it forever. One uses a few weeks now, the other uses a few hours every month indefinitely. The math isn&#8217;t <em>that</em> complicated.</p><h3>Five Whys</h3><p>If root cause analysis tells you to find the underlying problem, <strong>Five Whys</strong> is how you actually get there.</p><p>Keep asking &#8220;<em>why?</em>&#8221; until you stop getting new information. Most people stop at the first or second why. That&#8217;s where you find <strong>symptoms</strong>, not causes.</p><p>We had a service causing issues. <br>&#8220;Why is it failing?&#8221; <br><em>Response timeouts.</em> <br>Okay, increase the timeout. That&#8217;s stopping at why #1. You&#8217;ve addressed a symptom.</p><p>&#8220;Why are responses timing out?&#8221; <br><em>Too many requests hitting the service at once.</em> <br>Okay, add rate limiting. That&#8217;s stopping at why #2. You&#8217;ve made the symptom more manageable, but you haven&#8217;t fixed the problem.</p><p>&#8220;Why are too many requests hitting at once?&#8221; <br><em>The frontend is polling every second instead of using webhooks.</em> <br>Now you&#8217;re getting somewhere.</p><p>&#8220;Why is it polling?&#8221; <br><em>Because nobody questioned the original implementation when requirements changed.</em></p><p>&#8220;Why didn&#8217;t we revisit it?&#8221; <br>Because the system &#8220;worked&#8221; and there was always something more urgent.</p><p>Now you see it. Timeouts are a symptom. Request volume is closer but still not it. The actual root cause is a design decision that made sense once and became technical debt when context changed.</p><p>Stop at why #2, you add rate limiting and call it solved. The service still struggles, just slightly less. Push to why #5, you replace polling with webhooks and the problem disappears.</p><p>Each &#8220;why&#8221; peels back another layer. The first few whys give you symptoms and proximate causes. The deeper whys reveal the structure creating the problem. You know you&#8217;ve gone far enough when the answer points to something you can actually fix, not just mitigate.</p><p>The early answers feel like solutions. Increase the timeout, add rate limiting, done. But then the problem comes back wearing a different mask. Keep asking why until you hit something structural&#8230; or until your PM asks why you&#8217;re still investigating a &#8220;fixed&#8221; issue. Then you know you&#8217;re onto something.</p><h3>Occam&#8217;s Razor</h3><p>We have a <em>complicated</em> relationship with complexity. It&#8217;s our mistress. A database query is slow, so you start planning the caching layer, the read replicas, the query optimization strategy. You&#8217;re three days into the architecture doc when someone asks: &#8220;Did you check if there&#8217;s an index on that column?&#8221; There wasn&#8217;t. You add the index. Problem solved. </p><p>One line of SQL. Three days of your life you&#8217;re not getting back.</p><p>The API is unreliable. You start designing retry logic, circuit breakers, fallback mechanisms. The timeout is set to 2 seconds for a query that takes 5 seconds to complete. You increase the timeout. Done.</p><p>Product managers do this too. They design elaborate user flows with branching logic, conditional states, multiple steps. What if you just put both options on the same screen? Simpler flow. Better UX. Less code. Boom.</p><p>When facing a problem, we reach for complex explanations. Distributed system issue. Race condition. Architectural flaw. The timeout being set to 2 seconds? That&#8217;s too boring to be the answer.</p><p><strong>Occam&#8217;s Razor</strong> says start with the simplest explanation first. Check the basics before you architect the sophisticated solution. Missing index before database migration. Configuration before code change. Simple UI before complex flow.</p><p>Senior ICs recognize this because they&#8217;ve built the complex solution that wasn&#8217;t needed. They have the scar tissue. They ask the <em>dumb</em> questions that reveal the simple fix everyone else missed while architecting the elaborate workaround.</p><p>Check the simple thing first. If that doesn&#8217;t work, then you&#8217;ve earned the right to get complex.</p><p>Those models help you diagnose problems correctly. The next set helps you build solutions that don&#8217;t become tomorrow&#8217;s problems.</p><h2>Code quality</h2><p><em>Build for the problem in front of you</em></p><h3>Premature optimization</h3><p>You know the game from the 1980s, &#8220;The Incredible Machine&#8221;? Rube Goldberg contraption where a ball rolls down a ramp, triggers a lever, releases a spring, which launches a bucket, which tips over and... eventually accomplishes one simple task through fifteen moving parts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CW3o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CW3o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CW3o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CW3o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CW3o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CW3o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:970869,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/184838958?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CW3o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CW3o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CW3o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CW3o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa36a651f-bbd6-41fa-a865-b9e7f6bd6ed0_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We&#8217;ve all seen codebases that look like this. Features that resemble elaborate chain reactions, with components glued together, each one anticipating some future use case that doesn&#8217;t exist yet. You want to change one thing and you&#8217;re touching seven files because someone built it to be <em>flexible.</em></p><p>Or the engineer who refactors a component into an abstract, generalized version before anyone knows if the approach even works. Now you&#8217;re experimenting, trying to figure out what users actually need, and every iteration takes a week instead of hours because you have to navigate the abstraction layer someone built for imaginary future requirements.</p><p>The justification sounds smart: <br><em>We&#8217;ll need to scale eventually.<br> We should build this right from the start.<br>This is how big companies do it. <br>What if we need to support multiple use cases?</em></p><p>Then comes reality. <br><br>You build for 10,000 users when you have 10. You architect microservices when a monolith would work. You design elaborate error handling for edge cases you haven&#8217;t encountered. You abstract before you understand the pattern.</p><p>The time building it is one cost. Then there&#8217;s the ongoing maintenance. The debugging complexity. The deployment overhead. The new engineer who asks &#8220;why is this so complicated?&#8221; and the answer is &#8220;we thought we&#8217;d need it someday.&#8221; That day never came. The complexity is still here.</p><p>Make it work first. Then make it right. Then, if you actually need to, make it fast. Most code never needs the third step. You&#8217;re solving for imaginary scale, imaginary flexibility, imaginary future requirements that change before you get there anyway.</p><p>The future you&#8217;re over-engineering for has a funny way of not showing up. Or showing up completely different than you planned.</p><p>Build for the problem in front of you and a couple of steps ahead, not the problem you imagine you&#8217;ll have later. You can refactor when you actually understand the patterns. You can scale when you actually need to scale. The code you write today will probably change before you hit the scale you&#8217;re optimizing for.</p><p>Performance is one part of premature optimization. There&#8217;s also premature abstraction, premature architecture, premature complexity. You&#8217;re not building a Formula 1 car to drive to the grocery store. You&#8217;re building the minivan.</p><h3>Overfitting</h3><p>An engineer sees five UI variations during customer testing and builds one abstract component to handle them all. The component has configuration for each specific variation they observed: button placement options that map to cases 1-3, dropdown behavior for case 4, validation rules for case 5. When case 6 needs a button with a tooltip, the abstraction doesn&#8217;t fit. The component was built for those five specific cases, not for UI variations in general. Adding the tooltip means reworking logic all five existing cases depend on. What should take an hour takes days because the abstraction is fitted to the examples, not the pattern.</p><p>I&#8217;ve seen this across multiple companies. Smart engineers trying to reduce duplication, seeing patterns early, abstracting before they understand what&#8217;s actually common versus what just happened to be similar in the first few cases.</p><p>The authentication flow that works perfectly for a B2C product with millions of users gets applied to an internal tool with 50 employees. Now you have OAuth, SSO integrations, password complexity requirements, and multi-factor authentication for a tool that could have used basic auth. The solution was built for different constraints, e.g. public-facing, high-security, massive scale. Here you&#8217;ve got a trusted internal network and a handful of users who just want to log in and get work done.</p><p>You look at what you have right now and build for that. The solution works perfectly for the examples in front of you. Then case six shows up and you realize you&#8217;ve done the machine learning thing - optimized for the training set, failed on real data.</p><p>Wait for the pattern to emerge before you abstract. Three examples might be a pattern. Or they might be three different problems wearing similar clothes. You&#8217;ll know the difference by the fourth or fifth case.</p><h3>Unforced error</h3><p>One-line change, maybe a configuration tweak or a small refactor that touches three files. So obvious, so clean, and so trivial that running the full test suite feels like&#8230; overkill?</p><p>You know you should run it. That&#8217;s the rule. But this change is <em>too simple to break anything</em>. You skip the tests, merge, and deploy.</p><p>Then production breaks. Unfortunately, not in some unpredictable way or because of a race condition nobody thought about. It breaks in exactly the way the tests would have caught. The test that runs in 30 seconds would have told you the problem. Now you&#8217;re rolling back, explaining to everyone on a post-mortem meeting why you skipped the step everyone knows to do, and customers were seeing errors. Famous last words: &#8220;This change is too simple to break anything.&#8221;</p><p>It happens to all of us, but it should not be happening. You&#8217;re under pressure, moving fast, feeling confident. The step feels like overhead, so &#8220;just this once&#8221; you skip it. Maybe you shouldn&#8217;t&#8230; unless you like bonding on prost-mortem meetings. They might become tad <em>less blameless</em> after a while.</p><p>Another good example are merge conflicts. You&#8217;re merging your branch and Git shows conflicts in a file. You <em>should read both sides carefully</em>, understand what changed, make sure you&#8217;re keeping the right code. <em>But</em> you&#8217;re in a hurry with three other PRs waiting, and you just want this done. You scan it quickly, accept <em>current</em> or <em>incoming</em> without really thinking.</p><p>Then you realize you just overwrote someone else&#8217;s fix. The bug they spent two days tracking down is back. Someone asks in Slack: &#8220;<strong>Wait, didn&#8217;t we already fix this?</strong>&#8221; You check the Git history and see what you did. Ouch. You owe them lunch, at least.</p><p>What makes these painful is that you knew the step mattered. You had the checklist, you had the process, but you decided it didn&#8217;t apply this time. Nobody forced the mistake. You created it by skipping what you knew you should do.</p><p>Tests are cheap insurance. The 30 seconds you save by skipping them buys hours of cleanup, embarrassing Slack explanations, and a mental note that you&#8217;ll definitely run tests next time. (You will. Until you don&#8217;t.)</p><p>Building the wrong thing is one problem. The other is building the right thing without thinking through what it breaks.</p><h2>Design and architecture</h2><p><em>Think through consequences before committing</em></p><h3>Second-order thinking</h3><p>The API is slow. Users are complaining. You add a caching layer. Responses are fast now. Problem solved, right?</p><p>Then the bug reports start coming in. Users seeing stale data. Someone updates their profile, it doesn&#8217;t show. Someone deletes a record, it&#8217;s still appearing. You realize you need cache invalidation. So you build invalidation logic. Now you&#8217;re debugging whether the bug is in the application or in the cache. &#8220;Is this real data or cached?&#8221; becomes a question you ask daily. The cache also hides the actual problem: a database query that should have been optimized. You made responses fast without fixing why they were slow. You&#8217;ve added a layer of complexity that you&#8217;ll maintain forever.</p><p>You stopped at <em>caching makes it fast</em> without asking &#8220;<em>what problems does caching create?</em>&#8221;</p><p>The microservice extraction follows similar logic. A module is getting large, hard to navigate, maybe slowing down deployments because the whole app has to redeploy. Extract it to its own service. Now that module can deploy independently. Clean boundaries. Feels good.</p><p>Then you hit the second-order effects. What used to be a function call is now a network call that can timeout or fail. You need retry logic, circuit breakers, fallback behavior. Deployments need coordination between services. A bug that crossed the service boundary? You&#8217;re looking at logs in two places, tracing requests across services. Data that used to be consistent in one database is now split across service boundaries with eventual consistency problems causing eventually consistently gray hair. </p><p>Applying microservices because they worked at a company with 100 engineers when you have&#8230; what five? You&#8217;re combining two mistakes. Fitted solution to different constraints plus ignoring second-order effects. <em>Microservices give us independence</em> sounds good until you realize you don&#8217;t have the team size or tooling to manage the complexity they create.</p><p>Most not-particularly-good architecture decisions solve the immediate problem while creating bigger ones. The solution works, technically. You just didn&#8217;t think through what it costs to maintain or what breaks downstream.</p><p>Before committing to the solution, ask: <em>what problems does this create? What&#8217;s the maintenance burden? What breaks if this fails? What new dependencies am I adding?</em> The questions are boring, but the answers save you from clever solutions that become your team&#8217;s least favorite legacy system.</p><h3>Cost-benefit analysis</h3><p>Your framework is old. The new (breaking changes) version has better performance, modern features, cleaner APIs. The migration guide looks straightforward. You pitch it to the team: <em>Let&#8217;s upgrade.</em></p><p>Then you start counting the cost. Three months of migration work. Bugs during the transition period. Learning curve for the team. All feature work pauses or slows down significantly. You&#8217;re telling stakeholders that nothing new ships for a quarter so you can upgrade to a framework that makes the app... slightly faster and nicer to work with.</p><p>Is it worth it? Maybe. Maybe not. Depends on what you&#8217;re giving up and what you&#8217;re getting. Are you blocked by the old framework or just annoyed by it? Will the new framework actually make future work faster, or are you paying three months for marginal improvements? Sometimes the new version is nicer is worth it. Sometimes it&#8217;s just expensive taste.</p><p>The calculation might be changing with AI coding assistants. Migration work that took three months might take three weeks now. But the question stays the same: what are you trading and is the trade worth it?</p><p>The same calculus runs through every technical decision. Tech debt versus features is the battle you never win. The codebase has sections that work but are messy. Refactoring would make them cleaner, easier to maintain, less likely to cause bugs. It would take a week, maybe two. Meanwhile, users are asking for the next feature and your PM is asking when it ships.</p><p>Clean it up now or ship the feature? Neither answer is wrong. Both have costs. Refactor and you&#8217;re explaining why nothing shipped this sprint. Ship the feature and you&#8217;re working in messy code that slows you down on the next feature. Eventually you pay the price either way. You pay now in visible progress, or you pay later in velocity tax.</p><p>I&#8217;ve seen teams go both ways. The ones who always ship features end up drowning in technical debt, moving slower every quarter until a <em>quick feature</em> takes a month. The ones who always clean up the code have pristine architecture that users don&#8217;t care about because the features they asked for aren&#8217;t there. Both teams are convinced they&#8217;re doing it right.</p><p>The formula is simpler than it looks - count the actual costs. What do you gain? What do you give up? What happens if you don&#8217;t do this? Most technical decisions aren&#8217;t right or wrong. They&#8217;re tradeoffs. The teams that do this well <strong>don&#8217;t avoid tradeoffs</strong>. They just <strong>make them consciously</strong> instead of drifting into them.</p><h3>Thought experiment</h3><p>Before you build something, simulate it. Walk through the scenarios in your head, find the failure modes on paper instead of in production.</p><p>Run a <strong>pre-mortem</strong>. I love this experiment. Imagine the project has failed catastrophically. What went wrong? Everything! What is everything? What happened? Maybe the migration took three times as long as estimated. Maybe the new system had bugs the old system didn&#8217;t and is causing data discrepancy. Maybe you lost data during the cutover&#8230; or sent thousand of emails you didn&#8217;t intend to or the app stopped working all together. You&#8217;re imagining the failure and working backwards.</p><p>It feels unnatural at first. You&#8217;re sitting there trying to imagine your well-planned project failing and it&#8217;s hard to take seriously. But the more you do them, the more failure modes you can imagine. You start seeing what&#8217;s preventable, what&#8217;s mitigatable, what&#8217;s reversible and what locks you in. You figure out where you need better monitoring. You assess which risks are worth losing sleep over and which ones you can live with. You imagine a doomsday scenario&#8230; it can be quite fun, but also immensely useful.</p><p>Make sure someone with a wild imagination runs them. Most team members are quite conservative when it comes to brainstorming such a scenario. They see the happy path and maybe one or two failure cases. But you need a drama queen &#8212; well, someone who can act as one, you need the person who asks &#8220;<em>what if the database and the backup both fail?</em>&#8221; or &#8220;<em>What if the whole web app stops working, features are behaving quirky, not data is loaded?</em>&#8221; The person that can make everyone paranoid and unreasonable&#8230; for an hour. Of course a lot of things you come up with during this meeting won&#8217;t happen or have only a slightest chance of happening. However,  this kind of exercise will uncover a lot of <em>real</em> things you haven&#8217;t thought about, even how to detect something fishy during and after release or what kind of heads-up to give internal teams.</p><p>Beyond pre-mortems, use thought experiments to test whether you should build something at all. Someone comes to you with a brilliant idea, like fully automated report generation system with scheduling, templating, and distribution. It&#8217;ll take months to build&#8230; but think how much time it&#8217;ll save. Before you commit to that, run the thought experiment. Could someone just run the queries and email reports weekly for the next 6 months? If yes, you&#8217;re looking at a complexity problem that doesn&#8217;t exist yet. Maybe build the query tooling first and automate later when you know you actually need it. The thought experiment shows you what needs to be built versus what feels like it should be automated because automation sounds smart.</p><p>Apply it to scope too. You&#8217;re planning a dashboard. The PM wants 12 widgets, filtering, exports, custom layouts. The full vision will take two months. Run the thought experiment: what if you shipped only the 2 most critical metrics with no customization? Which 80% could you cut and still solve the core problem? Often the honest answer reveals that the elaborate design is solving hypothetical problems. Users want to see two numbers. Everything else is feature creep wearing a requirements costume.</p><p>You can also use it to spot lock-in risks before you&#8217;re locked in. You&#8217;re choosing how to build the new service. AWS Lambda and DynamoDB are fast to set up, managed, no infrastructure headaches. Or you could use Kubernetes and Postgres, more setup but portable. AWS proprietary services feel like the smart choice right now. Before you commit, think two years ahead. AWS becomes too expensive or problematic, what does migration look like? If it&#8217;s catastrophic, you&#8217;re accepting significant lock-in risk. Not always wrong, but it should be conscious. The thought experiment forces you to look at what it costs to change your mind later.</p><p>You&#8217;re not trying to predict the future. You&#8217;re trying to find what breaks before you commit. Simulate the failure. Simulate the migration. The problems you find in your head are cheaper than the ones you find in production.</p><h3>Lateral thinking</h3><p>The API is slow. Users are waiting seconds for pages to load. You start optimizing the backend, you rewrite the queries, add indexes, implement caching, scale up the database. You&#8217;re making progress, shaving off milliseconds here and there, but it&#8217;s still not fast enough.</p><p>Then someone asks <em>why is the frontend making 47 API calls to render one page</em>? Could it request less data? Could it batch those calls into one? Could you create a different endpoint that returns exactly what the page needs instead of making the frontend stitch together data from multiple calls?</p><p>You were trying to make the slow thing faster. The actual problem was doing the slow thing 47 times. Backend optimization was the wrong answer. Frontend architecture was the right question. Sometimes making something 10x faster matters less than doing it 10x less.</p><p>Same with the scaling bottleneck. You have a query that&#8217;s killing performance under load. You try everything from bigger database instance, aggressive caching, read replicas, to query optimization. You get it faster but it&#8217;s still not enough. At peak traffic, you&#8217;re struggling.</p><p>But&#8230; do users actually need this data in real-time? You&#8217;re recalculating rankings every time someone loads the page. Could you calculate it once an hour and serve cached results? Do users care if the ranking is from 10 minutes ago versus right now?</p><p>Making the query faster was one path. Running it less often was a different path. The second path solved the problem.</p><p>When you&#8217;re stuck pushing in one direction, step sideways and question the direction. This is called <strong>lateral thinking</strong>. Maybe the backend isn&#8217;t the problem, the frontend is. Maybe the query doesn&#8217;t need to be faster, it needs to run less often. Maybe the constraint you&#8217;re solving for doesn&#8217;t need to exist.</p><p>When optimization isn&#8217;t working, question what you&#8217;re optimizing.</p><p>You&#8217;ve diagnosed the problem correctly. You&#8217;ve built the right amount. You&#8217;ve thought through the consequences. But sometimes the approach just doesn&#8217;t work. That&#8217;s when you need to kill it and move on.</p><h2>Decision-making</h2><p><em>Kill bad approaches fast&#8230;</em></p><h3>Sunk cost fallacy</h3><p>You&#8217;ve been building a feature for months. Each time you think you&#8217;re close, another edge case. The pagination breaks with certain data types. The search doesn&#8217;t handle special characters. The export crashes on large datasets. Every fix reveals another problem.</p><p>The team keeps going because <em>we&#8217;re almost done, just need to solve this one more thing</em>. How many <em>one more things</em> before you admit this approach isn&#8217;t working? At some point <em>one more thing</em> becomes a lifestyle. The months you&#8217;ve spent are gone. We should not be asking &#8220;<em>have we invested too much to stop?</em>&#8221; but rather &#8220;<em>does continuing make sense from here?</em>&#8221;</p><p>Consider this: you built a sophisticated reporting system over 9 months. Usage data shows 2% of users open it, and they only use one simple report. The team wants to add more report types because we built this whole infrastructure. But the infrastructure is sunk cost. You can&#8217;t reclaim those 9 months by adding more features nobody will use. Does maintaining and expanding this make sense given how little it&#8217;s used?</p><p>You spent 6 months integrating with a partner&#8217;s API. The partner proves unreliable. Downtime, poor support, limited functionality. Your team maintains the integration because we spent three months building this. But that investment won&#8217;t come back whether you keep it or kill it. Do you want to pay the ongoing maintenance cost for something that doesn&#8217;t work well?</p><p>Mounting complexity, low usage, unreliable dependencies. The justification is always the same. <em>We invested too much to stop now.</em> But the investment is already spent.</p><p>You might not be the one making these calls. That&#8217;s often a PM or leadership decision. <strong>But you can raise the flag.</strong> You&#8217;re closest to the work. You see the problems piling up, the usage data, the reliability issues. <strong>Sometimes the most valuable thing you can do is point out that we&#8217;re throwing good effort after bad. If nobody&#8217;s said it out loud yet, be the one who does.</strong></p><p>Sunk cost fallacy is continuing because of what you&#8217;ve already spent, not because the path forward makes sense. The time is gone either way. The question is what you do next. Kill it early and you redirect effort to something that works. Keep going and you&#8217;re building a monument to a decision that didn&#8217;t pan out. One of those feels better six months from now.</p><h3>Local optimum</h3><p>The feature doesn&#8217;t quite work for some users. Team adds a configuration toggle. Then another for different edge cases. Then another. Now the feature has 12 configuration options and is impossible to test or document. Each toggle was a local optimum, fixing one specific complaint. But the overall product got worse. Nobody can understand what all the options do or which combinations work. Your documentation has a truth table. The global optimum would have been simplifying the feature or building two separate features instead of one <em>franken-feature</em> with a dozen knobs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HktI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HktI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HktI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HktI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HktI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HktI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:910216,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/184838958?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HktI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HktI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HktI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HktI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04fe0bb7-3e24-4618-991d-3b80b830f804_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Engineers spend weeks making the test suite run faster. Parallel execution, better mocking, smarter test selection. They get the suite from 45 minutes down to 30 minutes. Impressive, genuinely. But the real problem is that the suite has 253 tests because nobody ever deletes old ones and teams duplicate coverage. They just made a bloated test suite faster. They&#8217;re optimizing within the wrong boundary.</p><p>Local optimization is seductive. You&#8217;re making measurable progress. The numbers get better. Each change solves a <em>real complaint</em>. But you&#8217;re trapped when you&#8217;re working hard to <strong>improve something within constraints that shouldn&#8217;t exist</strong>.</p><p>Making the tests faster? Maybe the question is why there are so many tests. Adding configuration options? Maybe the feature is trying to do too much. Optimizing a query that runs 40 times? Maybe it shouldn&#8217;t run 40 times.</p><p>You&#8217;re climbing the wrong hill when the optimization works but the problem doesn&#8217;t get solved. Step back and ask if this boundary should be redrawn? Sometimes the answer isn&#8217;t <em>do this better</em>, it&#8217;s <em>stop doing this</em>. Optimization only helps if you&#8217;re solving the right problem.</p><h3>Anchoring</h3><p>PM asks: &#8220;How long will this take?&#8221; <br>First engineer says: &#8220;Probably 2 weeks.&#8221; <br><br>That becomes the anchor. Everyone else adjusts around it: &#8220;<em>yeah, maybe 2-3 weeks</em>&#8221; or &#8220;<em>I think 10 days.</em>&#8221; </p><p>Nobody says &#8220;<em>actually 2 months&#8221;</em> because 2 weeks is now the reference point. The first estimate was <strong>a guess</strong>, maybe based on nothing, but it <strong>anchored the entire conversation</strong>. Everyone&#8217;s evaluating relative to that first number instead of thinking independently about the actual work. Two weeks is the &#8220;hello world&#8221; of engineering estimates.</p><p>Or let&#8217;s take the architecture discussion. Team needs to solve a problem, engineer proposes microservices. That becomes the anchor. Now the discussion is &#8220;<em>should we do microservices or not</em>?&#8221; instead of &#8220;<em>what are <strong>all the ways</strong> to solve this?</em>&#8221; Other options like a monolith, serverless, or different service boundaries are judged as <em>not microservices</em> rather than evaluated on their own merits. The first proposal set the frame for the entire design conversation.</p><p>The first option you hear, the first solution proposed, the first estimate given becomes the reference point. Everything else is judged relative to it. You&#8217;re no longer evaluating options independently. You&#8217;re evaluating them as <strong>more than the anchor, less than the anchor, or different from the anchor</strong>.</p><p>Generate multiple options before evaluating any of them. If someone proposes microservices, list out five other approaches before discussing which one makes sense. If someone estimates 2 weeks, have three people estimate independently before comparing. If you&#8217;re reviewing code and the approach feels off, question the approach itself, not just the implementation details.</p><p>The first thing you hear has gravity. Sometimes the best response to the question about the estimate is &#8220;<em>hold that thought, let&#8217;s hear from X, Y and Z first.</em>&#8221; Anchors only work if you let them.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/p/why-your-solutions-become-tomorrows?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/p/why-your-solutions-become-tomorrows?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h2>Ok, I&#8217;ve read about the models, now what?</h2><p>You don&#8217;t need all of these. Start with the one that addresses a problem you&#8217;re facing right now.</p><p>Bug keeps coming back? <strong>Root cause analysis</strong> and <strong>Five Whys</strong> stop you from patching the same issue forever.</p><p>Jumping straight to complex solutions? <strong>Occam&#8217;s Razor</strong> reminds you to check the simple thing first.</p><p>Building for imaginary future requirements? <strong>Premature optimization</strong> and <strong>Overfitting</strong> keep you focused on the problem in front of you.</p><p>Skipping steps because you&#8217;re confident? <strong>Unforced error</strong> catches you before you break production.</p><p>Adding a caching layer? <strong>Second-order thinking</strong> asks what problems the solution creates.</p><p>Framework migration or tech debt cleanup? <strong>Cost-benefit analysis</strong> forces you to count the real costs.</p><p>Architectural decision feels risky? <strong>Thought experiment</strong> and pre-mortems find failure modes before coding.</p><p>Backend optimization not working? <strong>Lateral thinking</strong> questions whether you&#8217;re solving the right problem.</p><p>Three months into something that doesn&#8217;t work? <strong>Sunk cost fallacy</strong> gives you permission to kill it.</p><p>Incrementally improving something that shouldn&#8217;t exist? <strong>Local optimum</strong> asks if you&#8217;re climbing the wrong hill.</p><p>First estimate anchoring the conversation? <strong>Anchoring</strong> reminds you to generate multiple options before evaluating.</p><p>The goal isn&#8217;t to memorize frameworks. It&#8217;s to build better judgment. To catch yourself before making the same mistake twice. To solve root causes instead of fighting symptoms.</p><p>Mental models are how <em>lazy</em> (and smart) engineers work less: think harder up front so you don&#8217;t have to debug the same issue repeatedly.</p><p>So&#8230; Hate to repeat myself, but here we are. Pick one model. Use it deliberately for a week. Notice where it helps. Add another. Same advice as in previous essays about the models.</p><p>Next up: mental models for working with humans. Code reviews, collaboration, and knowing your blind spots.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Building systems that don’t require heroes]]></title><description><![CDATA[Designing organizations that execute without burnout or fragility]]></description><link>https://www.between-code-and-culture.tech/p/mental-models-for-leaders-strategic</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/mental-models-for-leaders-strategic</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Thu, 15 Jan 2026 07:05:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yBW_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The previous essay was about understanding people: the dynamics in meetings, 1:1s, and stakeholder conversations. This one is about the harder part: building systems that actually work when you&#8217;re not there to hold them together.</p><p>I&#8217;ve learned these lessons the more expensive way, through client projects we never killed but should have, teams that put everything on hold when one person went on vacation (with their laptop), and plans that optimized for everything except what mattered. After reading this, you&#8217;ll spot situations that are off much more clearly. You can thank me or curse me later (probably little bit of both), but you can&#8217;t say I didn&#8217;t warn you.</p><p>This essay covers mental models for strategic execution: how to plan, how to measure, and how to build teams that get stronger under stress instead of breaking under pressure.</p><h2>Planning and measuring what matters</h2><h3>Think beyond step one</h3><p>It&#8217;s quarterly planning time. Everyone has ideas. The backlog is full. Everything seems important. You need to decide: what to work on, what to kill, how to measure success.</p><p>First step: think things through a bit more, at least several steps more. Remember <strong>second-order thinking</strong> from <a href="https://www.between-code-and-culture.tech/p/mental-models-for-thinking-clearly">Mental models for thinking clearly</a>? At leadership scale, the stakes are higher and the ripple effects reach more people.</p><p>You&#8217;re hiring three senior engineers to speed up delivery. First-order thinking would be more engineers mean faster shipping. Case closed. But what happens when you start asking &#8220;And then what?&#8221; </p><p>You figure out that onboarding will most likely overwhelm an already stretched team. You can forget about productivity for at least a quarter. Onboarding takes time. Real time. But short-term setback for mid-term or long-term gain.</p><p>Next, seniority can be a double-edged sword. Yes, they bring more experience and knowledge. But they bring strong opinions, too. And three seniors on top of any existing ones can create competing architectural approaches. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yBW_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yBW_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yBW_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yBW_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yBW_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yBW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:815389,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/183218751?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yBW_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yBW_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yBW_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yBW_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F386a1e4d-004c-403c-be89-c4cea2dbf7be_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>These things happen, no use pretending they don&#8217;t or can&#8217;t. Even if we put all this aside, we need to understand that if the real problem is unclear product strategy, more engineers can make things worse. You can&#8217;t hire yourself out of strategic confusion. This just makes the problem more expensive. </p><p>I participated in this kind of mistake. Twice. Both times we genuinely thought we were being strategic, and somehow made everything worse. But the second time hurt more &#8212; at least I (the fan of mental models) should have known better. It can be fixed, but it requires a lot more energy and time than anticipated.</p><p>Think two or three moves ahead before committing resources. Most leadership regrets come from first-order decisions that ignored what happens next.</p><p>More is not always better. The first engineer you hire creates massive value. The second engineer adds value, but less than the first. The third adds even less. By engineer number ten, you&#8217;re getting a fraction of the impact you got from engineer one. This isn&#8217;t about the people, it&#8217;s about the system. Communication overhead grows. Coordination costs compound. Onboarding burden increases. The marginal value of each additional resource decreases.</p><p>I&#8217;ve watched teams double in size and ship half as much. More people, less output. <strong>Diminishing returns</strong> in action. The answer isn&#8217;t always <em>add more resources</em>. Sometimes it&#8217;s <em>work differently with what you have</em>.</p><h3>Debug the system, not the people</h3><p>Remember <strong>systems thinking</strong> from <a href="https://www.between-code-and-culture.tech/p/mental-models-for-thinking-clearly">Mental models for thinking clearly</a>? It sees the structure, not just the event. At org scale, you&#8217;re not debugging code, you&#8217;re debugging human systems. And human systems are messier. You can&#8217;t just hire a CSI team to help you find the meeting that caused the problem.</p><p>Another example that will most likely be familiar: the team keeps missing deadlines. Your first thoughts: they should work harder... or you need to add more people, maybe someone from another team can lend a hand... or yes, you could extend hours? </p><p>Let&#8217;s look a this situation through the systems thinking lens: why does the system keep creating this outcome in the first place?</p><p>Engineering is blocked by Product. Product is waiting on Design. Design doesn&#8217;t have clear requirements <em>because leadership hasn&#8217;t aligned on strategy</em>. No amount of <em>work harder</em> fixes a system-level problem. The constraint isn&#8217;t effort, it&#8217;s the structure. Since it&#8217;s most likely a system problem, you start optimizing processes down to instructions on the task. You&#8217;re at the <em>Final final version 1</em> of the process document, Product writes more specs. Design creates more mocks. You optimized everything except the real bottleneck and got zero improvement. If leadership alignment is the bottleneck, none of that matters. Work piles up at the constraint. Let me introduce you to <strong>theory of constraints</strong> that says the system is only as strong as its weakest link. Find this weak link and address it.</p><p>Of course it&#8217;s not always leadership. I&#8217;ve seen teams add engineers when the real constraint was deployment pipeline. Add product managers when the constraint was unclear strategy. Add designers when the constraint was indecisive leadership. They optimized everything except the actual bottleneck.</p><div class="pullquote"><p>Find the constraint. Fix it. Then find the next one. <br>The system moves at the speed of its slowest part.</p></div><p><em>Feedback loops</em> are important parts of systems. When analyzing challenges, ask yourself &#8220;<em>What feedback loops exist?</em>&#8221; Because believe it or not, what you reward is what you get more of.</p><p>Let&#8217;s say you praise someone for working late to hit a deadline. Awesome, you recognized this contribution. What could possibly be wrong with this? A lot of things. First of all, what they learn is that working late gets recognition. Others see this and start working late. Then you as a leader can&#8217;t be the first person going home, right? Being part of the team and all? And then working late becomes the culture. People burn out. You meant to recognize dedication. The feedback loop reinforced overwork. How did this escalate?! <em>With you. With good intentions.</em></p><p>I have a small confession to make: <strong>my path to hell is probably already paved half-way there with (my) good intentions</strong>. </p><p>The event is someone working late. The system is what created the incentive to work late. Fix the structure that&#8217;s creating the behavior.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gq7y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gq7y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gq7y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gq7y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gq7y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gq7y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:920316,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/183218751?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gq7y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gq7y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gq7y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gq7y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf8f3c6b-1eb1-4bf1-857b-20b0257eaf81_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you ever worked at a company older than a year or where the original crew is not present anymore, you&#8217;ve seen this: a <em>fence</em> across a road. It seems pointless. You want to remove it. Be it code, process, part of the system, doesn&#8217;t matter. Before you tear it down in a fit of <em>let&#8217;s bring in a wind of change</em>, ol&#8217; chap Chesterton would like a word with you about <strong>Chesterton&#8217;s Fence</strong> &#8212; the idea that <em>warns against removing things you don&#8217;t understand</em>. Maybe it&#8217;s preventing something you&#8217;ve never seen.</p><p>That <em>annoying legacy process</em> might exist for a non-obvious reason. The manual approval step that seems like bureaucracy? It might be preventing a compliance issue you&#8217;ve never encountered. The code review checklist that feels tedious? It might be catching the bugs that used to ship weekly.</p><p>Guilty as charged, I brought down a couple of fences myself, usually trying to prove myself in a new job. But guess what, every time, I learned why the fence was there &#8212; usually by experiencing the problem it was preventing. </p><p>Now I ask &#8220;<em>why does this exist?</em>&#8221; before I remove it. Sometimes the answer is &#8220;<em>no good reason</em>&#8221; and you remove it. Often the answer is &#8220;<em>oh, that&#8217;s why</em>&#8221; and you leave it alone&#8230; or create a plan to replace it with something else. Sometime. That plan is now in the backlog at priority 47.</p><h3>When to kill projects (even the ones YOU started)</h3><p>You asked why the fence existed, understood the reasoning, and decided to remove it anyway. Now you&#8217;re three months into a rewrite that isn&#8217;t working. Everyone knows it. But the team keeps going. Why?</p><p>Because the hardest part of planning isn&#8217;t starting projects. It&#8217;s stopping them. Because admitting the project was a mistake feels worse than continuing to be wrong. Because in the moment, it <em>feels like commitment, perseverance, not giving up</em>. The project becomes about proving you weren&#8217;t wrong to start it, not about whether it&#8217;s the right thing to finish. This is the text-book example of <strong>sunk cost fallacy</strong> at work.</p><p>I remember the meeting like it was yesterday when I finally decided to kill a project we spent more than half a year on. Ouch. I felt like I was admitting failure in front of the entire team.</p><p>No one asked &#8220;<em>so all that work was for nothing?</em>&#8221;, but I could see it in their eyes. It was brutal. I told them that all the work <em>was not for nothing</em>, we still learned a lot, and it takes guts to sunset something like this. It grows on you. But it can also become <em>Voldemort, the one project that should not be named</em>, or an <em>endless pit</em>. We don&#8217;t like either. Turns out those are your only two options for a &#8220;we-should-totally-kill-this-project&#8221; projects you can&#8217;t kill.</p><p>The six months were gone whether we continued or not. And throwing more good months after <em>bad</em> ones doesn&#8217;t make the bad ones come back. It only makes the mistake drag longer. If you wouldn&#8217;t choose this project starting from zero today, stop now. It won&#8217;t get easier later.</p><p>There&#8217;s another thing this project taught me. I&#8217;m sure you&#8217;ve heard about <strong>Pareto principle</strong> before. Well, I&#8217;ve seen it in action. Getting the last 10% of the MVP took more time than getting to the first 90%. </p><p>On the other hand, if you use this to your advantage, you can get more of outcomes from less effort. Most of what gets planned won&#8217;t move the needle. The team wants to ship 15 features this quarter. Users will love 2, tolerate 3, ignore 10. If you spend equal effort on all 15, you&#8217;ve wasted 80% of your capacity. If you identify the 2 that matter and focus there, you deliver more value in less time. The hard part: saying no to 13 things.</p><h3>To do or not do, this is now the question</h3><p><strong>Opportunity cost</strong> is mentioned a lot at meetings where engineers need to negotiate for time to rewrite part of codebase for easier maintenance vs ship value to the customer instead. If your teams always ship only value to the customers and don&#8217;t get enough time to keeping the lights on, the lights might start flickering. So, while the opportunity cost is very important to consider, you should not forget that you also have to maintain what you build.</p><p>Let&#8217;s say you decided to pursue this huge opportunity and you want to do this big strategic bet. Everyone&#8217;s confident. But six months from now, it&#8217;s obviously flawed. What did you miss?</p><p>It&#8217;s quite possible no one remembered to validate enough. If nothing else, you should at least pick a <strong>red-team</strong>, a group of people to <em>systematically attack your plan before you commit</em>. Not a rubber-stamp review. Structured adversarial thinking. Find every way this could fail. Every assumption that might be wrong. Every risk you didn&#8217;t consider.</p><p>Or organize a <strong>pre-mortem</strong>. Imagine it&#8217;s six months from now and the strategy failed completely. What happened? Work backwards from that failure. You&#8217;ll see risks you missed in the optimistic planning phase.</p><p>The fastest way to validate (at least initially) is to give someone explicit permission to tear it apart. If they can&#8217;t find any problems, they&#8217;re not really trying. Or they&#8217;re being polite. Both are useless here. The best red-team findings feel uncomfortable. That&#8217;s the point.</p><p>Now you came to a point when you have to decide. But not all decisions are made equal. </p><p>Some are hard or <strong>impossible to reverse</strong>, like committing to a platform, hiring an executive, changing a tech stack, or pivoting. These deserve careful thought, red-teaming, hard debates. Then there are decisions that can be <strong>easily reversed</strong> if you don&#8217;t find them working. You try out a new process or change meeting format or experiment with a feature. These kind of things can be done fast, if they don&#8217;t work, revert them. </p><p>Most decisions are reversible, but sometimes we treat them like they are not and this kills velocity. I&#8217;m proud to say we learned this and my team has no issues piloting a new process or new meeting structure. The bit on the <strong>reversibility</strong> is key to decide how to decide.</p><h3>Measure what matters without gaming the system</h3><p>You made the decision, hopefully the right one. How will you know? By measuring progress, of course. Now comes the tricky part.</p><p>&#8220;When a measure becomes a target, it ceases to be a good measure.&#8221; </p><p>Meet <strong>Goodhart&#8217;s Law</strong>. What you measure becomes what people optimize for. Measure the wrong thing, you&#8217;ll get exactly what you measured and none of what you wanted.</p><p>If you measure number of commits, team starts to commit every line. Deploy frequency? Easy, break every small change into separate deploys. You&#8217;ll end up measuring lots of deploys but you won&#8217;t ship value faster. The metric became the target, so it stopped measuring what you cared about. </p><p>People are remarkably creative when you give them the wrong incentive. Less so when you give them the right one.</p><p>Good metrics resist gaming and stay aligned with actual goals. You could use speed + accuracy + user satisfaction instead, or code reviews completed (not just features shipped). No single metric is sufficient. Any metric used alone will be gamed. </p><p>The solution is multiple metrics that <em>create tension with each other</em>, forcing tradeoffs that mirror real goals. But this is for another post.</p><p>But, let&#8217;s assume we haven&#8217;t started yet and we need to estimate how long a project will take first. You estimate a project will take 4 weeks. You tell stakeholders 4 weeks. It takes 6 weeks. You&#8217;ve damaged trust. You missed the deadline. The team is stressed. Estimation is hard, but the problem is you didn&#8217;t build in a <strong>margin of safety</strong>. The estimate was your <em>best case</em>, not your <em>realistic case</em>.</p><p>Margin of safety is the buffer between what you think will happen and what you promise. It&#8217;s the difference between &#8220;this will probably take 4 weeks&#8221; and &#8220;I&#8217;ll have this to you in 6 weeks.&#8221; It&#8217;s <em>acknowledging uncertainty</em> and building slack into the system.</p><p>But this is the part where AI makes all this <em>interesting</em>. <br>Traditional margin of safety: &#8220;Development takes 2 days, add 1 day buffer = 3 days.&#8221; <br>AI version should be: &#8220;AI generates in 2 hours, add 2 days for verification, integration, and fixing = 2+ days.&#8221; </p><p>But it feels backwards to add more buffer when AI makes it <em>faster</em>. AI makes you feel like you can reduce margins because <em>if it&#8217;s wrong, AI can fix it fast.</em> This could be a slippery slope if you don&#8217;t understand what AI produced. Eventually it might take even longer if you don&#8217;t take the time to evaluate and understand each thing you add to the system. Remember, some mistakes aren&#8217;t reversible, like shipping security vulnerability, wrong database schema, or bad architecture (fast implemented, could take months to unwind), so it pays off to be extra careful with them.</p><p>I used to think margin of safety was <strong>sandbagging</strong>. It felt like admitting I wasn&#8217;t confident. Now I know it&#8217;s the opposite &#8212; it&#8217;s acknowledging reality. Things go wrong. Dependencies slip. People get sick. Requirements change. The margin of safety absorbs the variance. But with AI this got to a new level. </p><p>However, this still holds: ship in 5 weeks instead of 6? You&#8217;re a hero. Ship in 7 weeks after promising 4? You&#8217;ve failed even if the work is excellent.</p><p>Stop bad projects before they consume capacity. Validate good ones before committing. Measure what matters without creating perverse incentives. Think two moves ahead. Look at the whole system, not just the individual parts.</p><p>Change the question from &#8220;<em>what should we build?</em>&#8221; to &#8220;<em>what should we stop building so we can focus on what actually matters?</em>&#8221;</p><h2>Managing teams</h2><p>Apart from what you build, it&#8217;s also important how you organize your teams around the work. In my experience people who work together should sit together, it makes things much easier, information flows, there&#8217;s less friction. </p><p>However, there&#8217;s even a larger thing at play, called <strong>Conway&#8217;s Law</strong>. Separate independent teams, not talking to each other? Separate backlogs, priorities and standups. Your system most likely mirrors this. Separate pieces with seams everywhere. If you want to build integrated system, put the people who need to integrate in the same team, with the same goals, talking to each other daily. Just to lean one way or another to talk to someone on the other side of the computer screen. You&#8217;ll see the difference.</p><p>Now we&#8217;re in production and there&#8217;s a production issue. Everyone sees it. Nobody fixes it. Why? When everyone assumes someone else will handle it, nobody handles it. And the more people who could fix it, the less likely anyone will. </p><div class="pullquote"><p><em>Responsibility diffuses across the group.</em> </p></div><p>I&#8217;m sure you&#8217;ve seen this one play. The bug sits in the backlog for months. Someone should fix that. Everyone agrees. Nobody does. Does this mean your team is lazy? No. It means your team is human. Which is somehow worse for getting bugs fixed. This is just <strong>bystander effect</strong>... in effect. If you notice it, you can fix it simply by making it one person&#8217;s explicit responsibility. Once responsibility is assigned, it gets done. When it&#8217;s someone should, it never happens.</p><p>Have you heard about technical debt? How about cultural one? The shortcuts you take in culture compound over time. Just like technical debt, it&#8217;s easier to ignore in the short term. Just like technical debt, it destroys you in the long term. This is <strong>cultural debt</strong>.</p><p>You hire a brilliant engineer, because... they&#8217;re brilliant, but unfortunately not in the emotional intelligence and humility department. You let toxic behavior slide because <em>they&#8217;re too valuable to lose</em>. The behavior spreads. Other people notice that being difficult gets rewarded. The culture shifts. You avoided one hard conversation. You created a cultural problem that&#8217;s harder to fix.</p><p>Or you ignore someone&#8217;s pattern of avoiding responsibility for skipping testing and just pushing to production... with bugs causing incidents. Multiple. One after another.</p><p>Or my favorite: talking about work-life balance and then sending out Slack messages at midnight. Although you might not expect anyone to respond, they will. They did. So I stopped. And apologized. Now, when the need to write something (because I finally got focused time to answer all the pings) is too strong, I schedule it.</p><div class="pullquote"><p>Pay down cultural debt like you pay down technical debt. Have hard conversations. Maintain the processes that matter. Protect the culture deliberately.</p></div><p>You&#8217;ve done a good job as a leader when your best engineer takes vacation without a computer, nothing breaks, projects don&#8217;t stall and you figure out you have a high-performing team, and NOT one depending on heroes. It takes work to get here, but it&#8217;s worth it. Anything else is a <strong>fragile system</strong> disguised as <em>one high performer</em>.</p><p>I&#8217;ve seen both movies play out. In the first one, a hero movie, work is put to a stop when one person is out. All the knowledge is in one person&#8217;s head. Only they know how the critical system works. They&#8217;re the hero. You&#8217;re dependent. And that&#8217;s not fair to them or the team. </p><p>But I&#8217;ve also seen how fragile can turn into <strong>antifragile</strong> team when leaders and the team put their minds to it and work systematically towards getting stronger under stress. In the second movie<em>, </em>when someone is out, others step up. Knowledge is distributed. Processes don&#8217;t require heroes. Documentation exists. No single point of failure.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FTQI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FTQI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FTQI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FTQI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FTQI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FTQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:834108,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/183218751?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FTQI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FTQI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FTQI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FTQI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F047b60ec-19c1-4b30-8506-7bc418a9782d_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You can build antifragile systems by thinking a couple of steps ahead and adding some redundancy for critical parts. Rotate people through different areas so at least two people can handle every critical function. Document decisions and context, so people understand the thinking behind, and are not just left to a mysterious comment in code. </p><p>If you&#8217;re lucky as I am, people like knowledge sharing over knowledge hoarding, they just might need help and tactics how to share it. Give them permission to do it their way, no need to do it super formally. Mentoring works wonders, so does working together and discussing decisions or challenging them.</p><div class="pullquote"><p>Although we all like hero movies, they belong at the cinema, not at workplace.</p></div><p>Speaking of handing off work aka delegating, especially projects, is not a walk in a park. Nor is it <em>only handing off work</em>. Because you&#8217;ve been thinking about this problem for weeks. You have context, constraints, history, nuances. When you explain it to someone, you assume they know what you know. You skip the context because it&#8217;s obvious to you. This is the <strong>curse of knowledge</strong>. Unless you&#8217;re dealing with people who can see in your head (I haven&#8217;t yet), it&#8217;s not obvious to them. They&#8217;re missing 90% of what&#8217;s in your head. They build the wrong thing because you didn&#8217;t explain the right thing.</p><p>I&#8217;ve done this more times than I want to admit. The conversation goes like this: I spend 15 minutes delegating what I think is a clear task. Two weeks later, they show me what they built. It&#8217;s not even close. Like, not in the same timezone as what I had in mind. My first reaction is frustration &#8212; how did they miss the point? Then I realize, I never actually explained the point. I explained the task. The failure isn&#8217;t their understanding, it&#8217;s my explanation.</p><p>How to prevent this? </p><div class="pullquote"><p>First, <em>don&#8217;t assume context</em>. <br>Explain the background, the constraints, the history, why this matters, what success looks like. </p></div><p>Over-communicate. Then ask them to explain it back to you. If they can&#8217;t, you didn&#8217;t explain it well enough.</p><p>Actually this is my favorite part when I&#8217;m validating my understanding: I say to the person I&#8217;ll repeat back to them what I&#8217;ve heard to check if I understand correctly. This helps me prevent bad things from happening due to preventable misunderstanding.</p><p>Every ambiguity you leave creates rework, misalignment, wasted effort. Being clear upfront takes more time. Being unclear later costs more time. So five more minutes are worth it. I&#8217;ve seen a lot senior team members do this, especially when time is of the essence. Might look counter-intuitive to others, but it&#8217;s crucial not to waste time with rework. Also, sometimes you can&#8217;t put everything in a task, and a well pointed question and rephrasing the problem back can provide much needed context way faster.</p><h3>The systems create the outcomes</h3><p>Teams succeed because the system is healthy. And healthy systems stay that way when you catch problems early.</p><p>Recognize when your org structure is creating silos instead of integration (Conway&#8217;s Law). Notice when responsibility diffuses across the group before that bug sits for months (Bystander effect). Spot cultural shortcuts before they compound (Cultural debt). Build knowledge distribution before you&#8217;re dependent on one person (Antifragile). Over-communicate context upfront to prevent rework (Curse of knowledge).</p><p>The earlier you spot these patterns, the smaller the course correction. Fix it when it&#8217;s a small drift, not a major crisis.</p><h2>Patterns, patterns everywhere</h2><p>Once you see these patterns, they&#8217;re everywhere. You&#8217;ll catch yourself about to commit resources without thinking two moves ahead. You&#8217;ll spot the system creating the behavior instead of just blaming the people. You&#8217;ll feel that stomach-twist when you&#8217;re defending a sunk cost because admitting the mistake feels worse than continuing to be wrong.</p><p>I know I&#8217;m violating <strong>loss aversion</strong> here &#8212; people are more motivated by avoiding losses than gaining wins. I could&#8217;ve focused on all the disasters these mental models describe. But that&#8217;s not the point. The goal isn&#8217;t to scare you into action. It&#8217;s to help you recognize patterns early, when they&#8217;re just starting to appear, not when they&#8217;re already on fire and need fixing. Prevent bad stuff before it compounds. Encourage good stuff before it&#8217;s too late.</p><p>Planning meetings will feel different, because you&#8217;ll start asking different questions. &#8220;What should we kill?&#8221; hits different than &#8220;what should we build?&#8221; </p><p>You&#8217;ll see the 80% waste in real time and feel the weight of saying no to 13 things so you can focus on the 2 that matter. You&#8217;ll recognize the opportunity cost of every yes &#8212; the value you&#8217;re not creating somewhere else.</p><p>You&#8217;ll move faster on reversible decisions and slower on irreversible ones. You&#8217;ll build margin of safety into estimates instead of promising your best case. You&#8217;ll ship early instead of missing deadlines.</p><p>Team dynamics will reveal their structure. You&#8217;ll recognize Conway&#8217;s Law playing out in your architecture. You&#8217;ll spot the bystander effect before that bug sits in the backlog for six months. You&#8217;ll feel and address the accumulation of cultural debt before your best person tells you in an exit interview that they&#8217;ve been unhappy for months.</p><p>This is hard work. Building systems that don&#8217;t need heroes. Teams that get stronger under stress. Organizations that execute when you&#8217;re not in the room.</p><p>But it&#8217;s worth it. Not because you&#8217;ll be perfect &#8212; you won&#8217;t be. But you&#8217;ll catch the problems them earlier. Fix them faster. Build something that doesn&#8217;t fall apart when you&#8217;re not there to hold it together.</p><p>Happy pattern spotting.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><em>Part of a series on mental models: how to be less wrong, not be an idiot, lead without breaking your team, and build things without losing your sanity.</em></p>]]></content:encoded></item><item><title><![CDATA[Why smart teams make bad decisions together]]></title><description><![CDATA[Understanding the people patterns behind groupthink, incentives, and false alignment]]></description><link>https://www.between-code-and-culture.tech/p/mental-models-for-leaders-team-dynamics</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/mental-models-for-leaders-team-dynamics</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 12 Jan 2026 07:18:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LkTP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The previous essays covered mental models for everyday thinking: how to think through decisions, understand people, and catch your cognitive biases.</p><p>This essay covers <strong>team dynamics</strong> - <em>how to play the game, work with people, and manage up</em>. The better you get at these three, the less time you spend managing internal team challenges and the more time you can focus on actual business problems.</p><p>Here&#8217;s what it takes: </p><ul><li><p><strong>self-awareness</strong> to observe what&#8217;s happening, </p></li><li><p><strong>pattern recognition</strong> to understand the forces at play, and </p></li><li><p><strong>critical thinking</strong> to apply the right response. </p></li></ul><p>No two situations are identical. No two people are the same. Mental models aren&#8217;t formulas - they&#8217;re lenses that help you see what you&#8217;re dealing with.</p><p>This essay covers three parts: <strong>meetings, 1:1s</strong>, and <strong>stakeholder communication</strong>. What follows are patterns I&#8217;ve observed throughout my career - models that helped me understand what&#8217;s going on and either prevent preventable problems or mitigate them when they happen.</p><div class="pullquote"><p>Unlike code, you can&#8217;t just roll back a bad leadership decision with git revert. </p></div><p>But once you see these patterns, you can catch them before they cost you.</p><h2>Meeting patterns you can&#8217;t unsee</h2><p>You&#8217;re in a meeting. Someone proposes a significant change - new product direction, organizational restructure, major technical bet. You go around the room. Everyone nods. Some people add supporting points. Maybe there&#8217;s an occasional &#8220;easy&#8221; question. A mild pushback that gets self-dismissed before it&#8217;s fully formed. No major concerns. Everyone&#8217;s excited about the new thing - the new frontiers, the fresh start. The old baggage is draining. This new stuff? This is exciting.</p><p>You adjourn feeling good. &#8220;Great alignment,&#8221; you think. Everyone&#8217;s on board.</p><p>But... Something feels off.</p><p>You know this scene. It&#8217;s the moment in every horror movie where a group of people is about to enter the dark building. &#8220;What could possibly go wrong?&#8221; they say.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LkTP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LkTP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LkTP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LkTP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LkTP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LkTP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:913544,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182793079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LkTP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LkTP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LkTP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LkTP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F277aef6e-d977-4f7d-bb61-95ca5cbc7f48_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Everything. Everything could go wrong.</p><p>If you see this dynamic, be aware. Not to be a party pooper and rain on everyone&#8217;s parade - but in business, someone needs to ask what could go wrong. It&#8217;s almost necessary.</p><p>The <strong>yes-men</strong> dynamic is a dangerous one. It&#8217;s not happening because people are spineless, but because the system makes agreement safer than truth-telling.</p><p>Not many people likes others who ask <em>tough</em> questions. They take energy. They&#8217;re &#8220;high-maintenance.&#8221; Maybe now is a good moment to ask <em>why</em> they&#8217;re doing it.</p><p>I&#8217;ve been that high-maintenance person more times than I can count, especially when seeing <strong>groupthink</strong> taking over. People nodding, but their micro behaviors telling a different story. Subtle (or not so subtle) dismissal of opposing views. Silence interpreted as agreement. Only considering facts that support the preferred position, ignoring the rest. Explaining the warning signs away.</p><p>Not on my watch. </p><p>Once you do the intervention to break groupthink a couple of times, people will pick this up and help you stress-test ideas, uncover assumptions and make better decisions. Eventually you&#8217;ll have your own <em>mental mugshot</em> book for people you have meetings with regularly so you&#8217;ll recognize when they &#8220;agree&#8221; and when they actually agree. Gently nudge them (call the silence out) when they need it, or, even better, ask each team member on the meeting to explicitly commit or agree to what has been said. Lean back and observe the magic. In healthy orgs people will speak up if they have to commit to something they have second thoughts about.</p><p>Let&#8217;s unpack what&#8217;s actually happening in cases like this. <strong>Incentive misalignment</strong> is at work, tightly coupled with the yes-men dynamic. People are rewarded for agreeing, not for being right. They get promoted for alignment, not accuracy.<br>Unfortunately, leadership bears the consequences of bad decisions. Everyone else just wants to keep their jobs, get their bonus, avoid making waves. The incentive structure says: agree, don&#8217;t tell hard truths. Agreement wins over truth-telling, unless you help it.</p><p>I&#8217;m sure you&#8217;ve seen this happening before: first person agrees, second person sees that and follows. Third person sees two agreements and assumes they know something. <strong>Information cascades</strong> are forming before you know it. Suddenly, nobody is thinking independently, everyone is following the crowd. One person&#8217;s opinion becomes the team&#8217;s consensus without anyone actually validating it. The cascade looks like agreement but it&#8217;s just social proof compounding.</p><p>Almost all systems reward yes-men and punish truth-tellers. But the best prepared leaders I&#8217;ve seen know they need dissenters and respect them - even when it&#8217;s not easy to hear. They bring an umbrella to their own parade. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SHaX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SHaX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SHaX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SHaX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SHaX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SHaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:916855,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182793079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SHaX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SHaX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SHaX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SHaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ed44e1a-899e-47a2-b779-85ec17c96e99_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To make this work, you have to intentionally recognize these patterns, point them out, and discuss the good, the bad, and the ugly. It&#8217;s way cheaper than fixing bad mistakes later.</p><p>Now you got your group talking, you dissent - great! I&#8217;ve seen a group of leaders discuss the order of columns in a spreadsheet for more than 45 minutes. We spent only 10 minutes deciding whether they should even build all the things in the spreadsheet. I might have even sparked this discussion with a harmless question. This happens to the best of us.</p><p>Sometimes you&#8217;re involved in this - stop it. Name the waste of time over such trivial decisions, and rather spend time dissenting the big stuff. <strong>Bike-shedding</strong> is intellectual avoidance wrapped in productive-looking debate, and we&#8217;re all guilty of it. Trivial decisions are safe to have opinions about, but they are time wasters.</p><p>Next, humor me and do a little math exercise: calculate <strong>how much a meeting costs</strong>. I do this every time someone&#8217;s late, someone goes on a tangent, or we debate things to death without any action. 1 hour with 8 people? You might have burned a person-day. Oops. </p><p>Don't decide NOT to have meetings ever again, just being mindful about the cost helps having better, more focused meetings, and make chronically late feel at least a little bad about the pattern.</p><p><strong>Redundant thinking</strong> is also problematic, it provides no value. I'm sure you've heard this one before: </p><blockquote><p>&#8220;<em>If two people in the room always agree, then one of them is one person too many</em>.&#8221; </p></blockquote><p>So true. Seek out active disagreement and diverse perspectives to make sure you understand what&#8217;s going on. For most meetings you don&#8217;t need an audience. Audiences don&#8217;t catch your mistakes - they applaud them. What you need are <em>advisors</em>.</p><h3>It&#8217;s all fixable</h3><p>The easiest way not to get labeled as &#8220;difficult person&#8221; or &#8220;high-maintenance&#8221; is to explain others in the meeting that someone should temporarily assume the role of a <strong>devil&#8217;s advocate</strong> and argue against the proposal. Make it their job to find the flaws. Not soft, not too polite, but <em>structured adversarial thinking</em>. Like debate club in school, but for grownups and at work. Rotate the role so everyone gets to be the &#8220;bad cop&#8221; from time to time.</p><p>Most leaders like to talk, like to solve problems, like to have an opinion. But there&#8217;s a trap you can fall into when seeking diverse opinions in a group where you don&#8217;t peers: you speak first. If you do then everyone might just be responding to or echoing your opinion. Listen first, talk later. The most senior person should practice <strong>last to speak</strong>. This is extremely true if you&#8217;re also a person with a loud voice. More introverted team members might need a bit more time and your silence.</p><p>Also, make disagreement mandatory, not optional.<br>&#8220;<em>I need someone to tell me why this is a bad idea</em>&#8221; isn&#8217;t a rhetorical question. It&#8217;s a requirement.</p><p>No dissent means the meeting isn&#8217;t over. Someone has to argue the other side before you decide. Make <strong>dissent obligate</strong>, not optional.</p><h3>The dark side - when leaders actively create yes-men</h3><p>One of the funniest - but in a dark way - and most frequent patterns you might meet out there is <strong>seagull management</strong>. You might have done it yourself. I know I did. </p><p>You fly in, make noise, crap on everything, fly out. You criticize and comment without sufficient context, offer no solutions, and then leave chaos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j0oL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j0oL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j0oL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j0oL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j0oL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j0oL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:853478,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182793079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j0oL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j0oL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j0oL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j0oL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c1a13ba-891c-4cda-a881-8a614ede6c09_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The team is smart. They won&#8217;t bring problems to the seagull anymore. They&#8217;ll just hide them. And you will <em>all live happily without bad news</em>... for a while, until you meet again, usually when least expected. Don&#8217;t be angry with the team then. Rather recognize the seagull management signs before.</p><p>And then there are &#8220;<em>trust me</em>&#8221; decisions, made by authority not merit. Data doesn&#8217;t matter. Logic doesn&#8217;t matter. The hippo&#8217;s gut feeling wins. No, we&#8217;re not in the middle of Africa, but in a room with the <strong>Highest Paid Person</strong> and their <strong>Opinion</strong> (<strong>HiPPO</strong>).</p><p>When such a person is making all the calls, you can forget about critical thinking. You could hire Braveheart and invite them to your meetings, but it&#8217;s better to redesign the system so dissent is expected, safe, and rewarded instead of shushed or fought for with a sword.</p><p>Disagreement should have no penalty. Leader speaks last (remember this one?). <em>Criticism is mandatory before big decisions are made.</em></p><div><hr></div><p>Enough about meetings. The second biggest thing occupying you is probably people development. I know mine is. And people development is <em>what you notice, not what you schedule</em>. Your 1:1s are more important than you might think.</p><h2>1:1s aren&#8217;t status updates</h2><p>One of the trickiest 1:1s are the performance reviews. The last conversation you had with them dominates your view of their performance. They had a rough week, missed a deadline, seemed disengaged in yesterday&#8217;s meeting. Now you&#8217;re sitting in the 1:1 and that&#8217;s all you can think about. The three months of solid work before that? Your brain already forgot.</p><p>You know making a performance review based on this last conversation is unfair. It&#8217;s more common than you&#8217;d expect, and no one is immune to it - the <strong>recency bias</strong>.</p><p>Recency bias means recent events carry disproportionate weight. One bad week erases a good quarter. One tense exchange colors the whole relationship. One missed deadline becomes &#8220;they&#8217;re not reliable.&#8221; But you know better.</p><p>Keep notes between 1:1s. Track patterns over time, not just last week. &#8220;How has this person performed over the last 90 days?&#8221; is a better question than &#8220;how did they perform yesterday?&#8221;</p><p>The last conversation wants to rewrite the whole narrative. Notes prevent that.</p><p>Also related to performance reviews is how you perceive your team members in general. The best or the worst you can do for someone is to think <em>someone has high potential</em> or write them off as <em>not senior material</em>. This is called <strong>Pygmalion effect<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></strong>. </p><p>If you believe someone is high-potential, you give them harder problems, more visibility, better feedback, more of your time. They get more opportunities to grow. They rise to meet your expectations. </p><p>If you&#8217;ve written someone off as <em>not senior material</em>, you stop giving them challenging work. You don&#8217;t invest in their development. You give them the routine stuff. They never get the chance to prove you wrong. They stagnate, confirming your initial belief that they&#8217;re not senior material.</p><p>Your expectations helped create the outcome you expected.</p><p>I&#8217;ve seen the effect of doing both. Personally, I lean into &#8220;high-potential&#8221; until people consistently demonstrate they don&#8217;t want me believing in them. It happens, but rarely.</p><p>This cuts both ways. Expect greatness, you&#8217;ll invest in creating it. Expect mediocrity, you&#8217;ll get it. </p><p>The question isn&#8217;t &#8220;Are they high-potential?&#8221; <br>It&#8217;s &#8220;<em>Am I treating them like they are and did I give them a fair chance?</em>&#8221;</p><p>You have given them a fair chance, now you observe their behavior.</p><p>A team member missed the deadline. Your first thought: &#8220;They&#8217;re not detail-oriented. They don&#8217;t take deadlines seriously. They&#8217;re not ready for more responsibility.&#8221;</p><p>When in reality they had one problem after another. The final scope was much greater than the initial one. No one cared (including you) to ask what challenges they faced, and since they&#8217;re more introverted, when they tried to explain this, no one listened.</p><p>You assumed the person is the problem, not the circumstances - <em>without checking first</em>. The worst scenario is you form a judgement based on this and share it with other leaders.</p><p>This is called the <strong>fundamental attribution error</strong> and needs to be exterminated from leadership like ghost gone bad. I&#8217;m thinking about founding a Ghostbusters-like team to make these evil spirits of attribution errors extinct. It&#8217;s human, but it should not exist.</p><p>Sprinkle your observations with a dose of gray thinking and ask: &#8220;What situational factors am I missing? What&#8217;s the system doing to them?&#8221; The system might be the problem.</p><p>Then go fix the system issue. Join Ghostbusters. If it&#8217;s not the system, you have material for a difficult conversation. But check first, judge later.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NaVY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NaVY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NaVY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NaVY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NaVY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NaVY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:927583,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182793079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NaVY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NaVY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NaVY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NaVY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc89ac7-e6b2-4bf7-8f1d-96625fe01745_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Unmotivated people don&#8217;t work at their full potential. Thank you Captain Obvious.<br>So it&#8217;s up to you <em>to help them be motivated</em>. </p><p>Here&#8217;s a problem: you can&#8217;t do it <em>to them</em> or <em>instead of them</em>. Motivation is similar to change - it has to come from within.</p><p>You&#8217;ve probably noticed this yourself, especially if you ever worked in a startup: people care more when they have <strong>skin in the game</strong>. Give them ownership. Let them make decisions. Let them see the impact of their work on users. </p><p>Nobody washes a rental car.</p><p>You might get by with a big motivational speech now and then, but small, visible wins beat this. Remember how good it feels when you look at the progress you made on meaningful work at the end of the day? Your team is no different. This is the <strong>progress principle</strong> in action. Use it. Celebrate small wins. Replace all-hands pep talks with &#8220;We shipped this feature and three customers immediately adopted it&#8221; when it happens.</p><p>And now one thing we all know but don&#8217;t want to admit: <em>you value what you worked hard for</em>. Same goes for your team. They might say differently, but you&#8217;ll see it in their eyes and the attitude when they think you&#8217;re not watching. </p><p>If they poured effort into something, they&#8217;ll be invested in making it succeed. And the harder they work, the more they&#8217;ll care about the outcome. This is called <strong>effort justification</strong>. Just make sure they work hard <em>on the right thing at the right time</em>, and you can&#8217;t go wrong. Everyone satisfied.</p><p>TL;DR: Motivation isn&#8217;t about finding the right words. It&#8217;s about giving people ownership, showing them progress, and letting them invest effort in something meaningful. But you already know that.</p><p>All is going well, your team thrives, but then you notice some of them going astray a bit after having their big win or two. Overconfidence, over-opinionatedness, not listening, too much of &#8220;<em>I&#8217;ll do it first without thinking, and ask for permission and help with shit shoveling later</em>.&#8221; You know you have to do something, but what?</p><p>Or you have the other extreme. A team member who is full of ideas, performs extraordinarily, is being proactive - suddenly after a recent project or two becomes quiet, withdrawn. Are they looking for another job? Did you say something wrong? What&#8217;s happening?</p><p>In both cases it&#8217;s time to have &#8220;the talk.&#8221; Not about bees and birds, but about a funny little thing called the <strong>Dunning-Kruger effect</strong>. Show them the curve:</p><ul><li><p>Mount Stupid: Just learned something, very confident, doesn&#8217;t see the complexity.</p></li><li><p>Valley of Despair: Started working, discovered the complexity, confidence craters.</p></li><li><p>Slope of Enlightenment: Building competence, understanding the nuance.</p></li><li><p>Plateau of Sustainability: Actual expertise, accurate self-assessment.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t039!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t039!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!t039!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!t039!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!t039!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t039!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:789269,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182793079?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t039!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!t039!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!t039!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!t039!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F059cb583-67d9-446d-a758-4257ed31f432_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In the first case, you would kindly ask the over-confident person to slowly descend from Mount Stupid, because the longer they stay up there, the worse it gets &#8212; although it doesn&#8217;t feel this way to them. But it sure does to others. They&#8217;re just too polite to say it.</p><p>Help the second person come from the Valley of Despair and explain to them it&#8217;s normal to get a bit down when you realize how little you know. But that&#8217;s okay. You&#8217;ll learn, you&#8217;ll fail a bit, you&#8217;ll win a bit, and eventually you&#8217;ll have a healthy relationship with both sides of this.</p><p>There&#8217;s no shame in climbing to the top of Mount Stupid. We all need to go there to see the view. But it&#8217;s a shame to stay there. Also, seeing the Valley is beneficial - a little humbling experience harmed no one. Unless they stayed in the valley. </p><p>In both cases it&#8217;s you who can lend a hand to help them descend or ascend.</p><p>I know the diagram by heart by now, so I can draw it on a whiteboard and explain it to anyone who needs to hear it... or who&#8217;s willing to listen. Care to learn about the Dunning-Kruger effect? If you came this far, you already did.</p><p>If you use your 1:1s only for status updates, you&#8217;re missing out on precious quality time. Personally, I don&#8217;t want to miss the opportunity to do something better with it. Like help people develop and get myself out of the job... eventually.</p><div><hr></div><p>Now that we understand people better, we have to get to another level - to know how to influence people who are not obliged to listen to us, but usually do so. Our other stakeholders.</p><h2>Stakeholders don&#8217;t care about your logic and that&#8217;s ok</h2><p>Let&#8217;s say you need buy-in from stakeholders for a major initiative. Resources, timeline, scope - all require approval. You prepare a deck. You present data. You make logical arguments.</p><p>And it doesn&#8217;t work.</p><p>You&#8217;re confused. The logic is airtight. The data is clear. The proposal solves a real problem. How did this fail?</p><p>I wrote about this before (check &#8220;<a href="https://www.between-code-and-culture.tech/p/debating-physics-in-a-room-full-of?r=1d1aki">Debating physics in a room full of poets</a>&#8220;), but now we&#8217;ll take a look from the lens of mental models.</p><p>You failed because you think stakeholder communication is <em>information transfer</em>. It isn&#8217;t. It&#8217;s <strong>game theory</strong>. It&#8217;s about managing incentives, power dynamics, and perception - not just conveying facts.</p><p>They will rarely want what you want. Most likely their incentives aren&#8217;t aligned with yours. For example, you want to build the right thing long-term. They want to hit quarterly targets. You want sustainable growth. They want to good results in next week&#8217;s exec review.</p><p>The finance stakeholder cares about budget. The sales stakeholder cares about features that close deals this quarter. The compliance stakeholder cares about security aspects and risk mitigation. None of them care about what you care about. They care about their own goals, measured by their own KPIs. And that's ok, that's normal.</p><p>Now that you are aware of the <strong>principal-agent problem</strong> you&#8217;ll understand that assuming alignment is the mistake. Map their incentives instead. Ask yourself: &#8220;What does success look like for them? What are they measured on? What keeps them up at night?&#8221; Then frame your proposal in terms of their goals, not yours.</p><p>Then you might be thinking in years, they&#8217;re thinking in quarters... or vice versa, depending if the board meeting is coming up and they need results before it. Sometimes this <strong>time horizon mismatch</strong> makes alignment nearly impossible, especially when you suggest to address technical debt that won&#8217;t show results for six months, but the stakeholder needs a win this quarter. The quarter wins. Every time.</p><p>You know this is <strong>short-term thinking</strong>. They know it too. But the board meeting is in two weeks, and &#8220;we&#8217;re investing in long-term platform health&#8221; doesn&#8217;t play as well as &#8220;we shipped 3 customer-facing features.&#8221; The incentives are honest about what they reward. You have to be honest about the game you&#8217;re playing.</p><p>When you&#8217;re dealing with stakeholders, even your team members, you can&#8217;t bypass managing their expectations. And managing expectations is <strong>anchoring</strong>. When you set an expectation, you&#8217;re placing an anchor for how people will judge the outcome.</p><p>You set both external and internal expectations.</p><p>Tell a customer a feature ships in Q2, and Q2 becomes the anchor. Ship in late Q1, you&#8217;re a hero. Ship in early Q3, you&#8217;ve failed - even if the feature is excellent. The delivery date matters less than the anchor you set.</p><p>Most SaaS leaders try to impress customers with aggressive timelines. &#8220;We&#8217;ll have that integration done in 2 weeks.&#8221; Now you&#8217;ve anchored expectations high. Miss by a day and you&#8217;ve damaged trust. The aggressive anchor can hurt you.</p><p>Your team&#8217;s morale and performance is also anchored to the expectations you set. Tell them a feature is &#8220;just a quick fix&#8221; and they&#8217;ll resent if it takes a week. Frame it as &#8220;this is complex work&#8221; and a week feels reasonable. Same work, different anchor, different morale.</p><p>Revenue targets work the same way. Set a stretch goal of $1M when $800K is realistic, and hitting $850K feels like failure. The team did well - they beat realistic projections - but they&#8217;re demoralized because they missed the anchor you set. You&#8217;ve turned a win into a loss through bad anchoring.</p><p>This is where we can screw up quarterly planning. Sometimes we set ambitious targets to &#8220;motivate the team,&#8221; which just means setting high anchors. We should not be confused when the team is demoralized after a solid quarter that missed the inflated target.</p><p>The main lesson: The first estimate anchors expectations. Be smart about it. They don&#8217;t say &#8220;underpromise and over-deliver&#8221; for nothing - it&#8217;s a real thing. But beware of extreme <strong>sandbagging</strong>. <em>Add too much buffer and you&#8217;ll lose credibility.</em></p><p>I&#8217;m sure you&#8217;ll find many more examples in your day-to-day work.</p><p>A while back I joked that we could do the anti-pattern of gamification, and build a "wall of shame" feature to encourage more users to one of our tools more and make less mistakes. I swear, I was joking, but what I had in mind is that people feel losses more strongly than equivalent gains. Check the science, it&#8217;s there. This is <strong>loss aversion</strong>.</p><p>So keep this in mind when framing your proposals and let them know (your stakeholders) what they&#8217;ll lose by not doing it, not just what they&#8217;ll gain doing it. &#8220;<em>If we don&#8217;t invest in this, we&#8217;ll lose market share to competitors who are already shipping it</em>&#8221; lands harder than &#8220;<em>if we do this, we might gain some market share</em>.&#8221;</p><p>No need to build internal wall of shame, though. Drop it. It&#8217;s a terrible idea. And it was a bad joke.</p><p>Ready to manage your stakeholders? Not just yet. There is one more thing to keep in mind. </p><p>Most of the time you have context they don&#8217;t have. They have constraints you don&#8217;t see. This gap? The source of misalignment. This is also called <strong>information asymmetry</strong>.</p><p>You know the technical details, the risks, the tradeoffs. They don&#8217;t. You&#8217;re explaining in technical terms. They&#8217;re nodding but not understanding. They know the political dynamics, the budget constraints, the exec priorities. You don&#8217;t. You&#8217;re wondering why they won&#8217;t approve what seems obvious.</p><p>Remember the poets mentioned before? Be the physicist who can read and write poems. Bridge the gap. Translate technical to business impact. Ask about their constraints. Make the invisible visible on both sides.</p><p>Congrats, you&#8217;re all set now&#8230; But are you?</p><p>I&#8217;ve been in stakeholder reviews where everyone nodded enthusiastically. Three hours later, I got five separate 1:1 messages explaining why they actually disagree. Nobody wanted to be the first to object in the room. Everybody wanted to be the one who &#8220;raised concerns privately.&#8221; The meeting was what... a <em>theater</em>? The real decisions happened in Slack DMs afterward.</p><p>What the hell just happened? <strong>Preference falsification</strong>, that&#8217;s what happened. People hide their true preferences to avoid conflict or maintain image. The stakeholder says &#8220;sounds good&#8221; in the meeting. They don&#8217;t mean it. They&#8217;re waiting to see what everyone else thinks before committing.</p><p>So, if you want to prevent all this, help other leaders to create safe spaces for dissent. Ask directly: &#8220;<em>What concerns do you have?</em>&#8221; not &#8220;Everyone good?&#8221; </p><p>Probe for real objections before assuming consensus. Get buy-in 1:1 before the group meeting. Pre-wire the decision. Use the group meeting to formalize, not to negotiate.</p><p>I do this all the time since I banged my head over this pattern for a while. Now I make sure to understand who are the <strong>veto players</strong> &#8212; people who can kill the proposal. Majority support doesn&#8217;t matter if one person can block. If I can&#8217;t convince that person with the arguments, there&#8217;s little chance I&#8217;ll be successful.</p><p>To recap: Stakeholder communication isn&#8217;t THE ONE presentation. It&#8217;s a series of 1:1s building support, pre-wiring decisions, neutralizing objections, creating momentum. By the time you&#8217;re in the room presenting, the outcome should already be decided.</p><p>Now you ARE ready to kick the proverbial butt. Since you know all the patterns now, I&#8217;m confident you won&#8217;t kick your own... too often.</p><div><hr></div><h2>You can&#8217;t unsee this</h2><p>Now you&#8217;ve seen things that can&#8217;t be unseen. Welcome to <em>this</em> side. The view is different here, but very interesting. </p><p>I hope I made you at least think about shifting from reacting to patterns to recognizing them, from wondering why logical things don&#8217;t work to understanding the forces underneath.</p><p>Leadership isn&#8217;t about having all the answers. It&#8217;s about seeing the patterns that create the problems, then redesigning the systems so the problems stop recurring.</p><div class="pullquote"><p>No need to try to be brilliant. Just try to be less wrong, one recognized pattern at a time.</p></div><p>The first time you see one of these patterns, it&#8217;s revelatory. The tenth time, it&#8217;s useful. The hundredth time, it&#8217;s automatic. You stop thinking about the models. You just see the systems.</p><p>That&#8217;s the goal. Not to memorize frameworks. To rewire how you see leadership so you catch problems before they escalate into something draining you and your team of precious energy and time.</p><p>Start with the pattern that&#8217;s costing you the most right now. </p><div><hr></div><p><em>Part of a series on mental models: how to be less wrong, not be an idiot, lead without breaking your team, and build things without losing your sanity.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>The concept is named after the Greek myth of Pygmalion, a sculptor who fell in love with his statue, which then came to life.</p><p></p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[How not to be an idiot]]></title><description><![CDATA[Mental models for catching yourself being wrong]]></description><link>https://www.between-code-and-culture.tech/p/how-not-to-be-an-idiot</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/how-not-to-be-an-idiot</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Thu, 08 Jan 2026 06:44:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ul3P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last time we covered six mental models for thinking clearly: how to think through consequences, see systems, understand people, and avoid false binaries.</p><p>Those are active frameworks. You apply them when you&#8217;re making decisions or navigating conflict.</p><p>But even with the best thinking tools, your brain still sabotages you. Mine does it constantly. It over-weights vivid events. It follows crowds without checking if they&#8217;re right. It rewrites history to make us feel smarter. It curates information to confirm what we already believe.</p><p>We can&#8217;t think our way out of these. They&#8217;re hardwired. <strong>The only fix is catching them before they cost us.</strong></p><p>These are <strong>cognitive biases</strong>: systematic errors in how you process information and make decisions. Everyone has them. Smart people, dumb people, you, me, everyone. </p><div class="pullquote"><p>Intelligence doesn&#8217;t protect you. If anything, it makes you better at rationalizing the bias after the fact.</p></div><p>The goal isn&#8217;t to eliminate biases. You can&#8217;t. The goal is to recognize the pattern early enough to question it.</p><h2>Recognizing your biases</h2><p><em>Your brain lies to you. Catch it before it costs you.</em></p><h3>Availability bias</h3><p>You over-weight recent or memorable events. If something just happened or was dramatic, you think it&#8217;s more common than it actually is.</p><p>Your friend got food poisoning from a restaurant. Now you won&#8217;t eat there. They serve thousands of meals safely every week. Your friend had one bad experience. But that one vivid story (your friend getting sick) outweighs all the unremarkable safe meals. The restaurant hasn&#8217;t changed, but your perception of the risk has.</p><p>You saw a viral post about AI screwing up, giving terrible advice, confidently hallucinating wrong answers. Now you think AI is completely unreliable. Meanwhile, you&#8217;ve used AI-powered tools successfully all day: Google search found what you needed, autocorrect fixed your typos, Netflix recommended something you actually liked, spam filter caught the junk. Dozens of quiet successes. One dramatic failure. Which one shapes your perception? Your brain curates content like a tabloid editor. Drama gets the headline. Everything working as expected doesn&#8217;t.</p><p>Someone got fired at your company. Suddenly everyone thinks they&#8217;re next. People are updating resumes, looking at job boards, whispering about layoffs. Reality: one person got fired for performance issues, it happens once a year, your job is fine. But that one firing is vivid and recent, so it feels like the start of mass layoffs. The fear isn&#8217;t proportional to the actual risk. One dramatic event rewrites the whole narrative. One hundred boring days of nothing happening? Your brain already forgot those.</p><p>There was one incident at a party where some young people got into a fight. Now everyone in the neighborhood thinks all parties with young people will end in a brawl. The community meeting is full of people saying &#8220;we need to ban these parties.&#8221; Reality: it&#8217;s the first incident in years. Hundreds of parties happened without problems. But that one incident is what everyone remembers.</p><p>We do this with everything. One plane crash on the news, suddenly flying feels dangerous (even though you drive every day, which is statistically riskier). One break-in in the neighborhood, suddenly the whole area &#8220;isn&#8217;t safe anymore&#8221; (even if it&#8217;s the first incident in five years). One friend&#8217;s startup failed, suddenly all startups feel like bad ideas.</p><p>The pattern: recent and vivid beats frequent and boring. One dramatic story outweighs a thousand unremarkable data points.</p><p>Your brain isn&#8217;t trying to be accurate. It&#8217;s trying to be efficient. Vivid memories are easy to recall. Boring, uneventful patterns are hard to remember. So when you ask yourself &#8220;is this risky?&#8221; your brain answers based on what&#8217;s easiest to remember, not what&#8217;s actually true.</p><p>The fix isn&#8217;t to ignore recent events. It&#8217;s to ask: &#8220;<strong>Is this one event representative, or is it an outlier? What does the actual data say? What&#8217;s my sample size?</strong>&#8221; One firing doesn&#8217;t mean layoffs are coming. One bad party doesn&#8217;t mean all parties are dangerous. One hallucination doesn&#8217;t mean AI is useless.</p><p>Check whether you&#8217;re reacting to a pattern or reacting to the most memorable example. </p><p>Spoiler: it&#8217;s usually the memorable one. Our brains are terrible at statistics but excellent at remembering drama.</p><p>Your brain tricks you with vivid memories. It also tricks you with crowds.</p><h3>Bandwagon effect</h3><p>You do something because everyone else is doing it, without questioning whether it makes sense for you.</p><p><em>Everyone&#8217;s</em> investing in crypto. Your coworkers are talking about it, your friends are making money (or saying they are), it&#8217;s all over the news. So you invest. You don&#8217;t understand what blockchain actually is. You can&#8217;t explain how it works. You&#8217;re not sure why this specific coin is valuable. But everyone else is doing it, so it must be smart. Then the market crashes and you realize you were following the crowd into something you never understood. You&#8217;ve just enrolled in the expensive school of crowd-following. Tuition: whatever you invested.</p><p><em>Everyone&#8217;s</em> trashing someone online. You see the pile-on, read a few angry posts, and join in. You don&#8217;t know the full story. You haven&#8217;t verified the claims. You just saw everyone else doing it, so it must be deserved. The <em>hate wagon</em> feels righteous when you&#8217;re part of the crowd. Later you find out the story was more complicated, or wrong, or taken out of context. But the damage is done and you were part of it.</p><p><em>Everyone's</em> watching Game of Thrones. I resisted for two years because I didn't want to be part of the mainstream hype. When I finally gave in, I realized I could have been enjoying it all along. The only upside to waiting? I got to binge-watch it. Which meant watching every obvious protagonist die in a single day instead of spread across weeks. It hurt. I was still doing bandwagon thinking, just the contrarian version. Resisting something just because everyone else is doing it is still letting the crowd make your decision.</p><p><em>Everyone's</em> saying "real writers don't use AI." I don&#8217;t have time to learn all the superior writing skills, but I have something to say and want to share it. For me as a non-native English speaker, writing is sometimes like walking through Death Valley. I have to get to the other side fast, but I can't, I'm dehydrated. But I have a flask of water in my hand: AI tools. Should I die in the valley and stay quiet? Torture my readers with clunky prose, slowly dragging my feet through the heat? Or take a sip now and then and keep moving faster? You tell me. If you're in the same spot, are you on a bandwagon of artificial purity, willing to die? Or are you prepared to ask yourself "would this tool actually help me?" Not everything is cheating. Not every puritanism makes sense.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ul3P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ul3P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ul3P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ul3P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ul3P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ul3P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:714538,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182679252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ul3P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ul3P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ul3P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ul3P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ed18391-120b-4b06-9be6-0776c3a36e05_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The bandwagon works both ways. Following the crowd. Resisting the crowd just to be different. Either way, you&#8217;re letting everyone else&#8217;s behavior make the decision instead of thinking for yourself.</p><p>The pattern: popularity becomes the reason. &#8220;Everyone&#8217;s doing it&#8221; becomes the justification. You skip the part where you ask &#8220;does this make sense <em>for me</em>?&#8221;</p><p>The fix: pause before following. Ask: &#8220;If nobody else was doing this, would I still think it&#8217;s a good idea? What problem does this solve for me? Do I actually understand what I&#8217;m signing up for?&#8221;</p><p>Sometimes the crowd is right. Sometimes everyone&#8217;s adopting something because it genuinely works. But &#8220;everyone else is doing it&#8221; isn&#8217;t evidence. It&#8217;s just momentum. <strong>Check whether you&#8217;re making a decision or just following traffic.</strong></p><p>Following crowds without thinking is one trap. Rewriting history to make yourself look smart is another.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/p/how-not-to-be-an-idiot?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/p/how-not-to-be-an-idiot?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h3>Hindsight bias</h3><p>After something happens, you convince yourself you knew it all along. Hindsight bias makes past events seem obvious, even though they weren&#8217;t obvious at the time.</p><p>Your friends break up. &#8220;I knew they weren&#8217;t right for each other.&#8221; But when they got together, you didn&#8217;t say anything. You didn&#8217;t warn anyone. You went to their wedding and smiled in the photos. Now that it&#8217;s over, you remember every red flag like you predicted this from day one. You&#8217;re rewriting history. The relationship had problems, sure. Most relationships do. But you didn&#8217;t &#8220;know&#8221; they&#8217;d break up. You just think you did because you know the ending.</p><p>Someone you admire launches a business. You&#8217;re a little envious. They&#8217;re doing something bold, and you&#8217;re watching from the sidelines. A year later, it fails. &#8220;I knew that wouldn&#8217;t work.&#8221; But when they announced it, you didn&#8217;t say that. You thought &#8220;maybe they&#8217;ll succeed and I&#8217;ll regret not doing something similar.&#8221; Now that it failed, you remember every flaw in their plan like it was obvious. You&#8217;re not smarter than them. You just have the ending, and the ending makes everything look predictable.</p><p>Hindsight bias is especially harsh on people you secretly envy. When they succeed, it stings. When they fail, you retroactively claim you saw it coming. It&#8217;s a way to protect yourself. If their failure was obvious, then you weren&#8217;t wrong to play it safe. You were smart. They were reckless. Except you didn&#8217;t think that at the time. You thought they were brave and you were stuck. Hindsight turns envy into retroactive wisdom. It&#8217;s easier than admitting you&#8217;re rewriting the story.</p><p>Your team loses the game. &#8220;I knew they&#8217;d choke under pressure.&#8221; Except before the game, you said they had a good chance. You wore the jersey. You hoped they&#8217;d win. After they lose, you remember every mistake, every missed opportunity, every sign they weren&#8217;t ready. It all seems obvious now. It wasn&#8217;t obvious when the game started. You&#8217;re experiencing the outcome and pretending you predicted it.</p><p>The problem isn&#8217;t that you feel smart. It&#8217;s that hindsight bias prevents learning. If you think you &#8220;knew it all along,&#8221; you don&#8217;t ask &#8220;what did I actually miss?&#8221; You don&#8217;t update your thinking. You don&#8217;t examine why you didn&#8217;t act on this supposed knowledge. You just rewrite history to make yourself the person who saw it coming.</p><p>This makes you overconfident about predicting the future. If everything seems obvious in hindsight, <strong>you start thinking you&#8217;re good at forecasting</strong>. Turns out those are different skills. Retroactive pattern matching doesn&#8217;t help you predict the future. One is useful. The other is a cognitive trap.</p><p>The fix: before the outcome is known, write down what you actually think will happen. When the outcome arrives, compare your prediction to what you claimed you &#8220;knew all along.&#8221; The gap between what you predicted and what you claim you predicted is hindsight bias. It&#8217;s humbling. It&#8217;s also the only way to get better at actually predicting things instead of just pretending you did.</p><p>Hindsight bias makes you <em>feel smarter than you are</em>. Filter bubble makes you <em>feel more informed than you are</em>.</p><h3>Filter bubble</h3><p>You only consume information that confirms what you already believe. Your social media feed shows you more of what you engage with. Your news sources align with your politics. Your friends think like you. Your professional circle shares your perspective. You think you&#8217;re well-informed. You&#8217;re actually seeing one slice of reality on repeat.</p><p>Your social feed is full of posts about how terrible X is. Everyone you follow agrees X is terrible. The algorithm shows you more anti-X content because that&#8217;s what you engage with. You see ten posts a day confirming X is the worst. You never see the reasonable defense of X, the nuanced take on X, or the data showing X isn&#8217;t as bad as your feed makes it look. You think the whole world agrees with you. Half the world doesn&#8217;t, you&#8217;re just not seeing them.</p><p>You only read news from sources that match your worldview. Conservative sources if you lean right. Progressive sources if you lean left. Tech publications that celebrate your favorite framework. Business outlets that confirm your management philosophy. You&#8217;re not getting news. You&#8217;re getting your existing beliefs reflected back at you with a &#8220;breaking news&#8221; banner - confirmation that you&#8217;re right, which feels great until reality has a different opinion. The information that contradicts your view exists, you&#8217;re just not consuming it.</p><p>You only hang out with people who think like you. Same industry, same role, same politics, same life stage, same worldview. When you ask for opinions, you ask people you know will agree with you. &#8220;Should I take this job?&#8221; You ask three friends who already think like you. They all say yes (or all say no). You feel validated. You didn&#8217;t get diverse perspectives. You got confirmation bias on steroids.</p><p>I&#8217;ve been intentionally building the opposite for years. I seek out friends who aren&#8217;t afraid to tell me I&#8217;m wrong. People who aren&#8217;t so fond of me that they&#8217;ll soften the blow. I need the mirror from Snow White &#8212; the one that told the Queen what she <em>needed</em> to hear, not what she <em>wanted</em> to hear. Turns out it&#8217;s easier to find than I expected. Plenty of people are happy to tell me I&#8217;m wrong. It&#8217;s uncomfortable. It&#8217;s also the only way to get actual feedback instead of validation disguised as advice.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Cyem!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cyem!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cyem!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cyem!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cyem!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cyem!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:945339,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182679252?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Cyem!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cyem!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cyem!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cyem!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d5f504-11d8-43d2-abda-18c52af2ac6f_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The filter bubble makes you fragile. You&#8217;re not stress-testing your ideas against opposing views. You&#8217;re not encountering arguments that challenge your assumptions. When reality contradicts your bubble, you&#8217;re blindsided. &#8220;How did he win the election? Nobody I know voted for him.&#8221; Because your bubble isn&#8217;t representative. It&#8217;s comfortable, but it&#8217;s not reality.</p><p>The fix isn&#8217;t to consume everything. It&#8217;s to <strong>actively seek out perspectives that make you uncomfortable</strong>. Read one source that disagrees with you. Talk to someone outside your industry. <strong>Ask for opinions from people who might challenge you</strong>. Follow someone who thinks differently.</p><p>You don&#8217;t have to agree with opposing views. But you should know they exist, understand why people hold them, and be able to argue against them without caricaturing them.</p><p>The pattern: if everyone around you agrees all the time, you&#8217;re not informed. You&#8217;re insulated. Break the bubble before it breaks you.</p><h2>Where to start</h2><p>You don&#8217;t need to focus on all four. Start with the one that&#8217;s costing you the most right now.</p><p>Seeing patterns everywhere after one dramatic event? That&#8217;s <strong>availability bias</strong>. Ask: &#8220;Is this representative or just memorable?&#8221;</p><p>Following what everyone else is doing without questioning it? <strong>Bandwagon effect</strong>. Ask: &#8220;If nobody else was doing this, would I still think it&#8217;s smart?&#8221;</p><p>Convinced you saw it coming after the fact? <strong>Hindsight bias</strong>. Write down predictions before outcomes happen.</p><p>Everyone you talk to agrees with you all the time? <strong>Filter bubble</strong>. Actively seek out one perspective that challenges you.</p><p>Remember: the goal isn&#8217;t to eliminate biases, but to catch them early enough to question whether you&#8217;re reacting to reality or to the way your brain distorts it. Catch yourself before the bias makes the decision for you.</p><p>Mental models won&#8217;t make you smarter. They&#8217;ll <em>make you wrong less often</em>. Which, honestly, is better than being <em>confidently wrong</em> more often.</p><p>Start today. Pick one bias. Watch for it. Notice when it shows up. The rest will build from there.</p><div><hr></div><p><em>Part of a series on mental models: how to be less wrong, not be an idiot, lead without breaking your team, and build things without losing your sanity.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Mental models for thinking clearly]]></title><description><![CDATA[In the age of AI answers, critical thinking is your edge]]></description><link>https://www.between-code-and-culture.tech/p/mental-models-for-thinking-clearly</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/mental-models-for-thinking-clearly</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Tue, 06 Jan 2026 06:36:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2hIm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was building a product strategy for a side project, partly for the project, partly to stretch my AI muscles and see what it could handle.</p><p>I fed ChatGPT my strategy and asked if it made sense.</p><p>ChatGPT said it was brilliant.</p><p>It wasn&#8217;t. The strategy was based on assumptions about user behavior that weren&#8217;t true, targeting a market that didn&#8217;t exist, with a go-to-market plan I hadn&#8217;t validated at all.</p><p>ChatGPT had no idea. It just confidently told me why my broken strategy was solid.</p><p>AI doesn't push back unless you make it your sparring partner in critical thinking. But that requires you to know <em>what</em> to ask it to challenge.</p><p>This is where we are now. You can get an answer to any question in thirty seconds: whether it's a <em>good</em> answer, whether you're even asking the <em>right</em> question, whether the assumptions baked into your prompt are fundamentally broken. It doesn&#8217;t say &#8220;<strong>wait, have you thought about this?</strong>&#8221; </p><p>None of that shows up in the response, unless you explicitly prompt for it.</p><p>That&#8217;s why critical thinking matters more now, not less.</p><h2>What AI won&#8217;t do for you</h2><p>AI is incredible at pattern matching, synthesis, and generation. It can help you think through problems, identify risks, challenge assumptions - when you give it the right context and explicitly ask it to.</p><p>The problem isn&#8217;t that AI can&#8217;t do these things. It&#8217;s that it makes it too easy to skip the hard thinking.</p><p>You can get a plausible-sounding answer without doing the work to:</p><ul><li><p>Frame the question properly</p></li><li><p>Surface your assumptions so they can be challenged</p></li><li><p>Verify the output against reality</p></li><li><p>Catch when you&#8217;re solving the wrong problem entirely</p></li><li><p>Notice when your confidence about an estimate means you&#8217;re missing complexity</p></li></ul><p>AI will confidently answer the question you asked. It won&#8217;t tell you that you asked the wrong question. It won&#8217;t push back unless you explicitly prompt it to. It won&#8217;t know that the last three times this pattern appeared in your specific context, it failed for reasons you&#8217;re about to ignore again.</p><p>Critical thinking is the gap between &#8220;this sounds good&#8221; and &#8220;this will actually work.&#8221; It&#8217;s the difference between building the thing efficiently and building the right thing. It&#8217;s what stops you from spending six months on a strategy that seemed brilliant when you asked about it but reality says is broken.</p><p>AI can amplify your thinking. It can&#8217;t replace the judgment that comes from experience, stakes, and the discipline to question what you&#8217;re actually trying to accomplish.</p><p>That&#8217;s why critical thinking matters more now, not less. The tool gives you answers faster. <strong>You still need to know which questions to ask.</strong></p><p>And it&#8217;s not just about work.</p><p>You need critical thinking when:</p><ul><li><p>Reading news and trying to separate signal from noise</p></li><li><p>Making family decisions about schools, moves, careers</p></li><li><p>Evaluating advice from experts who might be confidently wrong</p></li><li><p>Understanding why your team keeps having the same problem</p></li><li><p>Deciding if this new framework/methodology/tool is actually better or just shinier</p></li></ul><p>I had a moment of panic while preparing this series. Just when I gave myself a pat on the back to finish fourth out of six essays in this series, I read in one of the online articles how AI made mental models obsolete, that the frameworks we&#8217;ve relied on for decades don&#8217;t apply anymore. I&#8217;d just spent hours on these essays about mental models for leaders and ICs. Hours. And now I&#8217;d have to throw everything away? Does it even make sense to write anything? It&#8217;s over. I&#8217;m doomed.</p><p>But then I smacked myself. I <em>don&#8217;t do</em> panic. I <em>do</em> critical thinking. OK, some things have changed more than others. AI does change the context. But mental models aren&#8217;t rules or laws that break when technology shifts. They&#8217;re mechanisms that help us think better, be wrong less often, see patterns we&#8217;d otherwise miss. Yes, AI is full of biases and we need to spot them. Yes, we need to understand how AI changes the game. But that doesn&#8217;t make all the thinking frameworks obsolete. Some of them survived centuries, other decades, they survived technological advances and war. People have changed, but not so much. </p><p>Not everything is lost. Everything just got more interesting. AI hasn&#8217;t kill mental models, it just gives them an additional perspective to weave in.</p><p>Crisis averted, now let&#8217;s see the role mental models play in critical thinking.</p><h2>Mental models: thinking tools, not formulas</h2><p>Mental models are frameworks for thinking. They help you recognize patterns you&#8217;ve seen before, catch mistakes before you make them, and see systems instead of just symptoms.</p><p>They&#8217;re not formulas. They&#8217;re not rules. They&#8217;re more like lenses: different ways of looking at the same problem that reveal different aspects of it.</p><p>Most people operate at the event level. Something happens, they react. The system keeps creating the same events, they keep reacting the same way, nothing changes.</p><p>Mental models work at a different level. Think of it like an <strong>iceberg</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2hIm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2hIm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2hIm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2hIm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2hIm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2hIm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:655425,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182667576?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2hIm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2hIm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2hIm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2hIm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd2ed8d5f-458f-49ff-be78-3f35ccfdc166_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Events</strong> are what you see on the surface. You&#8217;re broke at the end of the month. Again.</p><p><strong>Patterns</strong> are below the surface. This happens every month. That&#8217;s a pattern, not a one-time event.</p><p><strong>Structures</strong> are deeper still. Why does the pattern exist? Impulse purchases. No budget. Lifestyle inflation. The structure creates the pattern which creates the events.</p><p><strong>Mental models</strong> are at the bottom. The beliefs and assumptions that generate everything above. &#8220;I deserve nice things now.&#8221; &#8220;Budgets are restrictive.&#8221; &#8220;I&#8217;ll make more money later.&#8221; These mental models create the structures, which create the patterns, which create the events.</p><p>Most people see the event and react. &#8220;I&#8217;ll be more careful next month. I&#8217;ll cut back on coffee.&#8221; They&#8217;re treating symptoms.</p><p>People who use mental models see the iceberg. They question the assumptions creating the structure. &#8220;Why do I believe budgets are restrictive? What if tracking spending gives me more freedom, not less?&#8221; They fix the root cause. They stop getting the same event on repeat.</p><p>That&#8217;s what these frameworks do. They help you see past the surface to what&#8217;s actually creating the problem.</p><p>Some mental models come from specific domains: <strong>systems thinking</strong> from engineering, <strong>opportunity cost</strong> from economics, <strong>Occam&#8217;s Razor</strong> from philosophy. But here&#8217;s the interesting part: the best ones (the super models) turn out to be useful everywhere. A framework from biology helps you understand organizational dynamics. A concept from physics clarifies a product decision. A tool from psychology explains why your deployment process keeps failing.</p><p>The value isn&#8217;t in memorizing models. It&#8217;s in <strong>building a library of thinking tools</strong> you can reach for when you&#8217;re stuck, when something feels off, when everyone agrees but you&#8217;re not sure why.</p><h2>How this series works</h2><p>There are hundreds of mental models. Some are more relevant than others. Some apply broadly, others fit specific contexts. They&#8217;re guides, not laws. You adapt them, you mix them, you use what works and ignore what doesn&#8217;t.</p><p>This essay covers <strong>how to actually think</strong> - mental models for making decisions and understanding people. The frameworks you need whether you&#8217;re evaluating a career move, trying to understand why your friend is upset, or figuring out why the &#8220;solution&#8221; keeps making things worse.</p><p>The next essay covers <strong>how not to be an idiot</strong> - mental models for catching your cognitive biases before they cost you.</p><p>After that: <strong>models</strong> that matter specifically <strong>for</strong> <strong>leaders</strong> - when you&#8217;re making decisions that affect teams, strategy, and organizations.</p><p>And finally: <strong>models for engineers</strong> - when you&#8217;re writing code, making technical decisions, solving engineering problems.</p><p>But here&#8217;s the key: <strong>these aren&#8217;t mutually exclusive</strong>. The foundational models apply to leadership and engineering. The leadership models work for ICs at tactical scale. The engineering models work for leaders at strategic scale. The difference is the level you&#8217;re operating at, not the thinking tool itself.</p><p>Leaders apply these at organizational scale. ICs apply them at technical scale. You apply them to life. Same tools, different contexts. <strong>I&#8217;ll show you the patterns. You do the adaptation.</strong></p><h2>The models that matter (for everyone)</h2><h3>Making decisions</h3><p><em>Think through consequences before you commit</em></p><h4>Second-order thinking</h4><p>Most people think one move ahead. &#8220;If I do this, what happens?&#8221; <br>Second-order thinking asks: &#8220;And then what? And after that?&#8221;</p><p>You buy something expensive you can&#8217;t really afford. First-order thinking: I want this, I&#8217;ll figure out the payments. Second-order thinking: And then what? Monthly payments strain your budget. You start cutting other things. The thing needs maintenance you didn&#8217;t budget for. Six months later you&#8217;re stressed about money, resenting the purchase, and the initial joy is long gone. The thing you bought to make life better made it worse.</p><p>You quit your job without a plan or savings. First-order: I'm finally free from this place. Second-order: And then what? Panic sets in after a month. You take the first job offer out of desperation, which is worse than what you left. Or you burn through savings and now you're anxious about money instead of anxious about work. You traded one stress for a different, often worse, stress.</p><p>What if you know about the second-order mental model and think two or three steps ahead <em>before</em> taking the (usually) irreversible decision? You prepare, you plan, you make your exit strategy, you find someone trustful for advice, then when the time is right, you take the job offer <em>you want</em>, not the one <em>you need in desperation</em>.</p><p>Now you&#8217;re new at the job and you say yes to everything because you want to be helpful. First-order: People like you, you're reliable. Second-order: You're burned out. Quality of your work drops. You start resenting the commitments. People stop trusting you because you're spread too thin. The very thing you did to be helpful makes you unreliable. </p><p>However... knowing second-order thinking helps you understand that managing your energy and time is important, your commitments are important, too. You look for advice on how to set healthy boundaries, how to say no and still be helpful, AI can be great sparring partner and can prepare you for this.</p><p>You send the angry email. First-order: Feels good, got it off your chest, they needed to hear it. Second-order: Relationship damaged. Trust broken. Now the original problem is worse because you can't have a reasonable conversation anymore. And you can't unsend it. The internet is forever, your regret is also forever, and you get to feel it fresh every time you see them on Zoom, at the cafeteria, in the hallway. </p><p>Luckily, this movie unwinds in your head before you hit send. You vent, but you do it in a document you delete afterwards, or email you don't send, and wake up in a morning you don't regret. You still get angry, but you start learning about how to have difficult conversations instead.</p><p>You ask ChatGPT about a medical symptom or legal question. First-order: You got an answer, it sounds authoritative, problem solved. Second-order: The answer is confident but wrong. You act on it. The medical advice makes things worse. The legal interpretation costs you money or gets you in trouble. Its confidence lulled you into thinking, you don't need to fact check. You do. </p><p>So do it, before you act on it. Instruct AI to cross-reference advice, to suggest what could happen next, what could go wrong. If you lucky, you might have friends who are experts in the field, cross-check with them.</p><p>First-order thinking optimizes for immediate outcome. <strong>Second-order thinking asks what that outcome creates, and what </strong><em><strong>that</strong></em><strong> creates.</strong></p><p>We don&#8217;t need to think ten moves ahead. Two or three is enough. We just need to ask: &#8220;This works. And then what happens? What does that enable or prevent? What am I not seeing?&#8221;</p><p>Most regrets come from first-order decisions. We saw the immediate benefit, but missed the downstream cost. </p><p>Thinking two or three moves ahead reveals consequences. Most of the time we&#8217;re more than capable of doing this. But even when we see potential consequences, we still have to choose. That&#8217;s where explicit tradeoffs come in.</p><h4>Cost-benefit analysis</h4><p>Every decision has tradeoffs. Cost-benefit analysis makes them explicit instead of letting you pretend they don&#8217;t exist. No more putting the head in the sand. Ostriches don&#8217;t do it, neither should you.</p><p>You want a new car. The benefit is obvious: reliable, safe, looks good, better commute experience. But what&#8217;s the actual cost? Not just the sticker price. Higher insurance. Maintenance. Depreciation the moment you drive off the lot. Monthly payments strain your budget. You&#8217;re committing to years of car payments. The question isn&#8217;t &#8220;can I afford this payment?&#8221; It&#8217;s &#8220;is this car worth more to me than everything else I could do with that money over the next five years?&#8221;</p><p>Most people only see the benefits. They imagine themselves in the new car, not the stress of the payment when an unexpected expense hits. Cost-benefit analysis forces you to look at both sides honestly.</p><p>Here&#8217;s another tricky one. You&#8217;re deciding whether to stay at your current job or leave. Cost of staying: opportunity cost of higher pay elsewhere, frustration with things that won&#8217;t change, career stagnation if you&#8217;re not growing. Benefit of staying: stability, relationships you&#8217;ve built, domain expertise, known problems vs. unknown ones. Cost of leaving: risk of new job not working out, starting over with new people, losing seniority, disruption to life. Benefit of leaving: potentially better pay, growth opportunity, fresh start, escape from current frustrations.</p><p>When you write it out, the decision gets clearer. If the main reason to stay is fear of the unknown and the main reason to leave is growth plus money, that&#8217;s data. If the reason to stay is you&#8217;re genuinely learning and the reason to leave is just more money, different calculus.</p><p>Or maybe you decided not to leave and you&#8217;re thinking about asking for a promotion. Cost: potential rejection, awkwardness if they say no, increased responsibility and stress if they say yes, relationship strain if you handle it poorly. Benefit: more money, better title, expanded scope, career trajectory. Is the benefit worth the cost? Depends on whether you&#8217;re ready for the increased responsibility, whether the timing is right, whether your relationship with your manager can handle the ask. You know the saying &#8220;<em>Be careful what you wish for</em>&#8221;. I wonder how Eminem and Metallica songs with this lyrics would turn out with cost-benefit model applied.</p><p>Here&#8217;s one of mine. I was thinking if it&#8217;s worth it to purchase a subscription for a specific AI tool. I could keep on using another one that&#8217;s free. But... I&#8217;ve heard the paid version of this specific tool has much better models and much better results. I could go YOLO and purchase yearly subscription or... I could weigh the costs and benefits of different specific tools out there. What can they do? What can I use them for? Will I use it just for writing, or for programming or something else completely? Is subscription the only cost? Oh, I wasn&#8217;t losing sleep over $20 a month, more like 10x this. Worth giving it a thought. If you&#8217;re wondering, I did purchase it. I haven&#8217;t regretted a single moment.</p><div class="pullquote"><p><em>Cost-benefit analysis doesn&#8217;t give you the answer. It makes you honest about what you&#8217;re trading.</em></p></div><p>It&#8217;s January. Everyone&#8217;s making resolutions. Gym membership, meal prep, moving closer to work. Cost-benefit analysis cuts through the optimism.</p><p>Gym membership costs are money, time (including commute to gym), effort, and required consistency. Benefit is fitness and health, but only if you actually go. The January gym is full of people who paid for the benefit without accounting for the cost. Three months later, they&#8217;re paying for a membership they don&#8217;t use. Honest cost-benefit analysis asks: will I actually go three times a week? If not, the cost is pure waste. February gym is full of empty treadmills and people who learned this lesson. Impulsiveness and gym don&#8217;t work well together.</p><p>For meal prep at home cost is time (shopping, cooking, cleaning), effort, planning, learning curve if you&#8217;re not good at it. Benefit is money saved, healthier eating, control over ingredients. But if meal prep takes three hours every Sunday and you hate every minute, you&#8217;ve turned Sunday into a punishment for wanting to eat healthy. Congratulations, you&#8217;ve gamified resentment. Is the money saved worth it? Maybe yes if you&#8217;re broke and need to save money. Maybe no if your time is better spent elsewhere and you can afford convenience.</p><p>Now let&#8217;s take a look at moving closer to work. Cost is moving expenses, potentially higher rent, leaving your current neighborhood and the life you&#8217;ve built there. Benefit is time saved on commute (maybe an hour a day), less stress, more sleep, better quality of life. Is an extra hour a day worth higher rent? For some people, absolutely. For others, the cost isn&#8217;t worth it. There&#8217;s no universal answer. Cost-benefit analysis makes your specific tradeoff visible.</p><p>When doing this, list the real costs (not just money). List the real benefits (not just the fantasy version). Compare honestly. Then decide if the tradeoff makes sense for you, not for someone else.</p><p>Making tradeoffs explicit helps with isolated decisions. But most problems aren&#8217;t isolated - <em>they&#8217;re part of larger systems</em>.</p><h4>Systems thinking</h4><p>Most people see problems as isolated events. Systems thinking sees <strong>the structure that keeps creating the problem</strong>.</p><p>During British colonial rule in Delhi, the government had a cobra problem. Venomous snakes, public safety risk, something had to be done. They offered a bounty for every dead cobra. Seemed logical: create an incentive, reduce cobras, problem solved.</p><p>What actually happened: people started breeding cobras to collect the bounty. When the British discovered this and cancelled the program, breeders released their now-worthless snakes. Result: more cobras than before.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FPF5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FPF5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FPF5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FPF5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FPF5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FPF5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:887060,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182667576?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FPF5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FPF5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FPF5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FPF5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c07049-e20c-4baf-8239-d5aecc415692_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the <em>cobra effect</em>, now a standard case study in economics and public policy, a well-documented example of so called <em>perverse incentives</em>. A solution that makes the problem worse because it ignores how the system actually works.</p><p>Here&#8217;s what systems thinking would have caught:</p><p><strong>Wrong feedback loop.</strong> The British expected a balancing loop: bounty leads to fewer cobras, problem solved. They got a reinforcing loop: more cobras leads to more money, which incentivizes breeding more cobras, which creates even more cobras. The incentive structure rewarded the opposite of what they wanted.</p><p><strong>Measuring the proxy, not the goal.</strong> They optimized for dead cobras (easy to verify, easy to pay for) instead of reduced cobra population (the actual goal). The metric became the target. When you reward the metric instead of the outcome, people optimize for the metric. This is how you get cobra farms.</p><p><strong>Linear thinking in a systemic problem.</strong> Their mental model was simple cause and effect: incentive leads to desired behavior leads to problem solved. They ignored how the human economic system would interact with the ecological system. People respond to incentives rationally, but rationally doesn&#8217;t always mean the way you want. Systems thinking maps these interconnections before implementing the policy.</p><p><strong>Ignoring delays.</strong> The unintended consequences weren&#8217;t immediate. There was a delay while breeding operations scaled up. By the time the British caught on, the perverse incentive was entrenched and the cobra population had exploded. Systems often have delays between action and consequence. The delay masks the problem until it&#8217;s too late.</p><p><strong>System boundaries drawn too narrowly.</strong> They treated it as a simple &#8220;cobra removal&#8221; problem. They excluded human economic behavior, market dynamics, and rational self-interest from their analysis. When you draw the system boundary too narrowly, you miss the forces that will undermine your solution.</p><p>Systems thinking would have asked: &#8220;<strong>What behavior does this incentive actually create? What&#8217;s the feedback loop? How might people game this? What are the second-order effects? What am I not seeing?</strong>&#8221; The answer reveals the flaw before you&#8217;ve made the problem worse.</p><p>Same pattern plays out with AI content recommendations. You use AI to filter news, choose what to read, recommend what to watch. The AI optimizes for engagement&#8212;keeping you clicking. Seems helpful. Enter the primary loop. AI shows you content similar to what you engaged with before. You see more of the same perspective. Your view narrows. The algorithm interprets your narrowing as preference and doubles down.</p><p><strong>But there are other loops running simultaneously.</strong> Content creators see what gets engagement and produce more of it. Now the supply itself is shifting to match your bubble. You&#8217;re not just filtering a neutral information stream, you&#8217;re reshaping what gets created.</p><p>When you share AI-recommended content, your network sees it, engages with similar content, and their algorithms shift. Your bubble and their bubble start reinforcing each other. Social validation makes both of you more confident you&#8217;re seeing reality clearly.</p><p>Meanwhile, there&#8217;s erosion happening to your accumulated exposure to diverse perspectives. This isn&#8217;t like weight gain where you notice daily changes. You had a baseline diversity of inputs from before you started using AI filters. That stock is draining and each day you see less variety than you did six months ago. By the time you notice, you&#8217;ve lost the reference points to recognize what&#8217;s missing.</p><p>You realize this and ask AI to challenge you, provide alternative perspectives, find holes in your thinking. AI can do this &#8212; if you prompt it with structural constraints. But if you just ask it to <em>challenge me</em> without specifics, you're asking the same optimization engine that created the problem to solve it. What counts as a <em>challenge</em>? The AI shows you disagreements that are intellectually stimulating but not psychologically threatening. You engage with those. The AI learns: "challenging content" means "feels like critical thinking without discomfort." New bubble, same mechanism.</p><p>So what actually interrupts the loop? Manual friction. Subscribe to sources you disagree with and force yourself to read them before AI curates anything. Track what percentage of your information comes from outside your engagement history. Set a quota: 20% of reading time goes to randomly selected sources. The system requires structural constraints that prevent optimization, not smarter optimization.</p><p>Systems thinking sees the loop before it traps you, but also sees that awareness alone doesn&#8217;t break the loop. You need circuit breakers that work even when you&#8217;re not paying attention. You might learn something new, open your chakras... or just have a laugh.</p><p>Actions ripple. You change one thing, it affects another, which affects another. Cut costs by eliminating training. Short term: budget looks better. Ripple effects: people are less skilled, quality drops, customer complaints increase, you lose clients, revenue drops, now you&#8217;re cutting costs again to compensate. You optimized one part of the system and broke three others. The parts are connected. You can&#8217;t change one without affecting the rest.</p><p>Systems thinking doesn&#8217;t mean everything is complicated. It means asking: &#8220;<em>What&#8217;s the structure creating this outcome? What feedback loops exist? What constraints matter? If I change this, what else changes?</em>&#8221; See the system, not just the symptoms. Try to fix the structure, not just the event.</p><div class="pullquote"><p>See the system, not just the symptoms. Fix the structure, not just the event.</p></div><h3>Understanding people</h3><p><em>Stop assuming everyone&#8217;s an asshole before checking if they&#8217;re just overwhelmed</em></p><h4>Hanlon&#8217;s razor</h4><p>&#8220;Never attribute to malice that which is adequately explained by stupidity, ignorance, or misunderstanding.&#8221;</p><p>Your coworker didn&#8217;t respond to your Slack message. You assume they&#8217;re ignoring you. They&#8217;re not. They&#8217;re drowning in pings, fighting three fires, and your message got lost in the noise. You jumped to <em>they don&#8217;t respect me</em> when the reality is <em>they&#8217;re overwhelmed and didn&#8217;t even see it.</em></p><p>Your neighbor&#8217;s dog barks every night. You assume they don&#8217;t care about disturbing the neighborhood, they&#8217;re inconsiderate, they probably hear you complain and ignore it. Reality: they work night shift and aren&#8217;t home when it happens. They have no idea the dog is barking. You&#8217;ve been building a case against their character based on something they don&#8217;t even know is happening.</p><p>The cashier was short with you, barely made eye contact, seemed annoyed. You assume they hate their job or they&#8217;re just rude. Reality: you&#8217;re the 11th customer today, and the first 10 were awful. Someone yelled at them about a price they don&#8217;t control. Someone else berated them for being too slow. Someone returned a worn item and demanded a refund. They&#8217;re not rude. They&#8217;re exhausted and trying to get through their shift.</p><p>Someone left their shopping cart in the middle of the parking lot. You assume they&#8217;re lazy and inconsiderate. Reality: their kid is having a complete meltdown in the car. They&#8217;re trying to buckle a screaming toddler into a car seat while the toddler arches their back. They forgot about the cart. They&#8217;re not inconsiderate. They&#8217;re in survival mode.</p><p>We do this constantly. Assume malice when it&#8217;s usually chaos, confusion, overwhelm, or just not having the same context as the person targeted by malice. Incompetence and bad timing explain most problems. Malice is exhausting and rare.</p><p>The person who cut you off in traffic isn&#8217;t necessarily an asshole. Perhaps they didn&#8217;t see you. The friend who cancelled plans doesn&#8217;t think you&#8217;re unimportant. They&#8217;re dealing with something they haven&#8217;t told you about. The team member who didn&#8217;t deliver isn&#8217;t incompetent. They didn&#8217;t understand the requirement the same way you did.</p><p><strong>Most of the time, people aren&#8217;t trying to make your life harder.</strong> They&#8217;re just trying to get <strong>through their own day</strong> with incomplete information and competing priorities.</p><p>Hanlon&#8217;s razor doesn&#8217;t mean you&#8217;re naive or you let people walk over you. It means you <strong>start with the more likely explanation before jumping to the least charitable one</strong>. </p><div class="pullquote"><p>The most important take-away: <br>Check for misunderstanding before assuming malice. Ask questions before building a case.</p></div><p>&#8220;Hey, did you see my message?&#8221; is easier than silently resenting someone who didn&#8217;t even know you were waiting. &#8220;I noticed the dog barking at night&#8221; is more effective than deciding your neighbor is terrible. Most problems get solved faster when you assume <em>ignorance</em> instead of intent. Turns out a question works better than nursing a grudge about someone who <em>forgot you exist</em>. </p><p>Assuming good intent gets you halfway there. The other half is understanding that both sides usually have legitimate perspectives.</p><h4>Third story</h4><p>When two people disagree, each has their own story. Person A&#8217;s version. Person B&#8217;s version. Both feel completely right. Both are convinced the other is wrong. The conversation goes nowhere because you&#8217;re both defending their story instead of understanding the gap.</p><p><strong>The third story is what a neutral observer would see.</strong> Not who&#8217;s right or wrong. <strong>Just the difference between the two perspectives, described without blame.</strong></p><p>Your family member thinks you don&#8217;t care because you haven&#8217;t called in weeks. You think they&#8217;re being demanding because you&#8217;ve been drowning at work and they know that. </p><p>Their story: &#8220;You never reach out, I&#8217;m always the one calling, you don&#8217;t prioritize family.&#8221; <br>Your story: &#8220;I&#8217;m overwhelmed, they should understand, I&#8217;ll call when I have time.&#8221; <br>Third story: &#8220;We have different expectations about staying in touch, and neither of us communicated what we needed.&#8221;</p><p>Starting with your story: &#8220;You&#8217;re being unreasonable, I&#8217;ve been busy.&#8221; Defensive. Blaming. Going nowhere. Starting with third story: &#8220;I think we see this differently. You feel like I&#8217;m not making time, I feel like I&#8217;m doing my best under pressure. Can we talk about what we both need here?&#8221; Not assigning fault. Just naming the gap.</p><p>Two teams are in conflict. Engineering says product keeps changing requirements and expects miracles. Product says engineering is inflexible and doesn&#8217;t understand business needs. Each team has their story. <br>Engineering: &#8220;They never plan ahead, they&#8217;re always scrambling, we can&#8217;t build anything solid because they change their mind every week.&#8221; <br>Product: &#8220;They say everything takes forever, they don&#8217;t care about users, they hide behind technical complexity.&#8221; <br>Third story: &#8220;Engineering needs more stability to build well. Product needs flexibility to respond to market. We haven&#8217;t figured out how to balance both.&#8221; </p><p>Meanwhile both teams are convinced the other is the problem. They&#8217;re both right. They&#8217;re also both wrong. Welcome to organizations.</p><p>The us-versus-them version: each side defends their story, attacks the other side, nothing changes. The third story version: &#8220;Here&#8217;s the tension we&#8217;re both feeling. Let&#8217;s solve for both needs instead of fighting about who&#8217;s wrong.&#8221;</p><p>The key is get rid of absolutes. <br>&#8220;You never listen.&#8221; <br>&#8220;You always do this.&#8221; <br>&#8220;Everyone agrees with me.&#8221; <br>&#8220;Nobody thinks that&#8217;s reasonable.&#8221; </p><p><strong>Absolutes make people defensive. They&#8217;re also usually not true.</strong> When you catch yourself using never, always, everyone, nobody, pause. Reframe without the absolute. &#8220;I&#8217;ve felt unheard in our recent conversations&#8221; is different from &#8220;you never listen.&#8221; One invites discussion. The other invites argument.</p><p>Third story doesn&#8217;t mean both sides are equally right. Sometimes one person is clearly wrong. But if you start by deciding who&#8217;s wrong, you&#8217;ve ended the conversation before it begins. Start with the third story. Describe the gap. See if you can close it. If someone&#8217;s actually wrong, that&#8217;ll become clear. But you&#8217;ll get there through understanding, not through accusations.</p><p>The pattern: stop defending your story long enough to describe the gap between perspectives. &#8220;You see X, I see Y, let&#8217;s talk about why&#8221; beats &#8220;you&#8217;re wrong&#8221; every time.</p><p>Finding the gap between perspectives works when the conflict is clear. But most situations aren&#8217;t even that clean - truth exists on multiple sides.</p><h4>Gray thinking</h4><p>Most people think in binaries. You&#8217;re either with us or against us. Something&#8217;s either good or bad. Someone&#8217;s either right or wrong. Gray thinking rejects this. It says both things can be partially true, the answer is usually &#8220;it depends,&#8221; and the nuance is where the actual insight lives.</p><p>Two of your acquaintances separate. Your mutual friends immediately pick sides. Team A says he&#8217;s the problem. Team B says she&#8217;s impossible. Everyone wants you to declare allegiance. Gray thinking asks: what if they&#8217;re both partially right? What if he did something thoughtless and she overreacted and they both handled it poorly and there&#8217;s no villain here, just two people who couldn&#8217;t figure it out? It takes two to tango. But picking sides is easier than admitting relationships are complicated, so Team A and Team B will fight about it at the next dinner party. Most relationship failures aren&#8217;t one person&#8217;s fault. But binary thinking demands you pick a side, so nuance gets lost.</p><p>Someone at work is struggling. Misses deadlines, seems disengaged, quality is slipping. The binary interpretation: they&#8217;re lazy and unmotivated. Gray thinking looks deeper: no onboarding, no support, hostile coworker making their life miserable, unclear expectations, personal issue they haven&#8217;t shared. Lazy is the easy label. The reality is usually more complicated. People aren&#8217;t failing in a vacuum. There&#8217;s a system around them, and that system might be broken. Worth asking the person how you can help. Sometimes listening is the most helpful thing you can do. </p><p>People are neither only good nor only bad. Good people do bad things. Bad people occasionally do good things. Your friend who&#8217;s generous and thoughtful also ghosted someone who didn&#8217;t deserve it. Your difficult coworker who complains constantly also stayed late to help you fix that critical bug. We want people to be all one thing so we know how to feel about them. Reality doesn&#8217;t cooperate.</p><p>Gray thinking is uncomfortable. Binary thinking is clean. &#8220;This is good, that is bad, I&#8217;m right, they&#8217;re wrong.&#8221; Simple. Satisfying. Usually incomplete.</p><p>Gray thinking asks: &#8220;What&#8217;s true about both perspectives? Where&#8217;s the tradeoff? What am I missing when I force this into either/or?&#8221;</p><p>Most strategic debates are stuck in false binaries. &#8220;Should we prioritize new features or tech debt?&#8221; Gray thinking asks: &#8220;What if the real question is when to prioritize each, or how to get some of both? Which tech debt actually blocks features? Can we sequence this differently?&#8221;</p><p>When you&#8217;re stuck in &#8220;this OR that,&#8221; step back and look for &#8220;this AND that,&#8221; or &#8220;this in these conditions, that in those conditions.&#8221; The nuance is where the insight lives.</p><p>You know what else is very good at binary thinking? AI. AI delivers confident, definitive-sounding answers that encourage it. Don&#8217;t fall into this trap. Hell, use AI itself to avoid it. Make it map the spectrum, not pick sides. Demand it to <em>steelman</em> opposing views. Ask it to generate the third story. My favorite: ask it to argue with itself until the nuances emerge. Bring popcorn, enjoy the show, and learn from it.</p><p>Gray thinking doesn&#8217;t mean everything is relative or nothing matters. It means rejecting false binaries so you can see what&#8217;s actually happening.</p><h2>Next: Catching yourself being wrong</h2><p>The six models above help you think through decisions, see systems, and not assume everyone&#8217;s terrible. Active frameworks you apply when you need them.</p><p>But your brain still lies to you. Constantly. It tricks you with vivid memories, follows crowds without checking, rewrites history to protect your ego, and feeds you information that confirms what you already think.</p><p>These aren&#8217;t things you can think your way out of. They&#8217;re built-in bugs in human cognition. The only fix is catching them before they cost you.</p><p>That&#8217;s the next essay: <strong>How not to be an idiot</strong> - the mental models that help you recognize when your brain is lying to you.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><em>Part of a series on mental models: how to be less wrong, not be an idiot, lead without breaking your team, and build things without losing your sanity.</em></p><p>If you think someone else could benefit from this, please share it. Sharing is caring.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share&quot;,&quot;text&quot;:&quot;Share Between Code and Culture&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share Between Code and Culture</span></a></p>]]></content:encoded></item><item><title><![CDATA[The 4am club, sweating through courses, and folding laundry]]></title><description><![CDATA[Why perfect learning conditions never come, and what I do instead]]></description><link>https://www.between-code-and-culture.tech/p/the-4am-learning-club</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/the-4am-learning-club</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Wed, 31 Dec 2025 07:39:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yoSh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m on a stationary bike, watching a Coursera course on systems thinking while huffing and puffing like I&#8217;m training for the Tour de France I&#8217;ll never enter.</p><p>I bought a special standing desk for this setup. The font is cranked up to maximum because reading small text while pedaling is a recipe for motion sickness. I&#8217;m sweating. The course instructor is calmly explaining organizational dynamics while I&#8217;m trying not to die.</p><p>No one has ever sweated through a course on systems thinking as much as I have. Literally.</p><p>The Instagram version has better lighting and less sweat.</p><h2>How cats stole my 5am hour</h2><p>During the week, I get up at 4am. Sometimes 4:15 if I&#8217;m feeling generous with myself.</p><p>I used to be in the 5am club. That worked fine. Quality time with myself in the middle of the night when everyone would gladly label you as crazy. A cup of tea. A cup of coffee. Me and my book, my plan, my writing.</p><p>My husband gets up at 5:45. My son at 6. This gave me a solid hour of peace and quiet.</p><p>Then the cats joined our household.</p><p>Turns out, cats need 15-30 minutes of service before I can do anything else. They don&#8217;t want to read quietly together. They want to eat me. So I feed them, clean up after them, let them out, let them in, negotiate their various demands.</p><p>Before I turned around, it was 5:35.</p><p>I had two choices: give the cats away or get up an hour earlier.</p><p>I&#8217;m sure you can guess what I did.</p><p>Blessed be the morning hours when everyone is still asleep. Even the criminals.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yoSh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yoSh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yoSh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yoSh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yoSh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yoSh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg" width="1184" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:827106,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182721639?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yoSh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yoSh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yoSh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yoSh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0996e441-0d4b-4645-aed7-2ba603b70b83_1184x864.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Waiting for quiet that never comes</h2><p>I love reading. Always have.</p><p>But here&#8217;s the thing: if I only read when I can sit down in quiet, perfectly focused conditions (other than in the wee hours), I&#8217;d be waiting for everyone to leave the house. Which, given that I live with other humans and demanding cats, means I&#8217;d read approximately twice a year.</p><p>Life is noisy. Time is fragmented. Attention is divided.</p><p>I could wait for everyone to move out. Or I could work with what I&#8217;ve got.</p><p>So I adapted.</p><p>I read on the couch while my husband watches Netflix. I listen to audiobooks while commuting, vacuuming, washing dishes, doing laundry. I draft essays on my Mac on the kitchen desk, one hand typing, the other folding t-shirts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nzfV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nzfV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nzfV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nzfV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nzfV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nzfV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:840459,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182721639?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nzfV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nzfV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nzfV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nzfV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a4a42ac-c843-4dd3-b267-f4a1fa56abcb_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The result? I get to read almost every single day for at least 30 minutes. On weekends during chore time, often more.</p><p>It&#8217;s not weird in our house to see me or my son with headphones on, him vacuuming, me cooking lunch. </p><p>We&#8217;re not &#8220;being in the moment&#8221; with the chores. So what? I prefer reading over being present with my vacuum cleaner.</p><p>Funny thing: I always considered myself a visual person. Turns out I love audiobooks. There are even books I own in all three formats: audio, digital, and paper. Some I can listen to. Some I need to read, highlight, make notes in the margins. Some require all three passes.</p><p>I didn&#8217;t plan this. It just happened when I stopped waiting for ideal conditions and started grabbing learning wherever it fit.</p><h2>Plot twist: there&#8217;s science behind this absurdity</h2><p>I stumbled into this setup out of pure necessity. Turns out, I accidentally discovered what neuroscientists call &#8220;embodied learning.&#8221;</p><p>Which sounds way more impressive than &#8220;I learn stuff while doing chores because I have no other choice.&#8221;</p><p>Recent research shows that physical activity during learning doesn&#8217;t distract from cognition &#8212; it&#8217;s actually part of it. When you do simple physical tasks like chores while learning, you&#8217;re engaging multiple sensory channels (visual, tactile, auditory, kinesthetic), which creates stronger memory traces than sitting still at a desk.</p><p>Even better: simple repetitive tasks reduce cognitive load rather than increasing it. The brain doesn&#8217;t have separate systems for physical action and abstract thought. It reuses the same structures.</p><p>So when you&#8217;re physically moving while learning, you&#8217;re activating the exact neural networks you&#8217;ll need later for recall and application. Or, in less fancy terms: my brain works better when my hands are busy.</p><p>Translation: My ridiculous setup of sweating through courses while pedaling and learning organizational theory while vacuuming isn&#8217;t just a compromise. It might actually be better than the &#8220;ideal&#8221; conditions I thought I was missing.</p><p>Who knew that &#8220;being present with your vacuum cleaner&#8221; was overrated for more than just philosophical reasons?</p><h2>The mental trophy case problem</h2><p>For years, I thought consuming information was the same as learning.</p><p>I&#8217;d finish a book on leadership, feel smart, and move on to the next one. I&#8217;d complete a course and add it to my mental trophy case. Look at all the things I know!</p><p>Except I didn&#8217;t really know them. Not in any way that mattered.</p><p>Turns out you can&#8217;t just download skills like software updates. Shocking, I know.</p><p>The shift happened when I started treating my workplace like a petri dish for tiny experiments.</p><p>Read something about feedback loops? Try it in the next 1:1.<br>Learn a decision-making framework? Test it in a team meeting.<br>Discover a communication technique? Use it in the next project kickoff.</p><p>Small experiments. Low stakes. Real application.</p><p>That&#8217;s when I realized: reading gives you concepts. Experimenting gives you skills.</p><p>The audiobooks and courses I consume while doing chores? They&#8217;re the input. The microexperiments at work? That&#8217;s where the actual learning happens.</p><h2>The unglamorous reality</h2><p>Let&#8217;s be clear: this setup isn&#8217;t glamorous.</p><p>It&#8217;s:</p><ul><li><p>Sweating through organizational theory while trying not to fall off a bike</p></li><li><p>Increasing font size to absurd levels so you can read while pedaling</p></li><li><p>Listening to the same audiobook chapter three times because you were too focused on not burning dinner</p></li><li><p>Owning the same book in three formats because different contexts need different approaches</p></li><li><p>Running tiny workplace experiments that sometimes work and sometimes flop spectacularly</p></li></ul><p>It&#8217;s scrappy. Imperfect. Sometimes chaotic.</p><p>But it&#8217;s also real.</p><p>And it compounds. 15 minutes here. 20 minutes there. A micro-experiment on Tuesday. Another one next week. Over months and years, it adds up to something significant.</p><p>Not because the conditions were perfect. Because perfect was never coming, and I got tired of waiting.</p><h2>Just show up sweaty</h2><p>I&#8217;m not prescribing this as a method. I&#8217;m not saying everyone should wake up at 4am or sweat through Coursera.</p><p>But if you&#8217;ve been waiting for the right time to learn something, build a skill, or test a new approach, I&#8217;ll tell you what I learned:</p><p>Those perfect conditions I kept waiting for? They never showed up.</p><p>My life stayed noisy. My time stayed fragmented. My attention stayed divided.</p><p>So I stopped waiting.</p><p>Not just for perfect conditions, but also for perfect timing. You know what I mean &#8212; January 1st, first of the month, next Monday, after this project wraps up. We&#8217;re really good at inventing milestones that give us permission to procrastinate.</p><p>Turns out January 17th works just as well as January 1st. So does April 5th. Or July 28th. Or December 30th, for that matter.</p><p>The date isn&#8217;t magic. Starting is.</p><p>If you need that fresh start feeling, just tell yourself &#8220;Happy new personal year&#8221; on whatever random Tuesday you happen to be reading this, and begin.</p><p>Audiobook on the commute. Reading on the couch. Listening while doing chores. Drafting while folding laundry. </p><p>Then a tiny experiment at work. One thing. See what happens.</p><p>The 4am learning club doesn&#8217;t have membership requirements. No fees. No expectations. No judgment about how unglamorous your setup is. You can even start it at 7am, if this is your 4am.</p><p>You just show up. Sweaty, distracted, doing three things at once.</p><p>The cats are optional, but they do add a certain level of chaos that keeps things interesting.</p><p>Welcome.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Between Code and Culture! Subscribe for more reality, less Instagram.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[They lied about the lemmings and the frogs too]]></title><description><![CDATA[Turns out 'everyone knows' means 'nobody checked']]></description><link>https://www.between-code-and-culture.tech/p/they-lied-about-the-lemmings-and</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/they-lied-about-the-lemmings-and</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Mon, 29 Dec 2025 08:29:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nfEi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spent years using lemmings as my go-to metaphor for groupthink.</p><p>You know the image: a mass of small rodents blindly following each other off a cliff. Perfect visual for teams making terrible decisions because everyone else is doing it.</p><p>Then I recently learned the lemmings never actually did that.</p><p>Disney faked it. For a 1958 documentary called <em>White Wilderness</em>. They literally imported lemmings to Alberta (where they don&#8217;t even live), herded them toward a cliff, and pushed them off using a turntable. What?!</p><p>The entire thing was staged.</p><p>And for decades, we&#8217;ve been citing it as nature&#8217;s perfect lesson in blind conformity.</p><p>The mental whiplash was real. I&#8217;d been repeating this &#8220;fact&#8221; for years without ever questioning it. Never occurred to me to look it up. Why would it? Everyone knows lemmings jump off cliffs.</p><p>Except they don&#8217;t.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nfEi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nfEi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nfEi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nfEi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nfEi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nfEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:796247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182683695?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nfEi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nfEi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nfEi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nfEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbefaeda-10fd-4c1c-82e4-6bc0dfd61e4a_1200x896.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Oh, and while we&#8217;re at it: frogs don&#8217;t stay in slowly boiling water either. That&#8217;s another myth. A frog will jump out when the water gets uncomfortable. The boiling frog metaphor for gradual decline? Also based on fake science from the 1800s.</p><p>We&#8217;ve been building leadership lessons on animal behavior that never actually happened.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/p/they-lied-about-the-lemmings-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/p/they-lied-about-the-lemmings-and?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h2>Living on autopilot</h2><p>We all run on autopilot. We have to. We can&#8217;t fact-check every single thing we hear or spend our days researching the origins of every metaphor we use.</p><p>Autopilot is efficient. It lets us function without constantly questioning whether the sky is actually blue or if gravity still works today.</p><p>But here&#8217;s the catch: autopilot also accumulates debris.</p><p>Half-truths we never verified. Advice from people who sounded confident but had no idea what they were talking about. Patterns we copied without understanding why. &#8220;Best practices&#8221; that were just one person&#8217;s opinion that happened to spread.</p><p>Most of the time, it doesn&#8217;t matter. The lemmings metaphor still works, even if the facts are wrong. Groupthink is real. Gradual decline happens. The images are vivid. No harm done.</p><p>But sometimes it does matter.</p><p>In leadership and engineering, autopilot shows up as:</p><ul><li><p>Processes we follow because &#8220;that&#8217;s how we&#8217;ve always done it&#8221; (but no one remembers why)</p></li><li><p>Beliefs about what good leadership looks like that came from one manager we admired 10 years ago</p></li><li><p>Technical patterns we cargo-cult without understanding the original context or constraints</p></li><li><p>Assumptions about users, teams, or systems that we inherited from someone else and never tested</p></li></ul><p>We build entire mental models on things we absorbed once and never questioned.</p><p>Lemmings and frogs are just two examples. There are plenty more:</p><p><strong>&#8220;Move fast and break things.&#8221;</strong> Everyone still quotes this as Facebook&#8217;s ethos. They changed it to &#8220;Move fast with stable infrastructure&#8221; in 2014. We&#8217;re a decade behind.</p><p>The story goes NASA spent millions developing a pen that works in space while Russians just used pencils. Sounds like a perfect lesson in over-engineering, right? Except it&#8217;s false. Fisher developed the pen privately, and both space programs bought them because pencil graphite is a fire hazard in spacecraft. (<a href="https://www.youtube.com/watch?v=Sh72T_akYyk">Watch the full story</a>)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!30I7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!30I7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!30I7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!30I7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!30I7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!30I7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:904683,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182683695?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!30I7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!30I7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!30I7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!30I7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc42fd14-e458-4836-89ad-0515bd9c8e49_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Or take the 10,000 hour rule. Gladwell popularized it, and now everyone treats it as gospel for mastery. &#8220;Just put in your 10k hours!&#8221; But it&#8217;s a bastardization of Ericsson&#8217;s research. The original study was about deliberate practice in narrow domains like chess and music. You can practice badly for 10,000 hours and stay mediocre. The nuance got lost. The slogan survived.</p><p>The pattern repeats: vivid story, sounds true, gets repeated until it becomes &#8220;common knowledge.&#8221;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/p/they-lied-about-the-lemmings-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.between-code-and-culture.tech/p/they-lied-about-the-lemmings-and?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h2>The opportunity to unlearn</h2><p>The holidays are perfect for this. People are in skimming mode, not deep-work mode. Which makes this a good moment for a quick mental reset.</p><p>Pick one thing you &#8220;know&#8221; and check it.</p><p>Not because you&#8217;re wrong about everything. Not because autopilot is bad. But because it&#8217;s useful to clear out the debris every once in a while.</p><p>Try these:</p><p><strong>That leadership advice you keep repeating.</strong><br>Did you test it? Or did you hear it once, thought it sounded smart, and added it to your toolkit without ever validating whether it actually works?</p><p><strong>That &#8220;best practice&#8221; you inherited from a team three jobs ago.</strong><br>Is it still relevant? Was it ever relevant? Or was it just the solution to a problem that company had that your current team doesn&#8217;t?</p><p><strong>That belief about how teams work.</strong><br>Did you learn it from experience? Or did you read it in an article, nod along, and file it away as truth?</p><p><strong>That assumption about what users want.</strong><br>Have you asked them recently? Or are you still operating on feedback from two years ago when the product, market, and users were different?</p><p>You don&#8217;t need to overhaul everything. That&#8217;s exhausting and unnecessary. Just pick one thing.</p><p>Question it. Look it up. Test it. Ask someone who would know.</p><p>You might discover you were right all along. Great. Now you know instead of assume.</p><p>Or you might discover they lied about lemmings. Also great. Now you can stop building decisions on faulty foundations.</p><h2>The real lesson</h2><p>I spent years thinking lemmings were the perfect metaphor for groupthink. Turns out, the metaphor still works. Just not the way I thought.</p><p>The real lesson isn&#8217;t that lemmings jump off cliffs. It&#8217;s that we believed they did because someone showed us a documentary and we never questioned it.</p><p>We saw footage. We heard narration. We assumed it was true. We repeated it.</p><p>That&#8217;s not stupidity. That&#8217;s how humans work. We trust authoritative-sounding sources. We accept vivid images as evidence. We don&#8217;t have time to verify everything.</p><p>But every so often, it&#8217;s worth pausing and asking: is this actually true? Or did I just absorb it on autopilot?</p><p>Autopilot is useful. It keeps us moving. But every once in a while, it&#8217;s worth checking the map.</p><p>Maybe you&#8217;ll find out they lied about lemmings and frogs. Maybe you&#8217;ll find out your mental models need an update. Maybe you&#8217;ll confirm you were right all along and feel a little more confident in what you know.</p><p>Either way, you&#8217;ll know instead of assume.</p><p>And in a world where most of us are operating on autopilot most of the time, that&#8217;s worth something.</p><p>So while you&#8217;re skimming articles this week between holiday meals and year-end reflection, pick one thing.</p><p>One belief. One assumption. One &#8220;fact&#8221; you&#8217;ve been carrying around.</p><p>And check it.</p><p>You might be surprised what you find.</p><p>If this resonates, read Adam Grant&#8217;s <em>Think Again</em>. It&#8217;s entirely about the skill of questioning what you know and getting better at unlearning. Worth your time.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Between Code and Culture! Subscribe before you repeat another myth.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Watch the canary, dodge the traps]]></title><description><![CDATA[Why laughter matters more when everything's on fire (and cynicism is the real trap)]]></description><link>https://www.between-code-and-culture.tech/p/watch-the-canary-dodge-the-traps</link><guid isPermaLink="false">https://www.between-code-and-culture.tech/p/watch-the-canary-dodge-the-traps</guid><dc:creator><![CDATA[Mateja Verlic Bruncic]]></dc:creator><pubDate>Sat, 27 Dec 2025 07:52:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!exbX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week I sat in a meeting booth on a zoom call for ten minutes waiting for people to join. They didn&#8217;t. Why? Because the meeting was in person. In a different office. Starting nine minutes ago.</p><p>I&#8217;d been staring at an empty Zoom room for a meeting that was an hour away.<br>I laughed.</p><p>Not the polite kind. The kind where you realize your brain is running too many threads and something just segfaulted.</p><p>I showed up late, walked in, and told them exactly what happened.</p><p>They laughed too.</p><p>We started the meeting lighter than we would have otherwise. No tension. No performance. Just people who recognized the absurdity of trying to hold too much at once.</p><p>The day I stop finding things like this funny is the day I need to think hard about my work-life balance and whether I&#8217;m on the edge of burnout (or over it).</p><p>Been there. Seen that. Done that.</p><p>Now laughter is my canary in the coal mine.</p><p>No laughter? The canary&#8217;s dead. Time to run.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VjFj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VjFj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VjFj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VjFj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VjFj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VjFj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg" width="1184" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:942557,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182378973?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VjFj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VjFj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VjFj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VjFj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fffa9daab-cef9-49c3-bc82-fdb42c2d4a52_1184x864.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p><em>Writing about anti-resolutions in my last essay (and trying to be funny while doing it) got me thinking more deeply about the role of humor when everything&#8217;s falling apart, and about the line between humor that builds resilience and cynicism that poisons it.</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;b3fac8e9-1895-49db-b9a9-f2f40fcbe343&quot;,&quot;caption&quot;:&quot;It&#8217;s that time of year when we&#8217;re supposed to reflect on the year behind us, assuming we have the time. Then we&#8217;re expected to come up with New Year&#8217;s resolutions.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;What I&#8217;m not promising next year&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:82361538,&quot;name&quot;:&quot;Mateja Verlic Bruncic&quot;,&quot;bio&quot;:&quot;Woman in tech. Writing raw files about leadership &#8212; real moments, no hindsight bias, no corporate speak. For operators and emerging leaders finding their voice.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a1d90c8-61b7-4fbe-9b31-65c81aee9abf_512x512.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-22T07:09:16.922Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!7Ufk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ea05304-d452-4b7d-b666-5d41cc298c2b_1200x896.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.between-code-and-culture.tech/p/what-im-not-promising-next-year&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:182247791,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:1,&quot;publication_id&quot;:6927166,&quot;publication_name&quot;:&quot;Between Code and Culture&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!JBar!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ffd4f35-3ecd-4f97-8df0-6ac9e1958a49_500x500.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2>Using humor when everything&#8217;s on fire</h2><p>Stress doesn&#8217;t announce itself with a memo.</p><p>It shows up quietly. You stop joking. You stop finding things absurd. Everything becomes heavy, serious, a problem to solve rather than a moment to experience.</p><p>Laughter doesn&#8217;t just make hard situations easier to bear, it&#8217;s also a diagnostic.</p><p>When I can still laugh, especially at my own expense, I know I have capacity. When I can&#8217;t, I know I&#8217;ve crossed a line.</p><p>You might not believe this but&#8230;  <strong>humor matters </strong><em><strong>more</strong></em><strong> when things are falling apart, not less</strong>.</p><p>When the system&#8217;s flaking, the deadline&#8217;s unrealistic, and a couple of people just quit, that&#8217;s exactly when you need someone who can look at the situation and say something true in a way that cuts the tension.</p><p>Not to dismiss the problem, but to make it survivable.</p><h2>The mechanics of laughter (skip this part if you can&#8217;t stand a little science)</h2><p>Psychologically, laughter is a bonding mechanism.</p><p>It triggers neural pathways tied to trust and safety. People who laugh together are <strong>more likely to collaborate, more willing to share bad news, and more tolerant of each other&#8217;s flaws</strong>. </p><p>This isn&#8217;t some urban legend or soft skills mysticism. Research from Wharton, MIT, and London Business School shows that &#8220;<em>laughter relieves stress and boredom, boosts engagement and well-being, and spurs not only creativity and collaboration but also analytic precision and productivity</em>&#8221;.</p><p>The data is staggering:</p><ul><li><p>After watching a comedy clip, employees were <strong>10% more productive</strong> than their counterparts</p></li><li><p>Humor at work can boost job satisfaction by <strong>33%</strong></p></li><li><p><strong>91% of executives</strong> believe humor is crucial for career advancement</p></li></ul><p>Even the FBI trains agents in humor. Not as a distraction technique, but because humor helps build rapport, reduce status differentials, and makes work more human.</p><p>If federal agents investigating crimes can find applications for humor, you probably can too.</p><p>The Mayo Clinic even mapped the physiology<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. Laughter <em>enhances your intake of oxygen-rich air, increases your brain&#8217;s release of endorphins, and stimulates circulation</em>. It fires up and then cools down your stress response. The result? A good, relaxed feeling that actually reduces the physical symptoms of stress.</p><p>Long-term, laughter can improve your immune system, relieve pain by triggering the body&#8217;s natural painkillers, and lessen depression and anxiety.</p><p><strong>In leadership, humor becomes a stealthy form of influence.</strong></p><p>It builds rapport. It opens doors that formal authority can&#8217;t. And perhaps most crucially, it lets people know you&#8217;re not a robot in a human-skin. Robo-dance doesn&#8217;t count as a proof you&#8217;re a robot.</p><p>Harvard Business School research found that cracking jokes at work can make people seem more competent, not less. The <strong>well-timed quip</strong> signals <strong>mental agility: &#8220;</strong><em>you&#8217;re demonstrating that you can hold multiple ideas in mind, recognize subtle contradictions, and walk through social norms with just enough irreverence to make a point without crossing a line</em>&#8221;.</p><p>So&#8230; A well-timed joke can be an evidence of emotional and intellectual fluency. But the emphasis is on a &#8220;well-timed&#8221;.</p><p>Teams that laugh more tend to innovate more. Leaders who joke (within reason) foster environments where unconventional ideas can surface without someone immediately stomping them out with &#8220;That&#8217;s not how we do things here.&#8221;</p><div class="pullquote"><p>Playfulness breaks rigid thinking. Laughter makes space for the unexpected.</p></div><p>If you&#8217;re trying to <strong>build systems that adapt instead of calcify</strong>, you need people who can laugh when the plan doesn&#8217;t survive contact with reality.</p><h2>But there&#8217;s humor and there&#8217;s humor</h2><p>Not all laughter is the same.</p><p><strong>Humor is not the main course. It&#8217;s a </strong><em><strong>condiment</strong></em><strong>.</strong></p><p>Analysis of nearly a million patient comments<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> about their healthcare experiences revealed something crucial. When patients felt their doctors showed empathy, kindness, and respect, humor amplified those positive signals. They wrote things like, &#8220;The nurse was caring, answered all my questions, and had a sense of humor &#8212; I liked that.&#8221;</p><p>But when patients perceived a lack of respect, humor didn&#8217;t just fall flat. It made things worse.</p><p>One patient wrote: &#8220;The doctor was the only one to show no respect and even joke at a question I was concerned about.&#8221;</p><p><strong>Same tool. Opposite outcomes.</strong></p><p>Humor isn&#8217;t a stand-alone asset or liability. It amplifies whatever signal you&#8217;re already sending.</p><p>If your team trusts that you care, humor becomes a way to connect, to lighten the load, to make hard things bearable. If they don&#8217;t, your joke becomes evidence of dismissiveness.</p><p>This means you can&#8217;t use humor to shortcut the real work of leadership. You can&#8217;t skip empathy, kindness, and respect and hope a well-placed joke fixes it.</p><div class="pullquote"><p>Humor works when it&#8217;s built on a foundation of genuine care. Without that foundation, it collapses into something else entirely.</p></div><h3>Racist or discriminatory jokes?</h3><p>Never. Not funny. Not leadership. Just damage. These jokes don&#8217;t just offend &#8212; they sustain discrimination and assault inclusion.</p><h3>Failed humor?</h3><p>Costs you. Badly timed or tone-deaf jokes lower your status and perceived competence. If you&#8217;re not sure it will land, don&#8217;t say it. Or&#8230; say it enough times and eventually time might laugh with you.</p><h3>&#8220;I&#8217;m just joking&#8221; as cover?</h3><p>Some people use humor as an excuse for careless, bullish, or abusive behavior. They hide behind &#8220;Can&#8217;t you take a joke?&#8221; when called out. That&#8217;s not humor. That&#8217;s toxicity wearing a mask. Huge red flag. Visible from outer space.</p><p>The uncomfortable part: people with power often get away with it. The senior leader who makes a cutting remark about someone junior and calls it &#8220;banter&#8221;? The executive who punches down and gets laughs from the in-group? That&#8217;s not leadership. That&#8217;s exploitation of status.</p><h3>Real banter vs. fake banter</h3><p>There&#8217;s a world of difference between actual banter and what people call banter when they get called out.</p><p>Real banter happens between people who know each other well. People who&#8217;ve built enough trust to push boundaries without breaking things.</p><p>Some of this banter emerges naturally from the roles themselves. Product wants more features. Engineering wants more time. Frontend and backend joke about whose code is harder. These tensions are structural. Banter acknowledges them openly rather than letting them fester into resentment.</p><p>My team does this. We joke, we push, we test the edges. And we have a mechanism: when someone says &#8220;<em>This escalated quickly</em>&#8221; with a chuckle, that&#8217;s the signal. Pull back. Return to safer terrain. No resentment, just recalibration.</p><p><em>Simple test: if everyone&#8217;s laughing, especially the person on the receiving end, you&#8217;re in the safe zone.</em></p><p>If only the person delivering the joke finds it funny, it&#8217;s not banter. It&#8217;s cruelty dressed up as humor.</p><p><strong>One-sided &#8220;banter&#8221; goes in the same bucket as cynicism. Toxic. Corrosive. Don&#8217;t let it spread.</strong></p><p>Humor without the foundation of respect isn&#8217;t funny. It&#8217;s harm disguised as levity.</p><h3>Gallows humor?</h3><p>Sometimes exactly what you need. But only in safe spaces where everyone&#8217;s in on it. The team that jokes about the disaster while firefighting together isn&#8217;t being callous. They&#8217;re surviving. There&#8217;s a difference.</p><h3>Sarcasm?</h3><p>Occasionally. But not at someone else&#8217;s expense unless they find it funny too. Sarcasm aimed down is cruelty. Sarcasm aimed up or at yourself can be truth-telling.</p><h3>Cynicism?</h3><p>Never.</p><p>This is the real enemy.</p><div class="pullquote"><p>Cynicism isn&#8217;t humor. It&#8217;s humor&#8217;s evil twin.</p></div><p>Gallows humor says, &#8220;This is absurd, and we&#8217;re going to get through it anyway.&#8221;<br>Cynicism says, &#8220;This is absurd, nothing will ever change, and we&#8217;re all idiots for trying.&#8221;</p><p>One builds resilience. The other poisons it.</p><p><strong>Cynicism spreads. It&#8217;s contagious in the worst way. One cynic in the room can turn every conversation into a referendum on futility.</strong></p><p>And once it takes root, it&#8217;s almost impossible to unwind.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!exbX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!exbX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!exbX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!exbX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!exbX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!exbX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg" width="1184" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1005345,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182378973?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!exbX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 424w, https://substackcdn.com/image/fetch/$s_!exbX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 848w, https://substackcdn.com/image/fetch/$s_!exbX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!exbX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aacdafa-a3ff-4789-8417-ca0c2f452b5d_1184x864.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you hear yourself or your team slipping into cynical humor, stop it. Fast.</p><p>The line between &#8220;laughing at the chaos&#8221; and &#8220;giving up on fixing it&#8221; is thinner than you think.</p><h2>How to actually do this</h2><p>If you&#8217;re thinking, &#8220;Great, but I&#8217;m not funny,&#8221; stop.</p><p>Humor can be learned. It&#8217;s a skill, not a personality trait you&#8217;re either born with or without.</p><p>Research shows that even forced laughter can turn into spontaneous laughter over time. Your brain doesn&#8217;t care if you started by faking it. The benefits show up anyway.</p><p>Just don&#8217;t try to become a stand-up comedian. You&#8217;re trying to bring a bit of lightness into hard moments.</p><p><strong>Aim for smiles, not laughs.</strong></p><p>You don&#8217;t need to land a killer punchline in every meeting. Start small. A cheesy dad joke at the start of a standup. A wry observation about the absurdity of your 47th Zoom call that day. A self-aware comment about your own chaos.</p><p>If you&#8217;re aiming for big laughs, you&#8217;re trying too hard. Aim for the slight upturn at the corner of someone&#8217;s mouth. That&#8217;s enough.</p><p><strong>Use self-deprecating humor.</strong></p><p>Leaders who can laugh at themselves build trust faster than those who project invincibility.</p><p>Bad at remembering names? Admit it with a smile. Show up to the wrong meeting like I did? Tell the story. Made a typo in the all-hands slide deck? Own it.</p><p>Self-deprecating humor shows vulnerability and humility. It reminds your team that you&#8217;re human too.</p><p>Just keep it light. There&#8217;s a difference between &#8220;I clearly had too much coffee before making this deck&#8221; and &#8220;I&#8217;m terrible at everything and probably shouldn&#8217;t be in this role.&#8221;</p><p>One is relatable. The other is concerning. I&#8217;m sure you know which&#8217;s which.</p><p><strong>Read the room.</strong></p><p>Humor is subjective. What lands with one team might crash with another.</p><p>Before you crack a joke, consider the culture, the context, and the people around you. <strong>Keep it inclusive.</strong> Avoid anything that punches down or could be misinterpreted.</p><p>And if you&#8217;re not sure what your team finds funny? Pay attention. Notice what makes them laugh. Start a Slack channel for memes. See what gets shared.</p><p><strong>The goal isn&#8217;t to perform. It&#8217;s to connect.</strong></p><h2>Timing is everything</h2><p>There&#8217;s a time for jokes and a time when there isn&#8217;t.</p><p>But here&#8217;s the tricky part: there&#8217;s also a time when there <em>should</em> be room for a joke, but there isn&#8217;t.</p><p>You&#8217;re like Indiana Jones in a temple full of traps and secret passages.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TTby!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TTby!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TTby!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TTby!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TTby!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TTby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg" width="1200" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:801899,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.between-code-and-culture.tech/i/182378973?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TTby!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TTby!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TTby!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TTby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F438ee13b-5b3b-4f07-bfa4-2c340f16cb27_1200x896.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You have to be adventurous enough to let humor into your leadership. But also careful enough not to step on the wrong stone and release the poison darts.</p><p>The skill isn&#8217;t knowing every perfect moment. It&#8217;s learning to read the room, to know when lightness creates space and when it dismisses pain.</p><p>As one Harvard Medical School professor put it, &#8220;Laughter is a social signal among humans. It&#8217;s like a punctuation mark.&#8221;</p><p>Sometimes the right move is a joke that breaks tension &#8212; the exclamation point in the middle of a stressful day. Sometimes the right move is silence and presence.</p><p>The leaders who get this right don&#8217;t follow a script. They pay attention.</p><p>They notice when the team needs relief and when they need gravity. When humor will bond and when it will alienate. When a laugh will cut through anxiety and when it will feel like dismissal.</p><p>This requires presence. You can&#8217;t phone it in and crack jokes from muscle memory.</p><p>Using humor well demands intense attention to the moment and authenticity in conveying that you care. When you get it right, something shifts. People feel seen, heard, and not alone in whatever they&#8217;re carrying.</p><p>That&#8217;s what humor does when it&#8217;s working. It doesn&#8217;t erase the problem. It simply says, &#8220;<em>I see you in this. And we&#8217;re going to get through it together.</em>&#8221;</p><h2>My line in the sand</h2><p>I will never stop laughing (again).</p><p>Not because I&#8217;m unserious. Because I refuse to let the weight of the work crush the part of me that sees the absurdity, the irony, the humanity in all of it.</p><p>The day the canary stops singing, I&#8217;ll know something&#8217;s broken, and I&#8217;ll do something about it before the whole mine collapses.</p><p>If you lead people, pay attention to your laughter.</p><p>Not the performative kind, but the <em>real</em> kind.</p><p>The kind that happens when you&#8217;re too tired to pretend and something genuinely strikes you as absurd.</p><p>If it&#8217;s gone, you&#8217;re closer to burnout than you think.<br>If it&#8217;s still there, even in the hardest moments, you&#8217;re probably going to be okay.</p><p>Laugh at yourself. Laugh with your team. And for the love of all that&#8217;s sacred, don&#8217;t let cynicism dress itself up as humor and poison the well.</p><p>Because the difference between teams that survive chaos and teams that collapse under it often comes down to this:</p><p><strong>Did they lose the ability to laugh?</strong></p><p><strong>Or did they find a way to laugh harder?</strong></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.between-code-and-culture.tech/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Between Code and Culture! There&#8217;s more where this came from.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>https://www.mayoclinic.org/healthy-lifestyle/stress-management/in-depth/stress-relief/art-20044456</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>https://hbr.org/2021/11/when-is-humor-helpful</p><p></p></div></div>]]></content:encoded></item></channel></rss>