<?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>Sat, 20 Jun 2026 19:39:58 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["Mapping Your Architecture" with Simon Brown]]></title><description><![CDATA[Episode 007: C4 Model Done Right, Diagrams-as-code, LLMs as Architectural Assistants]]></description><link>https://newsletter.nerdnoir.com/p/mapping-your-architecture-with-simon</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/mapping-your-architecture-with-simon</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Wed, 17 Jun 2026 11:46:01 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/201757930/31de34889889a37d8f17de732334674c.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><strong>Simon Brown</strong> is the creator of the C4 model for Visualising Software Architecture and the founder of Structurizr, the original developer-friendly &#8220;diagrams as code&#8221; tooling for version-controlled architecture documentation. An independent consultant based in Jersey, he has spent 15+ years helping hundreds of organizations across roughly 40 countries communicate their software architecture more clearly. His new book, &#8220;<em><a href="https://www.oreilly.com/library/view/the-c4-model/9798341660113/">The C4 Model: Visualizing Software Architecture</a>&#8221;</em>, arrived from O&#8217;Reilly this month.</p><h2>Episode Overview</h2><p>Why have software architects, declared dead a decade ago, suddenly turned up again on client org charts? And how did a set of plain block diagrams Simon Brown used to sketch for his own day job become a whiteboard standard you can spot everywhere from Miami to London to Mumbai?</p><p>Simon tells the origin of C4 with characteristic modesty (he calls it &#8220;really boring&#8221;). It started in mid-2000s London, where he ran architecture workshops, looked at the diagrams people drew, and realized he couldn&#8217;t understand any of them. With UML on its way out and no appetite to bring it back, he taught people the block diagrams he already used at the office. That became C4: four levels of abstraction, one at a time, with a Google Maps-style zoom from a broad system context into containers, components, and code.</p><p>From there the conversation ranges across the architecture revival and what&#8217;s driving it (compliance gaps, lost water-cooler knowledge, and a flood of AI-generated code nobody understands), why Simon refused to build a drag-and-drop editor and made a text-based DSL instead, the deployment diagram he thinks is the most slept-on view in the whole model, and a candid comparison of how developer cultures differ on either side of the Atlantic. It&#8217;s a clear-eyed, plain-spoken look at the craft of drawing software so other people can actually read it.</p><h2>Links &amp; Resources</h2><h3>Guest Links</h3><ul><li><p><a href="https://simonbrown.je/">Simon Brown&#8217;s website</a></p></li><li><p><a href="https://c4model.com/">The C4 model</a></p></li><li><p><a href="https://structurizr.com/">Structurizr</a> and the <a href="https://docs.structurizr.com/">Structurizr docs</a></p></li><li><p><em><a href="https://www.oreilly.com/library/view/the-c4-model/9798341660113/">The C4 Model: Visualizing Software Architecture</a></em> by Simon Brown (O&#8217;Reilly, 2026) &#8212; the rewritten and expanded successor to his self-published LeanPub C4 book; first six chapters are in early access</p></li><li><p><em><a href="https://leanpub.com/software-architecture-for-developers">Software Architecture for Developers</a></em> by Simon Brown (Leanpub)</p></li><li><p><a href="https://www.linkedin.com/in/simonbrownjersey/">Simon on LinkedIn</a></p></li><li><p><a href="https://bsky.app/profile/simonbrown.je">Simon on Bluesky</a></p></li><li><p><a href="https://x.com/simonbrown">Simon on X</a></p></li></ul><h3>Books &amp; Articles Mentioned</h3><ul><li><p><em><a href="https://erinmeyer.com/book/">The Culture Map: Breaking Through the Invisible Boundaries of Global Business</a></em> by Erin Meyer &#8212; the book Dave references on cross-cultural communication and negotiation styles, which maps how different cultures approach meetings and deals <em>(best guess at the title Dave couldn&#8217;t recall in the moment; worth confirming before publishing)</em></p></li></ul><h3>Tools, Frameworks &amp; Concepts</h3><ul><li><p><a href="https://docs.structurizr.com/dsl">Structurizr DSL</a> &#8212; a lightweight, text-based domain-specific language for defining a C4 model as code; a wrapper over the original Structurizr for Java library, built during COVID lockdown</p></li><li><p><a href="https://modelcontextprotocol.io/docs/getting-started/intro">Model Context Protocol (MCP)</a> &#8212; Simon added MCP tooling that runs validation and parsing so an LLM can read the error messages and fix its own invalid DSL</p></li><li><p><a href="https://plantuml.com/">PlantUML</a> &#8212; text-based diagramming tool; Structurizr can export views to it</p></li><li><p><a href="https://mermaid.js.org/">Mermaid</a> &#8212; diagrams-as-code tool with a C4-style syntax that doesn&#8217;t enforce C4 semantics or view rules</p></li><li><p>UML &#8212; the OG modeling notation that fell out of favor after the Agile Manifesto, leaving the gap C4 filled</p></li><li><p><a href="https://c4model.com/abstractions">The C4 abstractions</a> &#8212; system context, container, component, and code, plus the supporting system landscape, dynamic, and deployment diagrams</p></li></ul><h2>Topics &amp; Key Points</h2><h3>The "Boring Origin Story of C4</h3><p>Simon traces C4 back to the architecture workshops he ran in mid-2000s London, where he discovered he couldn&#8217;t make sense of the diagrams participants drew. With UML already on the way out, he simply taught the block diagrams he used in his own day job.</p><p><strong>Key points:</strong></p><ul><li><p>The work grew out of consulting: growing a consultancy meant creating more tech leads and architects, so Simon started teaching people how to move into those roles</p></li><li><p>C4 is &#8220;a formalization of the block diagrams&#8221; he drew in a post-UML world, shaped over years of feedback rather than designed as an invention</p></li><li><p>The name stuck even though most teams use only the top two levels; Simon jokes it could just as well be called &#8220;C2 plus two optional levels&#8221;</p></li></ul><h3>One Level at a Time</h3><p>The main move with C4 is to stop putting everything on one page and instead focus on a single level of abstraction at a time, zooming in Google Maps style from the system context down toward the code.</p><p><strong>Key points:</strong></p><ul><li><p>The &#8220;everything on one page&#8221; everything-diagram puts almost everyone off: non-technical stakeholders, infrastructure folks, and product owners all tune out</p></li><li><p>Slicing the picture into levels invites more people to the party: business and UX people engage with the context diagram because they&#8217;re thinking about how users reach their goals, and infrastructure and DevOps people gravitate to the container diagram</p></li><li><p>The container diagram closes the gap between dev and ops who want to collaborate but speak different languages; network engineers have told Simon that the diagram finally let them understand what the developers actually hand over to run and monitor</p></li><li><p>Code-level diagrams are almost never drawn (Simon has done it once), and even component diagrams are niche, most useful when planning a service extraction from a monolith or arranging a new small-to-medium monolith</p></li></ul><h3>The Architecture Revival</h3><p>Dave notes that architect roles are reappearing among clients in 2026 after years of backlash against &#8220;ivory tower&#8221; architects. Simon offers two theories for why.</p><p><strong>Key points:</strong></p><ul><li><p>Theory one: organizations that swung from heavy upfront design all the way to &#8220;working software over comprehensive documentation&#8221; overcorrected, and now fail compliance audits, hold critical knowledge in tribal silos, and don&#8217;t fully understand the software running their business; COVID made it worse by erasing water-cooler knowledge transfer</p></li><li><p>Theory two: AI and vibe coding produce thousands of lines of code nobody understands, can review, or knows how to fit into existing systems, nudging teams back toward some planning, not months of it, but enough to bring structure</p></li><li><p>Dave frames the shift as planning and feedback loops moving left up the value stream, now reaching into architecture and product conversations</p></li><li><p>A good plan plus small, reviewable slices (build a slice, then pause and review) is producing strong results in Dave&#8217;s own workflow</p></li></ul><h3>Diagrams as Code with Structurizr</h3><p>Simon explains why he turned down a WYSIWYG editor for C4 and instead built a text-based DSL, and why that choice has aged well in the AI era.</p><p><strong>Key points:</strong></p><ul><li><p>He&#8217;s a developer. He likes text, version control, and diffs. Drag-and-drop canvases give a low barrier and quick wins but become unmanageable at scale (picture adding one system that connects to forty others by ticking boxes in a GUI)</p></li><li><p>The earliest Structurizr tooling required writing Java, which few people wanted, so during lockdown Simon built the lightweight Structurizr DSL as a wrapper over the Java library; the first version took about a week</p></li><li><p>The DSL is model-based: one text file can drive multiple views with consistent styling, and relationships defined at lower levels bubble up automatically to reduce what you have to write</p></li><li><p>All this turns out to be AI/LLM-readable too; Simon added MCP tooling so an LLM can run validation and parsing, read the error messages, and fix its own invalid output</p></li><li><p>Unlike Mermaid, which offers a C4-style syntax without understanding C4&#8217;s semantics or view rules, the Structurizr DSL bakes the rules in and won&#8217;t let you mix abstraction levels; you can still export to PlantUML or Mermaid when your toolchain needs them</p></li></ul><h3>The Slept-On Diagrams</h3><p>Beyond the four static levels, Simon walks through the supporting views people tend to overlook, and names his favorite underrated one.</p><p><strong>Key points:</strong></p><ul><li><p>The <strong>system landscape diagram</strong> is essentially a context diagram without a single-system focus, a wider view of the world around you</p></li><li><p>The <strong>dynamic diagram</strong> shows how one feature works at runtime as a set of collaborations; it&#8217;s genuinely useful but underused, and the trick is to document recurring patterns rather than drawing one per feature</p></li><li><p>Simon&#8217;s pick for most slept-on is the <strong>deployment diagram</strong>; the common mistake is superimposing the production cloud environment onto the container diagram, when the container diagram should stay deployment-environment-agnostic with a separate deployment diagram per environment</p></li><li><p>Simon&#8217;s static-content example makes it concrete: the same set of files is mounted into an NGINX Docker container in development and pushed to an S3 bucket served via Cloudflare in production</p></li><li><p>On <strong>representing change over time</strong>, the options range from current and future-state copies, to additive DSL extensions, to a future-state tagging mechanism that drives separate views, to color-coding (with a caution to watch for red-green color deficiency)</p></li></ul><h3>Two Sides of the Atlantic</h3><p>The episode closes on a frank comparison of developer cultures, with Dave offering the American read and Simon the European one. </p><p><strong>Key points:</strong></p><ul><li><p>Dave&#8217;s take: US teams feel practical, results-driven, and money-focused, while the European and UK scenes lean more intellectual and ideas-driven</p></li><li><p>Simon, who has run the large majority of his workshops in and around Europe, sees more friction, overhead, and bureaucracy in the typical US enterprise, and a stronger learning culture inside European organizations</p></li><li><p>He caveats the comparison heavily, noting he has never run a workshop in California or Silicon Valley and is deliberately carving that out</p></li><li><p>Dave mentioned a book on cross-cultural communication and negotiation styles, &#8220;<a href="https://www.amazon.com/When-Cultures-Collide-Leading-Across/dp/147368482X">When Cultures Collide: Leading Across Cultures (4th Edition)</a>&#8221; by Richard D. Lewis. It contains some interesting visualizations about how different cultures run meetings, negotiations, and other business events.</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 Saved Us Time" Is Not Enough]]></title><description><![CDATA[The ROI lives in what happens next.]]></description><link>https://newsletter.nerdnoir.com/p/ai-saved-us-time-is-not-enough</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/ai-saved-us-time-is-not-enough</guid><dc:creator><![CDATA[Jess Brock]]></dc:creator><pubDate>Wed, 10 Jun 2026 18:12:29 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a2dc08ce-d849-4c1c-a3d1-33dec3957e75_1938x1338.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Many meetings I&#8217;ve been in lately have featured the same flourish: <em>X hours saved using AI tools</em>. The room always eats it up because it makes our AI investment look like it&#8217;s paying off.</p><p>I get the appeal. For the past couple of years, I&#8217;ve been trumpeting the same line: outsource the time-consuming toil to AI so people can do more, better work. I still believe it.</p><p>My concern isn&#8217;t with &#8220;time saved.&#8221; It&#8217;s a warning about stopping there. Fixate on one metric, and you may limit how much return it can ever achieve.</p><p>Saving time doesn&#8217;t create value. It creates capacity: open space on the calendar. Whether that space becomes anything depends on what happens next, and &#8220;next&#8221; is the part that almost no one measures or defines.</p><p>So how do we define &#8220;next&#8221; and work towards maximizing our AI investment? Two simple dimensions point the way.</p><h2>1. Value</h2><p><em><strong>Did the freed-up time create anything?</strong></em></p><p>Saving 20% of an organization&#8217;s hours is great, but the win is what fills the gap. Capacity only counts if it turns into work that matters, and that work comes in a few flavors:</p><ul><li><p><strong>Deferred work you finally did.</strong> The memory leak. A real threat model before the new API shipped. The flaky tests that slowed every release. Valuable things that the organization <em>could</em> have done, but kept putting off.</p></li><li><p><strong>Work that wasn&#8217;t possible before.</strong> Yes, good ole capability enablement. A load test you&#8217;d never had the capacity to run. Real experimentation. The architecture and resilience work that keeps paying off. New capacity didn&#8217;t just help the organization catch up. It moved the boundary of what they could do at all.</p></li><li><p><strong>Room to think.</strong> The most overlooked use of reclaimed time isn&#8217;t more output. It&#8217;s space. Space to define the right problem. Space for creativity and collaboration. Space for self-care. Dave Laribee calls the alternative the &#8220;<a href="https://newsletter.nerdnoir.com/p/busy-is-the-new-stupid">busy is the new stupid</a>&#8221; trap: confusing motion with progress. Reclaimed capacity gives organizations a chance to slow down enough to recharge and think. Sharper judgment, better decisions, and fewer misses come from people who aren&#8217;t running on empty.</p></li></ul><h2>2. Displacement</h2><p><em><strong>Did the work disappear, or just move?</strong></em></p><p>Speeding up one stage of a jammed system doesn&#8217;t fix the jam. In fact, I&#8217;d argue it pushes work toward the jam faster.</p><p>The effort doesn&#8217;t vanish. It moves downstream, into review queues, incidents, rework, and support, where the original &#8220;we saved time&#8221; story can&#8217;t see it. <a href="https://www.faros.ai/research/ai-acceleration-whiplash">Industry telemetry</a> is already showing the pattern: throughput up at the top, review time and incident rates climbing underneath.</p><p>Watch for the sneakier version, too. People stop checking AI output carefully because the tool has been reliable (We'll take <a href="https://en.wikipedia.org/wiki/Automation_bias">Automation Bias</a> for $500.) Useful becomes trusted, trusted becomes assumed, and verification becomes optional.</p><h2>Your Move</h2><p>Pick one AI rollout your organization is proud of. Do three things:</p><ol><li><p>Write down the valuable work you keep deferring, plus the things your organization never even attempts. That&#8217;s your value baseline.</p></li><li><p>Record today&#8217;s downstream numbers: review time, incidents, rework, support load, etc. That&#8217;s your displacement baseline.</p></li><li><p>Put a date on the calendar to come back and check both, and pick it deliberately. DORA&#8217;s <a href="https://dora.dev/ai/roi/report/">ROI of AI-assisted Software Development report</a> describes a J-curve, where AI value often dips before it climbs as organizations absorb the learning curve and the tax of verifying AI output. Check too soon, and you&#8217;ll mistake that dip for failure. Check only at the time-saved peak, and you&#8217;ll declare victory before the real value shows up.</p></li><li><p>Protect some of the reclaimed time before the backlog claims it. Block it for thinking, learning, and recovery on purpose. If you don&#8217;t name it, it disappears.</p></li></ol><p>Next time that slide goes up, and the room nods along, be the person who asks where the hours went, or where they&#8217;re going. <em>X hours saved</em> is a great opening line, but make sure it isn&#8217;t the whole story.</p>]]></content:encoded></item><item><title><![CDATA["Behavior Change at Scale" with Jimmy Parker]]></title><description><![CDATA[Watch now | Episode 006: Micro-experiences, The Knowing-Doing Gap, and Why Training Doesn't Stick]]></description><link>https://newsletter.nerdnoir.com/p/behavior-change-at-scale-with-jimmy</link><guid isPermaLink="false">https://newsletter.nerdnoir.com/p/behavior-change-at-scale-with-jimmy</guid><dc:creator><![CDATA[Dave Laribee]]></dc:creator><pubDate>Tue, 26 May 2026 09:20:53 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/198412650/044fb4c064b1303cf16182507ff175ee.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><strong>Jimmy Parker</strong> is the Founder and Chief Transformation Officer of <a href="https://peaq.co/">Peaq</a>, where he helps companies create fast, lasting transformation at scale. A graduate of the U.S. Naval Academy who served 11 years as a Marine Corps helicopter pilot, Jimmy went on to earn a PhD in developmental psychology applied to organizational transformation from Fielding Graduate University. Before founding Peaq, he led organizational development at The Home Depot and Kaiser Permanente, where he spent the better part of two decades studying what actually changes on-the-job behavior, and just as importantly, what doesn&#8217;t.</p><h2>Episode Description</h2><p>What if almost everything we spend on training never makes it back to the job? That isn&#8217;t rhetorical. The research Jimmy Parker has been chasing for 20 years puts the application rate of traditional training somewhere between zero and nine percent. In this conversation, Jimmy traces the path from his frustration as a classroom trainer to a methodology he calls micro experiences, a way of changing behavior at scale by leading with doing rather than knowing.</p><p>Jimmy&#8217;s career arc is a study in contrasts. started in the Marine Corps as an attack helicopter pilot, then carried that low tolerance for theater into corporate L&amp;D. He has studied behavior change wherever the lessons live, including habit science, marketing, addiction recovery, even religious conversion, and he has spent years pressure-testing what survives contact with a real organization. The result is a system designed around the gap between knowledge, behavior, and habit, and a specific format for closing it: a 45-minute action in the flow of work, paired with a reflection question, followed by a small-group conversation, repeated weekly for three to six months.</p><p>We get concrete in this episode. Jimmy walks through two micro-experiences he uses in the field: the &#8220;judo move&#8221; for product teams stuck in order-taker mode, and a decision audit for executives who say they want to grant autonomy but never quite manage to. We talk about why most OKR programs would score a D, why simple isn&#8217;t easy when you&#8217;re designing for behavior change, and why Jimmy ultimately frames this work as a question of equity, because the people who get the highest-quality development today are almost always the rare and privileged few.</p><h2>Links and Resources</h2><h3>Guest Links</h3><ul><li><p><a href="https://peaq.co/">Peaq</a> &#8212; Jimmy&#8217;s consulting practice</p></li><li><p><a href="https://www.linkedin.com/in/-jimmy-parker">Jimmy Parker on LinkedIn</a></p></li><li><p>Email Jimmy directly: jimmy@peaq.co</p></li></ul><h3>Tools, Frameworks, and Concepts</h3><ul><li><p>Micro Experiences &#8212; Jimmy&#8217;s framework for behavior change at scale, structured as 45-minute on-the-job actions with reflection and small-group debrief</p></li><li><p>The Four-Step Weekly Cycle &#8212; adapt, do, reflect, discuss</p></li><li><p>Experiential Learning &#8212; the tradition of learning by doing and reflecting, traceable to John Dewey</p></li><li><p>Declarative vs. Implicit Knowledge &#8212; the distinction between what can be taught in a classroom and what can only be learned through doing</p></li><li><p>Unconscious Competence &#8212; the final stage in the progression from ignorance to habit</p></li><li><p><a href="https://www.whatmatters.com/faqs/okr-meaning-definition-example">OKRs (Objectives and Key Results)</a> &#8212; referenced as an example of how knowing the framework rarely translates to doing it well</p></li></ul><h3>People Referenced</h3><ul><li><p><strong><a href="https://en.wikipedia.org/wiki/John_Dewey">John Dewey</a></strong> &#8212; the philosopher widely regarded as the father of experiential learning, often paraphrased: "We do not learn from experience, we learn from reflecting on experience.&#8221;</p></li></ul><h2>Topics Discussed</h2><h3>From the Cockpit to Behavior Change</h3><p>Jimmy opens with the throughline of his career: a love of leadership picked up in the Marine Corps, sharpened by years of running leadership training programs, and ultimately reshaped by the uncomfortable realization that classroom training rarely changes what people actually do on the job. That frustration sent him on a 20-year hunt across disciplines for what really drives behavior change.</p><p><strong>Key points:</strong></p><ul><li><p>The military taught Jimmy a low tolerance for things that don&#8217;t work, a standard he has carried into executive development</p></li><li><p>After running thousands of people through classrooms, Jimmy noticed the change rarely manifested on the job</p></li><li><p>His study took him well outside L&amp;D, into habit science, addiction recovery, religious conversion, and consumer marketing, looking for what consistently moves behavior</p></li><li><p>The work eventually focused on executive behavior change, because the cultural barriers that block agile teams often exist above the team</p></li></ul><h3>Why Traditional Training Falls Short</h3><p>Training is built on a single assumption: if people knew differently, they would do differently. That assumption holds for simple knowledge gaps and breaks down almost everywhere else. Jimmy is direct about the implications, including that the application rate for traditional training tops out at around 9%.</p><p><strong>Key points:</strong></p><ul><li><p>Studies from Harvard, MIT and others put the percentage of training participants who properly apply what they learned between zero and nine percent</p></li><li><p>Knowledge transfer is the right move for simple gaps; for complex, contextual, or culturally rooted behaviors, it almost never gets you to adoption</p></li><li><p>Agile talk is the common tell: organizations describe themselves in agile terms while their actual norms, requirements flow, and decision rights tell a different story</p></li><li><p>Most OKR programs score a D or C when measured against best practice, even when the people running them teach OKRs for a living</p></li></ul><h3>Knowledge, Behavior, Habit</h3><p>Jimmy keeps his definitions deliberately simple because the value is in the progression rather than the taxonomy. Knowing is what you can recall. Behavior is what you can be observed doing in a given moment, including how you speak. Habit is what you do consistently, without conscious thought, even when old patterns are pulling you backward.</p><p><strong>Key points:</strong></p><ul><li><p>The path from ignorance to habit runs through a stage of effortful, high-cognitive-load doing before the new behavior becomes automatic</p></li><li><p>Most behavior change interventions stop at knowing and hope the rest takes care of itself</p></li><li><p>Speech counts as behavior, which is part of why team communication and conflict patterns are so hard to change</p></li><li><p>The endpoint is unconscious competence, and getting there takes deliberate reps over time</p></li></ul><h3>Experience as the Lead, Not Learning</h3><p>When Dave and Jimmy were planning the episode, Jimmy specifically pushed back on using the word learning to describe his work. The reason matters. Leading with experience is a wager that doing first, then reflecting, gets you further on the hard problems than thinking your way to a new way of acting.</p><p><strong>Key points:</strong></p><ul><li><p>Declarative knowledge can be taught; the tacit, contextual knowledge of when and how to adapt can really only be learned through reps and reflection</p></li><li><p>Jimmy borrows from Dewey: experience by itself isn&#8217;t enough; the learning lives in structured reflection on the experience</p></li><li><p>&#8220;Do we think ourselves into a new way of acting, or act ourselves into a new way of thinking?&#8221; Both work, but the second is consistently underused</p></li><li><p>For deeply rooted behaviors, especially with senior leaders, the experiential path tends to be the only one that lands</p></li></ul><h3>Anatomy of a Micro Experience</h3><p>Jimmy walks through two real examples. The first is the &#8220;judo move,&#8221; a one-pager for product teams stuck in order-taker mode, offering a handful of responses to use when a stakeholder hands them features without context. The second is the decision audit, where executives track every decision they make for a week and score each on a one-to-five scale of whether someone else should have owned it.</p><p><strong>Key points:</strong></p><ul><li><p>A micro experience has two non-negotiable components: micro, meaning it fits in 45 minutes or less, and experiential, meaning it happens in real work, not in a simulation or a classroom</p></li><li><p>Each micro experience runs on a four-step weekly cycle: adapt it to your context, do it, reflect using a designed question, then debrief with a small group of five or six peers</p></li><li><p>The decision audit consistently surfaces hidden patterns: leaders score their own decisions and realize how many they&#8217;re holding onto, and why</p></li><li><p>Designing micro experiences turns out to be much harder than it looks; Jimmy describes it as something close to a PhD-level design skill when the targets are seasoned executives or deeply rooted norms</p></li></ul><h3>Scaling Without Scaling Cost</h3><p>The scalability claim for micro experiences isn&#8217;t about how long they run; it&#8217;s about how cheap they are to deliver and how small their administrative footprint stays. Jimmy has run programs of 30,000 people that needed just over one full-time person to administer.</p><p><strong>Key points:</strong></p><ul><li><p>Programs run a minimum of three months and a maximum of six, with intentionality and engagement designed in from the start</p></li><li><p>The facilitator role is deliberately designed for moderately skilled coaches with about two hours of training, because certified agile coaches don&#8217;t scale to cross-functional transformations</p></li><li><p>Engagement design matters: opt-in versus opt-out, executive sponsorship, accountability mechanisms, and incentives all materially affect the 90% application rate Jimmy targets</p></li><li><p>Once an organization learns how to build these in-house, the cost runs around a tenth of traditional training</p></li></ul><h3>Democratizing Deep Development</h3><p>The conversation closes on the purpose driving the work. Programs that consistently change behavior in lasting ways do exist, but they have historically been reserved for executives and high-potentials because they&#8217;re expensive. Jimmy frames the cost barrier as an equity problem, and micro experiences as one answer to it.</p><p><strong>Key points:</strong></p><ul><li><p>The highest-quality development has historically been a privilege, available only to a small slice of any organization</p></li><li><p>Jimmy describes the goal as deep development at scale, getting the impact of high-touch executive programs to many more people</p></li><li><p>Anyone can start experimenting with the approach on their own; the real lift is in designing micro experiences well enough to drive sticky change</p></li><li><p>For organizations that want the full system, Peaq offers a multi-step certification path that ends with clients running their own programs under license</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["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></channel></rss>