<?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[Hard Boiled Software]]></title><description><![CDATA[Occasional stories from the gritty streets of Product and Engineering.]]></description><link>https://newsletter.nerdnoir.com</link><image><url>https://substackcdn.com/image/fetch/$s_!Mq7a!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1d5d76d-db16-4d51-823f-b48c16423b31_1280x1280.png</url><title>Hard Boiled Software</title><link>https://newsletter.nerdnoir.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 06 May 2026 11:24:03 GMT</lastBuildDate><atom:link href="https://newsletter.nerdnoir.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Nerd/Noir, LLC]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[team@nerdnoir.com]]></webMaster><itunes:owner><itunes:email><![CDATA[team@nerdnoir.com]]></itunes:email><itunes:name><![CDATA[Dave Laribee]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dave Laribee]]></itunes:author><googleplay:owner><![CDATA[team@nerdnoir.com]]></googleplay:owner><googleplay:email><![CDATA[team@nerdnoir.com]]></googleplay:email><googleplay:author><![CDATA[Dave Laribee]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA["Event Modeling: The Blueprint for Building Maintainable Software" with Adam Dymitruk]]></title><description><![CDATA[Episode 005: ALT.NET, Event Modeling, and Hot & Spicy Takes]]></description><link>https://newsletter.nerdnoir.com/p/event-modeling-the-blueprint-for</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/event-modeling-the-blueprint-for</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Tue, 14 Apr 2026 09:01:24 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/192984104/1a429b9ad113e901650e556e747afc8c.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><strong>Adam Dymitruk</strong> is the creator of event modeling and the CEO and founder of <a href="https://adaptechgroup.com/">Adaptech Group</a>, a consultancy that builds information systems using event sourcing and event modeling. A software developer with over three decades of experience, Adam is a core contributor to CQRS and event sourcing theory and practice since 2008, a top 0.1% Stack Overflow contributor, and one of the original voices in the ALT.NET movement. He&#8217;s currently writing the definitive book on event modeling, with a companion booklet due out first.</p><h2>Episode Description</h2><p>Why do we keep building software that breaks every time we add a feature? And what if there were a way to describe a system so clearly that business people, designers, and developers could all work from the same blueprint?</p><p>In this conversation, Adam Dymitruk traces a path from the rebellion of the ALT.NET movement in the mid-2000s through the rise of domain-driven design, the discovery of event sourcing, and the creation of event modeling, a notation and process for describing information systems that has quietly become one of the most practical innovations in modern software design. Along the way, Adam and Dave revisit shared history: the nHibernate Mafia, the fight against sealed classes, the moment when Martin Fowler&#8217;s 2005 article on event sourcing planted a seed that would take years to fully grow, and the community of developers who decided they&#8217;d rather take care of each other than wait for permission from Microsoft.</p><p>The heart of the episode is Adam&#8217;s case for why event sourcing and event modeling eliminate entire categories of problems that most teams accept as inevitable: the hockey-stick cost curve, the coupling that turns codebases into houses of cards, the schema migrations that become existential crises, and the tech debt that accumulates because every new feature has to touch code that already works. Adam explains how Adaptech Group has built its business on fixed-cost contracts and free bug fixes, not as a loss leader but because the architecture genuinely makes it possible. The conversation closes with Adam&#8217;s view on AI as the next irreversible point of no return, why event modeling provides exactly the kind of specification that AI needs to generate good code, and a first look at the two books he&#8217;s writing to bring this work to a wider audience.</p><h2>Links &amp; Resources</h2><h3>Guest Links</h3><ul><li><p><a href="https://adaptechgroup.com/">Adaptech Group</a> &#8212; Adam&#8217;s consultancy</p></li><li><p><a href="https://eventmodeling.org/">Event Modeling</a> &#8212; the official site for the event modeling methodology</p></li><li><p><a href="https://eventmodeling.org/posts/what-is-event-modeling/">Event Modeling: What is it?</a> &#8212; Adam&#8217;s original 2019 article</p></li><li><p><a href="https://www.linkedin.com/in/eventmodeling/">Adam Dymitruk on LinkedIn</a></p></li><li><p><a href="https://github.com/adymitruk">Adam Dymitruk on GitHub</a></p></li><li><p><a href="https://discord.com/invite/Sw4MvagftJ">Event Modeling Discord Community</a></p></li></ul><h3>Books &amp; Articles Mentioned</h3><ul><li><p><em><a href="https://leanpub.com/eventmodeling-and-eventsourcing">Understanding Eventsourcing</a></em> by Martin Dilger &#8212; the first book combining event modeling and event sourcing</p></li><li><p><em><a href="https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">Domain-Driven Design</a></em> by Eric Evans &#8212; the influential &#8220;blue book&#8221; both Adam and Dave reference on multiple occasions</p></li><li><p><em><a href="https://www.domainlanguage.com/ddd/reference/">Domain-Driven Design Reference</a></em> by Eric Evans &#8212; the companion booklet that Adam credits as a model for his own booklet approach</p></li><li><p><em><a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a></em> by Michael Feathers &#8212; cited by Adam as a model for the reference-pattern format of his upcoming book</p></li><li><p><a href="https://martinfowler.com/eaaDev/EventSourcing.html">&#8220;Event Sourcing&#8221;</a> by Martin Fowler &#8212; the December 2005 article that introduced Adam to event sourcing</p></li></ul><h3>Tools, Frameworks &amp; Concepts</h3><ul><li><p><a href="https://martinfowler.com/eaaDev/EventSourcing.html">Event Sourcing</a> &#8212; an architectural pattern of storing state changes as an immutable sequence of events</p></li><li><p><a href="https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs">CQRS</a> (Command Query Responsibility Segregation) &#8212; a pattern for separating read and write models</p></li><li><p><a href="https://www.domainlanguage.com/">Domain-Driven Design</a> &#8212; Eric Evans&#8217; approach to software development that became the intellectual home for event sourcing in the .NET world</p></li><li><p><a href="https://www.eventstorming.com/">Event Storming</a> &#8212; Alberto Brandolini&#8217;s workshop format that influenced event modeling&#8217;s collaborative approach</p></li><li><p><a href="https://www.hanselman.com/blog/hanselminutes-podcast-104-dave-laribee-on-altnet">ALT.NET </a>&#8212; the mid-2000s .NET developer community that championed open source, TDD, and better practices</p></li><li><p><a href="https://en.wikipedia.org/wiki/Test-driven_development">Test-Driven Development</a> (TDD) &#8212; discussed at length, including Adam&#8217;s controversial position that event sourcing eliminates the need for it</p></li><li><p><a href="https://cucumber.io/">Cucumber</a> &#8212; BDD testing tool that Adam used before discovering that events themselves serve as specifications</p></li><li><p><a href="https://github.com/storyteller/storyteller">Storyteller</a> &#8212; Jeremy Miller&#8217;s graphical DSL testing framework for .NET that Adam used extensively for specification by example</p></li><li><p><a href="https://nunit.org/">NUnit</a> &#8212; Charlie Poole&#8217;s open source .NET testing framework, a counterpart to Java&#8217;s JUnit</p></li><li><p><a href="https://nhibernate.info/">nHibernate</a> &#8212; the open source .NET ORM ported from Java&#8217;s Hibernate; central to ALT.NET&#8217;s origin story (originally nicknamed the &#8220;nHibernate Mafia&#8221;)</p></li><li><p><a href="https://javapro.io/2025/10/28/dynamic-consistency-boundaries/">Dynamic Consistency Boundary</a> &#8212; an evolution beyond DDD aggregates for managing consistency in event-sourced systems</p></li><li><p><a href="https://www.amazon.com/Specification-Example-Successful-Deliver-Software/dp/1617290084">Specification by Example</a> / <a href="https://dannorth.net/blog/introducing-bdd/">Behavior-Driven Development</a> &#8212; the testing and specification approaches that preceded event modeling</p></li><li><p><a href="https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle">Open/Closed Principle</a> &#8212; referenced by Adam in the context of event sourcing&#8217;s add-only architecture</p></li><li><p><a href="https://www.cursor.com/">Cursor</a> &#8212; AI coding tool Adam used to demonstrate that event model screenshots produce correct implementations on the first try</p></li><li><p>Unix Philosophy &#8212; invoked by Dave to describe the component architecture that event sourcing enables: many specific tools that each do one thing well</p></li></ul><h3>People Referenced</h3><ul><li><p><strong><a href="https://www.eventstore.com/">Greg Young</a></strong> &#8212; CQRS and event sourcing pioneer, longtime collaborator</p></li><li><p><strong><a href="https://eventide-project.org/">Scott Bellware</a></strong> &#8212; Founder of the Eventide project and co-founder of ALT.NET</p></li><li><p><strong><a href="https://martinfowler.com/">Martin Fowler</a></strong> &#8212; author of the 2005 event sourcing article</p></li><li><p><strong><a href="https://www.domainlanguage.com/">Eric Evans</a></strong> &#8212; author of <em>Domain-Driven Design</em></p></li><li><p><strong><a href="https://michaelfeathers.silvrback.com/">Michael Feathers</a></strong> &#8212; author of <em>Working Effectively with Legacy Code (<a href="https://newsletter.nerdnoir.com/p/hbs-001-michael-feathers">also former podcast guest</a>)</em></p></li><li><p><strong><a href="https://www.eventstorming.com/">Alberto Brandolini</a></strong> &#8212; creator of Event Storming</p></li><li><p><strong><a href="https://www.linkedin.com/in/martindilger/">Martin Dilger</a></strong> &#8212; author of <em>Understanding Eventsourcing</em></p></li><li><p><strong><a href="https://jeremydmiller.com/">Jeremy Miller</a></strong> &#8212; creator of the Storyteller testing framework</p></li><li><p><strong>Mike Stockdale</strong> &#8212; creator of SpecSharp, from Calgary</p></li><li><p><strong><a href="https://github.com/CharliePoole">Charlie Poole</a></strong> &#8212; creator of NUnit</p></li><li><p><strong><a href="https://serialseb.com/">Sebastian Lambla</a></strong> &#8212; .NET open source contributor whose work was famously overwritten by Microsoft</p></li><li><p><strong><a href="https://www.hanselman.com/">Scott Hanselman</a></strong> &#8212; referenced in the context of ALT.NET&#8217;s reach into the Microsoft community</p></li></ul><h2>Topics Discussed</h2><h3>The ALT.NET Rebellion and Finding Your People</h3><p>Adam and Dave open by tracing their shared history in the ALT.NET movement, a community of .NET developers who pushed back against Microsoft&#8217;s top-down approach to software development in the mid-2000s. What started as frustration with sealed classes, proprietary tooling, and the &#8220;embrace, extend, extinguish&#8221; mentality became a proving ground for open source, test-driven development, and the architectural ideas that would shape both of their careers.</p><p><strong>Key points:</strong></p><ul><li><p>ALT.NET (originally nicknamed the &#8220;nHibernate Mafia&#8221;) was born from developers needing to take care of each other because Microsoft wasn&#8217;t supporting the open source community</p></li><li><p>The community brought together TDD practitioners, open source advocates, and domain-driven design enthusiasts, creating the conditions for ideas like event sourcing to gain traction</p></li><li><p>Figures like Sebastian Lambla experienced the worst of Microsoft&#8217;s competitive stance, having their open source work overwritten overnight by official Microsoft alternatives</p></li><li><p>Both Adam and Dave credit ALT.NET as the environment where their points of view coalesced, particularly around DDD and event-driven architectures</p></li></ul><h3>From Domain-Driven Design to Event Sourcing</h3><p>The conversation traces how DDD provided the intellectual soil for event sourcing to take root, beginning with Martin Fowler&#8217;s 2005 article and evolving through Adam&#8217;s own experiments writing his first event store in 2009. Adam describes the shift from thinking about domain models and objects to thinking about state changes, facts, and immutable ledgers.</p><p><strong>Key points:</strong></p><ul><li><p>Adam wrote his first production event store in 2009 as a single page of C# code, proving the simplicity of the approach</p></li><li><p>The key insight: treat information the way accountants treat money, with full accountability and no erasures</p></li><li><p>Specification by example and BDD, while valuable stepping stones, became unnecessary once events themselves served as human-readable specifications</p></li><li><p>The community continues to evolve; practices like dynamic consistency boundaries are replacing traditional DDD aggregates, and event versioning through upcasters is giving way to handling multiple event versions directly in read models</p></li></ul><h3>Event Modeling: The Swiss Army Knife</h3><p>Adam delivers his pitch for event modeling: a notation and process for describing information systems that looks like a sideways storyboard, captures state changes as events in plain English, and deliberately excludes implementation details. Born from the realization that his team at Adaptech was already doing something distinctive (they just thought they were doing BDD really well), event modeling was first formally written down at the Event Storming summit in 2018.</p><p><strong>Key points:</strong></p><ul><li><p>Event modeling uses only three moving pieces and four patterns based on two ideas; it takes minutes to explain and the rest is learned in practice</p></li><li><p>No branching logic in workflows; the notation sticks to a storyline by example because human minds remember stories far better than they remember graphs</p></li><li><p>The UX/UI is a first-class citizen in an event model, not an afterthought, because every system is ultimately built for human beings looking at an interface</p></li><li><p>Event modeling functions as a blueprint comparable to architectural plans for a building: the plumber, the carpenter, and the electrician all work from the same document</p></li></ul><h3>The Flat Cost Curve and Why Coupling Is the Real Enemy</h3><p>Adam makes a direct business case for event sourcing and event modeling: Adaptech Group offers fixed-cost contracts and fixes bugs for free. This isn&#8217;t charity; it&#8217;s a direct consequence of an architecture where new features don&#8217;t touch existing code, coupling is managed by design, and the immutable event ledger serves as the single source of truth.</p><p><strong>Key points:</strong></p><ul><li><p>The &#8220;hockey stick&#8221; cost curve in traditional software comes from coupling: shared canonical models, CRUD operations that affect multiple consumers, and abstractions that break everything when they change</p></li><li><p>Event sourcing inverts this by using multiple purpose-built read models that each have exactly what they need, coordinated by an undisputed set of events</p></li><li><p>Schema migrations effectively disappear because new versions of data and old versions coexist naturally</p></li><li><p>The biggest conceptual barrier is the industry&#8217;s attachment to a single canonical model, an idea sold from academia through inheritance hierarchies that doesn&#8217;t mirror how real-world information systems have operated for centuries</p></li></ul><h3>AI as the Next Point of No Return</h3><p>The conversation turns to AI, which Adam frames alongside the Commodore 64, the internet, email, Linux, and event sourcing itself as an irreversible &#8220;aha moment.&#8221; His own turning point was watching ChatGPT generate CSS animations in seconds that would have taken him three hours, and he sees event modeling as the missing link that gives AI the specification quality it needs to generate real systems.</p><p><strong>Key points:</strong></p><ul><li><p>AI&#8217;s impact is comparable to how Google gave us access to everything, but AI gives us the ability to make sense of everything instantly</p></li><li><p>The bottleneck is shifting left to planning, which is exactly where event modeling lives: providing clear, structured specifications that AI can execute against</p></li><li><p>Adam demonstrated early success pasting event model screenshots into Cursor&#8217;s chat window and getting correct unit tests and implementations on the first try, even with less capable models</p></li><li><p>The Pandora&#8217;s box framing: you can&#8217;t uninvent the internet, and you can&#8217;t uninvent AI inference; the question is whether your specifications are good enough to benefit from it</p></li></ul><h3>Two Books and What&#8217;s Next</h3><p>Adam closes with an update on his long-anticipated event modeling book, which is actually two books. Inspired by Eric Evans&#8217; companion booklet to the DDD blue book and Michael Feathers&#8217; reference-pattern format in <em>Working Effectively with Legacy Code</em>, Adam is releasing a concise booklet first, followed by a comprehensive reference book.</p><p><strong>Key points:</strong></p><ul><li><p>The booklet comes first, designed to be immediately applicable, covering why event modeling exists, its core pieces, and the rules for assembling them</p></li><li><p>The full book will include the backstory and motivations, plus a library of reference patterns covering the top 90% of common information system scenarios (sign-up flows, payment integrations, checkout carts, pub/sub patterns, and more)</p></li><li><p>Adam deliberately delayed the book because he never wanted event modeling to require a book to understand, a lesson drawn directly from watching the DDD book&#8217;s intimidating thickness reduce its effective adoption</p></li><li><p>Martin Dilger&#8217;s <em>Understanding Eventsourcing</em> already covers event sourcing using event modeling throughout, giving the community a practical resource while the definitive event modeling book takes shape</p></li></ul><p><em>Hard Boiled Software is hosted by Dave Laribee.</em></p>]]></content:encoded></item><item><title><![CDATA[Rethinking Learning Design with AI]]></title><description><![CDATA[The training workshop finally gets tools.]]></description><link>https://newsletter.nerdnoir.com/p/rethinking-learning-design-with-ai</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/rethinking-learning-design-with-ai</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Sun, 29 Mar 2026 17:23:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1Fky!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Our training at Nerd/Noir already works. Our immersive/experiential style gets people straight into the problem with minimal theory.</p><p>But there&#8217;s always room to grow. Even carefully designed exercises can feel generic when they don&#8217;t map to the specific people in the room or the pains they&#8217;re directly experiencing. Customization works, but it takes time and money. Tailoring scenarios to a specific industry or context could mean weeks of prep for a one-time engagement. Not feasible.</p><p>AI just blew past that ceiling. It makes it absurdly easy to build small, interactive tools that let people FAFO with ideas directly. Not slides about a concept, but a hands-on experience with the concept &#8212; tailored to a specific room&#8217;s needs, pains, industry, concerns, et. al.</p><h2>Example: A Cumulative Flow Scenario Explorer</h2><p>One of our go-to teaching tools is the Cumulative Flow Diagram. CFDs show you where inventory piles up and bottlenecks form in a flow of work. They&#8217;re powerful, but they can be abstract when you&#8217;re staring at a static image on a slide.</p><p>Recognizing this lameness, we built an interactive CFD scenario explorer: <a href="https://tools.nerdnoir.com/cumulative-flow-diagram">tools.nerdnoir.com/cumulative-flow-diagram</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_!1Fky!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1Fky!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png 424w, https://substackcdn.com/image/fetch/$s_!1Fky!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png 848w, https://substackcdn.com/image/fetch/$s_!1Fky!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png 1272w, https://substackcdn.com/image/fetch/$s_!1Fky!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1Fky!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png" width="1066" height="663" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:663,&quot;width&quot;:1066,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:117399,&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://newsletter.nerdnoir.com/i/192337027?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.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_!1Fky!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png 424w, https://substackcdn.com/image/fetch/$s_!1Fky!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png 848w, https://substackcdn.com/image/fetch/$s_!1Fky!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.png 1272w, https://substackcdn.com/image/fetch/$s_!1Fky!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bc1f22-ba24-4586-8f36-4833b54f67f0_1066x663.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>Load different scenarios. Watch how bottlenecks form in real time. Create your own scenarios and see what happens. As we like to say, visuals are valuable.</p><p>It&#8217;s a playground for a concept that once lived in a lecture on a static image.</p><h2>Before You Say It</h2><p>I can hear an objection forming: &#8220;CFDs? Really, dude? AI agent fleets are about to crush the coding bottleneck. Do we still need to understand flow?&#8221;</p><p>The handoff-driven software engineering model is being eaten by AI. But bottlenecks shift. They don&#8217;t vanish. Understanding where inventory accumulates in your system is a first principle. That doesn&#8217;t change just because the constraint moves.</p><p>No matter how AI-augmented your shop is, value must still flow through discovery, design, validation, and delivery. This is especially true in enterprise contexts where the stakes are higher and the feedback loops are longer. </p><p>The CFD isn&#8217;t going anywhere; the bottleneck it reveals just moves upstream. So, I suggest you learn the fundamentals, but I&#8217;m betting I can help your group do that faster and more effectively.</p><h2>This Is Cheap Now</h2><p>This didn&#8217;t take us three months to build. It took a week.</p><p>I wouldn&#8217;t call this vibe-coded. It&#8217;s more of an agentic workflow with a human (me) all up in the loop. We&#8217;re developing more fluency and opinions on tools like Claude Code, our rig is improving, and we&#8217;ll have more to say on that soon. But it&#8217;s uncomfortable in a good way. My tried-and-true instincts keep bumping into this new architecture, and some survive, while others don&#8217;t. But the dopamine hits from learning sure are awesome.</p><p>How we built the tool isn&#8217;t the point. What matters is what you can do once building gets this cheap.</p><p>The speed matters, but the leverage comes from accelerated customization. We can develop scenarios that map to a specific industry or problem space, so people will see themselves in it. There&#8217;s a big difference between &#8220;here&#8217;s a generic example of a bottleneck&#8221; and &#8220;here&#8217;s <em>your</em> bottleneck, modeled from <em>your</em> patterns we&#8217;ve seen in <em>your</em> kind of work.&#8221; One gets a polite nod. The other stokes a conversation.</p><h2>More to Come</h2><p>We&#8217;re building more of these tools at Nerd/Noir. A broader knowledge site that compounds on these ideas is in the works. It&#8217;s not ready for wide release quite yet; I&#8217;m just teasing our new direction here.</p><p>For now, go play with the CFD explorer at <a href="https://tools.nerdnoir.com/cumulative-flow-diagram">tools.nerdnoir.com/cumulative-flow-diagram</a>. Create and break some scenarios. Model your bottlenecks. Copy the markdown into the LLM of your choice and learn some more. </p><p>And let us know what you think!</p><p>/ Dave</p><p>P.S. The tools site has no tracking, no server-side storage, local only. We&#8217;re not trying to become a SaaS company, certainly not in today&#8217;s economy. We&#8217;re just in it for the learning!</p>]]></content:encoded></item><item><title><![CDATA["Whole Team, One Mission" with Woody Zuill]]></title><description><![CDATA[Watch now | Episode 004: Software Teaming, Team Flow, and the Art of Working Together]]></description><link>https://newsletter.nerdnoir.com/p/whole-team-one-mission-with-woody</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/whole-team-one-mission-with-woody</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Tue, 10 Mar 2026 13:35:35 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/190215407/fc9e83a0613d1f2b3d431ba6a3804458.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><strong>Woody Zuill</strong> is the leading advocate of mob programming, now called software teaming, an approach in which the whole team works together on the same thing at the same time on the same computer. A software developer for over 40 years, Woody is the co-author of <em>Software Teaming: A Mob Programming, Whole-Team Approach</em> (with Kevin Meadows) and a globally recognized speaker, trainer, and coach who has delivered workshops on every continent except Antarctica. He&#8217;s also an instigator behind the #NoEstimates discussion and a lifelong student of what makes teams actually work.</p><h2>Episode Description</h2><p>What happens when you put the whole team at one keyboard and keep them there? In this wide-ranging conversation, Woody Zuill traces the path from his earliest experiments with pair programming in the late 1990s through the accidental discovery of mob programming at Hunter Industries to his current thinking on software teaming, AI, and the art of storytelling. Along the way, he reveals how a children&#8217;s book illustrator, a musical instrument factory, and a very specific kind of stubbornness about teamwork shaped one of the most distinctive practices in modern software development.</p><p>Woody shares the origin story of mob programming with refreshing honesty: how the name was borrowed from someone else&#8217;s article, how the practice emerged from simply not wanting to stop working together, and how his early struggles with public speaking led to a decades-long commitment to iterating on the same talks until they shine. The conversation moves through the concept of Team Flow (and why it validated what Woody&#8217;s teams were already experiencing), how different teams around the world have adapted software teaming to fit their own rhythms, and why the question &#8220;how can five people at one computer be productive?&#8221; might be the wrong question entirely.</p><p>Whether you&#8217;re curious about what mob programming actually looks like in practice, wondering whether AI changes the case for working together, or just want to hear why Woody thinks we&#8217;ll stop writing code in programming languages altogether someday, this episode delivers the kind of hard-won, experience-tested insight that only comes from someone who&#8217;s been doing the work, and paying attention, for four decades.</p><h2>Links &amp; Resources</h2><h3>Guest Links</h3><ul><li><p><a href="https://woodyzuill.com/">Woody Zuill&#8217;s Website</a></p></li><li><p><a href="https://www.linkedin.com/in/woodyzuill">Woody Zuill on LinkedIn</a></p></li><li><p><em><a href="https://www.amazon.com/Software-Teaming-Programming-Whole-Team-Approach/dp/B0BLG1QTYK">Software Teaming: A Mob Programming, Whole-Team Approach</a></em> by Woody Zuill &amp; Kevin Meadows</p></li></ul><h3>Books &amp; Articles Mentioned</h3><ul><li><p><em><a href="https://www.amazon.com/Teaming-Organizations-Innovate-Compete-Knowledge/dp/078797093X">Teaming: How Organizations Learn, Innovate, and Compete in the Knowledge Economy</a></em> by Amy Edmondson &#8212; the book that made Woody wish he&#8217;d called it &#8220;teaming&#8221; from the start</p></li><li><p><em><a href="https://www.amazon.com/Extreme-Programming-Perspectives-Michele-Marchesi/dp/0201770059">Extreme Programming Perspectives</a></em> &#8212; edited collection containing the original &#8220;Mob Programming&#8221; article by ThoughtWorks practitioners</p></li><li><p><em><a href="https://www.amazon.com/Pair-Programming-Illuminated-Laurie-Williams/dp/0201745763">Pair Programming Illuminated</a></em> &#8212; early book on pair programming that influenced Llewellyn Falco&#8217;s thinking</p></li><li><p><em><a href="https://www.amazon.com/Team-Flow-psychology-collaboration-SpringerBriefs-ebook/dp/B07Y1N7X8M">Team Flow: The Psychology of Optimal Collaboration</a></em> by Jef van den Hout &amp; Orin C. Davis &#8212; research on achieving shared psychological flow in teams</p></li><li><p><a href="https://www.laputan.org/mud/">&#8220;Big Ball of Mud&#8221;</a> by Brian Foote &amp; Joseph Yoder &#8212; the classic 1997 paper on the most common software architecture pattern</p></li></ul><h3>Tools, Frameworks &amp; Concepts</h3><ul><li><p><a href="https://woodyzuill.com/home/software-teaming-mob-programming/">Software Teaming / Mob Programming</a> &#8212; a whole-team approach to software development at one computer</p></li><li><p><a href="http://llewellynfalco.blogspot.com/2014/06/llewellyns-strong-style-pairing.html">Strong-Style Pairing</a> &#8212; Llewellyn Falco&#8217;s driver-navigator technique: &#8220;For an idea to go from your head into the computer, it must go through someone else&#8217;s hands.&#8221;</p></li><li><p><a href="https://www.fastagile.io/">FAST Agile</a> &#8212; Fluid Adaptive Scaling Technology, developed by Ron Quartel, is closely related to software teaming</p></li><li><p><a href="https://holub.com/noestimates-an-introduction/">#NoEstimates</a> &#8212; discussion and movement around rethinking estimation in software, originated by Woody</p></li><li><p>Driver-Navigator Pattern &#8212; the foundational collaboration technique for pair and mob programming</p></li><li><p><a href="https://www.amazon.com/Team-Flow-psychology-collaboration-SpringerBriefs-ebook/dp/B07Y1N7X8M">Team Flow</a> &#8212; research concept from Jef van den Hout on achieving collective psychological flow in teams</p></li></ul><h3>People Referenced</h3><ul><li><p><strong><a href="https://www.linkedin.com/in/llewellynfalco/">Llewellyn Falco</a></strong> &#8212; inventor of Strong-Style Navigation, creator of ApprovalTests, recommended by Woody for an interview</p></li><li><p><strong><a href="https://www.hbs.edu/faculty/Pages/profile.aspx?facId=6451">Amy Edmondson</a></strong> &#8212; Harvard professor, author of <em>Teaming</em></p></li><li><p><strong><a href="https://lindarising.org/">Linda Rising</a></strong> &#8212; speaker and author who advised Woody early on to tell stories in presentations</p></li><li><p><strong><a href="https://www.scrum.org/">Ken Schwaber</a></strong> &#8212; Scrum co-creator; Woody trained with him at the 2007 Scrum Gathering in Portland</p></li><li><p><strong>Ron Quartel</strong> &#8212; creator of the FAST framework and experimented with dynamic teaming in Seattle</p></li><li><p><strong><a href="https://flowconcepts.nl/en/">Jef van den Hout</a></strong> &#8212; Dutch researcher at Eindhoven University of Technology, developed the Team Flow model</p></li><li><p><strong><a href="https://en.wikipedia.org/wiki/Mihaly_Csikszentmihalyi">Mihaly Csikszentmihalyi</a></strong> &#8212; psychologist who originated the concept of psychological flow</p></li><li><p><strong><a href="https://www.linkedin.com/in/james-herr-63b85b1b3/">James Herr</a></strong> &#8212; Woody&#8217;s collaborator on talks about mob programming and AI</p></li><li><p><strong><a href="https://www.linkedin.com/in/fredzuill/">Fred Zuill</a></strong> &#8212; Woody&#8217;s brother, who described AI as &#8220;a rather faulty, somewhat moderately skilled collaboration partner.&#8221;</p></li><li><p><strong><a href="https://www.andreazuill.org/">Andrea Zuill</a></strong> &#8212; Woody&#8217;s wife, children&#8217;s book author and illustrator (<em>Wolf Camp</em>, <em>Sweety</em>, <em>Dog vs. Strawberry</em>, and others)</p></li><li><p><strong><a href="https://www.linkedin.com/in/jkmeadows/">Kevin Meadows</a></strong> &#8212; co-author of <em>Software Teaming</em></p></li><li><p><strong><a href="https://www.laputan.org/mud/">Brian Foote</a> &amp; <a href="https://www.joeyoder.com/">Joseph Yoder</a></strong> &#8212; authors of the &#8220;Big Ball of Mud&#8221; paper</p></li><li><p><strong><a href="https://en.wikipedia.org/wiki/Taiichi_Ohno">Taiichi Ohno</a></strong> &#8212; Toyota Production System pioneer (referenced by Dave)</p></li></ul><h2>Topics Discussed</h2><h3>The Art of Iterating on a Talk</h3><p>Woody opens up about his journey from someone who couldn&#8217;t speak in front of five people to a presenter who has addressed audiences of over a thousand. His approach&#8212;repeating the same talk title while continually refining the content&#8212;runs counter to the conference circuit norm of always delivering something new, but mirrors the iterative principles at the heart of Agile itself.</p><p><strong>Key points:</strong></p><ul><li><p>Early advice from fellow speakers (including Linda Rising) shaped his approach: speak about what you know deeply, tell stories, and start with friendly audiences</p></li><li><p>His wife Andrea&#8217;s illustrations became a signature element of his presentations, helping audiences connect emotionally even before absorbing the content</p></li><li><p>The process of noting audience questions after every talk and incorporating answers into future versions created a natural feedback loop spanning years</p></li></ul><h3>From Pair Programming to Software Teaming</h3><p>The origin story of mob programming traces back through Woody&#8217;s pair programming experiments in the late 1990s, an article in <em>Extreme Programming Perspectives</em>, and a series of increasingly larger team experiments that culminated at Hunter Industries around 2011-2012. The naming journey&#8212;from mob programming to software teaming&#8212;reflects both practical concerns and a deeper philosophical shift.</p><p><strong>Key points:</strong></p><ul><li><p>The &#8220;mob programming&#8221; name came from an article in <em>Extreme Programming Perspectives</em> (circa 2001-2002) by ThoughtWorks practitioners who experimented with groups larger than pairs</p></li><li><p>Woody dropped &#8220;programming&#8221; because it excluded testers, product people, and designers; he dropped &#8220;mob&#8221; because it means &#8220;bullying&#8221; in some European languages</p></li><li><p>Amy Edmondson&#8217;s <em>Teaming</em> (2012) captured what Woody was already seeing: the ability to work effectively as a team at any moment, not just being assigned to one</p></li><li><p>The real insight wasn&#8217;t a method&#8212;it was noticing that software teams never actually worked like teams in other industries (construction crews, bands, sign installation teams)</p></li></ul><h3>Team Flow and the Prerequisites for Great Teamwork</h3><p>Woody connects his team&#8217;s experience at Hunter Industries to Jef van den Hout&#8217;s research on Team Flow at Eindhoven University of Technology. The academic framework validated what Woody&#8217;s teams had felt intuitively&#8212;and gave language to the conditions that make it possible.</p><p><strong>Key points:</strong></p><ul><li><p>Team Flow requires collective ambition (shared life values), a common goal (the work itself), personal goal alignment, high skill integration, open communication, and mutual commitment</p></li><li><p>The rock band analogy: shared ambition to be a band, common goal of the music, and personal goals that complement rather than compete (you don&#8217;t put six bass players in a group)</p></li><li><p>Once these conditions are met, continuous improvement happens naturally &#8212; you don&#8217;t need to impose it through retrospectives or process mandates</p></li><li><p>Woody reads extensively but approaches research skeptically; Team Flow resonated because it matched his direct experience</p></li></ul><h3>Variations in Practice Around the World</h3><p>Having conducted workshops on every continent except Antarctica, Woody has observed that people everywhere respond similarly to working as a real team&#8212;but the specific practices vary widely. Three teams at one San Francisco company each found completely different approaches to the same core idea.</p><p><strong>Key points:</strong></p><ul><li><p>One team used timers, one switched drivers on request (&#8221;I don&#8217;t want to type anymore&#8221;), and a third kept one driver until a discrete task was complete&#8212;all valid</p></li><li><p>Cultural differences exist (some cultures discourage challenging your boss, others expect it), but Woody encourages teams to speak their native language while coding for clearer thinking</p></li><li><p>Woody never intended his starting guidelines to become rules; like Ken Schwaber told his 2007 Scrum class, the framework is a starting spot, not a destination</p></li><li><p>Ron Quartel&#8217;s FAST framework represents a compelling variation: dynamic reteaming every few days based on what the work demands</p></li></ul><h3>AI, Learning Debt, and the Enduring Value of Working Together</h3><p>The conversation turns to AI with both curiosity and caution. Woody sees clear parallels between the navigator role in software teaming and prompting an AI &#8212; but warns that speed without understanding creates its own set of problems.</p><p><strong>Key points:</strong></p><ul><li><p>The navigator/driver separation in mob programming was essentially prompting before prompting existed: staying at the higher abstraction level while someone (or something) handles the details</p></li><li><p>Fred Zuill&#8217;s description of AI as &#8220;a rather faulty, somewhat moderately skilled collaboration partner&#8221; captures the current state well</p></li><li><p>Dave introduces the concept of &#8220;learning debt&#8221; &#8212; when AI generates code using models, libraries, and constructs that the developer doesn&#8217;t understand, creating a new and dangerous form of technical debt</p></li><li><p>Woody references the &#8220;Big Ball of Mud&#8221; pattern: AI-generated code risks producing an instant version of the architectural mess that normally takes years to develop</p></li><li><p>The deeper concern: teams may be getting more done, but not more of the right things done &#8212; echoing a pattern Woody has seen throughout his career</p></li></ul><h3>Storytelling as the Next Frontier</h3><p>The episode closes with Woody&#8217;s emerging interest in storytelling workshops, inspired by watching his wife Andrea&#8217;s process as a children&#8217;s book illustrator. Her approach&#8212;drawing a character thousands of times until it becomes a living thing&#8212;mirrors the kind of deep, iterative practice that has defined Woody&#8217;s own career.</p><p><strong>Key points:</strong></p><ul><li><p>Andrea Zuill&#8217;s path from selling prints on Etsy to publishing children&#8217;s books began when people kept asking, &#8220;What book is that picture from?&#8221; &#8212; demand preceded supply</p></li><li><p>Woody sees storytelling as a natural extension of his work: conference talks depend on stories, and many practitioners want to develop this skill</p></li><li><p>Dave suggests product management as a particularly promising audience for storytelling workshops&#8212;great product managers tell stories that bring people on board with vision and customer pain</p></li><li><p>Woody&#8217;s honest reflection on his career&#8217;s current inflection point: demand for traditional Agile training is declining, and he&#8217;s exploring what comes next while staying true to what he cares about</p></li></ul><p><em>Hard Boiled Software is hosted by <a href="https://www.linkedin.com/in/laribee/">Dave Laribee</a>.</em></p>]]></content:encoded></item><item><title><![CDATA[AI Is Going to Disrupt Jobs. Eventually.]]></title><description><![CDATA[Maybe it's more turtle than hare.]]></description><link>https://newsletter.nerdnoir.com/p/ai-is-going-to-disrupt-jobs-eventually</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/ai-is-going-to-disrupt-jobs-eventually</guid><dc:creator><![CDATA[Jess Brock]]></dc:creator><pubDate>Mon, 09 Mar 2026 14:43:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5611898f-9746-40a4-8cff-4e858141ef39_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m writing this on a four-hour Amtrak ride back home, watching the Midwest roll past the window. My mind finally has time to wander. I realized something has been weighing on me more than I&#8217;ve wanted to admit.</p><p>Every time another viral piece of content about AI destroying the workforce makes the rounds, I feel a small knot in my stomach.</p><p>I have a daughter who will enter the workforce in the 2030s. And I would like to retire sometime around 2040.</p><p>Those timelines make the current wave of AI predictions feel a little more personal.</p><p>Some of the essays circulating right now paint a bleak picture of the next few years. Entire professions disappearing. Corporations run by autonomous agents. Office work collapsing within a decade.</p><p>One dystopian scenario, <a href="https://www.citriniresearch.com/p/2028gic">2028</a>, imagines a wave of AI-driven unemployment sweeping across the global economy. The piece clearly struck a nerve, collecting nearly 8,000 likes on Substack. <a href="https://blog.andrewyang.com/p/the-end-of-the-office">Andrew Yang</a> has made a similar argument, suggesting that advances in artificial intelligence could ultimately bring about the collapse of traditional office work.</p><p>These are serious arguments, and hard to dismiss because they seem so damn plausible.</p><p>But the more I look at the research from organizational science and knowledge management, and reflect on my own hard-earned experience in the corporate trenches, the more I think these predictions share a hidden assumption that doesn&#8217;t hold up in the real world.</p><p>They assume <strong>knowledge work is mostly explicit and codified</strong>. Decades of organizational research show that much of the knowledge inside companies is tacit, experiential, and socially learned. That makes established organizations far harder to &#8220;agentify&#8221; than current forecasts assume. Not permanently harder. But harder in ways that stretch the disruption timeline well beyond what anyone is currently selling.</p><div class="pullquote"><p>My argument is not that the job apocalypse isn&#8217;t coming. It&#8217;s that it&#8217;s on backorder.</p></div><h2><strong>Agents Can&#8217;t Read Minds</strong></h2><p>One of the foundational ideas in knowledge management comes from philosopher and scientist <a href="https://www.amazon.com/Tacit-Dimension-Michael-Polanyi/dp/0226672980">Michael Polanyi</a>.</p><p>His most famous line is just seven words:</p><blockquote><p><em>&#8220;We know more than we can tell.&#8221;</em> (Polanyi)</p></blockquote><p>Polanyi was describing what researchers now call <em>tacit knowledge</em>: knowledge that is non-verbalized, intuitive, and difficult to codify.</p><p>Examples are everywhere once you start noticing them.</p><ul><li><p>An engineer recognizing that a design will create operational problems later, even though the code technically matches the spec today.</p></li><li><p>A leader sensing the political dynamics inside a meeting.</p></li><li><p>A customer support person recognizing that a frustrated caller does not actually need more troubleshooting steps, but reassurance, empathy, and someone willing to go off script.</p></li></ul><p>A fair objection here is that modern AI systems don&#8217;t learn only from written text. Reinforcement learning, agent-based simulation, and feedback loops allow AI to acquire something closer to experiential knowledge. But even granting that, it addresses only part of the problem. The deeper barrier isn&#8217;t whether AI can develop judgment in isolation. It&#8217;s whether that judgment can operate inside organizations that are fundamentally social and political structures, built on trust, reputation, and unwritten rules accumulated over many years.</p><h2><strong>Organizations Are Messy Human Systems</strong></h2><p>Political scientist <a href="https://www.amazon.com/Organizations-James-G-March/dp/063118631X">Herbert Simon</a> observed that organizations operate under <em>bounded rationality</em>: decisions emerge through negotiation, incomplete information, and institutional constraints. That framing raises uncomfortable questions for anyone betting on a near-term agentic AI revolution.</p><p>Consider IBM&#8217;s rollout of <a href="https://www.statnews.com/2021/03/08/ibm-watson-health-sale/">Watson Health</a>. IBM invested heavily in the premise that AI could transform clinical decision-making, a domain rich in explicit data. What they encountered instead was a system that struggled to navigate the informal knowledge structures of actual hospital environments: physician hierarchies, institutional politics, and the kind of contextual judgment that experienced clinicians build over years. By 2021, IBM was selling off the unit at a significant loss. The technology wasn&#8217;t the limiting factor. The organizational environment was.</p><p>That story isn&#8217;t an anomaly. It&#8217;s a preview of the challenges that await any aggressive attempt to automate knowledge work inside established organizations.</p><p>The unwritten rules. The quiet etiquette that everyone knows but no one says. When to escalate. When to let something slide. These are not technical problems. They are social ones.</p><h2><strong>We&#8217;ve Seen This Movie Before</strong></h2><p>Technological revolutions often go through a phase where investment runs well ahead of real adoption.</p><p>During the late 1990s dot-com boom, telecommunications companies spent more than $500 billion ($1 trillion in today&#8217;s dollars) building fiber-optic infrastructure based largely on projections about future internet traffic. Much of it sat unused. The industry coined a term for it: dark fiber.</p><p>The internet did eventually grow into that infrastructure and restructure enormous parts of the economy. But it took nearly two decades. And most workers who were mid-career when Netscape launched in 1994 retired with their careers largely intact.</p><p>The current AI boom shows similar dynamics. Technology companies are <a href="https://www.reuters.com/business/autos-transportation/companies-pouring-billions-advance-ai-infrastructure-2026-02-24/">investing massive sums</a> into GPUs, data centers, and energy infrastructure, through partnerships involving Microsoft, OpenAI, NVIDIA, Meta, and others, justified largely by projections about future demand rather than current productivity gains. That&#8217;s partly a bet on the future. But it&#8217;s also worth noting who is placing the bet. If you sell chips, cloud infrastructure, or AI tools, the story that AI will soon transform the entire economy is an extraordinarily convenient one. </p><div class="pullquote"><p>Big technological narratives and financial self-interest seem to travel together.</p></div><p>What makes AI particularly good at fueling these narratives is that it&#8217;s impressive enough to spark the imagination, but ambiguous enough that its limits are hard to challenge. Dark fiber, at least, was just fiber. You could see it sitting unused. AI&#8217;s unrealized potential is much easier to keep selling.</p><h2><strong>Some Organizations Will Agentify Soon</strong></h2><p>Where AI may reshape organizations most dramatically is in companies that don&#8217;t exist yet, or are in very early stages. This is worth taking seriously because it&#8217;s where the more credible version of the disruption argument lives.</p><p>Startups have no years of accumulated tacit knowledge to untangle, no legacy systems, no cultural dynamics, no undocumented workarounds baked into muscle memory. They can design everything around agents from the beginning. AI-native organizations will likely be very flat: a handful of humans providing oversight and judgment while agents handle much of the execution underneath.</p><p>The concern this raises is real. If AI-native startups outcompete established organizations, jobs don&#8217;t disappear from within companies so much as the companies themselves lose ground. That is still disruptive.</p><p>But that process unfolds over decades of market share erosion, investment cycles, and organizational turnover. It is not a year- or two-out displacement event. It looks more like the slow replacement of department stores by e-commerce than a wave crashing over the economy all at once.</p><p>Established companies will adapt too, but incrementally, and with far more humans-in-the-loop than the more dramatic forecasts suggest.</p><h2><strong>In The End</strong></h2><p>The continued importance of humans in organizations is not wishful thinking. It is grounded in decades of research (and reality) on how organizations actually work, how knowledge actually moves, and how slowly even well-resourced organizations change.</p><p>The gap between what AI can do in a demo and what it can do inside a messy, politically complicated, legacy-laden organization is real and large. That gap will close. Gradually. Unevenly. With false starts, &#8220;dark fiber&#8221; moments, and bold predictions that age poorly.</p><p>By the time my daughter enters the workforce in the 2030s, AI agents will likely be part of her daily working environment. They may handle significant portions of tasks that humans perform today. But the organizations she joins will still be built around human judgment, human politics, and human relationships, because that is what organizations have always required, and the research gives us little reason to think that changes quickly.</p><p>The disruption is coming. Maybe it&#8217;s more turtle than hare.</p>]]></content:encoded></item><item><title><![CDATA["The Missing Layer Between AI and Better Decisions" with Steve Elliott]]></title><description><![CDATA[Listen now | Episode 003: AI Powered Strategy, Alignment, and Operating Models]]></description><link>https://newsletter.nerdnoir.com/p/hbs-003-steve-elliott</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/hbs-003-steve-elliott</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Sun, 15 Feb 2026 20:30:32 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/187968625/265bf4b6506242882bf146e7dbc70027.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<h1>Connecting the Dots from Strategy to Execution</h1><p><a href="https://www.linkedin.com/in/steve-j-elliott/">Steve Elliott</a> is the founder and CEO of <a href="https://dotwork.com/">Dotwork</a>, an AI-native strategic alignment platform built on knowledge graphs and flexible ontologies. A serial entrepreneur with several successful exits, Steve previously founded AgileCraft (acquired by Atlassian in 2019) and served as Head of Product at Atlassian. He also co-founded <a href="https://www.theuncertaintyproject.org/">The Uncertainty Project</a>, a community-driven playbook for better organizational decision-making, and is the author of <em><a href="https://www.amazon.com/Decisive-Company-High-Performance-Organizations-Execution-ebook/dp/B0DNKPXG92/ref=sr_1_1?crid=3DS81JVUAPJMB&amp;dib=eyJ2IjoiMSJ9.uN_Bn-lywgyu6uPjBC6rFD2rwWQbrn7M2yxYT8E7nTlmVZKhxdvvTgKAnZe3-8V6rrm1oon0Gm_ehEkA0NWGMfjfxB-vsbystnYKvCpT2EZki3wf2K-gNQoR15QIhnL2um90GP1jRWGVlphudPsmt4FfSWjZ3jLl4KAzEyvK1us3DiYDOdmP6teBvbWZbgiuUM536T_mhuIr6qhrZnJ5GDoN8guzoOJuD1klcxHuxyA.GBcxb3mrkHY_g8zaBvfWCbFaWt4EQ20KUl-bpPHKUaA&amp;dib_tag=se&amp;keywords=The+Decisive+Company&amp;qid=1771091820&amp;sprefix=the+decisive+company%2Caps%2C236&amp;sr=8-1">The Decisive Company</a></em>.</p><h2>Episode Overview</h2><p>Why do so many organizations still run strategy on spreadsheets and slide decks? And what would it look like if AI could actually understand how your organization thinks&#8212;not just summarize its documents?</p><p>In this conversation, Steve Elliott traces his path from Big Six consulting through serial entrepreneurship to the problem that&#8217;s consumed his career: strategic alignment in large, complex organizations. He unpacks why the gap between executive intent and team execution persists despite decades of tooling, and why the first generation of enterprise agility platforms&#8212;including the one he built and sold to Atlassian&#8212;ultimately couldn&#8217;t solve it. The root issue, Steve argues, isn&#8217;t cultural or procedural. It&#8217;s structural: organizations lack a durable, evolving memory of how they operate and why they make decisions.</p><p>That diagnosis led Steve to build Dotwork, a platform that combines flexible ontologies, knowledge graphs, and AI to create what he calls an organizational operating system&#8212;one that can observe how work actually flows (not just how it&#8217;s drawn on slides), maintain context across planning cycles, and surface signals to leaders without drowning them in noise. Along the way, the conversation covers why operating models aren&#8217;t operating systems, how to make decisions under uncertainty, and what it would take for AI to move beyond task-level productivity to genuine systemic intelligence.</p><h2>Links &amp; Resources</h2><h3>Guest Links</h3><ul><li><p><a href="https://dotwork.com/">Dotwork</a> &#8212; AI-native strategy and portfolio platform</p></li><li><p><a href="https://www.linkedin.com/in/steve-j-elliott/">Steve Elliott on LinkedIn</a></p></li><li><p><em><a href="https://www.amazon.com/Decisive-Company-High-Performance-Organizations-Execution/dp/1544546432">The Decisive Company: How High-Performance Organizations Connect Strategy to Execution</a></em> by Steve Elliott</p></li></ul><h3>Tools, Frameworks &amp; Concepts</h3><ul><li><p><strong><a href="https://www.theuncertaintyproject.org/">The Uncertainty Project</a></strong> &#8212; a community-driven playbook of decision-making models and techniques, co-founded by Steve</p></li><li><p><strong>Knowledge Graphs</strong> &#8212; graph-based data structures for relating organizational concepts over time</p></li><li><p><strong>Flexible Ontologies</strong> &#8212; adaptive data models that capture how an organization thinks and evolves</p></li><li><p><strong><a href="https://www.youtube.com/watch?v=XjShSJkffzI">One-Way Door / Two-Way Door Decisions</a></strong> &#8212; framework for calibrating decision speed to reversibility</p></li><li><p><strong><a href="https://en.wikipedia.org/wiki/OODA_loop">John Boyd&#8217;s OODA Loop</a></strong> &#8212; Observe, Orient, Decide, Act decision-making framework</p></li><li><p><strong><a href="https://teamtopologies.com/">Team Topologies</a></strong> &#8212; framework for organizing teams around cognitive load and flow (referenced by Dave)</p></li><li><p><strong><a href="https://www.svpg.com/the-product-operating-model-an-introduction/">Product Operating Model</a></strong> &#8212; outcome-oriented approach to organizing product development work</p></li><li><p><strong><a href="https://martinfowler.com/eaaDev/EventSourcing.html">Event Sourcing</a></strong><a href="https://martinfowler.com/eaaDev/EventSourcing.html"> </a>&#8212; a software architecture pattern where system state derives from an audit trail of events (referenced by Dave)</p></li></ul><h3>People Referenced</h3><ul><li><p><strong><a href="https://www.linkedin.com/in/johnpcutler/">John Cutler</a></strong> &#8212; Head of Product at Dotwork, author of <a href="https://cutlefish.substack.com/">The Beautiful Mess</a> newsletter</p></li><li><p><strong><a href="https://en.wikipedia.org/wiki/W._Edwards_Deming">W. Edwards Deming</a></strong> &#8212; management theorist, referenced by Dave (&#8221;by what method&#8221;)</p></li><li><p><strong><a href="https://en.wikipedia.org/wiki/John_Boyd_(military_strategist)">John Boyd</a></strong> &#8212; military strategist, creator of the OODA loop</p></li></ul><h2>Topics Discussed</h2><h3>From Consulting to Serial Entrepreneurship</h3><p>Steve&#8217;s career began at one of the Big Six consulting firms, where the rapid rotation through large organizations gave him a front-row seat to recurring patterns of organizational dysfunction. Working on segregation of duties in ERP systems, he kept seeing the same problems resurface year after year&#8212;and realized that issuing reports wasn&#8217;t solving anything. That frustration drove him to build software that could address these problems.</p><p><strong>Key points:</strong></p><ul><li><p>Consulting provided breadth&#8212;seeing dozens of companies&#8217; decision-making patterns in quick succession&#8212;but delivering reports felt hollow when the same issues reappeared annually</p></li><li><p>The pivot from consulting to software was driven by wanting to help customers actually solve problems, not just document them</p></li><li><p>This pattern of seeing recurring organizational dysfunction became the throughline across multiple startups</p></li></ul><h3>The Strategic Alignment Problem</h3><p>The core problem Steve keeps chasing: in large organizations, executives have strategies and teams have plans, but the connection between them is fragile and constantly breaking. Plans go stale within weeks of creation, and the people tasked with keeping everything connected&#8212;what Steve calls &#8220;human glue&#8221;&#8212;can&#8217;t scale to keep pace with organizational complexity.</p><p><strong>Key points:</strong></p><ul><li><p>Leaders can&#8217;t see what&#8217;s working in real time; teams don&#8217;t understand why their priorities keep shifting</p></li><li><p>John Cutler&#8217;s framing of &#8220;forever problems&#8221;&#8212;alignment will never be fully solved, but getting meaningfully better at it changes everything</p></li><li><p>It&#8217;s often mislabeled as a culture problem when it&#8217;s actually a visibility and structural problem</p></li><li><p>The faster organizations move (flatter structures, AI adoption, tool proliferation), the harder alignment gets</p></li></ul><h3>The Limits of Existing Tools</h3><p>Steve offers an honest postmortem on both ends of the tooling spectrum: scrappy spreadsheet-and-slides approaches that lose memory every planning cycle, and the first generation of enterprise agility platforms that assumed too much organizational consistency. Both fail for related but different reasons.</p><p><strong>Key points:</strong></p><ul><li><p>Spreadsheets and slides are cheap but create no organizational memory&#8212;every planning cycle feels like starting from scratch</p></li><li><p>Enterprise agility tools scaled process well but couldn&#8217;t scale understanding because their data models were too rigid</p></li><li><p>The fatal flaw of first-generation platforms: assuming conformity across the organization when real orgs are dynamic and constantly reshaping themselves</p></li><li><p>Steve built and sold one of these platforms (AgileCraft to Atlassian) and learned firsthand where the approach breaks down</p></li></ul><h3>Ontologies, Knowledge Graphs, and Organizational Memory</h3><p>The technical heart of the conversation: Steve explains how flexible ontologies and knowledge graphs provide the foundation for a system that models how an organization operates&#8212;and evolves that model as the organization changes. The key concept is &#8220;durable context&#8221;&#8212;understanding not just what decision was made, but also what the world looked like when it was made.</p><p><strong>Key points:</strong></p><ul><li><p>An ontology is a shared language for how the organization thinks; a knowledge graph keeps those ideas connected over time</p></li><li><p>First-generation tools had their ontology hard-coded into a relational database&#8212;if the org didn&#8217;t match the model, the tool broke</p></li><li><p>Durable context means preserving the factors that surrounded a decision so you can compare past and present conditions meaningfully</p></li><li><p>Graph technology handles the networked nature of modern work while still supporting the hierarchies that matter (people, budgets, time)</p></li></ul><h3>Operating Models vs. Operating Systems</h3><p>A subtle but important distinction: the operating model is the idealized version of how work should flow; the operating system is what&#8217;s actually happening on the ground. Steve argues that most organizations focus on the model and neglect the system&#8212;missing opportunities to learn from how work actually moves.</p><p><strong>Key points:</strong></p><ul><li><p>Operating models are like class diagrams; operating systems are like runtime behavior with observability</p></li><li><p>The gap between model and system is where the most valuable coaching and organizational design insights live</p></li><li><p>If teams are getting better outcomes by working outside the prescribed model, that&#8217;s a signal to update the model&#8212;not enforce compliance</p></li><li><p>Being able to observe both and compare them is a genuinely new organizational capability</p></li></ul><h3>Dotwork&#8217;s Vision: Intelligence Without More Dashboards</h3><p>Dotwork&#8217;s approach is deliberately different from the &#8220;log into our dashboard&#8221; paradigm. Steve describes a vision of a &#8220;dark system&#8221;&#8212;a context engine with organizational memory that surfaces relevant signals to leaders wherever they already work, without requiring them to learn yet another tool.</p><p><strong>Key points:</strong></p><ul><li><p>Rather than pulling all data into one system via heavy connectors, Dotwork uses AI to progressively retrieve just the specific metrics and signals that matter</p></li><li><p>The goal is to eliminate status meetings and planning overhead by making alignment observable and continuous</p></li><li><p>The vision: an AI that knows both you (like a personal GPT) and your organization, enabling higher-value work</p></li><li><p>Leaders consistently ask for the same thing: help me look around corners and see second-order impacts before they become expensive mistakes</p></li></ul><h3>AI Beyond Task-Level Productivity</h3><p>The conversation closes with a broader look at where AI creates systemic value versus task-level value. Steve argues that the bottleneck isn&#8217;t AI capability, <em>it&#8217;s organizational context</em>. Without an ontology and memory of how the organization operates, AI agents are flying blind.</p><p><strong>Key points:</strong></p><ul><li><p>Current AI wins are mostly task-based (code generation, summarization); the bigger opportunity is system-level intelligence</p></li><li><p>For AI to do meaningful organizational work, it needs to understand who makes decisions, how they&#8217;re funded, and what&#8217;s been tried before</p></li><li><p>The missing piece: institutional knowledge and context that currently lives in people&#8217;s heads or is scattered across dozens of tools</p></li><li><p>Steve&#8217;s hope: leaders freed from status meetings and compliance toil can spend more time on strategy, experimentation, and building things that matter</p></li></ul><p><em>Hard Boiled Software is hosted by <a href="https://www.linkedin.com/in/laribee/">Dave Laribee</a>.</em></p>]]></content:encoded></item><item><title><![CDATA["Building Teams That Actually Learn" with Diana Larsen]]></title><description><![CDATA[Watch now | Learning, Leading, and the Long Game of Agile]]></description><link>https://newsletter.nerdnoir.com/p/episode-002-diana-larsen</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/episode-002-diana-larsen</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Wed, 28 Jan 2026 11:31:38 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/185883391/6b415d90db2346d41ab5e4c85c5aec94.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Diana Larsen is a pioneering figure in the Agile movement who has been shaping how teams learn and work together since the late 1990s. Co-author of the foundational <em>Agile Retrospectives</em> (with Esther Derby) and <em>Liftoff</em> (with Ainsley Nies), Diana brings decades of experience helping organizations build learning cultures. Her recent work with <em>Lead Without Blame</em> (co-authored with Tricia Broderick) extends her focus on leadership that supports team autonomy and psychological safety.</p><h2>Episode Description</h2><p>What does it mean to build a learning organization? Why does that matter now more than ever? </p><p>In this conversation, Diana Larsen traces her journey from the earliest days of what would become the Agile movement to her current work with leaders navigating today&#8217;s complex, constantly shifting landscape.</p><p>Diana shares hard-won insights on why retrospectives so often fail to deliver value (and what actually makes them work), how team chartering accelerates performance, and why the human side of software development keeps getting short-changed in favor of shiny new tools. Along the way, she introduces FAST (Fluid Adaptive Scaling Technology)&#8212;an emerging approach that synthesizes open space principles, self-selection, and dynamic reteaming into something genuinely different from the heavyweight scaling frameworks that dominate the conversation.</p><p>Struggling to make your retros meaningful? Wondering how to support teams without a dedicated Scrum Master? Or just curious what someone who&#8217;s been in this game for 25+ years sees on the horizon?</p><p>This episode offers both practical wisdom and the long view that only comes from sticking around long enough to see the patterns.</p><h2>Links &amp; Resources</h2><h4>Guest Links</h4><ul><li><p><a href="https://www.dianalarsen.com/">Diana Larsen&#8217;s Website</a></p></li><li><p><a href="https://www.linkedin.com/in/dianalarsenagileswd/">Diana Larsen on LinkedIn</a></p></li><li><p><a href="https://teamliftoffs.com/">Team Liftoffs</a> &#8212; Neil Taylor&#8217;s continuation of the liftoff/chartering work</p></li></ul><h4>Books by Diana Larsen</h4><ul><li><p><em><a href="https://pragprog.com/titles/dlret2/agile-retrospectives-second-edition/">Agile Retrospectives: A Practical Guide for Catalyzing Team Learning and Improvement</a></em><a href="https://pragprog.com/titles/dlret2/agile-retrospectives-second-edition/"> (2nd Edition)</a> by Esther Derby, Diana Larsen &amp; David Horowitz</p></li><li><p><em><a href="https://pragprog.com/titles/liftoff/liftoff-second-edition/">Liftoff: Start and Sustain Successful Agile Teams</a></em><a href="https://pragprog.com/titles/liftoff/liftoff-second-edition/"> (2nd Edition)</a> by Diana Larsen &amp; Ainsley Nies</p></li><li><p><em><a href="https://leadwithoutblame.com/">Lead Without Blame: Building Resilient Learning Teams</a></em> by Diana Larsen &amp; Tricia Broderick</p></li></ul><h4>Books &amp; Articles Mentioned</h4><ul><li><p><em><a href="https://scottberkun.com/yearwithoutpants/">The Year Without Pants: WordPress.com and the Future of Work</a></em> by Scott Berkun &#8212; on distributed work at Automattic/WordPress</p></li><li><p><em><a href="https://www.jeckstein.com/distributed-teams/">Agile Software Development with Distributed Teams</a></em> by Jutta Eckstein (2010) &#8212; early work on remote/diffuse teams</p></li><li><p><em><a href="https://www.amazon.com/Human-Side-Enterprise-Annotated/dp/0071462228">The Human Side of Enterprise</a></em> by Douglas McGregor &#8212; the Theory X/Theory Y framework</p></li></ul><h4>Tools, Frameworks &amp; Concepts</h4><ul><li><p><strong><a href="https://en.wikipedia.org/wiki/Self-determination_theory">Self-Determination Theory</a></strong> &#8212; an academic framework on autonomy-supportive leadership</p></li><li><p><strong><a href="https://openspaceworld.org/">Open Space Technology</a></strong> &#8212; the meeting format that inspired elements of FAST</p></li><li><p><strong><a href="https://www.amazon.com/Dynamic-Reteaming-Wisdom-Changing-Teams/dp/1492061298">Dynamic Reteaming</a></strong> &#8212; the practice of teams reforming based on work needs</p></li><li><p><strong><a href="https://www.fastagile.io/">FAST Agile</a></strong> &#8212; Fluid Adaptive Scaling Technology, developed by Quinton (Ron) Quartel</p></li></ul><h4>Shout Outs</h4><ul><li><p><strong><a href="https://estherderby.com/">Esther Derby</a></strong> &#8212; co-author of <em>Agile Retrospectives</em></p></li><li><p><strong><a href="https://www.dorsethouse.com/authors/kerth.html">Norm Kerth</a></strong> &#8212; retrospectives pioneer, connected to the retrospective facilitator gatherings</p></li><li><p><strong><a href="https://www.linkedin.com/in/dshorowitz/">David Horowitz</a></strong> &#8212; co-author on the 2nd edition of <em>Agile Retrospectives</em>, CEO of <a href="https://www.retrium.com/">Retrium</a></p></li><li><p><strong><a href="https://www.linkedin.com/in/ainsleynies/">Ainsley Nies</a></strong> &#8212; co-author of <em>Liftoff</em></p></li><li><p><strong><a href="https://igniteii.com/">Tricia Broderick</a></strong> &#8212; co-author of <em>Lead Without Blame</em>, founder of Ignite Insight + Innovation</p></li><li><p><strong><a href="https://www.linkedin.com/in/nealdtaylor/">Neil Taylor</a></strong> &#8212; carrying forward the Team Liftoffs work (<a href="https://teamliftoffs.com/">teamliftoffs.com</a>)</p></li><li><p><strong><a href="https://www.linkedin.com/in/quintonquartel/">Quinton (Ron) Quartel</a></strong><a href="https://www.linkedin.com/in/quintonquartel/"> </a>&#8212; creator of the <a href="https://www.fastagile.io/">FAST framework</a></p></li><li><p><strong><a href="https://scottberkun.com/">Scott Berkun</a></strong> &#8212; author of <em>The Year Without Pants</em></p></li><li><p><strong><a href="https://www.jeckstein.com/">Jutta Eckstein</a></strong> &#8212; author of an early distributed teams book</p></li><li><p><strong><a href="https://en.wikipedia.org/wiki/Douglas_McGregor">Douglas McGregor</a></strong> &#8212; management theorist (Theory X/Theory Y)</p></li><li><p><strong><a href="https://www.linkedin.com/in/matthew-plavcan/">Matt Plavcan</a></strong> &#8212; Introduced Dave to Diana, making this podcast possible </p></li><li><p><strong><a href="https://www.agileopennorthwest.org/">Agile Open Northwest</a></strong> &#8212; open space conference (Portland/Seattle)</p></li></ul><h2>Topics Discussed</h2><h3>The Evolution of Agile (and Why It Keeps &#8220;Dying&#8221;)</h3><p>Diana offers a compelling lens on the recurring declarations that &#8220;Agile is dead&#8221;&#8212;connecting them to the diffusion of innovation curve. Each time Agile crosses from one adopter group to the next (pioneers to early adopters to majority), the previous group declares it dead because it&#8217;s necessarily changing to accommodate new contexts.</p><p><strong>Key points:</strong></p><ul><li><p>Diana entered through XP in 1997, bringing experience with cross-functional, self-organizing teams from high-tech manufacturing</p></li><li><p>Every wave of &#8220;Agile is dead&#8221; corresponds to a diffusion curve transition</p></li><li><p>The community&#8217;s strength has been its ability to learn its way through major shifts&#8212;from co-location to remote, from desktop to mobile, and now to AI</p></li></ul><h3>Why Retrospectives Fail (And What Actually Works)</h3><p>The retrospective framework from <em>Agile Retrospectives</em> isn&#8217;t just a meeting format&#8212;it mirrors how the human brain naturally processes decisions. When teams skip steps or reduce retros to &#8220;what went well/what didn&#8217;t&#8221; lists, they lose the collaborative thinking that drives real improvement.</p><p><strong>Key points:</strong></p><ul><li><p>The framework follows natural human cognition: attention &#8594; perception &#8594; implications &#8594; decision</p></li><li><p>&#8220;When your retrospectives go well, every other meeting in your organization goes well&#8221;</p></li><li><p>Retros that don&#8217;t affect the next iteration&#8217;s plan aren&#8217;t working&#8212;they&#8217;re building process resentment</p></li><li><p>The goal isn&#8217;t catharsis; it&#8217;s collaborative decision-making that creates buy-in along the way</p></li></ul><h3>Team Chartering and Liftoffs</h3><p>Taking time at the beginning to establish shared purpose, working agreements, and context dramatically accelerates team performance. Diana&#8217;s work with Neil Taylor is bringing this practice into the remote-first era.</p><p><strong>Key points:</strong></p><ul><li><p>Three essential elements: purpose/vision, who&#8217;s doing the work and how, and contextual environment</p></li><li><p>The charter is &#8220;always a draft&#8221;&#8212;available for adjustment but providing a reference point</p></li><li><p>For remote teams, co-located liftoffs create lasting human connection that sustains virtual collaboration</p></li><li><p>Team chartering and retrospectives work together as a system&#8212;retro insights can update the charter</p></li></ul><h3>The Disappearing Agile Roles Problem</h3><p>As organizations shed Scrum Masters and Agile coaches, they often expect managers to absorb these responsibilities without developing the skills or capacity to do so well.</p><p><strong>Key points:</strong></p><ul><li><p>Many organizations hired managers for paperwork and HR compliance, not team nurturing</p></li><li><p><em>Lead Without Blame</em> addresses what leaders can do to create conditions for performance without becoming full-time coaches</p></li><li><p>The human problems in organizations won&#8217;t be solved by new tools&#8212;they require developing new capabilities in people</p></li><li><p>Leaders&#8217; plates are overflowing; burnout is the predictable result</p></li></ul><h3>FAST: A Different Approach to Scaling</h3><p>Fluid Adaptive Scaling Technology combines open space, self-selection, dynamic reteaming, and XP-style small slices of work into an alternative to heavyweight scaling frameworks.</p><p><strong>Key points:</strong></p><ul><li><p>Created by Quinton (Ron) Quartel after observing open space conferences and asking, &#8220;What if we applied this to software development?&#8221;</p></li><li><p>Teams form around work on a short cadence (2-3 days to a week), demonstrate progress, then reform based on what&#8217;s needed next</p></li><li><p>Eliminates the &#8220;60% on this project, 30% on that&#8221; cognitive overhead while maintaining flexibility</p></li><li><p>Allows quick response to changing product direction without waiting for quarterly planning cycles</p></li></ul><h3>The Autonomy-Supportive Leader</h3><p>Diana traces a through-line from Douglas McGregor&#8217;s 1952 Theory X / Theory Y work through self-determination theory to today&#8217;s challenges. Really good leadership has looked similar for decades&#8212;we just keep defaulting back to control.</p><p><strong>Key points:</strong></p><ul><li><p>Theory Y assumes people want to do good work and will if barriers are removed; Theory X assumes they need to be pressured</p></li><li><p>Self-determination theory provides academic grounding for autonomy-supportive leadership</p></li><li><p>Diana&#8217;s current work: meeting with leadership groups to share new ideas and help reframe challenges</p></li><li><p>Focus on environments, team dynamics, and leadership as the three elements that optimize organizational capability</p></li></ul><h2>Thanks for listening!</h2><p>If this conversation resonated with you, subscribe to <strong>Hard Boiled Software</strong> wherever you get your podcasts. Follow us for more conversations with systems thinkers who care about the craft of building software.</p><p>Visit the <a href="https://newsletter.nerdnoir.com/podcast">Nerd/Noir newsletter</a> for episode archives, show notes, and more explorations at the intersection of technology and the human condition.</p>]]></content:encoded></item><item><title><![CDATA[Documentation Needs a Feedback Loop]]></title><description><![CDATA[Checking documentation the moment code changes.]]></description><link>https://newsletter.nerdnoir.com/p/documentation-needs-a-feedback-loop</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/documentation-needs-a-feedback-loop</guid><dc:creator><![CDATA[Jess Brock]]></dc:creator><pubDate>Mon, 26 Jan 2026 14:12:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/958ed812-34bf-4fca-8e25-5d9e2f223d7d_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>System diagrams, READMEs, API docs, design docs, knowledge bases, FAQs, PRDs, tutorials, runbooks, playbooks, etc. The list never ends, and neither does the maintenance burden.<br><br>Organizations live and die by documentation. Onboarding, compliance, decision-making, knowledge sharing, support. All of it assumes the docs are right.</p><p>They&#8217;re usually not.</p><h2>Why?</h2><p>Documentation fails for structural reasons. Shipping is visible and rewarded. Maintenance is quiet and thankless. Without enforcement, documentation updates are always optional, and optional work reliably loses.</p><p>The cost isn&#8217;t immediate. It surfaces later as slow onboarding, broken runbooks, support escalations, and repeated &#8220;How does this actually work?&#8221; conversations. By the time anyone notices, the gap between how the system works and how it&#8217;s described has already grown expensive to close.</p><div class="pullquote"><p>Documentation drifts because nothing in the development process forces it to stay true.</p></div><h2>Introducing <em>Doc-Drift</em></h2><p>If documentation drift is inevitable without enforcement, the fix has to live where enforcement already happens: the pull request. I built a project called <em><a href="https://github.com/jbrockSTL/doc-drift">Doc-Drift</a></em>.</p><p>On every pull request, it compares the proposed code changes with the documentation and flags cases where the documentation now contradicts the code. Not hypothetically. Not stylistically. Only when a specific claim in the docs is no longer true, given the change being made.</p><p>That framing matters. Most documentation isn&#8217;t abstract guidance. It makes concrete claims: which commands exist, which endpoints are available, and which libraries are in use. Those claims are tightly coupled to the code, but we rarely verify that coupling when the code changes.</p><p><em>Doc-Drift</em> treats documentation as a set of assertions that can be checked at the same time the system itself is under review. Instead of asking humans to remember to update docs, it turns documentation drift into a concrete, reviewable signal at pull-request time.</p><h2>How it works</h2><p>Essentially, I wired up a GitHub Action that does three things:</p><ol><li><p>Reads the pull request diff</p></li><li><p>Checks those changes against documentation sources (e.g., a &#8220;docs&#8221; folder or an external URL to a document repository)</p></li><li><p>If drift exists, a <em>Doc-Drift</em> report is created and posted as a PR comment</p></li></ol><p>Here&#8217;s the mental model:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wAbj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wAbj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png 424w, https://substackcdn.com/image/fetch/$s_!wAbj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png 848w, https://substackcdn.com/image/fetch/$s_!wAbj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png 1272w, https://substackcdn.com/image/fetch/$s_!wAbj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wAbj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png" width="1456" height="1158" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1158,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:180803,&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://j3ssbr0ck.substack.com/i/185380973?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.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_!wAbj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png 424w, https://substackcdn.com/image/fetch/$s_!wAbj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png 848w, https://substackcdn.com/image/fetch/$s_!wAbj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.png 1272w, https://substackcdn.com/image/fetch/$s_!wAbj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b031037-e115-4154-b30f-c8fde978c1ee_2434x1936.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>Here&#8217;s the most important constraint: the system is not allowed to guess.</p><p>No, &#8220;This might need review.&#8221;</p><p>If it can&#8217;t point to a specific code change and a specific piece of documentation that now conflicts with it, it stays silent.</p><p>This is a deliberate tradeoff. The system catches specific contradictions, not conceptual drift. It won&#8217;t notice a README that omits a new responsibility or guidance that&#8217;s become misleading without being false. I chose that constraint because LLMs confabulate, and a noisy tool is worse than no tool.</p><p>In other words, <em>Doc-Drift </em>is a starting point, not a complete solution. It catches obvious contradictions; subtler drift still requires human judgment.<br><br>See the <a href="https://github.com/jbrockSTL/doc-drift/blob/main/prompt.md">full prompt</a>.</p><h3>False positives and cost</h3><p>In practice, false positives in <em>Doc-Drift</em> have been rare. Maybe one in every dozen findings needs to be dismissed. On cost: I&#8217;m using <a href="https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/">GPT-4o-mini</a>, which keeps things cheap. A typical PR with a moderately sized docs folder runs a fraction of a cent. Enough to leave running on every PR without thinking about it.<br><br>To gut-check this, I looked at my actual OpenAI usage data while testing <em>Doc-Drift</em> across many pull requests. The total spend reported was a whopping $0.03.<br><br>More expensive models and larger enterprise setups will cost more, but sub-cent checks at this baseline ain&#8217;t bad.</p><h3>Context window limits</h3><p>GPT-4o-mini has a 128k context window, which comfortably handles most documentation cases. For larger repositories, the action chunks documentation into smaller slices to stay within limits.</p><p>Chunking introduces an obvious risk: missing context or drawing incorrect conclusions from partial information. <em>Doc-Drift</em> avoids this by grounding every finding in quoted evidence from the same chunk being evaluated.</p><h2>Findings</h2><p>After experimenting with toy repos, I turned to <a href="https://github.com/alan2207/bulletproof-react">Bulletproof React</a>, a decently complex codebase with over 3,000 forks, extensive documentation, and non-trivial dependencies.</p><h3>Test 1: Remove a dependency</h3><p>I was happy to see that removing the dependency <code>@tanstack/react-query </code>(line 29) in <code>package.json</code> surfaced a reference in the performance doc.</p><p>The conflict surfaces verbatim as: &#8220;<em>It is possible to prefetch data before the user navigates to a page. This can be done by using the queryClient.prefetchQuery method from the @tanstack/react-query library.</em>&#8221; Without catching this drift, this guidance becomes useless the moment the PR merges. Worse, the build would likely break, or someone down the road might reintroduce the dependency without understanding why it was removed.<br><br>The suggested rewording seems weak: merely replacing <code>@tanstack/react-query</code> with &#8220;<em>from a suitable data-fetching library.</em>&#8221; I didn&#8217;t provide a replacement dependency in the PR, so maybe this is as good as we can expect. Hey, at least it doesn&#8217;t hit us with verbose best-practice nonsense.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PJNC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PJNC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png 424w, https://substackcdn.com/image/fetch/$s_!PJNC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png 848w, https://substackcdn.com/image/fetch/$s_!PJNC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png 1272w, https://substackcdn.com/image/fetch/$s_!PJNC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PJNC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png" width="1456" height="1447" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1447,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:388119,&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://j3ssbr0ck.substack.com/i/185380973?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.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_!PJNC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png 424w, https://substackcdn.com/image/fetch/$s_!PJNC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png 848w, https://substackcdn.com/image/fetch/$s_!PJNC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.png 1272w, https://substackcdn.com/image/fetch/$s_!PJNC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1886eb37-9bd2-43e6-88cc-5993cd4bafb3_1900x1888.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>Test 2: Rename an endpoint</h3><p>Renaming an endpoint in <code>get-teams.ts</code> (line 8) from <code>/teams</code> to <code>/groups</code> surfaced documentation drift in the project structure file. In this case, the LLM did a solid job, providing a clear impact statement and a suggested rewording that is about as good as you can reasonably expect.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9-OW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9-OW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png 424w, https://substackcdn.com/image/fetch/$s_!9-OW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png 848w, https://substackcdn.com/image/fetch/$s_!9-OW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png 1272w, https://substackcdn.com/image/fetch/$s_!9-OW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9-OW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png" width="1456" height="1329" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1329,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:304394,&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://j3ssbr0ck.substack.com/i/185380973?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.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_!9-OW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png 424w, https://substackcdn.com/image/fetch/$s_!9-OW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png 848w, https://substackcdn.com/image/fetch/$s_!9-OW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.png 1272w, https://substackcdn.com/image/fetch/$s_!9-OW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a46cde4-bf1b-46f5-b5ba-c636f52ac045_1874x1710.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>Test 3: Revise the startup command</h3><p>I intentionally broke a startup command to see whether it was documented. In most projects, startup scripts usually are. The change itself was trivial: a single update to the <a href="https://github.com/alan2207/bulletproof-react/blob/master/apps/react-vite/package.json">Vite script</a> (line 7):</p><pre><code><code>"dev": "vite"  &#8594;  "start": "vite"</code></code></pre><p>The Doc-Drift report flagged roughly half a dozen documentation files, including Application Overview, Project Standards, State Management, and Testing, all of which still instruct readers to run <code>npm run dev</code> even though that command no longer exists. Once this change merges, each of those instructions becomes a dead end.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MTRK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MTRK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png 424w, https://substackcdn.com/image/fetch/$s_!MTRK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png 848w, https://substackcdn.com/image/fetch/$s_!MTRK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png 1272w, https://substackcdn.com/image/fetch/$s_!MTRK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MTRK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png" width="1456" height="3836" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3836,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:960492,&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://j3ssbr0ck.substack.com/i/185380973?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.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_!MTRK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png 424w, https://substackcdn.com/image/fetch/$s_!MTRK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png 848w, https://substackcdn.com/image/fetch/$s_!MTRK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.png 1272w, https://substackcdn.com/image/fetch/$s_!MTRK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bbfc642-0a03-45f1-acb4-9077cfe7dcd2_1899x5003.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><h2>Where this could go</h2><h3>Missing Documentation</h3><p>PR-time drift detection helps keep existing documentation honest. But it doesn&#8217;t answer: <em>Where would new documentation add value?</em></p><p>Examples:</p><ul><li><p>A new microservice with no README.</p></li><li><p>A new feature flag with no explanation of safety or removal.</p></li><li><p>A UI flow change that leaves the knowledge base pointing users to the wrong steps.</p></li></ul><p>Once you start treating documentation as something that&#8217;s checked continuously rather than remembered occasionally, other LLM use cases come into focus.</p><h3>Code Standards</h3><p>The same PR-time feedback loop that catches documentation drift can also ask a nearby question:</p><p><em>Does this code change still reflect the standards we say we follow?</em></p><p>Most teams already have these written down somewhere:</p><ul><li><p>architectural principles</p></li><li><p>design patterns</p></li><li><p>testing standards</p></li><li><p>secure coding guidelines</p></li><li><p>naming conventions</p></li></ul><p>The opportunity is that code standards are rarely checked at the moment change happens, when the cost of feedback is lowest.</p><p>The question shifts from a post-hoc critique to a real-time prompt:</p><ul><li><p><em>Has this part of the system evolved without explanation?</em></p></li><li><p><em>Does this change contradict how we say we build software here?</em></p></li></ul><h2>Final thought</h2><p>Documentation will always lag behind the code. The question is by how much, and whether anyone notices before it gets too bad. <em>Doc-Drift</em> won&#8217;t close that gap entirely. But it shortens it automatically, on every PR. That&#8217;s a starting point worth having.<br><br><em>Try it yourself: <strong><a href="https://github.com/jbrockSTL/doc-drift">Doc-Drift GitHub</a></strong></em></p>]]></content:encoded></item><item><title><![CDATA["The Skills That Survive AI" with Michael Feathers]]></title><description><![CDATA[Professional Identity & Skills Evolution in the AI Era]]></description><link>https://newsletter.nerdnoir.com/p/hbs-001-michael-feathers</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/hbs-001-michael-feathers</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Wed, 14 Jan 2026 10:01:26 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/184236200/451af9634da846c29f43f0b41c422226.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dXZb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dXZb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!dXZb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!dXZb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!dXZb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dXZb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:458232,&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://newsletter.nerdnoir.com/i/184236200?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.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_!dXZb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!dXZb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!dXZb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!dXZb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bc27a30-fc36-4fa1-9973-7fd0b99cef59_1280x720.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>Michael Feathers is the author of <em>Working Effectively with Legacy Code</em>, the de facto survival guide for developers dealing with gnarly, untested systems for nearly two decades. He&#8217;s been a thought leader in software craftsmanship, refactoring, and technical excellence throughout his career.</p><ul><li><p><a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a> &#8212; Michael&#8217;s seminal book on wrangling tougher codebases</p></li><li><p><a href="https://www.r7krecon.com/">R7K Research &amp; Conveyance</a> &#8212; Michael&#8217;s company specializes in software and organizational design</p></li><li><p><a href="https://www.linkedin.com/in/michaelfeathers/">Michael&#8217;s LinkedIn Profile</a> &#8212; Follow for Michael&#8217;s current events and thinking</p></li></ul><h2>Episode Summary</h2><p>Dave and Michael have an honest conversation about what&#8217;s happening to the software profession right now. From the dopamine hit of programming to the commoditization of hard-won skills, they explore professional identity, second-order effects of AI adoption, and what remains evergreen in a rapidly shifting landscape.</p><h2>Topics Covered</h2><h3>Where has all the dopamine gone?</h3><ul><li><p>Programming&#8217;s intrinsic reward loop&#8212;the rush of solving problems and getting closure through code</p></li><li><p>Whether AI usage can replicate that satisfaction</p></li><li><p>The difference between the TDD flow state and the AI-assisted workflow</p></li></ul><h3>Availability Bias &amp; Path Dependency</h3><ul><li><p>Michael&#8217;s biggest AI concern: accepting the first generated solution without considering alternatives</p></li><li><p>Software&#8217;s deep path dependency&#8212;early decisions compound</p></li><li><p>The Starbucks analogy: do you care about <em>coffee</em> or <em>caffeine</em>? Design or delivery?</p></li></ul><h3>Navigating Programmer Ego Death</h3><ul><li><p>The psychological transition as coding skills get commoditized</p></li><li><p>Reframe: loving programming means loving understanding and building <em>systems</em>&#8212;social, organizational, economic</p></li><li><p>Evolution from &#8220;problem solvers&#8221; to &#8220;problem articulators&#8221;</p></li></ul><h3>Second-Order Effects of AI in Organizations</h3><ul><li><p>Junior dev displacement may be overstated</p></li><li><p>Dan Shipper&#8217;s model: pairing senior/junior developers with separate agents plus shared AI ops support</p></li><li><p>The real risk: generating code you don&#8217;t understand at unprecedented speed</p></li><li><p>Metrics creep&#8212;lines of code (or token usage) returning; Goodhart&#8217;s Law incoming</p></li></ul><h3>What Skills Remain Evergreen</h3><ul><li><p><strong>Examples over specifications</strong>&#8212;few-shot prompting works; Brian Marick&#8217;s &#8220;an example would be handy right about now&#8221;</p></li><li><p><strong>Sidestepping problems</strong>&#8212;knowing when to abandon a dead-end approach</p></li><li><p><strong>Value judgments in architecture</strong>&#8212;AI can&#8217;t implicitly understand context-specific values</p></li><li><p><strong>Learning how to learn</strong>&#8212;meta-learning strategies matter more than any specific technology</p></li></ul><h3>The Architecture Moat</h3><ul><li><p>No &#8220;GitHub for architecture&#8221;&#8212;no standardized documentation unit</p></li><li><p>Design and architecture remain more human-protected domains</p></li><li><p>Experiment: asking an LLM &#8220;how would Michael Nygaard design this system?&#8221;</p></li></ul>]]></content:encoded></item><item><title><![CDATA[How a 7¢ LLM Experiment Rescued My Inbox]]></title><description><![CDATA[A powerful example of how people can level up with LLMs using pocket change]]></description><link>https://newsletter.nerdnoir.com/p/how-a-7-llm-experiment-rescued-my</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/how-a-7-llm-experiment-rescued-my</guid><dc:creator><![CDATA[Jess Brock]]></dc:creator><pubDate>Wed, 09 Jul 2025 13:28:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5df41c1d-c113-4493-91dd-794f7ca3c7fe_1312x928.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I used to wake up with unread dread, my inbox overflowing with a hundred-something emails and that relentless red Gmail badge. I&#8217;d become a digital hoarder&#8212;subscribing to every shiny newsletter in the name of &#8220;staying sharp&#8221; and feeding my chronically curious brain. Between work, side projects, parenting, and life, it was clear my inbox was not going to fix itself.</p><p>I didn&#8217;t have much luck with email tools. Most couldn&#8217;t cut through the noise or were pricey. Gemini&#8217;s built-in summaries were weak and required hands-on refinement. I needed something sharper, like an email equivalent of Geoffrey from <em>The Fresh Prince of Bel-Air</em>, an assistant who would do much more than summarize.<br><br>So, in true 2025 fashion, I asked ChatGPT for help. An hour later, the problem was solved.</p><h2>An Email Assistant is Born</h2><p><strong>Here&#8217;s how it works:</strong></p><ul><li><p><a href="https://script.google.com/">Google Apps Script</a> scans unread emails from my curated sender list</p></li><li><p>Sends content to <a href="https://openai.com/api/pricing/">GPT&#8209;4o&#8209;mini</a> (strong performance at low cost)</p></li><li><p>Returns clean bulleted summaries, tailored insights, subtle market signs to watch out for&#8212;no fluff</p></li><li><p>Sends a polished digest to my inbox twice daily</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_!3sb4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3sb4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!3sb4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!3sb4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!3sb4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3sb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2534570,&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://newsletter.nerdnoir.com/i/166123746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.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_!3sb4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!3sb4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!3sb4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!3sb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c2dcb22-adf4-47d7-a1e8-b76026cdfaec_1536x1024.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><figcaption class="image-caption">A diagram of the script logic</figcaption></figure></div><p><strong>Here&#8217;s the structure for each summarized email:</strong></p><ul><li><p><em>Subject:</em> [Email Subject Here]</p></li><li><p><em>From:</em> [Sender Name or Address]</p></li><li><p><em>Summary:</em></p><ul><li><p>Insight 1 &#8211; Quick, key detail</p></li><li><p>Insight 2 &#8211; What matters most</p></li><li><p>Insight 3 &#8211; Implication or takeaway</p></li></ul></li><li><p><em>Watch Outs:</em></p><ul><li><p>Potential risk or trend &#8211; What to flag</p></li><li><p>Interesting connection &#8211; A signal worth noticing</p></li></ul></li><li><p><em>Link:</em> [Clickable link to open the thread]</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_!VCz9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VCz9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 424w, https://substackcdn.com/image/fetch/$s_!VCz9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 848w, https://substackcdn.com/image/fetch/$s_!VCz9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 1272w, https://substackcdn.com/image/fetch/$s_!VCz9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VCz9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png" width="1456" height="901" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:901,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:477275,&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;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.nerdnoir.com/i/166123746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.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_!VCz9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 424w, https://substackcdn.com/image/fetch/$s_!VCz9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 848w, https://substackcdn.com/image/fetch/$s_!VCz9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 1272w, https://substackcdn.com/image/fetch/$s_!VCz9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F703357c1-d003-4a14-8cd6-2784d090b566_2800x1732.png 1456w" sizes="100vw"></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">A real email digest from the email assistant</figcaption></figure></div><p>Since using my humble email assistant, I begin each day with a couple of emails&#8212;usually the important ones, such as school notices or bank alerts&#8212;that no longer get buried in my inbox.</p><p>Do I miss the polished graphics and immersive layouts? Yes, that is part of the tradeoff. But I don&#8217;t miss the scrolling, the weight of dread, or the anxiety of FOMO.</p><h2>Yep, it&#8217;s 7&#162;</h2><p>That&#8217;s seven cents over thirty-seven days or about the cost of a US postage stamp for a year&#8217;s worth of email wrangling. Even a piggy bank could handle that.</p><p><strong>Here&#8217;s why it&#8217;s so cheap &#8212; </strong><em><strong>Model selection matters</strong></em><strong>:</strong></p><ul><li><p>GPT&#8209;4o&#8209;mini was chosen for best cost&#8209;performance, priced at $0.15 per million input tokens and $0.60 per million output tokens.</p></li></ul><p><strong>It gets better:</strong> OpenAI&#8217;s <a href="https://platform.openai.com/docs/guides/prompt-caching">prompt caching</a> automatically &#8220;remembers&#8221; the part of my request that remains the same, such as the summary instructions I always use. That means most of my input tokens get billed at the discounted $0.075/M rate instead of $0.15/M, cutting costs without extra work.<br><strong><br>Let&#8217;s break it down:</strong><br><em>297K input tokens across 198 calls</em></p><ul><li><p>~200K cached input &#8594; negligible cost</p></li><li><p>~97K fresh input &#8594; ~$0.015</p></li><li><p>~40K summary output &#8594; ~$0.055</p></li><li><p><strong>Total &#8776; $0.07</strong></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_!cx_O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cx_O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png 424w, https://substackcdn.com/image/fetch/$s_!cx_O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png 848w, https://substackcdn.com/image/fetch/$s_!cx_O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png 1272w, https://substackcdn.com/image/fetch/$s_!cx_O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cx_O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png" width="1456" height="760" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:760,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:277615,&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://newsletter.nerdnoir.com/i/166123746?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.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_!cx_O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png 424w, https://substackcdn.com/image/fetch/$s_!cx_O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png 848w, https://substackcdn.com/image/fetch/$s_!cx_O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.png 1272w, https://substackcdn.com/image/fetch/$s_!cx_O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fefda56-6afe-40c0-ba11-641ef52cdd3f_3136x1636.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><figcaption class="image-caption">My OpenAI API usage for the email assistant - June 1 through July 8, 2025</figcaption></figure></div><p>What started as a way to escape unread dread has become a reminder that thoughtful applications of AI can support us in meaningful ways, helping us reclaim focus, skip the clutter, and stay tuned into what matters. That&#8217;s how AI helps humanity, by giving us back space to be human.</p><h2>New Era: Builders, Not Buyers</h2><p>We may be entering a new era where everyday technologists stop asking &#8220;Which subscription do I buy?&#8221; and start asking &#8220;What can I build next?&#8221; Tiny, composable AI tools&#8212;scripts, snippets, agents&#8212;replace the need for yet another $20&#8209;a&#8209;month app. You design, you own, you iterate. That is a different kind of economy, and arguably a different kind of internet.</p><h2>Build Your Email Assistant</h2><p>If you&#8217;re interested in building your email assistant, check out my <a href="https://github.com/jbrockSTL/Google-Scripts-OpenAI-Email-Assistant">GitHub</a> for the full script and step-by-step guide. Also, feel free to reach out if you&#8217;d like to dig in more.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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 Hard Boiled Software! Subscribe for free to receive new posts and support my work.</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[Better Results Together]]></title><description><![CDATA[The AI stan&#8217;s rumors of teamwork&#8217;s death have been greatly exaggerated.]]></description><link>https://newsletter.nerdnoir.com/p/better-results-together</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/better-results-together</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Tue, 24 Jun 2025 12:25:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1a43bc6a-39d2-47ec-8a47-34362b04abcc_1312x928.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I've built my entire career around one conviction: diverse people working closely together create bigger and better outcomes than brilliant individuals working alone. </p><p>Now, as AI tools and techniques proliferate and teams shrink to three-person units of product engineers managing a fleet of agents, I'm watching that belief get stress-tested in real time. We're not just changing how teams work. We're accidentally dismantling what makes teams work at all.</p><h3><strong>Teams Are Systems</strong></h3><p>A team is not simply a collection of people sharing proximity on an org chart. That&#8217;s a workgroup or a department, but it's not a team.</p><p>A team is a system made up of people. Dr. Russell Ackoff said it best:</p><blockquote><p><em>A system is never the sum of its parts; it's the product of their interaction. The performance of a system doesn't depend on how the parts perform taken separately, it depends on how they perform together &#8211; how they interact, not on how they act, taken separately.</em></p></blockquote><p>A good team is like Voltron: the parts come together to form a greater whole. There&#8217;s even a German word for this concept: Gestalt. </p><p>In other words, <em>we produce better results together.</em> </p><p>I&#8217;ve built my entire career in software development around this belief.</p><h3>Effective Teams: Small &amp; Capable</h3><p>What are the systemic properties that make some teams extremely productive?</p><p>They possess all the capabilities necessary to produce value. The Agile movement converged on a nice definition of team: groups of cross-functional people aligned on delivering value.</p><p>They&#8217;re small. Amazon's management culture defined "two pizza teams"&#8212;small teams whose catering order could be satisfied by two pizzas. Size matters when it comes to teams because we're trying to reduce the number of communication paths. </p><p>And when small, cross-functional teams rigorously manage their work-in-progress, prioritize learning, and focus on meaningful outcomes? They can produce an outsized impact.</p><h3><strong>My Gold Standard</strong></h3><p>My gold standard for teaming comes from what we did at VersionOne a decade or so ago: a product manager, a floating designer, and a pair or two of engineers working closely together. </p><p>Our teams also had a versatile tester role. These people curated various automated testing suites while helping the rest of the team frame their work in testable specifications. The term &#8220;tester&#8221; undersells their contribution. They were detail-oriented product people, on hand to collaborate with developers while freeing up product managers to get out of the building and talk with customers.</p><p>Our teams were also super capable. They could, for example, adapt their workflow in near real-time to suit the feature they were working on. One quarter, a team would use a kanban-like process being fed by a detective board maintained by their designers. In the next quarter, they&#8217;d switch to ticket-based development using GitHub issues. Their workflow served their mission, and the mission was never the process itself.</p><p>Context matters here. We worked in a collective ownership model. We had only one main product, a couple of small sidecar products, and a significant number of integrations. However, with 5-6 teams, we were able to deliver substantial value to our customers quickly by working in an ultra-collaborative manner.</p><p>Nostalgia is a hell of a drug, but given a similar set of circumstances, this will always be the gold standard for me.</p><h3><strong>Who needs a team when you have Jira?</strong></h3><p>Along with the many positive aspects of the Agile and DevOps movements came a commercial gold rush in tooling, and with that, we lost some of the principled approaches we found in eXtreme Programming and DevOps culture. And, yes, I&#8217;m aware that VersionOne, as an agile tracking tool, had a part in this.</p><p>It became common for me to work with groups that focused on tooling and tickets rather than customers, users, and their unmet needs.</p><div class="pullquote"><p>Teams are the indivisible unit of performance.</p></div><p>Unfortunately, every good idea eventually gets twisted by monetization. &#8220;Ride the wave,&#8221; conventional wisdom tells us. For DevOps, it was tool mania. For Agile, it was an overindexing on process, certification, and tracking tools. As for AI? This movement requires vast capital expenditure, so monetization is built in from the start.</p><p>One shouldn&#8217;t entirely blame these revolutions. They still produce a lot of good. Still, each wave of innovation took its shot at teamwork, promising tools that would shuttle issues to engineers, measuring them as replaceable parts. By default, vendor tools appear to be winning over the principled style of work that once held teams together as the indivisible unit of performance.</p><h3><strong>The Individual vs. The Collective</strong></h3><p>In the GenAI era, some teams are getting extremely small. One pizza team! Three slice team!</p><p>Solopreneurs are the future! The sole founder unicorn startup! Today&#8217;s zeitgeist bends toward certain stock characters: the rugged individual and the eccentric genius. Ayn Rand would be proud.</p><p>This kind of talk is the trade of startup hustle culture. It&#8217;s a cool idea on the surface. New tools and techniques are certainly empowering smaller outfits to have outsized productivity and reduced development costs.</p><p>While these trends are most visible in startup or B2C contexts rather than big enterprises, it's not hard to see the writing on the wall: team sizes are shrinking.</p><p>We're seeing this new role (which isn't new at all) called the "product engineer." This is an exceptionally versatile person who can do everything a product manager can do, everything a designer can do, and everything an engineer can do, with the caveat that they're heavily augmented by AI tooling.</p><p>Hmm&#8230; Where have we heard this before? Full-stack developers, of course!</p><h3><strong>Embracing New Forms of Collaboration</strong></h3><p>A more optimistic view is that we&#8217;re converging toward small, 3-5 person teams where everyone has a strong foundation in product mindset and reflexive skills that enable rapid exploration and experimentation in parallel. Smaller, faster, better.</p><p>The nature of work itself is changing in ways that necessitate a reevaluation of what collaboration entails.</p><p>Here&#8217;s one scenario: as AI tools become more prevalent in software engineering and product development, the interactions between engineering teammates may begin to approach what Toyota calls <em>Yokoten, </em>which means &#8220;the horizontal deployment or lateral sharing of best practices.&#8221;</p><p>Yokoten isn't your typical corporate "best practices" initiative where someone creates a wiki that nobody reads. It's an active, intentional practice of:</p><ul><li><p><strong>Spotting improvements worth spreading</strong> - Not every local solution deserves global deployment, but the good ones shouldn't stay hidden.</p></li><li><p><strong>Adapting, not copying</strong> - Smart teams don't just copy-paste solutions. They understand the principles and adapt them to their context.</p></li><li><p><strong>Benefiting from feedback loops</strong> - When Team A shares a new prompting with Team B, Team B's usage might improve the original solution or make it more generalizable.</p></li></ul><p>Suppose each engineer is managing a fleet of AI agents, iterating on prompts and evaluations. That&#8217;s full-stack, at least in the application layer of AI Engineering. Here, collaboration becomes less about dividing tasks among people with different yet complementary skills and more about sharing our insights around achieving results.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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://newsletter.nerdnoir.com/subscribe?"><span>Subscribe now</span></a></p><p>In this near future, teams may resemble communities of practice. Instead of a product manager, designer, and engineer each owning their functional skill set, you might have three people who are all wielding similar AI-augmented capabilities but bringing different perspectives to how they prompt, validate, and iterate. The collaboration occurs at a meta-cognitive level&#8212;how do we improve our ability to work with these tools together?</p><h3><strong>Wither teaming?</strong></h3><p>Does this mean the concept of teams is headed toward an extinction event?</p><p>I don&#8217;t think so. Here&#8217;s why:</p><p><strong>1. Humans are still the best LLM.</strong> Despite all the advances in AI, humans bring context, intuition, and judgment that no tool can replicate. We understand nuance, navigate ambiguity, and make connections that stochastic algorithms cannot, especially when we&#8217;re building for our species.</p><p><strong>2. Collective wisdom rejects bad ideas.</strong> Having someone to bounce ideas off generally helps reject bad ideas. Sure, this can create either &#8220;naysaying&#8221; or &#8220;egging on&#8221; conditions, but tapping into collective wisdom is invaluable. The best ideas survive scrutiny. The not-so-great ones get chalked up to learning, rejected before they waste too much time.</p><p><strong>3. Teams create accountability networks.</strong> If I say I'm going to do something to the people I work closely with, I'm more likely to do it. I've put that commitment external to myself, and that social contract matters. It&#8217;s how we evaluate the reliability of our teammates.</p><p><strong>4. Complex systems require some degree of specialization.</strong> As Robert Heinlein said, "specialization is for insects," but in larger, more complex systems, you need elements like human resilience and risk management to mitigate knowledge silos. Teams are the most effective means to these ends.</p><p><strong>5. Progression happens around other people.</strong> Teams and community can provide access to aspirational people who challenge you to elevate your game. I learn a lot from reading and through solo trial and error, but my most profound learnings have come from working closely with people who were masterful or virtuosic in a skill I envied.</p><h3><strong>Teaming Evolution, Not Extinction</strong></h3><p>What we're witnessing isn't the death of teams, it's their evolution. For a teaming nerd like me, that's something to be excited about.</p><p>The dinosaurs of team structure&#8212;sequential handoffs, rigid role definitions, process-heavy coordination&#8212;are indeed facing extinction. Good riddance! The core principle that diverse perspectives and skills can create something greater than the sum of their parts? That's the mammal that survives the meteor.</p><p>Tomorrow's teams will likely be smaller, more fluid, and AI-reflexive. They might form and dissolve more rapidly in response to specific needs rather than as permanent structures. We could certainly improve in that area as an industry. But they'll still be teams because the fundamental challenges of building great products (understanding users, navigating complexity, maintaining quality while moving quickly) remain greater than any individual can overcome alone.</p><p>The value of human collaboration extends beyond task division and specialized skills. It's about collective judgment, accountability networks, the spark of unexpected connections, and the resilience that comes from shared purpose. These qualities remain relevant even in the wake of technological advancements. They become even more essential as we navigate increasingly complex systems.</p><p>Whether we call it Yokoten, Gestalt, or good old-fashioned collaboration, we're still talking about humans creating better outcomes together than they could achieve alone or paired with the most advanced neural network. The mechanics will and should evolve, but the principle remains rock solid: <em>we produce better results together</em>.</p><p>That's not nostalgia talking. It's systems thinking shouting from the mountain. And until someone invents an AI that can simultaneously replace human taste, judgment, collaboration, and accountability without posing an existential threat, I'll continue to bet on teams, however they might take shape in the years ahead.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/better-results-together?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://newsletter.nerdnoir.com/p/better-results-together?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p>]]></content:encoded></item><item><title><![CDATA[Busy is the New Stupid]]></title><description><![CDATA[How perpetual urgency is sabotaging your most important work.]]></description><link>https://newsletter.nerdnoir.com/p/busy-is-the-new-stupid</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/busy-is-the-new-stupid</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Sun, 08 Jun 2025 18:17:11 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3d2d7827-50e7-4a1e-a23c-ec25d0ab0c4a_840x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2ygd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2ygd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png 424w, https://substackcdn.com/image/fetch/$s_!2ygd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png 848w, https://substackcdn.com/image/fetch/$s_!2ygd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png 1272w, https://substackcdn.com/image/fetch/$s_!2ygd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2ygd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png" width="840" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:981207,&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://newsletter.nerdnoir.com/i/165276049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.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_!2ygd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png 424w, https://substackcdn.com/image/fetch/$s_!2ygd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png 848w, https://substackcdn.com/image/fetch/$s_!2ygd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.png 1272w, https://substackcdn.com/image/fetch/$s_!2ygd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13e9f2c1-4c36-4f5a-8569-1434bd1cd66f_840x600.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>"Busy is the new stupid." I don't know who said it first (some attribute it to Warren Buffett, others to Bill Gates), but whoever coined it nailed something essential about our current moment.</p><p>At Nerd/Noir, we're seeing a troubling pattern. Leaders hire us to help with critical initiatives (product transformations, developer experience improvements, organizational design), then struggle to find time to engage with the work they've commissioned. We're not just competing with other consultancies for mindshare. We're competing with the &#8220;<a href="https://www.theartofsimple.net/fighting-the-tyranny-of-the-urgent-at-home/">tyranny of the urgent</a>&#8221; for basic attention.</p><p>This isn't a humble brag about our calendar-booking prowess. It's a warning sign about how "busy" has become the archenemy of progress.</p><h2><strong>The Attention Economy War</strong></h2><p>We're living in an attention economy where everyone is fighting for the same scarce resource: your focus.</p><p>Your phone buzzes with notifications designed by teams of behavioral psychologists. Your calendar fills with meetings that could have been handled via email. Your Slack threads multiply like digital weeds, each demanding immediate response.</p><p>This isn't an accident. It's by design. Every app, every platform, every business partner is optimizing for engagement, for mindshare, for that precious slice of your sweet, sweet cognitive bandwidth. <br><br>And the result? We're all drowning in a sea of artificial urgency, mistaking the volume of inputs for the quality of outputs.</p><h2><strong>The Busy Trap</strong></h2><p>Here's what we're witnessing: senior leaders champion an initiative, allocate a budget, kick off the work, and then promptly disappear into a vortex of meetings, firefighting, and reactive work. Three months later, they surface, wondering why the change isn't happening faster.</p><p>Sound familiar? From which side?</p><p>The problem isn't that these leaders don't care. They're drowning in a culture that mistakes motion for progress, confusing being busy with being productive. Every slot on the calendar feels urgent. Every Slack notification demands immediate attention. Every fire needs to be extinguished personally.</p><p>But busy isn't a strategy. Quite the opposite, it's an abdication of strategic thinking.</p><h2><strong>The Hidden Costs of Perpetual Motion</strong></h2><p>When leaders are too busy to engage with their own strategic initiatives, several things happen:</p><p>First, the work loses its champion. Without ongoing leadership visibility and decision-making, teams diverge, operating on outdated assumptions. Progress slows. Momentum dies.</p><p>Second, you send a signal to your organization about what actually matters. If the sponsor can't make time for strategic work, why should anyone else? Your teams start treating the initiative like just another thing on the pile rather than a priority that could transform their work.</p><p>Third, you miss the iterative refinement that makes change stick. Strategy isn't something you set and forget. It's something you adapt based on learning. But adaptation requires attention, and attention demands time.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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 Hard Boiled Software! Subscribe for free to receive posts and support our work.</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><h2><strong>Working Within Reality: Concentrated Collaboration</strong></h2><p>Recognizing this attention crisis, we've had to rethink how we design our engagements at <a href="https://nerdnoir.com">Nerd/Noir</a>. We've stopped pretending that people have unlimited time for synchronous collaboration. In 2025, I&#8217;d go so far as to classify that notion as a Pollyannaish fantasy. It ain&#8217;t gonna happen.</p><p>Instead, we've redesigned our workshops around a simple principle: attention is precious, so let's make the most of it when we have it.</p><p>We've dramatically reduced the number of hours that depend on everyone being in the same room (physical or virtual) at the same time. Instead, we've created rich resources that allow people to engage with the content on their schedule. Pre-work materials, guided exercises, and even AI-powered thought partners that help people work through the concepts before we come together.</p><p>When we do gather synchronously, we're not starting from zero. People arrive prepared, having already grappled with the content. Our collaboration time becomes focused on synthesis, decision-making, and resolving tensions, rather than simply transferring basic information.</p><div class="pullquote"><p>Busy isn't a strategy. It's an abdication of strategic thinking.</p></div><p>Let's face facts. These days, people are likely to engage with an LLM anyway to help them process complex concepts. Rather than fight this reality, we're embracing it. We create resources designed to work well with AI assistance, helping busy leaders get up to speed quickly.</p><p>The result? Our synchronous time becomes incredibly productive because we're not competing with the urgent&#8212;we're making space for the important work that only happens when smart people think together.</p><h2><strong>The Paradox of Strategic Leadership</strong></h2><p>Back to you, leaders.</p><p>Here&#8217;s an uncomfortable truth: the more senior you become, the more your job is about choosing what not to do. Your calendar will expand to fill every available moment unless you actively resist.</p><p>I recently facilitated a strategy session where I observed a senior leader multitasking throughout the entire call. This happens all the time. Eyes darting between screens, typing responses to Slack messages, answering emails, and clutching smartphones&#8230; <em>do you realize we can see you?</em> All of this was happening while we were discussing a multi-million dollar transformation initiative. When asked for input, there'd be a pause, followed by "Sorry, can you repeat that?"</p><p>This leader probably thought they were being efficient by staying on top of multiple urgent matters while participating in our discussion. But how much situational awareness can you gain when your attention is on spinning five or six different plates? The quality of their understanding, their ability to synthesize information, their capacity to make informed decisions?! These are all compromised by the illusion of multitasking productivity.</p><p>I remember working with a CPO who constantly complained about not having enough time for strategic work. When we asked about her calendar, we discovered she was attending every product demo, every retrospective, and every planning session across her organization. She was drowning in the tactical while her strategic responsibilities went unmet. Throwing strategy into the multi-tasking hopper is a bad, bad idea.</p><p>The fix wasn't time management. It was about learning to delegate, trusting her team, and protecting time for the thinking work or being present for the deep collaborations that only she could do.</p><h2><strong>Breaking the Busy Cycle</strong></h2><p>So, how do you escape the busy trap?</p><p><strong>Start with the diagnosis.</strong> Track your time spent for a week. Not how you <em>think</em> you spend it, but how you <em>actually</em> spend it. The data might surprise you. How much time goes to genuine strategic work versus reactive busywork?</p><p><strong>Design enabling constraints.</strong> Block time for strategic work and treat it like any other important meeting. Turn off notifications. Close your email. Create the conditions for deep work to happen.</p><p><strong>Practice strategic delegation.</strong> Ask yourself: "Am I the only person who can do this, or am I the only person who currently knows how?" If it's the latter, teach someone else. These delegation motions also help you build trust within your team and assess their performance and engagement.</p><p><strong>Measure outcomes, not activities.</strong> The tricky bit about switching to an outcome-first model is that time utilization ceases to be a valuable metric. Make your experiments <em>efficient</em>, but they must be <em>effective</em> first. Stop celebrating how many meetings you attended or emails you answered. Start measuring progress on the things that matter: initiatives that will define your organization's future impact.</p><p><strong>Learn to say, &#8220;No.&#8221; </strong>This is the hardest tactic for most <s>leaders</s> people to master. Every request feels important when it lands on your desk. But saying yes to everything is saying no to your strategic priorities. Practice these responses: "I can't take this on right now, but let me suggest someone who can." Or: "This sounds important. Help me understand how it relates to our Q1 priorities." Or simply: "I'm going to pass on this one." The key is to offer alternatives when possible and be direct when not.</p><h2><strong>Embrace Strategic Boredom</strong></h2><p>As a leader myself, I prioritize creating unstructured time in my schedule for deep thinking, observation, and connecting ideas. Experience has shown me that my most valuable contributions often come from "doing nothing" (or at least that&#8217;s what it must look like to others). Quiet moments of strategic reflection can lead to breakthrough insights and better decisions.</p><p>This isn't about working less. It's about working on the right things. The urgent will always be with us, but as for the important? The critical stuff requires protection. Guard it jealously.</p><p>If you're too busy to engage with your strategic initiatives, you're not being productive. You're being reactive. And in a world that rewards thoughtful action over frantic motion, that's not just inefficient, it's stupid.</p><h2><strong>What signal are you sending?</strong></h2><p>Take a hard look at your calendar this week. What signal are you sending about what matters to you? Are you creating space for the work that will define your organization's future, or are you drowning in the urgent at the expense of the important?</p><p>The choice is yours. Being busy isn't a badge of honor. It's often a sign that you're not in control of your priorities (the one thing you ought to be able to control). Remember: your people can see that, and you set the tone for that culture.</p><p>So ask yourself: what kind of leadership behaviors do I want to model? Stupidly busy or intelligently engaged?</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/busy-is-the-new-stupid?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 a leader who should receive this message? Consider sharing! </p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/busy-is-the-new-stupid?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://newsletter.nerdnoir.com/p/busy-is-the-new-stupid?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Engineers, Don’t Fear the Vibe]]></title><description><![CDATA[The best thing to happen to engineers&#8212;or the start of a slow erosion of the craft?]]></description><link>https://newsletter.nerdnoir.com/p/engineers-dont-fear-the-vibe</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/engineers-dont-fear-the-vibe</guid><dc:creator><![CDATA[Jess Brock]]></dc:creator><pubDate>Wed, 21 May 2025 13:20:32 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/af7deeda-76d7-445d-9e61-30d6373ff3b1_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m a big fan of anyone willing to act. That&#8217;s my favorite thing about <a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a>: <em>anyone</em> can do it. And for many, that&#8217;s where the story starts.</p><p>But it&#8217;s also where things get complicated.</p><p>We&#8217;re in a moment where the ability to ship software has been radically democratized. With LLMs, people can generate full apps with minimal technical background. Just like how Home Depot once freed homeowners from dependency on professional tradespeople, AI now empowers non-engineers to bring their ideas to life.</p><p>It&#8217;s exhilarating, it&#8217;s game-changing, and like many DIY endeavors, it can get dangerous.</p><p>Back in the day, Home Depot gave me the confidence to replace a light fixture. Then YouTube gave me the step-by-step instructions to build a custom floor-to-ceiling bookcase. Despite my Bob Villa moments, I still don&#8217;t mess with high-risk projects like gas lines and structural repairs. That&#8217;s how I think about LLMs. They enable velocity and participation, but they don&#8217;t replace wisdom or safety.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tpZ0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tpZ0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tpZ0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tpZ0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tpZ0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tpZ0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg" width="1000" height="1400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1400,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137025,&quot;alt&quot;:&quot;&quot;,&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://jessposition.substack.com/i/163925468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg&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_!tpZ0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tpZ0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tpZ0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tpZ0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa89b3e81-e1f0-472e-9e5e-54ba47140e41_1000x1400.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><figcaption class="image-caption">Unknown Creator</figcaption></figure></div><p>Vibe coding often gets mocked, and let&#8217;s be honest&#8212;a lot of it is warranted. But here&#8217;s what makes me uncomfortable: the smugness from some seasoned engineers, acting like LLM-driven code is inherently flawed just because it wasn&#8217;t human-written.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FeWr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FeWr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 424w, https://substackcdn.com/image/fetch/$s_!FeWr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 848w, https://substackcdn.com/image/fetch/$s_!FeWr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 1272w, https://substackcdn.com/image/fetch/$s_!FeWr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FeWr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png" width="1170" height="1114" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1114,&quot;width&quot;:1170,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!FeWr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 424w, https://substackcdn.com/image/fetch/$s_!FeWr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 848w, https://substackcdn.com/image/fetch/$s_!FeWr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 1272w, https://substackcdn.com/image/fetch/$s_!FeWr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbdd0ded6-ef3b-486b-a766-3fb4066cf562_1170x1114.png 1456w" sizes="100vw"></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">Daniel Stenberg, curl CEO</figcaption></figure></div><p>Let me challenge that because LLM-driven code is here to stay in some shape or form, and mocking it is not a productive use of our energy.</p><p>Years ago, I led a team of a dozen sharp, formidable engineers. Alas, we missed an obvious HIPAA compliance issue that cost us dearly&#8212;fines, war rooms, loss of trust, etc. It was so bad that it&#8217;s my go-to answer when an interviewer asks me: &#8220;When have you failed?&#8221; </p><p>Would an LLM have caught it? Maybe. Maybe not. But I can&#8217;t say with certainty it would&#8217;ve done worse.</p><div class="pullquote"><p>We pretend human engineering is flawless. It isn&#8217;t.</p></div><h2>Engineering Without Engineers</h2><p>Today, companies are laying off engineers by the thousands. Microsoft, Google, Salesforce, Meta&#8212;all pivoting to &#8220;AI-first.&#8221; The narrative isn&#8217;t cost-cutting. It&#8217;s &#8220;alignment with exponential opportunity&#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_!XsWR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XsWR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png 424w, https://substackcdn.com/image/fetch/$s_!XsWR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png 848w, https://substackcdn.com/image/fetch/$s_!XsWR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!XsWR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XsWR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png" width="862" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e69cc323-f138-4384-8601-16620af90621_862x1092.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:862,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1261634,&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://jessposition.substack.com/i/163925468?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.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_!XsWR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png 424w, https://substackcdn.com/image/fetch/$s_!XsWR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png 848w, https://substackcdn.com/image/fetch/$s_!XsWR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.png 1272w, https://substackcdn.com/image/fetch/$s_!XsWR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe69cc323-f138-4384-8601-16620af90621_862x1092.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><figcaption class="image-caption">Analytics India Magazine (AIM)</figcaption></figure></div><p>But, at what cost?</p><p>Evan Armstrong puts it bluntly:</p><blockquote><p>&#8220;If we aren&#8217;t careful, the cutthroat nature of startup development will mean the most popular uses of the tech won&#8217;t benefit humanity. They&#8217;ll just benefit shareholders.&#8221;</p></blockquote><p><a href="https://www.forbes.com/sites/quickerbettertech/2025/01/26/business-tech-news-zuckerberg-says-ai-will-replace-mid-level-engineers-soon/">Mark Zuckerberg</a> takes it a step further, saying AI will replace much of the work done by mid-level engineers.</p><blockquote><p>&#8220;AI will let us build better products faster &#8212; and also eliminate some of the work that mid-level engineers do today.&#8221;</p></blockquote><p>It might sound like a Silicon Valley fever dream&#8212;but there&#8217;s research to back it up.</p><p>In 2023, researchers released <a href="https://www.swebench.com/">SWE-bench</a>, a benchmark that tests whether LLMs can fix software bugs in real GitHub repos. Turns out, they can. Models like GPT-4 and Claude are already holding their own&#8212;and getting better with every release&#8212;solving issues that used to require human intervention.</p><h2>Hidden Costs of Vibe Coding</h2><p>We need to talk more about <a href="https://newsletter.nerdnoir.com/p/vibe-coding-and-learning-debt">David Laribee&#8217;s</a> concept of "learning debt." It&#8217;s the invisible tax we pay when engineers skip the long road of craftsmanship and go straight to generating outputs with LLMs.</p><blockquote><p>&#8220;When you rely too heavily on AI to generate code without understanding the fundamentals, you borrow against your future competence.&#8221;</p></blockquote><p>Vibe coding is powerful, but it flattens the feedback loop. Engineers don&#8217;t sharpen instincts. They offload decisions. Instead of learning to engineer systems, they assemble artifacts.</p><p>Here&#8217;s one of many cautionary tales that made the rounds:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kcwb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kcwb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png 424w, https://substackcdn.com/image/fetch/$s_!kcwb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png 848w, https://substackcdn.com/image/fetch/$s_!kcwb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!kcwb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kcwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png" width="858" height="1600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1600,&quot;width&quot;:858,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!kcwb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png 424w, https://substackcdn.com/image/fetch/$s_!kcwb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png 848w, https://substackcdn.com/image/fetch/$s_!kcwb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!kcwb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb17e046a-26ea-4be6-8e4e-fdc5d04e1542_858x1600.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><figcaption class="image-caption">Roy Derks</figcaption></figure></div><p>This isn&#8217;t about intelligence&#8212;it&#8217;s about exposure and tacit knowledge. If you've never been burned by a rollback, how would you know to fear it? That&#8217;s learning debt.</p><h2>Plot Twist: Where the New Value Lies</h2><p>This chaotic moment could become a major advantage for the engineers who choose to stick around.</p><p>When the dust settles, the companies that move fast without thinking will suffer. And who will they call? The engineers who understand systems, scale, safety, and sound architecture.</p><div class="pullquote"><p>After all, you can vibe the code, but you can't fake the craft.</p></div><p>Here are opportunities for engineers to earn job security and great pay:</p><ul><li><p>Engineers who can fix vibe coding or agentic coding mistakes as "firefighters."</p></li><li><p>Those who can coach others on software craft as mentors and multipliers.</p></li><li><p>Employing AI for the boring tasks&#8212;documentation, package management, and boilerplate code, freeing engineers to focus on meaty, meaningful work: architecture, resilience, edge cases, entropy, and innovation.</p></li></ul><p>Vibe coding isn&#8217;t the end of engineering. It&#8217;s the <em>re-leveling</em> of it.</p><p>Just like automation reshaped manufacturing, I believe vibe coding will ultimately elevate the engineering profession, turning engineers into curators of quality, arbiters of context, and defenders of craft. That&#8217;s not just good for software&#8212;it&#8217;s great for engineers' growth (and salary).</p><p>AI won&#8217;t replace engineers. But it <em>will</em> replace engineers who refuse to evolve.</p><p>Remember: you can install a ceiling fan, but if your home&#8217;s foundation cracks, you'd better call someone who knows what they&#8217;re doing.</p>]]></content:encoded></item><item><title><![CDATA[Vibe Coding and Learning Debt]]></title><description><![CDATA[Vibing with AI might feel productive in the short term, but watch out for the long-term consequences of trading dopamine hits for deeper learning.]]></description><link>https://newsletter.nerdnoir.com/p/vibe-coding-and-learning-debt</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/vibe-coding-and-learning-debt</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Tue, 15 Apr 2025 13:57:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cKaA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A few weeks ago, I experienced a case of vibe coding gone wrong.</p><p>I was building a voice transcript anonymizer in Python, riding the Cursor and Claude 3.7 Sonnet melt. The flow was smooth. The code was crushing. The stoke was real.</p><p>Things started feeling strange as the agent pulled down increasingly complex models from Hugging Face&#8212;a named entity recognition model and a similarity detection one. Suddenly, my models had models, and I was LARPing as a computational linguistics expert.</p><p>Then I ran my program.</p><p>The results were... perplexing. My transcripts weren't being anonymized correctly at all. Something was off, but all those fancy ML models should work, right?</p><p>I tried the vibe coder&#8217;s way, repeatedly barking, &#8220;FIX IT!&#8221; It didn&#8217;t fix it. I kept getting the same trash output.</p><h2><strong>Forget it, Donny, you&#8217;re out of your element!</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0NgF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0NgF!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 424w, https://substackcdn.com/image/fetch/$s_!0NgF!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 848w, https://substackcdn.com/image/fetch/$s_!0NgF!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 1272w, https://substackcdn.com/image/fetch/$s_!0NgF!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0NgF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif" width="480" height="253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:253,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0NgF!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 424w, https://substackcdn.com/image/fetch/$s_!0NgF!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 848w, https://substackcdn.com/image/fetch/$s_!0NgF!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 1272w, https://substackcdn.com/image/fetch/$s_!0NgF!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0217a55b-0709-4952-9793-ef21ebd4cf95_480x253.gif 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 vibed so hard I hadn't noticed we'd drifted far beyond my understanding of the problem I was trying to solve. I became a tourist on a programming trip, not the guide.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cKaA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cKaA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png 424w, https://substackcdn.com/image/fetch/$s_!cKaA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png 848w, https://substackcdn.com/image/fetch/$s_!cKaA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png 1272w, https://substackcdn.com/image/fetch/$s_!cKaA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cKaA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png" width="1287" height="776" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:776,&quot;width&quot;:1287,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cKaA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png 424w, https://substackcdn.com/image/fetch/$s_!cKaA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png 848w, https://substackcdn.com/image/fetch/$s_!cKaA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.png 1272w, https://substackcdn.com/image/fetch/$s_!cKaA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc99c4d9-5df9-4790-83a7-ce203a7dd78b_1287x776.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>Thankfully, I had the good habit of making frequent, small commits. I rolled back to a previous version and took a different approach. I broke out of vibe mode and gave more explicit directions to use simple regex patterns and a deterministic similarity algorithm. These were techniques I understood at least well enough to prompt small and successfully.</p><p>The more straightforward solution worked adequately. More importantly, I could read, explain, and modify the code. </p><p>That moment of realization&#8212;when you notice you're getting way over your skis with AI&#8212;prompted me to write this article. The experience crystallized something I've been thinking about for a while now: the concept of learning debt.</p><h2><strong>Learning Debt</strong></h2><p>Learning debt is conceptually similar to technical debt.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> The accumulated costs of taking shortcuts in your learning journey will eventually need to be repaid, often with interest. And like tech debt, we can and should approach it as a tradeoff.</p><p>When you rely too heavily on AI to generate code without understanding the fundamentals, you borrow against your future competence. The code works today, but what happens when:</p><ul><li><p>You need to debug something the AI created, but don't understand the underlying patterns?</p></li><li><p>Your requirements change, and you must shift your program&#8217;s behavior beyond what simple prompts can handle?</p></li><li><p>You face a novel problem that requires fundamental knowledge to solve?</p></li></ul><p>That's when the debt collector comes calling. And trust me, it&#8217;s not if. <em>It&#8217;s when.</em></p><h2><strong>Need-to-know and Domain Type</strong></h2><p>Let's take a concept from Domain-Driven Design to frame the issue. In DDD strategic design, we recognize three types of domains:<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><ul><li><p><strong>Core domains</strong> are your competitive advantage, modeling the unique parts of your business</p></li><li><p><strong>Supporting domains</strong> enable your core business but aren't a primary differentiator</p></li><li><p><strong>Generic domains</strong> are standard stuff every business needs (like authentication)</p></li></ul><p>Now think about your knowledge domains as a developer. What's core to you? What do you need a deep understanding of versus what can you outsource?</p><p>And the problem you&#8217;re solving, is it a core domain or a generic one? Knowing this informs the measure of ownership and control you might exert on the problem&#8217;s solution.</p><p>The trap many fall into is treating everything as generic&#8212;"I'll just ask AI for all of it"&#8212;without recognizing which domains should be core to their expertise and attention.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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://newsletter.nerdnoir.com/subscribe?"><span>Subscribe now</span></a></p><h2><strong>Signs You're Accumulating Learning Debt</strong></h2><p>Here are some warning signs that vibe coding might be creating learning debt:</p><ol><li><p><strong>You can't explain the code you're using. </strong>If someone asked you to walk through how your system works without looking at the code, could you do it?</p></li><li><p><strong>You find yourself repeatedly asking AI for the same patterns. </strong>Instead of the knowledge becoming ingrained, you depend on external help for routine tasks. (Side note: speaking of patterns, I&#8217;m more than OK to outsource regex to the robots!)</p></li><li><p><strong>Small changes require complete rewrites. </strong>When requirements shift slightly, you must regenerate entire components because you don't understand how to modify what exists. Intentionally disposable &#8220;fast fashion&#8221; architectures might be in our future, but we&#8217;re not there yet.</p></li><li><p><strong>You feel anxiety when facing problems without AI assistance. </strong>That panicky feeling when you need to write code from scratch? That's your learning debt talking.</p></li></ol><h2><strong>Balancing Vibes and Learning: It's All About Context</strong></h2><p>Agents are most potent when used to amplify understanding rather than outsource 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_!eQ3S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eQ3S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png 424w, https://substackcdn.com/image/fetch/$s_!eQ3S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png 848w, https://substackcdn.com/image/fetch/$s_!eQ3S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png 1272w, https://substackcdn.com/image/fetch/$s_!eQ3S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eQ3S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png" width="1213" height="824" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:824,&quot;width&quot;:1213,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eQ3S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png 424w, https://substackcdn.com/image/fetch/$s_!eQ3S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png 848w, https://substackcdn.com/image/fetch/$s_!eQ3S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.png 1272w, https://substackcdn.com/image/fetch/$s_!eQ3S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F117bd580-2d83-4725-ac24-4b4920bb4759_1213x824.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 balance needs to be contextual, though. Kent Beck's 3X model<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> provides a helpful framework for knowing your context and how much to vibe:</p><ul><li><p>In the <strong>Explore</strong> phase, you're testing hypotheses and seeking validation. Here, vibe coding with AI can be incredibly valuable. You're trying to shorten the distance between experiment and feedback, looking for quick payoffs with minimal investment. Technical excellence isn't the goal yet. Learning whether your idea is good and worth pursuing, modifying, or rejecting is.</p></li><li><p>As you move into the <strong>Expand</strong> phase, where you're scaling something that works, your relationship with AI tooling (it&#8217;s not a person) should evolve too. This is where learning debt becomes dangerous. The foundations must be sound as you build on them, and your understanding needs to be deeper. Fortunately, I&#8217;m finding AI to be a good teacher for new tech, so it&#8217;s more a matter of changing your grasp of the tool than the tool itself.</p></li><li><p>By the time you reach the <strong>Extract</strong> phase, where you're optimizing a mature and likely complicated system, both feasibility and sustainability of the tech stack demand genuine expertise, not just vibes. Agents will obviously be more and more valuable here, particularly as their context window challenges get resolved. Once again, it&#8217;s about changing how you hold the tool.</p></li></ul><p>Kent Beck&#8217;s model maps perfectly to Brian Tod's path to product-market fit, visualizing the journey from validating desirability to ensuring feasibility and viability.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a> The Explore-Expand phases of 3X align with Brian Tod&#8217;s Product Market Fit curve.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DIGf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DIGf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png 424w, https://substackcdn.com/image/fetch/$s_!DIGf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png 848w, https://substackcdn.com/image/fetch/$s_!DIGf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png 1272w, https://substackcdn.com/image/fetch/$s_!DIGf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DIGf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png" width="1213" height="824" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:824,&quot;width&quot;:1213,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DIGf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png 424w, https://substackcdn.com/image/fetch/$s_!DIGf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png 848w, https://substackcdn.com/image/fetch/$s_!DIGf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.png 1272w, https://substackcdn.com/image/fetch/$s_!DIGf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8c637ae-b4a8-4899-a136-65633a70ffff_1213x824.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>In the early stages of a product idea, we should focus almost exclusively on desirability: <em>Is this solving a real problem for users?</em> But as we validate that and move toward expansion, feasibility becomes crucial: <em>Can we actually build and scale this solution effectively?</em></p><p>The learning debt accumulated during pure vibe coding becomes a liability at this inflection point. What worked for quick experiments won't sustain growth when real users depend on your product. This is precisely when you need to start paying down that learning debt.</p><p>With this in mind, here's how to maintain the balance:</p><ul><li><p><strong>Use AI as an explainer and tutor.</strong> Ask for more than features. Ask for explanations of concepts, patterns, and trade-offs. Dipping into learning mode is a nice vibe unto itself.</p></li><li><p><strong>Challenge yourself to modify AI-generated code.</strong> Don't just paste it in. Change it, break it, fix it, and understand every line.</p></li><li><p><strong>Identify your core knowledge domains and product lifecycle stage. </strong>What areas do you need deep expertise in? Invest real learning time there, even if it's slower.</p></li><li><p><strong>Practice retrieval, not just recognition. </strong>Test yourself by writing code without assistance to ensure you build lasting knowledge.</p></li><li><p><strong>Match your AI dependence to your product phase. </strong>More AI-dependence in Explore, more understanding in Extract.</p></li></ul><p>Many of these tips benefit from having a programming pair to keep you honest.</p><h2><strong>The Learning Payoff</strong></h2><p>The thing about learning debt is that it compounds just like financial debt. The longer you rely on shortcuts, the harder it becomes to build understanding later.</p><p>This is why we advise our clients to explicitly preserve time for learning in their workflow and when managing their queues (WIP, capacity). </p><p>Learning isn't separate from work. It's a fundamental part of work. Deep dives into understanding how and why code works are a crucial component of what Cal Newport calls "deep work."<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a> The ability to focus intensely on mastering complex concepts separates truly effective engineers from bricoleurs who cobble together solutions.</p><p>With both AI and developer productivity very much in the zeitgeist, it's tempting to eliminate learning time in favor of quick outputs in the name of efficiency. And yes, that's perfectly fine in some contexts, like pure exploration. But as your product matures, that investment in understanding should shift to non-negotiable.</p><p>Here's my challenge: for your next project, identify one core concept, fundamental to your work, and commit to truly understanding it, not just implementing it with AI assistance. A good test for this would be explaining what you&#8217;ve learned to a teammate. PSA: Don&#8217;t take humans out of your self-improvement loop!</p><p>While vibe coding feels good in the moment, truly understanding what you&#8217;re building feels so much sweeter for so much longer. Learning, now that's a vibe worth chasing.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/vibe-coding-and-learning-debt?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://newsletter.nerdnoir.com/p/vibe-coding-and-learning-debt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</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>Technical Debt:<a href="https://martinfowler.com/bliki/TechnicalDebt.html"> https://martinfowler.com/bliki/TechnicalDebt.html</a> </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>Domain-Driven Design - Core, Supporting, and Generic Domains: <a href="https://blog.jonathanoliver.com/ddd-strategic-design-core-supporting-and-generic-subdomains/">https://blog.jonathanoliver.com/ddd-strategic-design-core-supporting-and-generic-subdomains/</a> </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p><a href="https://www.youtube.com/watch?v=lOcXdXRxFgA">Kent Beck's 3X (Explore, Expand, Extract) Model</a> at YOW! 2019 (YouTube)</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>Brian Tod's Path to Product-Market Fit: <a href="https://briantod.medium.com/about-product-market-fit-what-ive-learned-about-the-goal-the-process-and-the-nuance-e7b317740f43">https://briantod.medium.com/about-product-market-fit-what-ive-learned-about-the-goal-the-process-and-the-nuance-e7b317740f43</a> </p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>Cal Newport's Deep Work: <a href="https://www.calnewport.com/books/deep-work/">https://www.calnewport.com/books/deep-work/</a> </p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Engineering Conversations with Michael Feathers]]></title><description><![CDATA[A wide-ranging conversation on contemporary and classic software engineering and design with Michael Feathers, author of "Working Effectively with Legacy Code"]]></description><link>https://newsletter.nerdnoir.com/p/engineering-conversations-with-michael</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/engineering-conversations-with-michael</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Wed, 09 Apr 2025 15:30:20 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/160948444/86dd3ae541f43925db5673d2f9887e9d.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>It was my pleasure to speak with Michael Feathers this week on a wide variety of subjects in the domain of systems design and architecture. A big thank you to everyone who joined!</p><p>Michael wrote the seminal book (one of my absolute favorites) on wrangling gnarly software, &#8220;<a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a>&#8221;. </p><p>In this conversation, we cover:</p><ul><li><p>AI/LLMs&#8217; outsized influence on software engineering and how we&#8217;re using it in our workflows</p></li><li><p>Design principles that get rediscovered or re-invented with new generations</p></li><li><p>The extinct mathematics of dirigible (blimp) construction and flight</p></li></ul><p>A few links worth sharing:</p><ul><li><p>Michael&#8217;s book, &#8220;<a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a>&#8221;</p></li><li><p><a href="https://www.r7krecon.com/">R7K Research &amp; Conveyance</a> - Michael&#8217;s consulting firm</p></li><li><p><a href="https://www.linkedin.com/in/michaelfeathers/">Follow Michael on LinkedIn</a></p></li><li><p>His new book &#8220;<a href="https://leanpub.com/ai-assisted-programming">AI Assisted Programming</a>&#8221; is a work-in-progress available on LeanPub</p></li><li><p>&#8220;<a href="https://www.youtube.com/watch?v=g9m3R0NMJ1Y">Where AI Meets Code</a>&#8221; &#8212; a recent presentation from GOTO Chicago 2024</p></li><li><p>Be sure to catch Michael at the <a href="https://yowcon.com/">YOW! conferences</a> if you&#8217;re in Australia</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Product Ecologies: Working with Internal Products]]></title><description><![CDATA[Watch now (65 mins) | What are the advantages and constraints of building products for people who have the same badge as you?]]></description><link>https://newsletter.nerdnoir.com/p/product-ecologies-internal-products</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/product-ecologies-internal-products</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Wed, 02 Apr 2025 12:43:58 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/160412828/5d17093dc257ebeaa22478bd835d9564.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>A big thank you to everyone who joined us for our&nbsp;<em>Product Ecologies</em>&nbsp;series kickoff! </p><p>In this first session, we tackled a topic that doesn&#8217;t get nearly enough airtime: <strong>internal products</strong>. From enabling employees to powering core operations, these products sit at the heart of how organizations deliver value but come with unique challenges.</p><p>Highlights from the session featuring <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Anne Steiner&quot;,&quot;id&quot;:227494384,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14a06507-70b3-4c33-bd08-8cbfbaae5284_278x278.png&quot;,&quot;uuid&quot;:&quot;161811fe-bd5c-42d7-b123-b66e1293590e&quot;}" data-component-name="MentionToDOM"></span> and <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Dave Laribee&quot;,&quot;id&quot;:9890407,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/647c946e-5c39-4325-86c6-186b89e928ab_842x842.jpeg&quot;,&quot;uuid&quot;:&quot;7dc2e21b-e239-4548-a340-6de7721fcef9&quot;}" data-component-name="MentionToDOM"></span> included:</p><ul><li><p>Why internal products often struggle with funding, focus, and follow-through</p></li><li><p>How to define success when there&#8217;s no direct customer revenue</p></li><li><p>Practical approaches for discovering and validating internal user needs</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/product-ecologies-internal-products?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://newsletter.nerdnoir.com/p/product-ecologies-internal-products?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p>We wrapped with a lively Q&amp;A and some great real-world examples from attendees. If you missed it or want to revisit the conversation, check out the full recording right here!</p><p>We&#8217;ll be back in a couple months for our next installment of <em>Product Ecologies</em>. </p><p>In the meantime, <a href="https://lu.ma/nerdnoir">subscribe to our events page</a> for new and upcoming webinars, conversations, and more. Next up? A <a href="https://lu.ma/bay091vu">conversation with Michael Feathers</a>, author of the classic book &#8220;<a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a>&#8221;.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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://newsletter.nerdnoir.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Community Updates & Events]]></title><description><![CDATA[A coach, a programmer, and a product leader walk into a bar...]]></description><link>https://newsletter.nerdnoir.com/p/community-updates-march-2025</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/community-updates-march-2025</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Thu, 06 Mar 2025 16:26:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L544!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L544!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L544!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!L544!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!L544!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!L544!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L544!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png" width="728" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:761804,&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://newsletter.nerdnoir.com/i/158514384?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.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_!L544!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!L544!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!L544!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!L544!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bcd581e-0c2f-48f7-b9ee-058fa1f64ca3_1024x1024.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>Hello! Dave here.</p><p>I want to share some community events you might be interested in and great news about our team growing at Nerd/Noir. </p><p>From growing our team and hosting conversational events featuring Michael Feathers and Anne Steiner&#8212;Read on!</p><div><hr></div><h3>Welcome to Nerd/Noir, Jess Brock!</h3><p>We&#8217;re adding some real heat to our team of collaborators at Nerd/Noir. Please join me in welcoming <a href="https://www.linkedin.com/in/jessicalynnbrock/">Jess Brock</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_!NJwH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NJwH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NJwH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NJwH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NJwH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NJwH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg" width="358" height="377.15635858234884" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1516,&quot;width&quot;:1439,&quot;resizeWidth&quot;:358,&quot;bytes&quot;:94723,&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;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.nerdnoir.com/i/158514384?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.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_!NJwH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NJwH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NJwH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NJwH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8f63be-6a48-4d6c-b8d6-145a811175d6_1439x1516.jpeg 1456w" sizes="100vw"></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>Jess is joining us as a strategic advisor, bringing her expertise in business agility, AI, and immersive learning dojos to our clients. On that last part&#8212;she helps lead and run an active dojo at Edward Jones and wrote a useful book for immersive learning coaches, &#8220;<a href="https://www.amazon.com/Dojo-Coachs-Pocket-Guide-Maximizing/dp/1523002727/ref=sr_1_1?crid=1ZSKKQ85UBHOG&amp;dib=eyJ2IjoiMSJ9.q2A59DKSl8NKE9yfevZkYRVyJ2BDcOgOWJmhjxlafzqNBMuglOXTRsv2VL20FeKe.GOefkicrJZ6OY7bY6BCMKH2Tj0tN1jgKXhVdznzwWVs&amp;dib_tag=se&amp;keywords=dojo+coach+pocket&amp;qid=1741270176&amp;s=books&amp;sprefix=dojo+coach+pocket%2Cstripbooks%2C100&amp;sr=1-1">The Dojo Coach's Pocket Guide: Maximizing Immersive Learning for Agile Teams</a><strong>&#8221;. </strong> </p><p>Alex and I have become pals with Jess over the last couple of years, working on some side projects here and there. Aside from her bona fides, we love her personality: a subtle and witty sense of humor, an experimenting and action bias, and a strong community orientation (she helped organize a job fair for out-of-work agilists, amongst other things). She&#8217;ll fit right in.</p><p>Welcome, Jess!</p><div><hr></div><h3>Community Events</h3><p>Also, we&#8217;ve been feeling (more than a little) nostalgic for the halcyon days of David Hussman&#8217;s Jam Sessions (IFYKYK)&#8212;his unfiltered, real-talk gatherings where ideas flowed as freely as the beer. While there&#8217;s no replacing David, we&#8217;re experimenting to see if we can capture some of that magic in a digital and remote form.</p><p>We&#8217;ve got two upcoming sessions that should be right up your alley!</p><p></p><h4><strong>Product Ecologies: Working with Internal Products with Anne Steiner</strong></h4><p><em><strong>Thursday, March 20th, from 12-1 PM EST</strong></em> | <a href="https://us02web.zoom.us/webinar/register/WN_WyZhHjSHS3iT8Rlgg5s1TA">Register here</a> or <a href="https://www.linkedin.com/events/7292608994920058880/comments/">LinkedIn</a></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t8m6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t8m6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!t8m6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!t8m6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!t8m6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t8m6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png" width="372" height="209.25" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:372,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!t8m6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!t8m6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!t8m6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!t8m6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937eb2dc-46cc-4dc7-a275-4a3b88049eba_1280x720.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Internal products don&#8217;t get the same love as customer-facing ones, but they should. Anne and I feel this area is somewhat slept on. Most product thought leader (thought lord?) content focuses on B2C or B2B SaaS scenarios.</p><p>Internal products power business operations (ERP, CRM, HR systems), enable engineering teams (platforms, APIs, shared services), and help employees deliver value (customer support tools, workflow automation). However, unlike external products, they don&#8217;t have clear market signals, often suffer from misaligned incentives, and struggle to get investment.</p><p>So we&#8217;re kicking off a new series called <em>Product Ecologies</em> with a conversation about what makes internal products uniquely challenging&#8212;and how to make them successful. In episode one, we&#8217;ll cover:</p><ul><li><p>Common pitfalls in internal product development</p></li><li><p>How to define success when there&#8217;s no direct revenue</p></li><li><p>Strategies for discovering the unmet needs of internal users</p></li></ul><p>After a short talk, we&#8217;ll open the floor for discussion, so bring your challenges and insights. The event occurs Thursday, March 20th, from 12-1 PM EST. Come through!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://us02web.zoom.us/webinar/register/WN_WyZhHjSHS3iT8Rlgg5s1TA&quot;,&quot;text&quot;:&quot;Register Now&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://us02web.zoom.us/webinar/register/WN_WyZhHjSHS3iT8Rlgg5s1TA"><span>Register Now</span></a></p><p></p><div><hr></div><h4><strong>Software Engineering Conversations with Michael Feathers </strong></h4><p><em><strong>Tuesday, April 8th, from 3-4 PM EST</strong></em> | <a href="https://us02web.zoom.us/webinar/register/WN_mG-R_COXQBamgcKuLH_kjw">Register here</a> or <a href="https://www.linkedin.com/events/7300533899636469762/comments/">LinkedIn</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_!Q_bw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q_bw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!Q_bw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!Q_bw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!Q_bw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q_bw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png" width="492" height="276.75" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:492,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Software Engineering Conversations with Michael Feathers - April 8th, 3-4 PM EST&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Software Engineering Conversations with Michael Feathers - April 8th, 3-4 PM EST" title="Software Engineering Conversations with Michael Feathers - April 8th, 3-4 PM EST" srcset="https://substackcdn.com/image/fetch/$s_!Q_bw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!Q_bw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!Q_bw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!Q_bw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7bda8c8-38cc-4d19-8f6c-ba83f8c40846_1280x720.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>A look at software engineering&#8212;past, present, and where we might be headed next in the age of AI-first engineering. The event takes place Tuesday, April 8th, from 3-4 PM EST. </p><p>If you don&#8217;t know, Michael wrote the essential book on wrangling gnarly, scary, and anxiety-inducing codebases, &#8220;<a href="https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a>&#8221;. It greatly influenced my career (and of many others), and it holds up to this day. </p><p>No slides, just a straight-up discussion. I hope to craft some unique and surprising questions and conversation-starters for Michael. We&#8217;ll also leave plenty of time for an AMA with Michael.</p><p>Over the years, we&#8217;ve gotten to know each other at various software conferences, and our technical conversations always draw on a lot of cultural references (music, art, philosophy&#8212;lateral thinking!). It&#8217;s often fun and thought-provoking for us, and we hope it will also be fun and thought-provoking for you.</p><p>Again, the event takes place Tuesday, April 8th, from 3-4 PM EST. Hope to see you there!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://us02web.zoom.us/webinar/register/WN_mG-R_COXQBamgcKuLH_kjw&quot;,&quot;text&quot;:&quot;Register Now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://us02web.zoom.us/webinar/register/WN_mG-R_COXQBamgcKuLH_kjw"><span>Register Now</span></a></p><p></p><h4></h4><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[From Technical Debt to Technical Investment]]></title><description><![CDATA[Our playbook for balancing product delivery with system quality.]]></description><link>https://newsletter.nerdnoir.com/p/from-technical-debt-to-technical-investment</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/from-technical-debt-to-technical-investment</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Thu, 17 Oct 2024 13:33:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/-_F8gCzD6RI" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2--_F8gCzD6RI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;-_F8gCzD6RI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/-_F8gCzD6RI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Yesterday, we hosted a webinar titled <em>From</em> <em>Technical Debt to Technical Investment</em>. Thanks to everyone who signed up and came out! </p><p>As promised, we&#8217;re sharing the recording and <a href="https://miro.com/app/board/uXjVLWJ4vA0=/?share_link_id=741935768275">Miro board we used.</a>&nbsp;The board contains the presentation materials and our playbook for creating&nbsp;<em>Technical Investment Options</em>. </p><p>We didn&#8217;t get to go through everything in detail, so be sure to check out <a href="https://nerdnoir.com/guides/playbooks">our open playbook framework</a>,&nbsp;and don&#8217;t hesitate&nbsp;<a href="mailto:team@nerdnoir.com">to get in touch if you need&nbsp;help getting started</a>.</p><p>Enjoy and stay tuned/subscribe for more examples and tools coming soon! </p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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 Hard Boiled Software! Subscribe for free to receive new posts and support our work.</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[Your Requirements Suck]]></title><description><![CDATA[But crappy requirements probably aren&#8217;t the problem.]]></description><link>https://newsletter.nerdnoir.com/p/your-requirements-suck</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/your-requirements-suck</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Wed, 09 Oct 2024 13:51:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/25e97fdb-c63c-4b3f-83e8-af2123049055_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ayp4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ayp4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Ayp4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Ayp4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Ayp4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ayp4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:440610,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ayp4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!Ayp4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!Ayp4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!Ayp4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47277a44-52dc-44af-bd3b-901a81d3ddae_1024x1024.webp 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><figcaption class="image-caption">&#8220;No, Jeff. That&#8217;s not what this acceptance criteria means.&#8221;</figcaption></figure></div><p>Hey y&#8217;all &#8211;&nbsp;</p><p>Before I jump right into insulting your requirements, I&#8217;d like to share some recent events at Nerd/Noir.</p><p>&#8212;</p><p>On October 16th, 12-1p EST, I&#8217;m co-hosting a webinar with Anne Steiner called <em>From Technical Debt to Technical Investment</em>. You can <a href="https://www.eventbrite.com/e/1000929927357?aff=oddtdtcreator">sign up here</a>.</p><p>We&#8217;ll explore the semi-wicked problem of &#8220;tech debt&#8221; from both engineering&#8217;s and product&#8217;s perspectives. We&#8217;ll also share our playbook (did you know <a href="https://nerdnoir.com/guides/playbooks">we created a playbook framework</a> that&#8217;s free to use, remix, and share?) to help teams balance customer outcomes with system qualities. </p><p>And if you can&#8217;t make that date/time, <a href="https://www.eventbrite.com/e/1000929927357?aff=oddtdtcreator">go ahead and sign up</a>, and we&#8217;ll ensure you get the recording and playbook sent straight to your inbox.</p><p>&#8212;</p><p>We&#8217;ve done a lot of Developer Experience consulting over the last few years.&nbsp;<a href="https://getdx.com/">Our partnership with DX</a>&nbsp;lets us conduct a sweet (95%+ completion rates, dozens of metrics, solid research) snapshot survey that gives everyone&#8212;leaders, engineers, product people, and us&#8212;transparency into what&#8217;s working and what&#8217;s not.&nbsp;</p><p>Our clients are finding that the data from the DevEx 360 platform is driving productive conversations and, more notably, action around continuous improvement. It&#8217;s a quick and cost-effective way to create situational awareness around DevEx. <a href="https://nerdnoir.com/services/insights/developer-experience-insights">Check out our Developer Experience Insights</a> service right here.</p><p>&#8212;</p><p>This post is extracted from a talk I gave at Travelers&#8217; internal &#8220;Enterprise Engineering Day&#8221; conference a week ago. Thanks to the good folks at Travelers for having me! If you&#8217;d like someone from Nerd/Noir to speak with your group, <a href="https://nerdnoir.com/resources/talks">check out our internal talks page for a list of topic ideas</a>.&nbsp;</p><p>On to the article!&nbsp;</p><p>/ Dave</p><p>P.S. To my fellow business goths out there: HAPPY SPOOKY SEASON! &#128128;&#127875;&#128123;</p><p><em>&#8212;</em></p><h2>Your Requirements Suck</h2><p>&#8220;The requirements aren&#8217;t good enough.&#8221; You&#8217;ve heard it. Perhaps you&#8217;ve said it. It&#8217;s a common complaint from engineers.&nbsp;</p><p>But it doesn&#8217;t tell you all that much. It describes a symptom, not the disease. <em>What about the requirements makes them inadequate?</em></p><h3><strong>Why Your Requirements Suck</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aSDD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aSDD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!aSDD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!aSDD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!aSDD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aSDD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png" width="1333" height="749" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:749,&quot;width&quot;:1333,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aSDD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!aSDD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!aSDD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!aSDD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F563afb55-604f-43e5-a526-f0fb7048608e_1333x749.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>Unclear or ambiguous requirements are single effect with multiple causes. A few of the usual suspects:</p><ul><li><p><strong>Game of telephone</strong> - the original intent of a requirement is misshaped through a series of point-to-point conversations.</p></li><li><p><strong>Unclear -</strong> the requirement is ambiguous and open to creative interpretation, perhaps with many unchecked assumptions.</p></li><li><p><strong>Shifting Sands - </strong>requirements change or are swapped due to insufficient discovery or moving target priorities.&nbsp;</p></li><li><p><strong>But Why Tho - </strong>engineers working on a requirement question its purpose or value.</p></li><li><p><strong>Cold Handoffs - </strong>the requirement is pulled from a backlog, and backlogs aren&#8217;t great storytellers.</p></li><li><p><strong>Overconfidence -</strong> just because you think it&#8217;s a requirement doesn&#8217;t mean it solves a problem for a user or customer. See also: overly speculative.</p></li></ul><p>Your requirements might suck because of one of these reasons or because of all of these reasons. <em>Game of telephone</em> frequently conspires with <em>cold handoffs</em>.<em> Shifting sands</em> and <em>Overconfidence</em> and <em>But why tho</em> are the unholy trinity of a poorly understood or empowered product management capability.&nbsp;</p><p>Maybe the idea that requirements can ever be good enough needs a bit of rethinking.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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 Hard Boiled Software! Subscribe for free to receive new posts and support our work.</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><h3><strong>System Effects</strong></h3><p>If we don&#8217;t address the causes above, what&#8217;s likely to happen? Let&#8217;s look at a <a href="https://newsletter.nerdnoir.com/p/modeling-software-delivery">causal feedback diagram</a> illustrating one likelihood.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vqMc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vqMc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png 424w, https://substackcdn.com/image/fetch/$s_!vqMc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png 848w, https://substackcdn.com/image/fetch/$s_!vqMc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png 1272w, https://substackcdn.com/image/fetch/$s_!vqMc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vqMc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png" width="728" height="493.52883031301485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:823,&quot;width&quot;:1214,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vqMc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png 424w, https://substackcdn.com/image/fetch/$s_!vqMc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png 848w, https://substackcdn.com/image/fetch/$s_!vqMc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.png 1272w, https://substackcdn.com/image/fetch/$s_!vqMc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318a0cf4-afe3-4279-9820-c48f66930a2b_1214x823.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>In this diagram, we have three values:</p><ul><li><p><em>Trust</em> is the belief that our customers and stakeholders have in us to solve problems and create value.&nbsp;</p></li><li><p><em>Rework</em> is the time we spend changing what we&#8217;ve delivered because the first delivery was wrong.&nbsp;</p></li><li><p><em>Throughput of Value</em> is the value we deliver to customers or stakeholders in a given period.</p></li></ul><p>The arrows with the little circles with a plus or minus indicate in which direction these values travel:</p><ul><li><p>As the amount of <em>Rework</em> increases, perhaps due to not understanding requirements, our <em>Throughput of Value</em> decreases. We have to spend more time getting things right.</p></li><li><p>As <em>Throughput of Value</em> decreases, the <em>Trust</em> our customers or stakeholders place in our ability to deliver value also decreases. This is bad.</p></li><li><p>As <em>Throughput of Value </em>decreases and <em>Rework </em>increases, <em>Trust</em> erodes ever faster.&nbsp;</p></li></ul><p>We have a vicious circle that leads to a classic Western standoff. Customers don&#8217;t trust the team&#8217;s ability to deliver, and the team doesn&#8217;t trust the customer or product manager&#8217;s requirements. We already know how the engineers feel.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!49EJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!49EJ!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 424w, https://substackcdn.com/image/fetch/$s_!49EJ!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 848w, https://substackcdn.com/image/fetch/$s_!49EJ!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 1272w, https://substackcdn.com/image/fetch/$s_!49EJ!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!49EJ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif" width="596" height="298" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:253,&quot;width&quot;:506,&quot;resizeWidth&quot;:596,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!49EJ!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 424w, https://substackcdn.com/image/fetch/$s_!49EJ!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 848w, https://substackcdn.com/image/fetch/$s_!49EJ!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 1272w, https://substackcdn.com/image/fetch/$s_!49EJ!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12b269c4-82cd-4fe8-a8fd-f445dc363095_506x253.gif 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>What&#8217;s going wrong here? If it&#8217;s really about crappy requirements, shouldn&#8217;t we make them better? Just requirements harder!</p><h3><strong>Questionable Assumptions</strong></h3><p>Before we start fixing our requirements practice, I have a question: Why do we think written requirements are a good idea in the first place? Let&#8217;s go digging for assumptions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ADoh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ADoh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!ADoh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!ADoh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!ADoh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ADoh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png" width="1333" height="749" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:749,&quot;width&quot;:1333,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ADoh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!ADoh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!ADoh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!ADoh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F440226cb-cbfc-4461-829e-0edd8b79ad25_1333x749.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>A quick brainstorm reveals several questionable, perhaps faulty, assumptions.</p><p><strong>Are requirements even knowable up front?</strong> We know this: The highest-quality feedback comes after users have used working software. Unfortunately, engineering is an expensive undertaking. I understand why we might try to de-risk user needs by validating our ideas before starting principal engineering. Though I&#8217;m pretty sure requirements-centered activities and artifacts aren&#8217;t the answer.</p><div class="pullquote"><p>When requirements are unclear, you shouldn&#8217;t assign blame to the artifact or its creators. You have to look at the system.</p></div><p><strong>It&#8217;s the product manager&#8217;s (or product owner&#8217;s or BA&#8217;s) sole responsibility to write acceptance criteria.</strong> If you believe that, you&#8217;re likely experiencing the problems of <em>cold handoffs</em> or <em>game of telephone.</em></p><p><strong>User stories are a written medium. </strong>You&#8217;re probably sick of hearing this (I know I am), but user stories were always meant to be placeholders for conversations. Many companies that adopted agile practices simply slapped the label &#8220;user story&#8221; on their business requirements docs and moved on with their lives. </p><p>Assigning new vocabulary to existing practices, roles, or processes never worked. Business analysts or project managers became product owners in a two-day training, program management offices were replaced by release trains, and the list goes on&#8230; </p><p>Putting too much weight (or hope) on a handoff-driven requirements process assumes you have a lot of other things in order. When requirements are unclear, you shouldn&#8217;t assign blame to the artifact or its creators. You have to look at the system.</p><h3><strong>Assumptions: Checked</strong></h3><p>Let&#8217;s unravel some of those nasty assumptions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!op-z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!op-z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!op-z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!op-z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!op-z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!op-z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png" width="1333" height="749" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:749,&quot;width&quot;:1333,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!op-z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!op-z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!op-z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!op-z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3e9230f-1fd7-4292-be5d-a9405d9d6bb4_1333x749.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 idea that requirements are knowable up front is a broad, context-free statement. Many of the products we work on benefit from learning and experimentation. If this is your context, frame what you want to deliver, but don&#8217;t get it twisted. <em>You&#8217;re not creating requirements; you&#8217;re making an educated guess.</em>&nbsp;</p><p>Hopefully, that guess will be backed by solid product discovery. In your discovery missions&#8212;also hopefully&#8212;you&#8217;re inviting technical representation to shift left, upriver in the value stream.</p><p>Creating requirements should be a joint activity. It&#8217;s not the sole responsibility of the &#8220;product person&#8221; on your team. A product manager cannot anticipate every edge case, and as the engineering work unfolds, there will be questions, <em>what-abouts</em>, and many small decisions to make. All good reason for inviting engineering along for the ride.</p><p>We could pick apart all these faulty assumptions and the underlying problems they hide when unchecked, but what could we do to change the system?&nbsp;</p><h3><strong>One Small Step</strong></h3><p>Collaboration is the solution. Unfortunately, it&#8217;s not an easy solution.&nbsp;</p><p>Real, genuine collaboration is a skill that you must relearn with every new group of people you work with. It requires that:</p><ul><li><p>Product-focused people (PM, UX) continuously engaged throughout delivery, negotiating, and refining requirements.</p></li><li><p>Engineers take their hands off their keyboards and work with their cross-functional teammates, valuing that time.</p></li><li><p>Stakeholders provide timely feedback in tight loops to guide what we used to call requirements (what we think) toward specifications (what is).</p></li></ul><p>Notice I didn&#8217;t call collaboration a simple solution. It&#8217;s not. Effective collaboration means courting conflict and committing to making many small resolutions. Effective collaboration means navigating tricky tensions, such as the desire for delivery speed and solution quality. Effective collaboration means occasionally giving so that you may get down the line.</p><div class="pullquote"><p>If you want something done right, do it together.</p></div><p>More than anything, we can&#8217;t collaborate if our partners don&#8217;t agree to do the same. Real collaboration doesn&#8217;t work without us taking at least one small step toward one another.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!N7Bm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!N7Bm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!N7Bm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!N7Bm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!N7Bm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!N7Bm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png" width="626" height="351.74343585896474" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:749,&quot;width&quot;:1333,&quot;resizeWidth&quot;:626,&quot;bytes&quot;:143134,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!N7Bm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png 424w, https://substackcdn.com/image/fetch/$s_!N7Bm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png 848w, https://substackcdn.com/image/fetch/$s_!N7Bm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.png 1272w, https://substackcdn.com/image/fetch/$s_!N7Bm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80d09b75-c01f-46bc-b23b-59e26ad6535f_1333x749.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><ul><li><p>Engineers: become co-authors of requirements. Ask to ride-a-long on a product discovery mission or design review.</p></li><li><p>Product people: understand that engineers spend a lot of time thinking about your (y&#8217;all&#8217;s) product. They might even have something valuable to say about its direction. </p></li><li><p>Leaders: show up and give the feedback required to shape speculative requirements into actual specifications. </p></li></ul><p>Go ahead, everyone, take one step toward the center.</p><p>If you want something done right, do it together.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/your-requirements-suck?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://newsletter.nerdnoir.com/p/your-requirements-suck?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[What Product-led Means to Engineering]]></title><description><![CDATA[Exploring the differences between project- and product-based engineers.]]></description><link>https://newsletter.nerdnoir.com/p/what-product-led-means-to-engineering</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/what-product-led-means-to-engineering</guid><dc:creator><![CDATA[Anne Steiner]]></dc:creator><pubDate>Wed, 21 Aug 2024 14:05:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GNj-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GNj-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GNj-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!GNj-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!GNj-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!GNj-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GNj-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp" width="728" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:665016,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GNj-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!GNj-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!GNj-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!GNj-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81379b13-3546-4478-a1f5-79a71c2c06e8_1024x1024.webp 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>When folks talk about a company being "product-led," we often hear how it changes things for finance, portfolio management, and product management. But we rarely discuss what it means for the engineers who build the product. And let me tell you, the impact on engineering teams is huge and shouldn&#8217;t be overlooked.</p><h2><strong>Finding Identity in Product-led Engineering</strong></h2><p>Let&#8217;s start with something simple. Ask an engineer at your company, &#8220;What do you do here?&#8221; You might hear, &#8220;I&#8217;m a Go developer,&#8221; or &#8220;I&#8217;m a frontend dev,&#8221; or maybe even, &#8220;I&#8217;m on a Scrum team.&#8221; What they&#8217;re really telling you is what they&#8217;re bonded to&#8212;whether it&#8217;s a programming language, a part of the tech stack, or even the process they follow to get their work done. They identify with the &#8220;how.&#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_!_eAT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_eAT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 424w, https://substackcdn.com/image/fetch/$s_!_eAT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 848w, https://substackcdn.com/image/fetch/$s_!_eAT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_eAT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_eAT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png" width="1456" height="856" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_eAT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 424w, https://substackcdn.com/image/fetch/$s_!_eAT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 848w, https://substackcdn.com/image/fetch/$s_!_eAT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_eAT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e990d0-d57a-4a3b-bf24-8428055a8c55_1600x941.png 1456w" sizes="100vw"></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>But here&#8217;s the thing: you'd hear something different in a truly product-led company. Engineers would say, &#8220;I work on small business bond policies,&#8221; or &#8220;I work on the search team.&#8221; They&#8217;d primarily identify with the product they&#8217;re helping to build, not just the tools or processes they use.</p><p>This difference might sound small, but it&#8217;s a big deal. When engineers identify with the product they&#8217;re working on, it signals that they&#8217;re more invested in the success of that product and its users. They see themselves as part of something bigger than just writing code&#8212;they&#8217;re helping to put something into the world that real people will use.&nbsp;</p><p>Asking &#8220;What do you do here?&#8221; is a quick way to test whether your company is product-led. Go on and try it. Ask your engineers what they do and see if they talk about the product or just the tools.</p><h2><strong>Purpose and Impact: The Real Payoff of Being Product-led</strong></h2><p>One of the upsides of being product-led is the connection it creates between engineers and the people who use the product. When jumping from project to project, you don&#8217;t always get to see the long-term impact of your work. But when working on a product over time, you start to understand how it works, how it&#8217;s positioned in the market, and most importantly, how it&#8217;s helping people. You&#8217;re working closer to value, outcomes, purpose, and impacts. It&#8217;s easier to understand how your work moves the needle.</p><p>As a young engineer, I remember working in a traditional, project-led environment. We followed the waterfall method and had no real contact with the customers. I couldn&#8217;t see how what I was doing was making a difference. It was frustrating because I wanted to know that my work mattered.&nbsp;</p><p>After a while, I wasn&#8217;t content just writing code for the sake of it&#8212;I wanted to know how it was helping someone out there. This disconnect was a big reason I eventually left engineering for product management. If you can&#8217;t fix the problem from your current position, go somewhere where you can.</p><p>In a product-led company, engineers should never feel that disconnect. They should see firsthand how their work is making a difference. And as a result, they will be more motivated and engaged. They&#8217;re not just writing code&#8212;they&#8217;re solving problems for real people. Real people who appreciate their efforts, even if unattributed.</p><h2><strong>Better Decisions Through Product Knowledge</strong></h2><p>Here&#8217;s a red flag for me: when an engineer says, &#8220;Just tell me what to do, and I&#8217;ll do it.&#8221; That&#8217;s a sign that something&#8217;s gone wrong. Maybe they&#8217;ve been beaten down by the system. Or maybe they&#8217;ve just given up on trying to think for themselves. Either way, it&#8217;s bad news for everyone.</p><p>In a product-led organization, engineers must be part of the decision-making process. They need to know what the product is trying to achieve so they can make informed decisions every day. Engineers not only have to build things the right way, but they also have to build the right things. They&#8217;re making small decisions all the time&#8212;hundreds of them, just in how they write code. There is a compounding effect. They can't make the best choices if they don&#8217;t have the full picture and some skin in the game.</p><p>This isn&#8217;t about engineers stepping on the toes of product managers. It&#8217;s about everyone on the team sharing knowledge and working collectively to improve the product. The more engineers know about the product and the market, the better their decisions will be and the better the product will turn out.</p><p>Oh, and Product Managers, creating this environment takes a lot of pressure off of you. Many hands make light work.</p><h2><strong>Goodbye, Death Marches; Hello, Sustainable Development</strong></h2><p>Let&#8217;s talk about the dreaded &#8220;death march&#8221; for a minute.&nbsp;</p><p>Back in the day, when projects were managed with waterfall methods, we&#8217;d go through grueling, months-long pushes to get something out the door. It was all-hands-on-deck, working 12-hour days, weekends&#8230; the whole nine yards. Then, once the project was done, there&#8217;d be this big dip, where work slowed to a crawl until the next death march kicked off.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ihlK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ihlK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png 424w, https://substackcdn.com/image/fetch/$s_!ihlK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png 848w, https://substackcdn.com/image/fetch/$s_!ihlK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png 1272w, https://substackcdn.com/image/fetch/$s_!ihlK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ihlK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png" width="872" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:872,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ihlK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png 424w, https://substackcdn.com/image/fetch/$s_!ihlK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png 848w, https://substackcdn.com/image/fetch/$s_!ihlK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.png 1272w, https://substackcdn.com/image/fetch/$s_!ihlK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa839c6d7-ba36-4923-a785-9e52f06b7b3e_872x500.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>It was exhausting, and honestly, it didn&#8217;t lead to great results. Often, after all that hard work, we&#8217;d find out that we built the wrong thing. The market had moved on, or we&#8217;d misunderstood what customers needed. All that effort, and it didn&#8217;t even hit the mark.</p><p>These days, with agility and product-led development, things can be different. We&#8217;re not just throwing everything into one big project and hoping for the best. We&#8217;re working iteratively, releasing smaller changes more frequently, and responding to feedback as we go. This approach evens out the workload and helps us avoid those brutal peaks and valleys. Plus, we&#8217;re more likely to deliver something that works for our customers because we&#8217;re constantly testing and adjusting. Early value and feedback for the win!</p><h2><strong>Continuous Improvement: The Long View of Product-led Development</strong></h2><p>One of the biggest shifts in thinking that comes with being product-led is the idea of continuous improvement. In the old project-led world, we&#8217;d finish a project, pat ourselves on the back, and move on to the next one. But in a product-led world, the job isn&#8217;t done until the product reaches the end of life. For successful products, that can be a decade or even more. We&#8217;re always looking for ways to improve it, whether by fixing what&#8217;s broken, improving what&#8217;s already working, or adding something new.</p><p>The pattern of financing a project and moving the bits over to keep the lights on the team is a known recipe for generating technical debt. Unchecked, systems spiral toward crisis. There&#8217;s no incentive for engineers measured on time and budget to do the right thing, and there are no consequences to taking shortcuts to make the numbers.</p><p>This kind of longer-term thinking separates product-led organizations from the rest. It&#8217;s not just about getting something out the door&#8212;it&#8217;s about ensuring the product stays relevant and useful for as long as it&#8217;s in the market.</p><h2><strong>Bringing It All Together</strong></h2><p>So, what does it mean to be product-led in engineering?&nbsp;</p><p>Engineers are more than just code writers&#8212;they&#8217;re integral to the product team. They understand the purpose of what they&#8217;re building and are deeply connected to their product&#8217;s success. <em>They feel ownership</em>.</p><p>Engineers make better decisions because they have the information they need, and they work in a way that&#8217;s both sustainable for themselves and responsive to the market.</p><p>Product-led isn&#8217;t just a buzzword&#8212;it&#8217;s a way of working that brings out the best in your engineering team and delivers better customer results. It&#8217;s time we started talking more about what it means for the people who build the product, not just those who manage it. If we do that, we&#8217;ll see better outcomes for the product, the company, and, just as importantly, the engineers themselves.</p>]]></content:encoded></item><item><title><![CDATA[Trigger Words]]></title><description><![CDATA[Words in software product development that make people feel some kind of way.]]></description><link>https://newsletter.nerdnoir.com/p/trigger-words</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/trigger-words</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Thu, 15 Aug 2024 14:17:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MI-z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MI-z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MI-z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!MI-z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!MI-z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!MI-z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MI-z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:307528,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MI-z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!MI-z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!MI-z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!MI-z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30ecacb5-0981-4ee1-af69-c163788379b8_1024x1024.webp 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>Kurt Anderson, founder and former editor of New York Magazine and <a href="https://www.wnyc.org/shows/studio">Studio 360 Podcast</a> host, infamously created a list of &#8220;<a href="https://archive.nytimes.com/6thfloor.blogs.nytimes.com/2011/05/20/words-we-dont-say/">Words We Don&#8217;t Say</a>&#8221; to discourage fluff and filler from the pages of his magazine. It&#8217;s a little snobby, but you&#8217;ve got to have standards&#8212;especially in NYC!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zGgq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zGgq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 424w, https://substackcdn.com/image/fetch/$s_!zGgq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 848w, https://substackcdn.com/image/fetch/$s_!zGgq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 1272w, https://substackcdn.com/image/fetch/$s_!zGgq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zGgq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png" width="700" height="904" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a30d243e-1606-4772-b3d1-8291411fadfd_700x904.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:904,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zGgq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 424w, https://substackcdn.com/image/fetch/$s_!zGgq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 848w, https://substackcdn.com/image/fetch/$s_!zGgq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 1272w, https://substackcdn.com/image/fetch/$s_!zGgq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa30d243e-1606-4772-b3d1-8291411fadfd_700x904.png 1456w" sizes="100vw"></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>Exploring some words that carry emotional baggage for us in product and engineering might be interesting. These words may trigger us, causing us to cringe when using them. Some would argue they need retirement from the lexicon, while others may find them funny.</p><p>At&nbsp;<a href="https://nerdnoir.com">Nerd/Noir</a>, our collaborators meet bi-weekly to review new opportunities and existing gigs and do something creative together. I solicited their input on these words a couple of sessions back. So, thanks, collaborators!&nbsp;</p><p>Oh - and I&#8217;ll ask for your input at the end of this post!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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://newsletter.nerdnoir.com/subscribe?"><span>Subscribe now</span></a></p><h4>#1 - &#8220;Resource&#8221;</h4><p>When senior leaders talk about people, they often use the word resource. People don&#8217;t like to be called resources. It&#8217;s depersonalizing. I am not a mine to be stripped, nor a well to be drained, nor an ore to be smelted.&nbsp;</p><p>Product people might cringe at the word because it harkens back to the old ways of the project model. Resources are to be controlled as one vertex of the iron triangle.&nbsp;</p><p>Odd because your organization probably has a department called &#8220;Human Resources.&#8221; We&#8217;ve seen a shift from that language in that group as top HR leaders increasingly adopt the title of Chief People Officer.</p><p>I hear the word &#8220;talent&#8221; used sometimes. It&#8217;s usually a good indicator that its user is also triggered by the word resource. Listening closely is a great way to find others who share your values.'</p><p>If you&#8217;re feeling especially cute, you could also use the word &#8220;resourceful,&#8221; as I do when people share their feelings around this word. But, then again, why not just call people, I don&#8217;t know, people?!&nbsp;</p><p>I&#8217;ve relaxed my policy on this word, partly because I work with executives, and it&#8217;s not my job to push my idiosyncrasies on their vocabulary. While I may point out something destructive or hurtful in a 1:1, the R-bomb doesn&#8217;t make the cut. Like many trigger words, the reaction depends on the room and its occupants.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/trigger-words?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://newsletter.nerdnoir.com/p/trigger-words?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h4>#2 - &#8220;Mindset&#8221;</h4><p>Growth mindset. Product mindset. Zero defect mindset. Security-first mindset. Agile mindset. There are more mindsets than you can shake a stick at. The word is tired, overused, and anxiety-inducing (for me, at least).&nbsp;</p><p><em>How many ways of thinking would you like me to adopt?</em> Multiple mindsets feel like a case of split personality.&nbsp;</p><p>It also smacks of agile coach pop psychology woo-woo mysticism. How exactly do you propose I adopt and leverage this mindset? Can you show me what it looks and feels like in practice? Answers to questions like these might be a better starting point.</p><p>In some meta-cognitive moments, when I take a step back and consider my mental model and way of thinking, I boil it down to thinking critically and laterally. That&#8217;s right, just two modes of thought.</p><p>Critical thinking is about tearing down a condition, statement, or hypothesis. It gets you to a place where innovation can start to happen. Why is this thing the way it is? Repeat that question until you find a root cause or some faulty assumptions. Some would call this <a href="https://www.lennysnewsletter.com/p/first-principles-thinking">the starting point of first principles thinking</a>.</p><p>Lateral thinking pairs nicely with critical thinking. It involves considering multiple solutions to problems, where unconventionality, wild ideas, and creativity come into play.</p><p>Critical thinking is great for analyzing problems, and lateral thinking is great for innovating new solutions. Both are useful. Knowing when to apply which one is a skill one can develop.&nbsp;</p><p>For example, a fundamental of good workshop design is to stack moments where you ask participants to think critically (generate a list of what needs improving) followed by thinking laterally (what solutions might we apply to this problem we prioritized).</p><p>The other problem with mindset is that it short-circuits action. You cannot successfully adopt any mindset without immersing yourself in the actions that align with that mindset. Mindset emerges as a side effect of doing.&nbsp;</p><p><a href="https://www.lean.org/about-lei/senior-advisors-staff/john-shook/">Lean management guru John Schook</a> created a model that our team lives by:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pHhg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pHhg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png 424w, https://substackcdn.com/image/fetch/$s_!pHhg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png 848w, https://substackcdn.com/image/fetch/$s_!pHhg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png 1272w, https://substackcdn.com/image/fetch/$s_!pHhg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pHhg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png" width="1281" height="780" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:780,&quot;width&quot;:1281,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pHhg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png 424w, https://substackcdn.com/image/fetch/$s_!pHhg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png 848w, https://substackcdn.com/image/fetch/$s_!pHhg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.png 1272w, https://substackcdn.com/image/fetch/$s_!pHhg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff12fdddb-50be-411a-8b5a-bdc97cde2aa6_1281x780.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>Mindset and culture are the end states of Shook&#8217;s model. They take root and form from doing. Changing the way you do things creates new behaviors influencing values and attitudes. The collective set of these values and attitudes terraforms culture. That&#8217;s Shook&#8217;s model. You can read more about it in the <a href="https://www.lean.org/downloads/35.pdf">famous NUMMI auto plant case study</a>.</p><p>My problem is that certain people over-index on mindset. Awareness is a good starting point, but it alone does nothing to change behavior or the way we think. </p><p>We can find examples of this thinking in a change team's metrics: number of trainings taken, teams trained, etc. These activity metrics tell you nothing about outcomes or even new behaviors. I suppose we could call this the &#8220;Busywork Mindset.&#8221;</p><p>If all someone has to say is mindset this or that, do you think they can help you affect meaningful change? Nope. No amount of agile shaman babble or <a href="https://www.lego.com/en-us/themes/serious-play">LEGO&#174; SERIOUS PLAY&#174;</a> will get you to meaningful impacts.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/trigger-words?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">Thanks for reading Hard Boiled Software! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/trigger-words?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://newsletter.nerdnoir.com/p/trigger-words?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h4><strong>#3 - Transformation</strong></h4><p>Transformation has so much baggage we might call it <a href="https://www.1stdibs.com/fashion/handbags-purses-bags/luggage-travel-bags/louis-vuitton-brown-monogram-alzer-11-hard-case-trunk-set/id-v_21492232/">a full Louis Vuitton luggage set</a>.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p2hb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p2hb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png 424w, https://substackcdn.com/image/fetch/$s_!p2hb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png 848w, https://substackcdn.com/image/fetch/$s_!p2hb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png 1272w, https://substackcdn.com/image/fetch/$s_!p2hb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p2hb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png" width="512" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:700,&quot;resizeWidth&quot;:512,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p2hb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png 424w, https://substackcdn.com/image/fetch/$s_!p2hb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png 848w, https://substackcdn.com/image/fetch/$s_!p2hb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.png 1272w, https://substackcdn.com/image/fetch/$s_!p2hb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd83ad9a-4484-44e8-90fb-0328a8939586_700x700.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>Buzzword fatigue is a big part of it. Here come the consultants! &#8220;Big A&#8221; Agile traded under this term and still does.&nbsp;</p><p>When talking to senior leaders, one of the first questions I&#8217;ll ask is, &#8220;How many transformations have happened here?&#8221; It&#8217;s not unusual for us to show up at a client to find out we&#8217;re the next in a long line of Don Quixotes. To solve the unsolvable problem! To change the unchangeable company!&nbsp;To dream the impossible dream!</p><p>Typical responses:</p><ul><li><p>We tried our own thing&nbsp;</p></li><li><p>Then we tried SAFe a few times</p></li><li><p>Then we tried the Spotify model</p></li><li><p>Now we&#8217;re back to waterfall projects</p></li></ul><p>Change is scary, especially when it&#8217;s opaque and mysterious. Reactions vary:</p><ol><li><p>Here come the consultants! How will I wait them out this time?</p></li><li><p>How will this top-down imposition affect me?</p></li><li><p>I was finally making some good progress in my job. Now that&#8217;s about to get crushed.</p></li></ol><p>Transformation is a trigger word because most people have been through at least one that&#8217;s been poorly handled&#8212;<a href="https://newsletter.nerdnoir.com/p/a-leaders-guide-to-overcommunication">crappy communication</a>, unclear vision, surprises, a lack of enrollment, etc. One (of the many) reasons they fail is because individuals find ways of protecting themselves in difficult circumstances, undermining the change's intent.</p><h4><strong>#4 - &#8220;MVP&#8221;</strong></h4><p>Minimum Viable Product (MVP) comes to us from <a href="https://theleanstartup.com/">Eric Reis and the Lean Startup community</a>. Every word in the sequence has its own set of triggers. A few examples:</p><ol><li><p>Minimum - you&#8217;re just using the word to disguise &#8220;big project.&#8221;</p></li><li><p>Viable - you want us to get to economic viability in a few weeks?!</p></li><li><p>Product - we know you mean project.</p></li></ol><p>The original intent of MVP has been lost. It was intended to be a form of experiment that used software delivery to validate assumptions. The big question is, &#8220;Do people want this at all?&#8221; </p><p>Many other experiments and discovery techniques are way cheaper than software delivery, which we can use to validate our ideas as good or bad. We could do research, competitive analysis, or even create a landing page with a signup form that advertises vaporware to assess demand (Oz MVP).&nbsp;</p><p>At some point, you&#8217;ll start working on a new product idea or larger feature with enough confidence to place a bet requiring delivery. It will be new and big enough to need a foundation of table-stakes features and maybe one or two exciting or somehow differentiating features. </p><p>This first pass will take longer than subsequent iterations. And that&#8217;s what I call an MVP, but I always feel the need to disclaim, &#8220;I&#8217;m using that term as it was originally intended and with low ceremony, so let&#8217;s not get too hung up on it.&#8221;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/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://newsletter.nerdnoir.com/subscribe?"><span>Subscribe now</span></a></p><h4><strong>#5 - &#8220;Scrum Master&#8221;</strong></h4><p>Scrum has some problematic language embedded in its roles: Scrum <em>Master</em> and Product <em>Owner</em>. This language is problematic from both inclusion and anti-racist perspectives.&nbsp;</p><p>If the various Git platforms changed their main branch names from &#8220;master&#8221; to &#8220;main&#8221; way back in 2020, why can&#8217;t Scrum do the same? Seems retrograde to me. Or a stubborn commitment to a privileged bias. Either way, it&#8217;s whack.</p><p>Scrum Master also sounds silly when we pair it with more contemporary contributor roles like product manager or engineer. </p><p>One company I worked for even renamed Scrum Masters to &#8220;Flow Wizards.&#8221; Clearly, some VP was a fan of the Harry Potter series. To me, it sounded like the name of a medical catheter. That company had a lot of legacy software and growth through unchecked acquisition problems, so maybe &#8220;Dungeon Master&#8221; would have been a more fitting title.</p><h2><strong>Everybody Has Choices</strong></h2><p>Consulting is a weird job sometimes. You find yourself in different cultures with different norms and sometimes similar words that mean different things. You must learn to adapt to these nuances quickly before a client&#8217;s patience with you runs out. Adaptability is a skill.</p><p>Chances are you can&#8217;t word-police everyone to your perfect, trigger-free vocabulary. You can, however, control your language and model the behavior you&#8217;d like to see from others. Personal word choices are a degree of freedom!</p><p>When leaders talk about people as &#8220;resources,&#8221; I&#8217;ll respond with the word &#8220;people.&#8221;</p><p>When I feel the &#8220;MVP&#8221; people are talking about is getting large and out of control, I&#8217;ll ask about the &#8220;first iteration&#8221; or &#8220;first chance for feedback.&#8221;</p><p>When the conversation is peppered with talk of &#8220;transformation,&#8221; I&#8217;ll ask where we can &#8220;make a small change&#8221; and &#8220;get an early win.&#8221;</p><h2><strong>What words trigger you?</strong></h2><p>I wrote this post hoping to hear from our subscribers.&nbsp;</p><p>What words trigger you and why? What are your strategies for coping with these loaded words?&nbsp;I want to hear from you in the comments below!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.nerdnoir.com/p/trigger-words/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.nerdnoir.com/p/trigger-words/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item></channel></rss>