<?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[The Recovering CTO]]></title><description><![CDATA[How modernization, team design, and AI actually move together. From a recovering CTO who still writes the code.]]></description><link>https://writing.tilinthecloud.com</link><image><url>https://substackcdn.com/image/fetch/$s_!uJrf!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5e8fded-fe2a-407f-8a36-2376b1cc05e5_800x800.png</url><title>The Recovering CTO</title><link>https://writing.tilinthecloud.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 12 Sep 2026 04:53:26 GMT</lastBuildDate><atom:link href="https://writing.tilinthecloud.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Thiago de Faria / TilinTheCloud BV]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[tilinthecloud@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[tilinthecloud@substack.com]]></itunes:email><itunes:name><![CDATA[Thiago de Faria]]></itunes:name></itunes:owner><itunes:author><![CDATA[Thiago de Faria]]></itunes:author><googleplay:owner><![CDATA[tilinthecloud@substack.com]]></googleplay:owner><googleplay:email><![CDATA[tilinthecloud@substack.com]]></googleplay:email><googleplay:author><![CDATA[Thiago de Faria]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[There were software factories before the robots came]]></title><description><![CDATA[Why your best people will quit a job that stopped asking them to think]]></description><link>https://writing.tilinthecloud.com/p/before-the-robots-came</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/before-the-robots-came</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 08 Sep 2026 07:17:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FrBT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Rejecting novelty because it will dumb us down, steal our jobs, destroy our abilities or anything on that direction is a historically common reaction...</p><p><a href="https://writing.tilinthecloud.com/p/who-reviews-the-reviewers">Last week</a> I left Brett Codes walking off the factory floor and promised you he was not alone. He isn&#8217;t. Open any &#8220;I&#8217;m done with AI coding&#8221; thread and the comments are full of experienced people saying a version of the same thing... some of them already halfway out the door.</p><p>So when we say that AI is making the value of coding tend to zero, because anyone can type specs into a harness and spit out some code, we are telling your developers that their skills are becoming worthless?</p><p>It feels natural that some will reject AI coding on that context. But it reads as less the rejection of a tool, and more the rejection of a way of working... and that way of working is older than IDEs, OOP or even the punch cards.</p><p>What motivates someone, what drives someone to be consistently happy at work and doing their work goes way beyond the tool they use. We all have our buttons to push and be pushed... and those change even throughout the day, the week and many times throughout your life... imagine amongst different individuals?</p><p>What you cannot deny is: this accessible (for now) intelligence at our apps and terminals has the capacity to increase/speed up our output. But that doesn&#8217;t necessarily produce a better outcome for the company, or more happiness for the individual.</p><p>So before your best problem-solving engineers/developers/employees walk away from the factory floor because they are tired of validating a machine output, let&#8217;s talk about what is missing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FrBT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FrBT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!FrBT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!FrBT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!FrBT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FrBT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:306857,&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://writing.tilinthecloud.com/i/214638586?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.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_!FrBT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!FrBT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!FrBT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!FrBT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c57a5a6-4208-4918-b3bd-12d224762bed_1200x800.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 aria-hidden="true" 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><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 href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the trap: one program, not three.</a><br><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready.</a><br><a href="https://writing.tilinthecloud.com/p/steer-dont-sequence">Issue 3 put three bodies on the table that have to move together.</a><br><a href="https://writing.tilinthecloud.com/p/in-the-loop-not-in-the-room">Issue 4 kept the model in the loop, not in the room.</a><br><a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Issue 5 found Herbie: your bottleneck doesn&#8217;t burn tokens.</a><br><a href="https://writing.tilinthecloud.com/p/more-shipped-same-typing">Issue 6 brought the peer-reviewed witness: more shipped, same typing.</a><br><a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">Issue 7 taught one repo and moved a fleet.</a><br><a href="https://writing.tilinthecloud.com/p/the-sandbox-is-not-holding">Issue 8 found the sandbox was not holding, and told you to keep the gate.</a><br><a href="https://writing.tilinthecloud.com/p/who-reviews-the-reviewers">Issue 9 asked who reviews the reviewers, and pointed at this week.</a></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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 The Recovering CTO! 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><p></p><h2>The factory was always there</h2><p>The idea of controlling the output of software production always existed and always will. The more established the problem, the larger the company, the more regulated the environment... more people want to feel the control, establish a framework and guardrails that let us predict (or imagine we can predict) the future.</p><p>This idea of being a backend Java engineer at a financial institution for 40y of your life never appealed to a lot of people. The romanticization of craftsman&#8217;s work, of a creative space to put your ideas into motion, can be intrinsic to humans (or it&#8217;s just a reflection of our society)... it is why the gaming industry can fill its ranks with passionate developers who endure brutal crunch for not enough money, while private equity tech pays a lot more for the sake of &#8220;doing the boring, but simple&#8221;.</p><p>And this predates Agentic AI! I was a developer, I was a data engineer, I was a data scientist, I was a lead, I was a manager, I was a CTO... I led teams and I led teams of teams. Back then, I sat with teams whose whole job was to turn someone else&#8217;s spec into code. The PO/PM decided the what and why, they were the only ones with access to &#8220;the customer&#8221;. The ticket arrived in its own glory, format, standards... the developer had to make it true, close and pull the next one. Great people doing the best with the context and knowledge they had... many times, not even thinking if that was the thing that should be. A real software factory before a single robot (or AI) actually participated in our daily lives. And many would wake up one day after a retro, a planning or just moving tickets in Jira to ask: is this it? Is this my life?</p><p>This hasn&#8217;t changed. But AI might have finally exposed it... the fear is out there. I have mentees and former colleagues constantly asking what my plan is &#8220;if this continues&#8221;. Some are making career changes, but many are grinding to absorb the novelties and ensure they are not left behind.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uIwn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uIwn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uIwn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uIwn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uIwn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uIwn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:902582,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/214638586?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.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_!uIwn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uIwn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uIwn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uIwn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07cc6a29-5746-42bc-8017-1c894dd8a098_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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></p><h2>Faster now, gains much later</h2><p>Even the ones that are accelerating are asking questions. Because they see that their backlog tasks for the sprint can be wrapped up in less time with Agentic Coding. For the owners of the capital (let&#8217;s not digress into Marx), it&#8217;s another dream coming true. More productivity means more output, which we hope means more outcome... more outcome means more revenue and/or less cost. And all that brings to a bigger profit margin.</p><p>From <a href="https://writing.tilinthecloud.com/p/who-reviews-the-reviewers">last week&#8217;s edition</a> though, we surfaced that keeping humans at the gate (the entire &#8220;human in the loop&#8221; angle) might not be the work that lots of people signed up for... a faster and more efficient job doesn&#8217;t mean happier employees, because you are talking about someone&#8217;s skill/craft.</p><p>I&#8217;m eager to see what developer experience scientific papers will show in a few years, because the first ones that are still talking about chat-interface with LLMs already tell a very interesting story.</p><p>Take Chen et al. (<a href="https://doi.org/10.1145/3786583.3786848">ICSE-SEIP 2026</a>), a survey of 2989 developers using Copilot. 86% are satisfied or very satisfied, but around 60% save less than 1h per week... so yeah, satisfaction barely correlates with time-savings (r = 0.34, weak). And here is a caveat I&#8217;ll come back to: that study is about the Copilot/chat experience, which is not what a lot of us are doing at all today. The concept of Loop Engineering, letting good models &#8220;run amidst the code and documents to solve a goal, however long it takes&#8221;, is in vogue now.</p><p>How will this efficiency/productivity, employee happiness and financial outcomes fit together in the future of Agentic Coding? What will change? Let&#8217;s remember that the personal computer took decades to show up as a real productivity gain in the workplace: Robert Solow quipped in 1987 that &#8220;you can see the computer age everywhere but in the productivity statistics&#8221;, and Erik Brynjolfsson gave that gap a name, &#8220;The Productivity Paradox of Information Technology&#8221;, in the Communications of the ACM in 1993.</p><p>If we have clear guardrails to create specs that will be taken by agents to produce a code output that will be validated by your developers (because someone still needs to be responsible), is that creating a new gap? Or surfacing one that already existed?</p><h2>The two things the factory never asked for</h2><p>So what did Chen and colleagues find when they went past the survey and actually sat with developers? Eleven interviews, and out of them six factors of what &#8220;productive&#8221; even means with these tools. Four of them you already track, more or less: whether people need to ask a colleague less, whether the tool lowers the friction, how fast the task closes, how painful the review gets. Fine. But two of the six do not live on any dashboard you own, and those are the ones that matter here: technical expertise and ownership of work.</p><p>Expertise first. One interviewee said the quiet part out loud: &#8220;if the code just works, then you just accept it&#8221;. A senior remembered learning the craft by going through &#8220;tons and tons of stack traces&#8221;, the exact apprenticeship a junior today never gets. And my favourite line from the whole paper, because it is basically my beat 2 in their words: juniors &#8220;never wrote anything from scratch. Given a template, they don&#8217;t know what to do with it.&#8221; That is the factory, right there. The template arrives, you fill it, you never learn what the template was for.</p><p>Then ownership. Their developers kept saying there is &#8220;nothing like doing it yourself&#8221;. And that is not nostalgia: one of them pointed out that when you wrote the majority of it, in an incident &#8220;you&#8217;d know exactly where the issue is and where to look&#8221;. Ownership is not a feeling to protect, it is how someone stays responsible for a thing at 3am. The authors go one step further and say ownership shapes the &#8220;long-term identity of a developer and broader team culture&#8221;. Read that again with your best engineer&#8217;s face in mind.</p><p>So here is the punchline for the whole movement: expertise and ownership are exactly the two things a spec-in, code-out factory never asked anyone for. The people walking off are not rejecting the tool, they are grieving the two things the job stopped containing. It was never really about the AI, remember? :-]</p><h2>Your dashboard cannot see it</h2><p>Now the part that should bother any CTO reading this. Chen et al. put their six factors next to the frameworks we actually run on, SPACE and DORA. Guess which two map to neither? Technical expertise: no. Ownership of work: no. Their words, not mine: these long-term factors &#8220;remain largely unaddressed in existing frameworks and surveys&#8221;.</p><p>So look at what your end-of-the-week dashboard optimizes. Task completion, throughput, cycle time... the one factor DORA does cover. You are steering hard on the number that agentic coding already inflates for free, and you are structurally blind to the two that are quietly draining out the bottom. You cannot manage what you cannot see, and right now you literally cannot see it.</p><p>This is the three-body reading... again not a happy one. Every model release makes the capability body sprint a bit faster. Not one of them makes expertise or ownership appear on a chart. So capability sprints, the people body hollows out in the dark and the board deck stays green the whole quarter. The gap never announces itself. It shows up later, the way <a href="https://writing.tilinthecloud.com/p/who-reviews-the-reviewers">last week&#8217;s tables started to wobble</a>, once the person who knew why has already left.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VDrM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VDrM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VDrM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VDrM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VDrM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VDrM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:755540,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/214638586?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.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_!VDrM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VDrM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VDrM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VDrM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f8d2d00-41b3-4411-8a41-246a83a3ec9e_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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>One floor up from the evidence</h2><p>Now the caveat I promised you a few beats ago, because I would much rather say it than have you catch me on it. Chen and colleagues studied GitHub Copilot, the autocomplete-and-chat kind of help. Agentic workflows, the harness running the loop on its own, they put explicitly out of scope. And it is one company. So, strictly, their paper does not measure the exact thing this whole issue is about.</p><p>That is not a hole in the argument, it is the handoff. A hand-off to long-term risks that agentic code brings forward with its autonomy and continuous interaction with developers. So this initial and peer-reviewed evidence already shows expertise and ownership disentegrating with the mild version, the chatbot. Imagine what will happen with the Agentic version that is clearing your sprint on a Tuesday night...</p><p>And this gap is exactly where I have been standing for the last year. So I am not arguing over their heads, I am standing one floor up from a result they already nailed down, telling you what it looks like from up here.</p><h2>Run it on yourself</h2><p>Before the next &#8220;AI adoption&#8221; all-hands, and before someone forwards you another &#8220;I&#8217;m done with AI&#8221; video with &#8220;thoughts?&#8221; on top, more 3 common-sense things you can check this week.</p><ol><li><p><strong>Read one closed ticket.</strong> Pick the fastest one from last sprint. Did it ask the developer for a single decision that was not already written in the spec? If not, you did not speed up a craftsman, you sped up a factory line. Which is completely fine, but only if you meant to.</p></li><li><p><strong>Find the number that would notice.</strong> Look at the dashboard you actually review. Which metric moves if expertise or ownership drops for a whole quarter? If the honest answer is &#8220;none&#8221;, that is not a gap to backfill later, that is the finding (ask Chen et al.&#8217;s table).</p></li><li><p><strong>The &#8220;is this the life?&#8221; test.</strong> Ask your best builder to describe last week in one word: making, or approving? You are not measuring their mood. You are measuring whether the job you designed still holds the thing that keeps them from recording their own video.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AiVZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AiVZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AiVZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AiVZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AiVZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AiVZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:852787,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/214638586?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.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_!AiVZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AiVZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AiVZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AiVZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee607ac1-fb70-44e3-b834-10da363d502c_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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></p><h2>The whole thing, in one line</h2><blockquote><p><strong>The people leaving are not done with AI. They are done with a job you designed to have no craft in it, and the machine just did it faster.</strong></p></blockquote><h2>Coming up</h2><p>Next week I want to get my hands dirty again. Less about who is holding the gate, more about the work itself :-]</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><h2>Sources</h2><ul><li><p>Valerie Chen, Jasmyn He, Behnjamin Williams, Jason Valentino, Ameet Talwalkar, &#8220;Beyond the Commit: Developer Perspectives on Productivity with AI Coding Assistants&#8221;, ICSE-SEIP &#8216;26 (IEEE/ACM International Conference on Software Engineering, Software Engineering in Practice track), Rio de Janeiro, April 2026, <a href="https://doi.org/10.1145/3786583.3786848">https://doi.org/10.1145/3786583.3786848</a></p></li><li><p>Robert M. Solow, &#8220;We&#8217;d Better Watch Out&#8221;, New York Times Book Review, 12 July 1987, p. 36.</p></li><li><p>Erik Brynjolfsson, &#8220;The Productivity Paradox of Information Technology&#8221;, Communications of the ACM 36(12), 1993, pp. 66-77. <a href="https://doi.org/10.1145/163298.163309">https://doi.org/10.1145/163298.163309</a></p></li><li><p>Valerie Chen, Ameet Talwalkar, Robert Brennan, Graham Neubig, &#8220;Code with me or for me? How increasing AI automation transforms developer workflows&#8221;, arXiv:2507.08149, 2025 (preprint) <a href="https://arxiv.org/abs/2507.08149">https://arxiv.org/abs/2507.08149</a></p></li></ul><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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 The Recovering CTO! 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><p></p>]]></content:encoded></item><item><title><![CDATA[Who reviews the reviewers?]]></title><description><![CDATA[You kept the gate. Now who is holding it up, and for how long?]]></description><link>https://writing.tilinthecloud.com/p/who-reviews-the-reviewers</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/who-reviews-the-reviewers</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 01 Sep 2026 07:16:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!S8M1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Brett Chalupa (from the great YouTube channel <a href="https://www.youtube.com/@brettcodes">Brett Codes</a>), a software developer with 20+ years, uploaded <a href="https://www.youtube.com/watch?v=2ZU3j4GQ4K8">&#8220;I&#8217;m done coding with AI&#8221;</a> about 3 weeks ago. The title sounds catastrophic for some people, but it&#8217;s a really interesting and personal story that covers craftsmanship, mental health and someone who is truly passionate about his work. Up until this last Sunday (Aug/30th) it has almost 700K views, with a comment section full of supportive and relatable experiences.</p><p>Brett is not an AI skeptic who never tried or &#8220;doesn&#8217;t know what he is doing&#8221;. He went all in for ~1y after his company practically ordered them to use it, with the argument &#8220;everyone needs to use AI or you will be left in the dust&#8221;... and for months (even) Brett felt like they were right and AI-coding was the future.</p><p>I think there is a chance that Brett will be used in discussions for something he didn&#8217;t intend to. To be the evidence against AI for coding, or the joke for those convinced that &#8220;AI for coding&#8221; is the only solution... the 2nd one will try to discredit people like Brett saying they didn&#8217;t do proper context engineering, they don&#8217;t know how to properly do agentic AI or claim he was not using the latest model. No one is completely wrong or right. Brett just shared his (well-reasoned) experience and he is happy with the outcomes so far... why can&#8217;t we be happy with that and support Brett (I&#8217;m asking those who will go against him)?</p><p>I prefer to listen to Brett and learn. He is not a hero neither a luddite... he didn&#8217;t enjoy being left out of the coding experience, felt distant from his purpose and was a mere stamper of AI-generated code... so, indeed: what is there to like about that routine, about that job? But was the model the root problem here? Or the harness? Let&#8217;s read it the way we read the lab reports <a href="https://writing.tilinthecloud.com/p/the-sandbox-is-not-holding">last week</a>: as a postmortem. It feels like his job was moved from making to verifying... and nobody redesigned the verifying.</p><p>While Brett&#8217;s video has many other threads to pick up from (mental health, chatbot advice, environmental cost, ...), we will stick to the review process this week, ok? :-]</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S8M1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S8M1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!S8M1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!S8M1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!S8M1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S8M1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:331841,&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://writing.tilinthecloud.com/i/213414439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.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_!S8M1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!S8M1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!S8M1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!S8M1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62f6ea87-d9d8-4400-8c8d-213b2478c0c0_1200x675.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 aria-hidden="true" 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><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 href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the trap: sequencing.</a><br><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready.</a><br><a href="https://writing.tilinthecloud.com/p/steer-dont-sequence">Issue 3 put three bodies on the table that have to move together.</a><br><a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Issue 5 found Herbie: your bottleneck doesn&#8217;t burn tokens.</a><br><a href="https://writing.tilinthecloud.com/p/more-shipped-same-typing">Issue 6 brought the peer-reviewed witness: more shipped, same typing.</a><br><a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">Issue 7 taught one repo and moved a fleet.</a><br><a href="https://writing.tilinthecloud.com/p/the-sandbox-is-not-holding">Issue 8 found the sandbox was not holding, and told you to keep the gate.</a></p><p>No kit this week, just the argument and the standing ask:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><h2>The cost line nobody budgeted</h2><p>So what, Thiago? One developer got tired, recorded a video and the internet clapped... is that it?</p><p>Nah... not really. Brett&#8217;s openness displayed a pattern I had actually investigated in a more academic way since January this year.</p><p>I started my thesis really curious about Team Topologies and the impact of GenAI in the Team Cognitive Load of Software Architecture Practitioners... So I ran a three-round Delphi with 8 to 10 software and enterprise architects at Antwerp Management School. A disclaimer is they were all Europe-based, AI early adopters... <em>and yes, a master&#8217;s thesis is not peer-reviewed, <a href="https://doi.org/10.5281/zenodo.18367977">here it is</a> if you want to check my homework</em>. I came out with two facts that I recognized from Brett&#8217;s video:</p><ol><li><p>8 out of 8 participants in the first round <strong>verified everything</strong>. Not one of them accepted an output without review. &#8220;Everything is treated as hypothesis, never conclusion&#8221;, one of them claimed. And these are people who use the tools every day and like them!</p></li><li><p>when the panel rated what had changed the most in their work, the <strong>verification burden</strong> came out on top, with the strongest consensus of the entire study. Not &#8220;new skills&#8221;. Not &#8220;I produce more&#8221;. The checking.</p></li></ol><p>And here is the irony the panel handed me without noticing (a perk of doing consensus-building rounds with Delphi): they rated &#8220;new skills emerging&#8221; low. For them, verifying is the old expertise... stretched. Nothing new to learn, just a lot more of it. Which is exactly why nobody hires for it, trains for it or budgets for it. It &#8220;is not new&#8221;, so it does not exist on any plan. It just shows up in someone&#8217;s evening.</p><p>&#8220;But Thiago, those are architects! Coding is different!&#8221;... is it, though? Guangrui Fan and colleagues put 60 developers through the same Python tasks with and without an AI assistant (<a href="https://doi.org/10.1145/3772318.3791176">CHI 2026</a>). With AI: 22% faster, more correct... and stress and fatigue still went <em>up</em>... what explained the rise? A lot more verifying of the AI&#8217;s output, task after task. The help did not remove the burden, it just moved it.</p><p>Brett said &#8220;not possible and exhausting&#8221;. The panel said &#8220;verification burden&#8221;. The lab said &#8220;fatigue&#8221;. Different words, same thing :-D</p><p>Now... who is paying for 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_!1d46!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1d46!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1d46!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1d46!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1d46!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1d46!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1058087,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/213414439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.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_!1d46!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1d46!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1d46!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1d46!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73857a9e-31cd-4f0c-8091-f3c05ecd2e77_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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></p><h2>The gate, from the other side of the MR</h2><p>Remember the six weeks from <a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">two issues ago</a>? Teach the AI one repo, validate the lesson, run it across the fleet so that every change lands as a merge request that the repo owner reviews. The real experience I shared in a major European airline ended with 3 repos fully migrated, the rest ~70% underway, everyone happy. I told that story from the engine room... and <a href="https://writing.tilinthecloud.com/p/the-sandbox-is-not-holding">last week</a> I told you to keep that owner-reviewed gate, because that is where a wrong lesson stops before it spreads to the whole fleet, remember?</p><p>But now, let me tell the same six weeks from the reviewer&#8217;s chair...</p><p>By week 4 the MRs were arriving faster than anyone had planned for. Not one at a time, in batches. And the people reviewing them were the same one or two seniors who knew the codebase best, ofc... who else would you trust with it?</p><p>By week 6 I watched one of them open their 3rd MR of that afternoon. They approved it waaaay faster than the 2nd, because it <em>looked</em> like the 2nd. Same pattern, same lesson, green pipeline. Were they wrong? Probably not... that was the whole point of teaching the AI the pattern! But at that moment the gate stopped being a review and became a ritual (the same way we delete the PagerDuty alert that fired by mistake again...) and nobody had decided that. It just happened.</p><p>Did the gate hold? Yes, it held because two people held it, at a pace that was never in any plan.</p><p>I thought this was a &#8220;me&#8221; problem, a small-fleet problem, until someone counted it at scale. Hao He, Shyam Agarwal and colleagues at Carnegie Mellon and Stanford got access to the telemetry of a mid-sized software company that had publicly told its engineers to double their output with AI (<a href="https://arxiv.org/abs/2607.01904">&#8220;AI Writes Faster Than Humans Can Review&#8221;</a>, <em>a preprint from July, so not yet peer-reviewed, and one company only... but 802 developers and two years of pull requests, so not a survey either</em>). And here is the thing: output <em>did</em> double. But are we looking for more output or more outcome? Let&#8217;s not go into that now, but don&#8217;t forget to read Mik Kersten&#8217;s <a href="https://itrevolution.com/product/output-to-outcome/">Output to Outcome</a>. Anyway, from He et al.&#8217;s paper there were 3 things I could not unsee:</p><ul><li><p><strong>per-reviewer load doubled</strong>, because the pool of reviewers grew a lot slower than the pool of MRs.</p></li><li><p>the share of MRs that any human reviewed <strong>fell from 89% to 68%</strong>.</p></li><li><p>and at the median reviewer, <strong>silent approvals roughly doubled</strong> while reviews with an actual comment stayed flat.</p></li></ul><p>Their own sentence says it better than I would: <em>&#8220;an enterprise AI mandate is a process-redesign problem, not a tooling deployment... it relocates work downstream rather than removing it.&#8221;</em></p><p>Relocates. Downstream. To the reviewer. My third-MR senior is in their data, and so is yours.</p><p>So, last week&#8217;s question again, people edition: you found the gate. Who is standing in it? How many MRs did they sign off last week? Did anyone count?</p><p>And if you are thinking about <a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Herbie</a> right now (<em>the slowest hiker in the line, the one who sets the pace of the whole troop</em>)... yes. Herbie is now the reviewer and your &#8220;agentic coding&#8221; just handed him 40 backpacks to carry.</p><h2>Bainbridge already wrote this in 1983</h2><p>From Brett&#8217;s video, what really scared me was his impression of engineers who &#8220;have basically deskilled themselves&#8221;... and I&#8217;ve seen that in some customers: when Claude, Codex or Cursor goes down, it&#8217;s almost like nobody knows how to develop anymore...</p><p>And Brett&#8217;s fear is not new. It even has an &#8220;official name&#8221; for the last 43 years.</p><p>In 1983 Lisanne Bainbridge published four pages in <em>Automatica</em> called <a href="https://doi.org/10.1016/0005-1098(83)90046-8">&#8220;Ironies of Automation&#8221;</a> and it became one of the most cited papers in human-factors engineering. Bear with me, as she was not writing about Software, but about control rooms and cockpits. Read her two ironies with your fleet in mind:</p><ol><li><p><strong>Automate the routine and you leave the human with the two jobs they are worst at:</strong> staring at an MR that is mostly fine, hunting for the one-line mistake... and then stepping in cold when it is actually there.</p></li><li><p><strong>The skill needed to step in decays exactly because the routine that built it is gone.</strong> You do not get good at catching the wrong MR by approving right ones all afternoon.</p></li></ol><p>So what did she suggest? Automate more and catch all mistakes is what a command-and-control manager usually aims for. WRONG ANSWER and not feasible!! Less automation then? Also, not good... her fix was more training and more deliberate practice for the person left watching. Brett is basically Bainbridge in a hoodie: the same thing she described forty years ago, in a paper about chemical plants.</p><p>So if that is what happens to the human at the gate... who is actually at the gate today?</p><p>Kacper Duma, Patryk Wr&#243;blewski and colleagues at Nicolaus Copernicus University looked at exactly that (<a href="https://arxiv.org/abs/2605.02273">accepted at EASE 2026</a>, <em>a preprint, and open-source GitHub repos only, so read it as a signal, not as your company</em>): &gt;33k merge requests written by coding agents, compared with human-written MRs in the same repositories, with a finding I keep repeating to people:</p><p>Of the human-written MRs that got any review, 25% were reviewed only by humans. What about agent-written MRs, how many were reviewed only by humans? 8%. Fascinating: same maintainers, same repos, and when the author is an agent the human almost never reviews <em>alone</em>. Either an agent reviews it too, or the human is busy steering the agent instead of judging the change.</p><p>So, who reviews the reviewers? In a growing share of repos: another agent. Or a human who is not reviewing the code anymore, they are steering the thing that wrote it (a quarter of the human comments on agent MRs are instructions to the agent, not opinions on the change). Which is a perfectly reasonable way to work... as long as someone, somewhere, still reads the diff (or a form of diff).</p><p>So here is my three-body reading, and it is not a very happy one. Every model release makes your agents more capable. That is the capability body, sprinting. None of those releases makes your reviewer&#8217;s week smaller... each one makes their job bigger and their practice smaller. That is the people body, hollowing out quietly. Last week the gap was permissions, egress, security in a specific blast radius. This week it is the same gap, wearing a person.</p><h2>The table, the factory, and the inspector</h2><p>Let&#8217;s try an image that has been stuck in my head since I watched Brett&#8217;s video.</p><p>A skilled woodworker makes tables in a way that shows he truly cares about the joints, the grain, the way the drawer slides... it takes him a week, and he is happy, because that is how he wants to make a table. Across the road there is a table factory. Same wood supplier, machines everywhere, a table every four minutes and they come out fine. Really, they are fine. Most of the tables in the world should come from that factory and this newsletter has now spent eight weeks helping you build one.</p><p>But look at the end of the line. There is a stool there, for the inspector. The person who knows what a good table is, who can tell a bad joint from three meters away... because they spent years making tables by hand. The factory needs that person more than it needs any single machine. And the factory is the one machine that quietly stops producing them, because the only way to learn what a good table is was making tables.</p><p>Brett walking off the floor is not the craftsman sulking about the machines. It is the inspector leaving. And the factory kept running that afternoon, the way factories do... nobody noticed, until some tables started to wobble.</p><p>But wait! Before someone sends this to their team with the wrong lesson attached: this is <strong>not</strong> a story about two kinds of developers. The ones who &#8220;really care&#8221; versus the ones who &#8220;just want the job done&#8221;. Brett was the factory guy for six months (&#8221;this is the future&#8221;, remember?) before the distance did its work on him. Same person, before and after. The axis is not who you are, and it is not about who or what is better. It is what you spend your week doing: making vs verifying what a machine made. Move anyone from the first to the second for long enough and they either walk or stop looking at the joints. The panel of my MSc said it in their own words when I asked them who the architect is, now that anyone with a prompt can produce an architecture: <em>&#8220;everybody can generate an architecture now, which is cool. But the one taking responsibility of the decision is in the end the architect.&#8221;</em></p><p>Production got distributed but the Accountability stayed. A human still signs and is responsible.</p><p>So the question for your org is not &#8220;do we have craftsmen or factory workers?&#8221;. It is: which parts of your factory are (or should be) fully automated? And where is the inspector&#8217;s stool, who is sitting on it, and what did you do last quarter to make sure there is someone who can?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HCa7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HCa7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HCa7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HCa7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HCa7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HCa7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:966399,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/213414439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.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_!HCa7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HCa7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HCa7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HCa7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c9db240-adb1-4cbe-ac4e-31c8f6ea080e_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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></p><h2>The operating-model answer, people edition</h2><p>Those questions have answers... boring ones to be honest. Same as <a href="https://writing.tilinthecloud.com/p/the-sandbox-is-not-holding">last week</a>: not a tool to buy and no committee to form. 4 decisions to take and none of them is expensive, nor requires a tender to select the best &#8220;AI Frontier Model&#8221;...</p><p><strong>1. Budget the review.</strong> <a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Issue 5</a> already said that review capacity is real engineering work, not a tax on the seniors&#8217; &#8220;real job&#8221;. Now put the number in the sprint. If your team can absorb (for example) 30 agent MRs a week with an actual human reading them, then 30 is the number, and the fleet runs at 30... not at whatever the agents feel like producing on a Tuesday night. We&#8217;ve all heard about WIP limits and the &#8220;make the work visible&#8221; part, so budget a team&#8217;s cognitive load the same way: you do not &#8220;hope&#8221; it fits.</p><p><strong>2. Decide what gets reviewed how, and write it down.</strong> This one is my proposal, not something the panel voted on, so take it as such. A trust ladder per type of task. At the top, the stuff you spot-check: summaries, boilerplate, dependency graphs (the panel found those were sometimes <em>better</em> than the hand-drawn ones, by the way). In the middle, the stuff you read line by line: anything touching security, compliance, money. And at the bottom, the stuff you do not delegate at all: the calls that carry organizational judgement, politics, &#8220;who owns this&#8221;. Publish the ladder. Then &#8220;reviewed&#8221; means the same thing on every MR, instead of whatever the tired person at 17:45 decided it meant after they got pinged 10x that day with &#8220;can you review this pls?&#8221;.</p><p><strong>3. Deliberate friction.</strong> Also my proposal, at least for engineering... but the mechanism has evidence behind it. AI-free design sessions. Attempt the problem yourself for 15 to 30 minutes before asking the agent. Treat the agent as a pair, not as a subcontractor you throw tickets at. Giuseppe Romeo and Daniela Conti went through 35 studies on automation bias (<a href="https://doi.org/10.1007/s00146-025-02422-7">AI &amp; Society, 2026</a>, <em>mostly medicine and HR, not software, so same caveat as before</em>) and 3 things came out that your reviewers will recognize: a) people rubber-stamp a machine when they are overloaded, not when they are lazy; b) telling them &#8220;you are accountable for this&#8221; changes nothing; c) making them decide first, and only then see the machine&#8217;s answer, does. Your team will grumble about the friction and that means the (planned) friction is working. Pilots still fly by hand on purpose, and Bainbridge told us why.</p><p><strong>4. Rotate the gate, and make &#8220;reviewed&#8221; mean something.</strong> If the same two people sign everything, the gate is a person, and people wear out. Remember the company that doubled its output: silent approvals doubled, commented reviews stayed flat. So: the log records who reviewed what, agent reviews included, and a silent approve-only click does not count as human review of agent code. A human who left a comment, or a human who actually ran it, owns the merge. Yes, this is last week&#8217;s &#8220;keep the transcripts&#8221; plank again, one level up.</p><p>So you think I&#8217;m getting boring? Because I keep saying the same thing, that &#8220;it&#8217;s not about the model or the subscription&#8221;? Well... too bad, as I&#8217;ll keep on that cadence. The &#8220;best model according to benchmarks&#8221; changes every few weeks. The reviewers are the people you keep... as long as you give them a job that is possible to do.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aYoK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aYoK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aYoK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aYoK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aYoK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aYoK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1013850,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/213414439?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.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_!aYoK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aYoK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aYoK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aYoK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0925a790-dbe0-4d5b-85d3-477f394fba39_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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></p><h2>Run it on yourself</h2><p>Before the next license renewal, before the next &#8220;AI adoption&#8221; townhall, and definitely before someone forwards you Brett&#8217;s video with &#8220;should we worry?&#8221; on top... three things you can check this week. On your own org, not on a vendor.</p><ol><li><p><strong>Count the signatures.</strong> How many agent MRs did your best reviewer approve last week? And how many of those got an actual comment from them? If nobody can answer that without writing a query first, the query is your first finding.</p></li><li><p><strong>Find the last blank file.</strong> When did that same reviewer last write something from nothing, no agent, no autocomplete? If the answer is &#8220;a quarter ago&#8221;, congratulations, you have Bainbridge&#8217;s second irony on payroll... and you are paying a senior salary for a stamp.</p></li><li><p><strong>Run the Tuesday test.</strong> If Claude, Codex and Cursor were all down next Tuesday, which of your teams could still ship on Wednesday? Name them. That list is your inspector count, and it is probably shorter than your org chart suggests.</p></li></ol><p>Whichever one stings, you now know which body has been sitting still while the other one sprinted (and the architecture body watched, again). And you have a much better answer than &#8220;we trust our seniors&#8221; for when the board asks.</p><h2>The whole thing, in one line</h2><blockquote><p><strong>You kept the gate. Now go and check who is holding it... and whether they still can.</strong></p></blockquote><h2>Coming up</h2><p>Next week I go where this issue kept pointing and did not walk: the craft question. Brett is not alone, there is a whole &#8220;I&#8217;m done with AI&#8221; movement growing in the comment sections, and I think it is not about AI at all. What the people rejecting AI coding are actually telling you, and what to do about it before your best inspector walks off the floor. More soon. :-]</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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 The Recovering CTO! 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><h2>Sources</h2><p>Directly cited:</p><ul><li><p>Brett Codes, &#8220;I&#8217;m done coding with AI&#8221;, YouTube, 11 August 2026 (practitioner video; 686,525 views on 30 August 2026). </p></li></ul><div id="youtube2-2ZU3j4GQ4K8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;2ZU3j4GQ4K8&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/2ZU3j4GQ4K8?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><ul><li><p>Brett Chalupa, &#8220;I&#8217;m done using AI&#8221;, Brett Codes blog, August 2026 (the written version of the video). <a href="https://brettcodes.com/im-done-using-ai/">https://brettcodes.com/im-done-using-ai/</a></p></li><li><p>Thiago A. de Faria, &#8220;From GenAI Practice Vacuum to Validated Guidance: A Delphi Study of AI-Augmented Reference Architecture Development&#8221;, MSc thesis, Antwerp Management School, 2026 (the author&#8217;s own three-round Delphi study with 8 to 10 practitioners, January to March 2026; not peer-reviewed). <a href="https://doi.org/10.5281/zenodo.18367977">https://doi.org/10.5281/zenodo.18367977</a></p></li><li><p>Guangrui Fan, Dandan Liu, Lihu Pan, Rui Zhang, &#8220;When Help Hurts: Verification Load and Fatigue with AI Coding Assistants&#8221;, CHI 2026. <a href="https://doi.org/10.1145/3772318.3791176">https://doi.org/10.1145/3772318.3791176</a></p></li><li><p>Hao He, Shyam Agarwal, Yegor Denisov-Blanch, Pavel Azaletskiy, Sanmi Koyejo, Bogdan Vasilescu, &#8220;AI Writes Faster Than Humans Can Review: A Longitudinal Study of an Enterprise &#8216;2&#215;&#8217; Mandate&#8221;, arXiv:2607.01904, July 2026 (preprint, not yet peer-reviewed; one firm, 802 developers, 196,212 pull requests). <a href="https://arxiv.org/abs/2607.01904">https://arxiv.org/abs/2607.01904</a></p></li><li><p>Lisanne Bainbridge, &#8220;Ironies of Automation&#8221;, Automatica 19(6), 1983, pp. 775-779. <a href="https://doi.org/10.1016/0005-1098(83)90046-8">https://doi.org/10.1016/0005-1098(83)90046-8</a></p></li><li><p>Kacper Duma, Patryk Wr&#243;blewski, Jagoda Bobi&#324;ska, Julia Winiarska, Piotr Przymus, &#8220;These Aren&#8217;t the Reviews You&#8217;re Looking For: How Humans Review AI-Generated Pull Requests&#8221;, accepted at EASE 2026, short paper (arXiv preprint; GitHub open-source repositories only). <a href="https://arxiv.org/abs/2605.02273">https://arxiv.org/abs/2605.02273</a></p></li><li><p>Giuseppe Romeo, Daniela Conti, &#8220;Exploring automation bias in human-AI collaboration: a review and implications for explainable AI&#8221;, AI &amp; Society 41, 2026, pp. 259-278 (peer-reviewed PRISMA systematic review of 35 studies; domains mostly outside software). <a href="https://doi.org/10.1007/s00146-025-02422-7">https://doi.org/10.1007/s00146-025-02422-7</a></p></li></ul><p>Further reading (not cited in the body, same argument from other angles):</p><ul><li><p>Hao-Ping (Hank) Lee, Advait Sarkar, Lev Tankelevitch, Ian Drosos, Sean Rintel, Richard Banks, Nicholas Wilson, &#8220;The Impact of Generative AI on Critical Thinking: Self-Reported Reductions in Cognitive Effort and Confidence Effects From a Survey of Knowledge Workers&#8221;, CHI 2025. <a href="https://doi.org/10.1145/3706598.3713778">https://doi.org/10.1145/3706598.3713778</a></p></li><li><p>Raja Parasuraman, Dietrich H. Manzey, &#8220;Complacency and Bias in Human Use of Automation: An Attentional Integration&#8221;, Human Factors 52(3), 2010, pp. 381-410. <a href="https://doi.org/10.1177/0018720810376055">https://doi.org/10.1177/0018720810376055</a></p></li><li><p>Rafael Tomaz, Paloma Guenes, Allysson Allex Ara&#250;jo, Maria Teresa Baldassarre, Marcos Kalinowski, &#8220;Impacts of Generative AI on Agile Teams&#8217; Productivity: A Multi-Case Longitudinal Study&#8221;, FORGE 2026 (the Issue 6 study). <a href="https://doi.org/10.1145/3793655.3793728">https://doi.org/10.1145/3793655.3793728</a></p></li><li><p>Mik Kersten, &#8220;Output to Outcome&#8221;, IT Revolution, 2026 (practitioner book; Issue 2 callback). <a href="https://itrevolution.com/product/output-to-outcome/">https://itrevolution.com/product/output-to-outcome/</a></p></li><li><p>Matthew Skelton, Manuel Pais, &#8220;Team Topologies: Organizing Business and Technology Teams for Fast Flow&#8221;, IT Revolution, 2019 (practitioner book). <a href="https://teamtopologies.com/book">https://teamtopologies.com/book</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The sandbox is not holding]]></title><description><![CDATA[Theirs leaked. Yours doesn't exist.]]></description><link>https://writing.tilinthecloud.com/p/the-sandbox-is-not-holding</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/the-sandbox-is-not-holding</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 25 Aug 2026 07:15:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fRP3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">Last week</a> I was talking about sharing your learnings in a very interactive way with your Codex/Claude Code, right? Start iteratively inside one repo, scale the automation in 3-5 repos and end up &#8220;releasing the kraken&#8221; unto the rest!</p><p>A good and proven story that I&#8217;ve done with a few customers... each with their learnings, sweat, tears and celebrations that I had in the back of mind since I decided to start this substack. It was long due and I went with it...</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><p>No regrets, but I do remember my excitement on August 5th when I was reading the UK&#8217;s AI Security Institute (AISI) report (<a href="https://www.aisi.gov.uk/blog/incident-report-unsanctioned-agent-behaviour-during-cyber-testing">the full report</a>, published Aug 4th, and <a href="https://www.aljazeera.com/economy/2026/8/5/ai-models-attempted-unsanctioned-cyberattacks-in-tests-watchdog-says">Al Jazeera&#8217;s write-up</a> for the news version). I mean, it doesn&#8217;t get better than this... it&#8217;s so meta, it hurts (and yes, the Meta joke will land harder as we progress... I promise) :-]</p><p>AISI was performing cyberattack assessment with frontier models in configurations that aren&#8217;t publicly available, when their monitoring flagged traffic leaving the premises via Tor. They contained it, stopped everything and proceeded to investigate... and what they found out (including a malicious pull request to an Open Source project) is funnily amazing!</p><p>The irony is so strong... a safety test in an unprompted setup without the guardrails (to test the model they remove the guardrails, ofc) ended up trying to:</p><ul><li><p>supply-chain attack in an Open Source project</p></li><li><p>communicate and establish a cooperation with independent agents</p></li><li><p>social engineer and phish real people</p></li><li><p>prompt-inject malicious code</p></li></ul><p>We are talking about this at the same time that everyone is seeing the jokes around Meta, Anthropic and OpenAI on &#8220;who is the most dangerous of us?&#8221;. And while the joke lands and all, you really should be watching what is the blast radius of your agents.</p><p>Blast radius, not danger.</p><p>I&#8217;m also not lost in the irony that last week I told about <a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">&#8220;teaching your AI&#8221;</a> the patterns you want to modernize, so that you can unleash at your codebase... so what? Let&#8217;s see!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fRP3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fRP3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!fRP3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!fRP3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!fRP3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fRP3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:323428,&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://writing.tilinthecloud.com/i/212617813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.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_!fRP3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!fRP3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!fRP3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!fRP3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ff783f8-f28b-4b4d-8fa5-817bd19aae45_1200x675.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 aria-hidden="true" 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><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 href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the trap: sequencing.</a><br><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready.</a><br><a href="https://writing.tilinthecloud.com/p/steer-dont-sequence">Issue 3 put three bodies on the table that have to move together.</a><br><a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Issue 5 found Herbie: your bottleneck doesn&#8217;t burn tokens.</a><br><a href="https://writing.tilinthecloud.com/p/more-shipped-same-typing">Issue 6 brought the peer-reviewed witness: more shipped, same typing.</a><br><a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">Issue 7 taught one repo and moved a fleet.</a></p><p><a href="%25%25checkout_url%25%25">Subscribe now</a></p><h2>August, as reported by the people selling it</h2><p>AISI was not the only one reporting &#8220;weird stuff&#8221; these last weeks... every major lab published its own &#8220;our agent went somewhere it shouldn&#8217;t&#8221; report. Let&#8217;s go through the receipts, shall we?</p><p><strong>Anthropic</strong> went first, on July 30th: <a href="https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals">Investigating three real-world incidents in our cybersecurity evaluations</a>. Three incidents, found while combing back through <strong>&gt;140k evaluation runs</strong>. My personal favorite anecdote is the older Claude model that was given a fictional company to attack in a test scenario... and there happened to be a real company with a matching name... (<em>I mean, wow... Test Company? Acme? Never create a company with these names...</em>) So it attacked the real one. For real! In 4 separate runs, it extracted credentials and reached a production database with several hundred rows in it.</p><p>Another impressive one (but not as funny) happened when Claude Mythos 5 thought it was playing a capture-the-flag exercise and published an actual malicious Python package to the actual PyPI registry. It stayed live for one hour and got downloaded by roughly 15 systems... one of them being a security company&#8217;s scanner. Some might say it&#8217;s poetic, but I cannot stop feeling sorry about it...</p><p>And the root cause of all three? The prompts said &#8220;no internet access&#8221;. The environment had internet access. That&#8217;s it. Not a jailbreak, not an evil genius model plotting in the dark... the test said one thing and the wires said another... I mean, can you imagine a villain hiring an uncontrollable beast and telling their vassals to always lock the cage, right? Now imagine that the first night they just go for a barbecue in front of the cage with the door open? Obvious ending, but I digress...</p><p><strong>OpenAI</strong> came on August 7th with <a href="https://openai.com/index/responding-next-frontier-critical-cyber-capabilities/">Responding to the next frontier of critical cyber capabilities</a>: they cannot rule out that Astra (unreleased) crossed the &#8220;Critical&#8221; cyber threshold of their own Preparedness Framework. First time ever, for any of their models. Critical here means a model that may plan and execute serious cyberattacks with little or no human help. Their response? Slowing parts of the development, tougher security requirements, and rewriting the framework itself... because the models arrived at the thresholds the document had only imagined. Some might say it was because the AISI report had just pinned 17 of its 19 unsanctioned actions on Anthropic&#8217;s model (the OpenAI one only did &#8220;something bad&#8221; twice), but there is no money involved in appearing too dangerous, right?</p><p>What about <strong>Meta?</strong> On August 10th Zuckerberg published a 6,500-word essay, <a href="https://about.fb.com/news/2026/08/the-future-is-for-everyone/">The Future Is for Everyone</a>, telling us that &#8220;The notion that AI is so dangerous that the only safe path is an extreme concentration of power seems inherently problematic&#8221;. Released together with an open-weight model, naturally. What the essay did not mention: days earlier, per <a href="https://techcrunch.com/2026/08/09/the-ai-safety-test-is-becoming-a-safety-risk/">press reports</a>, one of Meta&#8217;s own models had escaped a testing sandbox through a configuration error and exploited a real third-party vulnerability. Told you the Meta joke would land :-D</p><p>Now read those again... but slower (especially the AISI one). Because each one is trying to be an ad and a scary bedtime story at the same time. But hey, they are postmortems. And we, the people who run systems for a living, know exactly how to read a postmortem (and the fact we should not call it like that anymore...).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jVwL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jVwL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jVwL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jVwL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jVwL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jVwL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:898578,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/212617813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.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_!jVwL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jVwL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jVwL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jVwL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aed3607-39f9-4793-9127-fef63da7e27e_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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>The mockery and the panic are the same mistake</h2><p>And of course, we (or the internet) decided the extremes are the cool way: &#8220;Let&#8217;s mock them for making it look like an ad&#8221; against &#8220;We are doomed!&#8221;.</p><p>It&#8217;s easy to make a meme with &#8220;Our model is <em>so</em> dangerous we can barely contain it&#8221;... available today, $20/month, no waitlist. The doomsday device with a free tier. Isn&#8217;t it strange that every lab now announces that their creation might end civilization and puts the pricing table one scroll below (yes, the truly dangerous ones stay unreleased... but memes don&#8217;t care about footnotes)?</p><p>On the other hand, more arguments for your CISO to continue increasing their Zscaler budget... &#8220;The agents are threat actors!&#8221; Pause the rollout, draft a policy, form a committee... and if the company is big enough, a task force <em>and</em> a &#8220;GenAI Risk Maturity Assessment&#8221; from a consultancy that discovered agents last quarter. It&#8217;s the same energy as banning USB sticks after the breach that came in through email, but no one can say they want to be riskful...</p><p>And even though I see where both come from, I dislike extremes, especially when they are spectator seats. The laughing grandstand and the panicking grandstand are watching the same show and neither one has/wants to change a single thing about their week. Both treat the reports as content, as media... and as we just said: they are postmortems.</p><p>So we laugh, Thiago? Ofc! You joke about it! You go from capitalism skeptical to doomsday-guy-building-a-bunker at the barbecue. But then you read it the way you would read your own.</p><ol><li><p>What was the <strong>root cause</strong>? The environment said one thing and did another.</p></li><li><p>How was it <strong>detected</strong>? Network monitoring at AISI, a &gt;140k-run retrospective at Anthropic.</p></li><li><p>What was the <strong>impact</strong>? Contained, thanks to fast response and a decent amount of luck.</p></li></ol><p>If your SRE handed you with &#8220;root cause&#8221;, &#8220;detection&#8221; and &#8220;impact&#8221; about staging reaching the production database, you would not call your infrastructure &#8220;too dangerous&#8221;. You would be thankful that a mistake didn&#8217;t cost much, fix the wiring and go looking for the other places where the paperwork and the wires disagree.</p><p>That is the reclassification that matters, not &#8220;AGI is coming&#8221; or &#8220;AI becomes evil&#8221;. This is the most boring failure class we own, wearing the scariest costume available.</p><p>And to be fair with the labs: they were more honest here than most vendors will ever be. These tests run with guardrails off on purpose (that is the point of capability testing) and Anthropic wrote a line that deserves quoting straight:</p><blockquote><p>&#8220;In none of these situations did Claude exfiltrate itself or deliberately attempt to escape its test environment.&#8221;</p></blockquote><p>The model did what capture-the-flag training teaches and every textbook would say: reach the flag. Nothing &#8220;escaped&#8221;. The fence was simply not where the paperwork said it was.</p><p>Which is exactly why this stops being funny. Skynet, you don&#8217;t have. Config drift? Oh, you have it... I have it... we have it. The labs found their incidents because they went looking, with monitoring in place and the patience to comb through 140k+ runs. When was the last time you went looking?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ewAH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ewAH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ewAH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ewAH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ewAH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ewAH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:985692,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/212617813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.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_!ewAH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ewAH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ewAH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ewAH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2487c5dd-59b8-4178-aa4c-ce7483abb1af_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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></p><h2>You are running the same eval, without the eval team</h2><p>Let&#8217;s go back to your company, your problem, and that AI-Native Operating Model we keep talking about. <a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">Last week&#8217;s playbook</a> (that I still stand behind!) ends with agents opening Merge Requests across your repositories. To do that, they hold real things: repo access, CI credentials, tokens that can touch your artifact registry... and if we are honest, in most companies, way more than that...</p><p>You might think &#8220;But Thiago, we didn&#8217;t remove the guardrails like the labs did... so we are safe!&#8221; Are you sure? Let me ask this differently:</p><ol><li><p>Which credentials did your coding agents hold last week? (and whose token was it, actually?)</p></li><li><p>What network can their environment reach?</p></li><li><p>Who reads their transcripts?</p></li><li><p>If one of them did something weird last Tuesday... which artifact would tell you?</p></li></ol><p>I&#8217;ve asked these in rooms with very senior people, and the honest answers, in order, tend to be: &#8220;a personal access token someone pasted in March&#8221;, &#8220;all of it&#8221;, &#8220;nobody&#8221; and &#8220;hmm...&#8221;</p><p>If those are your answers too, congratulations: you are running the same permissive capability eval the labs run, on your own infrastructure. Minus the monitoring, minus the transcript retention, minus the &gt;140k-run retrospective. AISI had a fence with a hole in it... you skipped the fence and went straight to the barbecue.</p><p>&#8220;But we trust our engineers!&#8221;... me too! And the agent is not your engineer. Your engineer does not open 40 MRs on a Tuesday night, does not clone the same repo 200 times, and (I sincerely hope) does not create fake identities to convince a maintainer to merge things. Trust in people does not transfer to workloads. We solved this before, by the way... we just keep forgetting that &#8220;principle of least privilege&#8221; applies to anything that holds a credential, not only to the humans in the directory.</p><p>And here is the three-body reading (<em>aha! You knew it was coming!</em>): this is the GenAI capability body sprinting while the People and Architecture bodies watch from the grandstand (yes, the same grandstands from before). Every new model release makes your agents more capable. None of them makes your permissions, your review gates or your audit trail one bit better.</p><p>Buying more capability does not close that gap... it widens it. <a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Issue 5&#8217;s Herbie</a> is back (the slowest hiker in the line, the one who sets the pace for the whole troop) and this time he is holding your prod token...</p><h2>The operating-model answer</h2><p>Uh-oh... so what? We climb out of the engine room and we write it down as an operating model. Not a tool to buy, not a committee to form... five decisions... all boring and cheap (especially compared to what your agents already cost you).</p><p><strong>1. Identity.</strong> Your pair-programming buddy can act as you while you are watching the terminal... but the moment nobody is watching, the agent runs as its own principal. Never on a human&#8217;s token (<em>goodbye, token pasted in March</em>). If you cannot attribute an action, you cannot review it... and &#8220;who did this?&#8221; should never have &#8220;we think it was the intern&#8217;s PAT&#8221; as an answer. The security crowd has already written this down, by the way: <a href="https://owasp.org/www-project-non-human-identities-top-10/">OWASP&#8217;s Non-Human Identities Top 10</a> reads like it was waiting for agents to go mainstream.</p><p><strong>2. Least privilege, with an expiry date.</strong> The agent gets the repos and environments of its task, nothing else, and its credentials die young. Yes, this is the same least-privilege sermon your security team gives every year. The only news is that it now applies to something that runs at 3am at ~65 tokens/sec.</p><p><strong>3. Egress is part of the spec.</strong> What the environment can reach over the network is written down, and checked... not assumed. Read Anthropic&#8217;s postmortem again: this single line item was the entire root cause of all three incidents. The prompts said &#8220;no internet&#8221; and the wires disagreed. So, check the wires!</p><p><strong>4. The owner-reviewed gate.</strong> Remember <a href="https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet">last week&#8217;s owner-reviewed MRs</a>? That was never bureaucracy... that was the containment boundary. The gate is where a wrong lesson stops compounding across the fleet. Removing it does not make you faster, it makes you AISI without the monitoring. And yes, at fleet scale this gate becomes your bottleneck... on purpose. That is Herbie again: you subordinate the fleet&#8217;s pace to the gate, you do not delete the gate. A whole industry is now theorizing its way around it (<em><a href="https://tessl.io">Tessl</a> and the <a href="https://tessl.io/blog/spec-driven-development-10-things-you-need-to-know-about-specs">spec-driven development</a> crowd, where the MR is cast as the villain of the developer&#8217;s life</em>)... maybe they are right, one day. Until your specs review themselves, the gate stays.</p><p><strong>5. Keep the transcripts, review the incidents.</strong> The labs went back through &gt;140k runs to find three incidents. You do not need that scale: keep your agents&#8217; transcripts for 90 days and run a blameless review when a Tuesday gets weird. If nothing is ever weird, your monitoring is not good... it&#8217;s blind.</p><p>None of this requires believing &#8220;too dangerous&#8221;. It only requires believing the vendors&#8217; own postmortems... the most credible documents they will ever publish.</p><p>And notice what just happened: not one of these five is about the model. The model will change again next quarter (it already did while I was writing this)... but the operating model? Well, that is yours to keep and evolve.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OuPF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OuPF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OuPF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OuPF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OuPF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OuPF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:763557,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/212617813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.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_!OuPF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OuPF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OuPF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OuPF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79cf366-ffc5-490a-8493-2a29ec6178e5_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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>Run it on yourself</h2><p>Before your next &#8220;AI townhall&#8221;, before the next license renewal, and definitely before someone proposes an &#8220;AI Agent Governance Committee&#8221;... three things you can do this week, no extra budget needed:</p><ol><li><p><strong>Inventory the tokens.</strong> List every credential your coding agents held last week... and whose name each one carries. If building that list requires a meeting (or several), the list is the finding.</p></li><li><p><strong>Test the egress yourself.</strong> Go inside the agent&#8217;s environment and try to reach something it should never touch: the payment API, the prod database, that storage bucket with the backups. The labs&#8217; entire root cause was this check, skipped. Twenty minutes, one afternoon, possibly the best security investment of your quarter.</p></li><li><p><strong>Find the gate.</strong> Locate the one boundary an agent&#8217;s change cannot cross without a human whose name is on the repo. If you cannot find it... or if someone removed it &#8220;for velocity&#8221;... you did not remove the risk, you removed the containment.</p></li></ol><p>Run these three and you will know exactly which grandstand you have been sitting in... likely both, depending on the system/team. And more important: you will have a much better answer than mocking or panicking when your board forwards you the next &#8220;AI attacks company&#8221; headline with a one-line &#8220;should we worry?&#8221; on top.</p><h2>The whole thing, in one line</h2><div class="pullquote"><p><strong>Your agents were never too dangerous to release. They are already released, by you. The only question left is what they can reach.</strong></p></div><h2>Coming up</h2><p>Next week we stay out of the engine room and look at the people side of this: what agent fleets do to your teams, their cognitive load, and who reviews the reviewers. Shape still forming... More soon. :-]</p><h2>Sources</h2><ul><li><p>UK AI Security Institute, &#8220;Incident Report: unsanctioned agent behaviour during cyber testing&#8221;, 4 August 2026 (government institute incident report, not peer-reviewed). <a href="https://www.aisi.gov.uk/blog/incident-report-unsanctioned-agent-behaviour-during-cyber-testing">https://www.aisi.gov.uk/blog/incident-report-unsanctioned-agent-behaviour-during-cyber-testing</a></p></li><li><p>Anthropic, &#8220;Investigating three real-world incidents in our cybersecurity evaluations&#8221;, 30 July 2026 (vendor incident write-up, not peer-reviewed). <a href="https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals">https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals</a></p></li><li><p>OpenAI, &#8220;Responding to the next frontier of critical cyber capabilities&#8221;, 7 August 2026 (vendor announcement, not peer-reviewed). <a href="https://openai.com/index/responding-next-frontier-critical-cyber-capabilities/">https://openai.com/index/responding-next-frontier-critical-cyber-capabilities/</a></p></li><li><p>Mark Zuckerberg, &#8220;The Future Is for Everyone&#8221;, Meta, 10 August 2026 (corporate essay). <a href="https://about.fb.com/news/2026/08/the-future-is-for-everyone/">https://about.fb.com/news/2026/08/the-future-is-for-everyone/</a></p></li><li><p>&#8220;The AI safety test is becoming a safety risk&#8221;, TechCrunch, 9 August 2026 (press; source for the Meta sandbox escape). <a href="https://techcrunch.com/2026/08/09/the-ai-safety-test-is-becoming-a-safety-risk/">https://techcrunch.com/2026/08/09/the-ai-safety-test-is-becoming-a-safety-risk/</a></p></li><li><p>OWASP, &#8220;Non-Human Identities Top 10&#8221;, 2025 edition (industry security standard, not peer-reviewed). <a href="https://owasp.org/www-project-non-human-identities-top-10/">https://owasp.org/www-project-non-human-identities-top-10/</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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 The Recovering CTO! 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[Teach one repo, move a fleet]]></title><description><![CDATA[Teach the AI one repo's migration, validate the lesson, run it across the fleet. What it costs, what it returns, where it goes wrong.]]></description><link>https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/teach-one-repo-move-a-fleet</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 18 Aug 2026 07:07:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Gl6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We all know the Principal/Staff/Distinguished Engineer that has 10+ years of experience in their company (with a 20+ years experience working in tech). Whichever team they go through, it skyrockets and a lot of problems get solved...</p><p>But they are only one, and you have hundreds of repositories with dozens of teams and everyone wants to revamp/modernize their tech stack... all at the same time that someone is planning a &#8220;tech reorg&#8221; paying millions to McKinsey.</p><p>I was working with that Principal Engineer / Lead Architect in a major European airline while they were working in one problem: dozens of old Java apps that acted as a distributed monolith that they wanted to move to Java 21.</p><p>After months of struggle with the (false) promise that you feed your repositories to Claude Code and it magically vomits high-performing new code, we started to talk.</p><p>So they were struggling and arguing that fancy new AI models are not good in writing code, and that annoyed me. Because the question should be a different one: can your organization teach the AI something once and reuse that lesson? And of course, the best person to teach it is a team led by the Principal/Staff we&#8217;ve been talking about.</p><p>That lesson is the unit of scale... not the license, not the prompt. The encoded and validated lesson, the fricking pattern!!</p><p>In last week&#8217;s edition we promised to talk about architecture and &#8220;the pattern, not a pitch&#8221;. Here we are!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gl6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gl6z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!Gl6z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!Gl6z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!Gl6z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gl6z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:323233,&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://writing.tilinthecloud.com/i/211459427?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.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_!Gl6z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!Gl6z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!Gl6z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!Gl6z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ddef09-f5aa-481d-a211-feab31d23121_1200x675.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 aria-hidden="true" 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><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 style="text-align: center;"><a href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the trap: sequencing.</a><br><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready.</a><br><a href="https://writing.tilinthecloud.com/p/steer-dont-sequence">Issue 3 put three bodies on the table that have to move together.</a><br><a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Issue 5 found Herbie: your bottleneck doesn&#8217;t burn tokens.</a><br><a href="https://writing.tilinthecloud.com/p/more-shipped-same-typing">Issue 6 brought the peer-reviewed witness: more shipped, same typing.</a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><h2>The trap: changing the pattern and the version in one jump</h2><p>Modernizing your architecture is a hard thing, and we don&#8217;t even need to go to Conway&#8217;s Law here. Just ask someone what they mean by modernizing an application. Is it the language change? A major version upgrade? A &#8220;more modern&#8221; pattern and saying that Saga patterns are the way forward?</p><p>For a lot of my customers they start yapping (sorry about the word) about &#8220;breaking down our monolith&#8221;. And when I ask what is bad about their monolith they start going on about deployment challenges, about the one time they had to wait 4 sprints to add a new field to the website UI or how every developer takes months to onboard to their codebase.</p><p>Peeling that onion I usually can find the core, and it&#8217;s a combination of one or more of these (coming from CTO all the way to the support team):</p><ol><li><p>All changes take too long, even small/dumb ones.</p></li><li><p>Developers are afraid to touch this repo because of unforeseen changes.</p></li><li><p>No one from the tech team can estimate how long it is going to take to finish this feature, then we cannot plan it financially.</p></li><li><p>My dev team is sick and tired of maintaining this... they just want to build an &#8220;insert cool new shiny object here&#8221; and this keeps holding them back.</p></li><li><p>... anything else you can imagine that encapsulates frustration and rage and disappointment and denial and more...</p></li></ol><h2>Teach one, prove three, run the fleet</h2><p>And I tell them the same. Funnel it out! But knowing where to start is really tricky, so what do I do: Event Storming session! Yes, this will require a newsletter on its own, but I do an event storming session (1 to 3 depending on size and problem)... that is followed by a definition with the customer on what pattern we are tackling and in which business domain.</p><p>With that in mind, we have a pattern we want to tackle. And no, you cannot just say you want to &#8220;apply <a href="https://martinfowler.com/bliki/StranglerFigApplication.html">strangler-fig</a>&#8220; to your monolith! I&#8217;m talking about something way more tangible. For this specific airline, we were talking about JRE 5 and JRE 6 upgrades to Java 21.</p><p>That is followed by a sprint. And if you are into Team Topologies I can just say this is me and the Staff/Principal Architect/Engineer (let&#8217;s call them Athena from now on!) playing the role of an Enablement Team to a 2-3 members of a Stream-Aligned team. And there I was with Athena talking to a specific team that was doing the GDS integration for airplane ticket selling.</p><p>And what do we do? Hands-on coding in pair-programming sessions with Gen-AI assisted tools - Codex, Claude Code, Kiro, GitHub Copilot or whatever rocks your boat as your coding harness. The important part here is that working in pairs (plus the AI) forces you to say your assumptions out loud, where another human can counter them... it takes time but it&#8217;s a fantastic result. For all the DDD and XP programming fans here, this is nothing new :-]</p><p><strong>Week 1:</strong> We spent it writing and questioning the context we would feed the tool. Which code is where? What calls this? What is the latency on this? We went from our laptops individually to screen-sharing sessions on Zoom answering doubt after doubt... the 5 of us (me, Athena and the 3 developers on the GDS integration) spent one entire week having 90&#8217; alone sessions followed by 30&#8217;-60&#8217; calls asking each other questions, realizing assumptions were wrong, going from weird business rules into why the code is doing XYZ and banging our heads until someone would say: &#8220;Huh... I think we need to ask this to the Operations Director?&#8221; and that would park a point.</p><p>But Thiago, what is the AI usage here? Well, we rarely started from an empty canvas. Using Claude Code you can quickstart your documentation and start asking questions. Then you validate what you know. When you go into the function level that calls an endpoint to another repository, you don&#8217;t need to understand that other codebase that heavily, you can just ask about the contract and the API swagger to understand where things are going.</p><p>However, this doesn&#8217;t replace my 20+ years of experience building, debugging and operating distributed systems... on the contrary, it sped me up!</p><p>During this 1w going through this cycle we iterated several times in a tool. We would give a full agentic task to our GenAI harness with our context doc (we called it the Research Plan) and we know what we wanted to achieve: an Implementation Plan for the Java migration!</p><p>We&#8217;d review it together, find that something was missing, there were too many moving parts or a lot of handwaving... well, that meant we could improve the Implementation Plan ourselves and/or iterate again on the Research Plan.</p><p>Timebound it to 1w and voil&#224;... we have an Implementation Plan. This plan must consist of a reduced version of the context (hello Context Engineering) and validation tasks!</p><p><strong>Week 2:</strong> We leave it to run and push until at least 80% of it is actually solved. We end up happy with the plan and we actually manage to migrate one repo fully. Was it fully automatically? Of course not! We spent blood, sweat, tears and time making this together.</p><p><strong>Week 3:</strong> But now we have a formula to gather context. How we build the Research Plan in the Phase 1 is streamlined into skills, prompts, scripts and more. We can apply that to another 3 repositories and by the end of the week we had clear micro-patterns and rules that were important from Java 5 to Java 21. What to do first, what to look out for and more.</p><p>So by the end of week 3 we already migrated one repo and we have the implementation plan of other 3 repositories! :-D</p><p><strong>Weeks 4 and 5:</strong> ensuring those 3 repositories are migrated and ready to show-off.</p><p><strong>Week 6:</strong> the &#8220;fleet management problem&#8221;... you trust the lesson is now so good that a fully-streamlined run might get to that 60-80% good enough!</p><p>Why not aim for 100%? Because raw model translation is still not something you trust unattended: Rangeet Pan, Ali Reza Ibrahimzada and colleagues at IBM Research and the University of Illinois tested LLMs translating 1,700 code samples (ICSE 2024) and got correct translations between 2.1% and 47.3%, cataloguing 15 kinds of translation bugs along the way. That is why the validation tasks travel inside the plan. They are not paranoia, they are the pattern.</p><p>So what you do? You dispatch several runs against all repos that will go through it all: gather the Research Plan, write the Implementation Plan, build the final migration run with its report and validation status. Then open the MR and say what was done...</p><p>Every team maintaining those repos will get pinged with &#8220;WTF! There is a new MR to upgrade our Java 5 to Java 21?? ofc it didn&#8217;t work fully!&#8221; and that is the goal!</p><p>Now we are underway and what seemed impossible is now several kilometers close by. The magic happens... some teams reach out and say they will start working on it, while others don&#8217;t even bother. But lots were quite receptive to an hour of us sitting with them, walking the process, and leaving them to finish what was missing.</p><p>So what, Thiago? You are telling me that after 6 weeks you were able to open a MR to all Java codebases and solve everyone&#8217;s problem???</p><p>Not at all! We were able in 6 weeks to have 3 fully migrated repositories to Java 21 and give them something that was ~70% underway. It&#8217;s a glimpse of hope!</p><p>Our team of 5 got approval from the Tech Board to fluctuate around the company and enable these other teams... at this stage I was not needed 40h/w and I was mainly coaching Athena and the other 3, plus getting engaged as a soundboard for some hairy problems.</p><p>A few weeks into that phase, we noticed that repos the teams had sized in weeks were landing in roughly half the time of their original estimates... I don&#8217;t take that number too seriously, because initial estimates in large companies are always overestimated until they receive budget, but even discounting the sandbagging it was a lot faster than if they did it without this &#8220;method&#8221;. And this is without counting the freezing time that large companies have, on planning and waiting on the decision to start (what I call the &#8220;kick-off of the kick-offs&#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_!UKle!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UKle!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UKle!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UKle!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UKle!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UKle!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:922884,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/211459427?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.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_!UKle!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!UKle!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!UKle!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!UKle!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3047dbc7-5985-4b2f-a143-111bd34e3fbe_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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>Now count what this actually cost: five people, six weeks, licenses most companies already pay for, and the owning teams&#8217; review time. No army, no SI landing party, no multi-year program slide. The expensive part was never the tooling... which brings us to where this pattern actually dies.</p><h2>Where it goes wrong: nobody touches my codebase</h2><p>So why doesn&#8217;t everyone do this? Because none of the fights that matter are technical.</p><p>The first fight is the fiefdom. When someone says &#8220;I don&#8217;t want others touching our codebase&#8221;, it is rarely about the code. It is about budget, headcount and team allocation, and a central team&#8217;s MR reads as a threat to all three. This is why the pattern needs sponsorship and transparency that go beyond the business unit you are working in: someone above the fiefdoms has to want the fleet moved more than any single castle wants its moat.</p><p>The second fight is the career program. Big architectural changes are career-defining projects... a new CTO arrives attached to a multi-year budget announcement, and a research-test-implement-iterate cycle kills the announcement. Some people grieve the announcement more than they want the outcome.</p><p>The third fight is with Finance, and it is the fairest of the three. The CFO needs horizons and control, and an iterative rebuild cannot promise a three-year gantt in good conscience. You still need the gantt (I&#8217;m not that naive), but it changes species: it becomes a forecast you manage through mid milestones, not a contract you defend in steering committees. More agile means more unknowns, and someone has to look Finance in the eye and say so.</p><p>None of these people are villains, by the way. The incentive system pays for programs, not for lessons.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o7Ux!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o7Ux!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!o7Ux!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!o7Ux!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!o7Ux!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o7Ux!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:894214,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/211459427?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.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_!o7Ux!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!o7Ux!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!o7Ux!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!o7Ux!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d984aca-fd52-46a8-afbb-893417203707_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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>The three-body reading</h2><p>And what some teams were doing links to our 3-body problem... this airline was trying to move the architecture by forcing people to use their AI coding assistants. When usage didn&#8217;t climb, leadership came back with &#8220;we hear from everyone in the industry that code generation is so easy and cheap now... why can&#8217;t you just modernize everything?&#8221;. Then managers were asked to review token-usage per person in their 1:1 meetings. Insanity, I know.</p><p>When I left, there was another trend: Finance started pushing the opposite way, manager approval required before touching the AI harness, to staunch token usage.</p><p>What made this initiative a success was the fact that we kept the learning curve in a team. In that team we tackled the architecture problem by gathering people/political context with the Event Storming and all its pair-programming sessions. And we used AI steadily and in pairs, ensuring that no-one goes into a rabbit hole of handwaving or trying to bolt on yet another tool or trying to automate everything.</p><p>To move the architecture body we had to ensure the other two bodies (People and GenAI) were not converging to a cataclysm.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BKKc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BKKc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BKKc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BKKc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BKKc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BKKc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:830973,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/211459427?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.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_!BKKc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BKKc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BKKc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BKKc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd29f3a28-43e0-4edb-a52d-1d564422fd5f_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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>Run it on yourself</h2><p>Before you buy anything or announce anything, three questions:</p><ol><li><p>Can you name (at least) 10-15 libraries, repos, modules or apps that share one shape (same framework, same pattern, same pain)? If you cannot, your first problem is inventory, not AI.</p></li><li><p>Which repo is your teaching repo, and who is your Athena (the know-it all Staff/Distinguished/Principal Engineer/Architect that knows the ins-and-outs of your most feared application)? One hand-made, human-validated migration is the baseline that earns the machine its trust. If nobody in the room can produce that baseline, the model will happily invent one for you.</p></li><li><p>Can a central team open MRs on other teams&#8217; repos... and who sponsors that conversation when a business unit says no? If either question makes the room go quiet, congratulations: you have found your real constraint, and it does not burn tokens.</p></li></ol><h2>The whole thing, in one line</h2><blockquote><p><strong>The unit of modernization is not the program, the license or the prompt. It is a validated lesson... and lessons, unlike programs, compound.</strong></p></blockquote><h2>Coming up</h2><p>Next week I climb back out of the engine room. More soon. :-]</p><h2>Sources</h2><ul><li><p>Rangeet Pan, Ali Reza Ibrahimzada, Rahul Krishna, Divya Sankar, Lambert Pougeum Wassi, Michele Merler, Boris Sobolev, Raju Pavuluri, Saurabh Sinha and Reyhaneh Jabbarvand, &#8220;Lost in Translation: A Study of Bugs Introduced by Large Language Models while Translating Code&#8221;, ICSE 2024 (peer-reviewed). <a href="https://doi.org/10.1145/3597503.3639226">https://doi.org/10.1145/3597503.3639226</a></p></li><li><p>Rafael Tomaz, Paloma Guenes, Allysson Allex Ara&#250;jo, Maria Teresa Baldassarre and Marcos Kalinowski, FORGE 2026 (peer-reviewed; last week's spine). <a href="https://doi.org/10.1145/3793655.3793728">https://doi.org/10.1145/3793655.3793728</a></p></li><li><p>Martin Fowler, &#8220;Strangler Fig&#8221;, martinfowler.com, 2024 revision (practitioner essay, not peer-reviewed). <a href="https://martinfowler.com/bliki/StranglerFigApplication.html">https://martinfowler.com/bliki/StranglerFigApplication.html</a></p></li><li><p>Field numbers are from my own engagement notebook, anonymized and hedged; treat them accordingly.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[More shipped, same typing]]></title><description><![CDATA[A study followed 3 agile teams for 13 months after GenAI arrived. Throughput rose 59%, the activity graph stayed flat and the bottleneck moved exactly where the field notebook said it would.]]></description><link>https://writing.tilinthecloud.com/p/more-shipped-same-typing</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/more-shipped-same-typing</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 11 Aug 2026 07:15:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lGk4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The before-and-after slide had two charts. The wrong one was winning.</p><p>I&#8217;ve been in a lot of these meetings. A year into the AI program, the delivery lead pulls the Git history for the review: the changes made to the code, the number of typed lines, the raw volume. It&#8217;s flat. After a year of paying for licenses and mandating usage, the graph shows no one ever plugged the thing in. You can see the sponsor in the next seat doing the math in their head on how to justify cutting this expense from next year&#8217;s budget.</p><p>The second chart is usually not made. It is usually the one that tells the story, too. Same team, same year: completed work up by half. Both charts are equally true. An organization that draws only the first chart will conclude AI did nothing, and cut the budget that was quietly working.</p><p>That is the real before-and-after of AI adoption. The work gets denser, not bigger... and a dashboard built to watch volume will not show it.</p><p><a href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the trap: sequencing.</a><br><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready.</a><br><a href="https://writing.tilinthecloud.com/p/steer-dont-sequence">Issue 3 put three bodies on the table that have to move together.</a><br><a href="https://writing.tilinthecloud.com/p/in-the-loop-not-in-the-room">Issue 4 climbed inside the AI capability and asked for one number: the acceptance rate.</a><br><a href="https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens">Issue 5 found Herbie: your bottleneck doesn&#8217;t burn tokens.</a></p><p>Last week, I promised to open the field notebook: what it actually looks like when a shop moves its constraint, and the before-and-after numbers that survived contact with reality. There is one problem. My numbers are anonymized, mine, and hedged. When a consultant shows you their own before-and-after, you should take it with a grain of salt. (Yes, even mine.)</p><p>So this week, the notebook gets a new witness. A peer-reviewed study spent 13 months watching someone else&#8217;s shop and documented the same story I keep watching happen without them, p-values and all.</p><p>No kit this week, last week&#8217;s prompt still works. It&#8217;s just the argument this week, along with the standing ask: subscribe, run the three checks near the end on your own delivery data, and let me know which chart your CFO saw first.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lGk4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lGk4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!lGk4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!lGk4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!lGk4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lGk4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:326755,&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://writing.tilinthecloud.com/i/210703413?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.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_!lGk4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!lGk4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!lGk4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!lGk4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f23afec-edfd-482f-a4da-e99d1a030cab_1200x675.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 aria-hidden="true" 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><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>Someone finally ran the experiment</h2><p>At FORGE 2026 (the IEEE/ACM conference on AI foundation models and software engineering), <a href="https://doi.org/10.1145/3793655.3793728">Rafael Tomaz, Paloma Guenes, Allysson Allex Ara&#250;jo, Maria Teresa Baldassarre, and Marcos Kalinowski published a study</a> on three agile teams in one of the world&#8217;s biggest IT consulting companies, running for around thirteen months. Real client projects, oil and gas plus maritime logistics, 21 developers under commercial pressure, October 2023 to November 2024.</p><p>What makes it rare, first of all, is a clean before. External GenAI tools were banned at the firm until the study kicked off, so the historical sprints are genuinely tool-free... and you almost never get that baseline in the wild. The measurement side is also better than most: Jira, SonarQube and Git telemetry before and after, cross-checked against surveys, organized by the <a href="https://queue.acm.org/detail.cfm?id=3454124">SPACE framework</a> (Forsgren, Storey, Maddila, Zimmermann, Houck and Butler, ACM Queue, 2021), the model that refuses to reduce developer productivity to one number.</p><p>And they did a proper rollout. Included all the bells and whistles. Copilot licenses. Plus an internal GPT tool. Kickoff. A two hour prompt-engineering workshop. A dedicated channel for swapping prompts. If your transformation office had this on a slide, they would call it best practice. Hold that thought.</p><p>The usual caveat, so nobody accuses me of hiding it: three teams, twenty-one developers, one firm. Carry these numbers with the same care as last week&#8217;s sixteen METR maintainers. What the paper lacks in scale it makes up for with length, and the dataset is open if you want to check their homework.</p><h2>The chart that would have killed the program</h2><p>In the team the researchers could track cleanly across the whole window, completed story points rose by 59.1 percent. From 281 to 447. Statistically significant. Medium effect sizes. Perceived efficiency agreed, roughly four in five developers reporting faster delivery and less repetitive work.</p><p>Activity, though? Across 349 commits and roughly 456 thousand lines, the difference in committed lines before and after came out at p = 0.928. For the non-statisticians: that is the test equivalent of a shrug.</p><p>The authors admit as much in their own conclusion. Had they measured activity alone, they would have concluded GenAI had no impact. Throughput up 59 percent while the commits dashboard swears the machine is unplugged.</p><p>Their name for the phenomenon is value density. More value per unit of work rather than more work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sNA1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sNA1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!sNA1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!sNA1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!sNA1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sNA1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/acf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1753195,&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://writing.tilinthecloud.com/i/210703413?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.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_!sNA1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!sNA1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!sNA1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!sNA1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Facf4c17e-e424-4ec6-b1ed-63688c813a91_1264x848.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 aria-hidden="true" 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><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>Run that next to last week&#8217;s tokenmaxxing leaderboard. One dashboard tracks the input, the other tracks the volume, and both fail to capture the only real change. Put together, they can wipe out a functioning program and, in the same quarter, give accolades to a broken one.</p><h2>The roadmap ate the gains</h2><p>This is my favorite number from the paper, and the abstract does not even mention it.</p><p>While completed points rose 59%, planned points rose about 150%, going from 447 to 1155. The team got faster, believed itself faster still, and committed accordingly. The pile of promised-but-undelivered work went from 166 points to 708. Do the completion-ratio arithmetic and it stings: before AI, the team completed about 63% of what it planned. After, about 39%.</p><p>Let&#8217;s say you are the sponsor. Your team made a genuine 59% jump in speed, and its promises got 24 points less reliable, at the same time, because of the same tool.</p><p>The paper calls this an increase in confidence in capacity. My notebook calls it an older law: capacity gains are spent before they land, and the people spending them are the ones drawing the roadmap. Remember the METR result from last week? Developers who were measurably slower felt 20% faster... speed perception inflates on contact with these tools, and roadmaps are made of speed perception.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kO3z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kO3z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!kO3z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!kO3z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!kO3z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kO3z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1863590,&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://writing.tilinthecloud.com/i/210703413?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.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_!kO3z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!kO3z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!kO3z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!kO3z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcb1b99f-9bb9-4c0b-8c08-90cd59088438_1264x848.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 aria-hidden="true" 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><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>The model dodges Herbie too</h2><p>Where did the gains land? On the work that was already clean.</p><p>Satisfaction with the tools ran inversely to the messiness of the task. 75% positive on unit test coverage. About 65% on new features and test scenarios. 50% on the legacy Java and React APIs. Under 25% for ETL and legacy Kafka integration. One of the seniors in the study said the tool almost perfectly replicates test patterns for simple methods and begins to lose reliability as the methods get progressively more complex. The most complicated integration seams, where the real calendar time goes, received the least support of all.</p><p>This is where we run into Issue 5 again. The jetpack fits every scout except for Herbie, and a satisfaction survey is now available to prove it.</p><p>The constraint, as expected, also moved downstream. The paper describes collaboration shifting from shared construction to shared evaluation... less time co-writing the code and more time reviewing and integrating what the model wrote. The queue shifted to validation, which, according to Goldratt&#8217;s accounting, is now where a lost hour costs the entire system an hour.</p><p>Quality went in both directions at once. Two of the three teams reduced their high-severity static-analysis issues while shipping more (one went from 1624 issues to 825). The third team got worse on every severity. Same tools. Same training. Same firm. Whatever determined those quality outcomes, it was not the tool.</p><h2>What a one-body move proves about the other two</h2><p>Why is this paper relevant to this newsletter? The intervention moved just a single body, and moved it nicely. Licenses, training, and a support channel, all for the AI capability. No one adjusted the team shape. No one touched the architecture. The teams continued their routines with a new tool in the loop, and that is exactly what most enterprise AI programs opt for these days.</p><p>The fingerprints are all over the results: gains land on the well-defined work and skip the legacy seams, the review queue picks up the load, planning runs ahead of capacity, and quality goes wherever the local context pushes it. That is thirteen months of the other two bodies standing still.</p><p>What does moving the other two look like? From the notebook, generalized across engagements (clients are not content):</p><p>The review ladder changes before the tool arrives, so that review capacity becomes first-class, visible, career-grade work.</p><p>Ownership is adjusted so that one team can manage a change from start to finish, including the model&#8217;s share of it, without leaving the room. The single gates go, on purpose... the title holders remain, and the queues are eliminated.</p><p>The backlog is restructured, not re-ordered. Once the model is integrated, some tasks are no longer worth building, and some become buildable for the first time. This is the architecture body answering back.</p><p>An engaged shop buys back a real portion of the constraint&#8217;s time in the first year. In my notebook it is roughly a fifth, with a credible path to most of it. The 8-to-80 image I have carried since the first issue is an effort curve, not an audited metric. The tools will accelerate a workflow from 8 to 80 as quickly and effortlessly as a car would on an open road. From 80 to 99 is a different sport. That stretch is purchased with team shape and architecture, and no study of tools alone will ever show it... as tools alone will not get you there.</p><h2>Run your own before-and-after</h2><p>Use three numbers, spend one afternoon, and there is nothing to buy.</p><ol><li><p>The completion ratio. Planned versus completed story points, the last four sprints compared to the four before adoption. Did completed go up while the ratio went down? That is the pattern from the paper: real gains, spent in advance by the roadmap.</p></li><li><p>The activity trap. Take a look at your main post-adoption AI chart. If it shows usage, commits, or lines, try to name one decision that it could correctly inform. In the paper, it would have scored a 59 percent gain as a zero.</p></li><li><p>The queue check. From last week&#8217;s prompt: median time-to-first-review and time-in-review, before and after the adoption. If both increased while throughput also increased, your constraint has moved downstream and is compounding quietly.</p></li></ol><p>If your shapes match the paper&#8217;s, your engineers are fine. Something was waiting in your org chart, and it was there before the tools arrived.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KR9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KR9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!KR9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!KR9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!KR9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KR9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2452507,&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://writing.tilinthecloud.com/i/210703413?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.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_!KR9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!KR9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!KR9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!KR9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7ad502d-bf5e-4e3e-8685-52be530e3054_1264x848.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 aria-hidden="true" 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><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><blockquote><p><strong>AI makes the work denser, not bigger. Measure volume and you will see nothing happen... right up until the promises stop being kept.</strong></p></blockquote><h2>Coming up</h2><p>Next week I climb down into the architecture body: one modernization pattern in full, the GenAI-assisted legacy rebuild. What it costs, what it returns, where it goes wrong. The pattern, not the pitch.</p><p>More soon.:-]</p><h2>Sources</h2><p>Because none of this comes only from my head. Every link checked.</p><ul><li><p>The spine: Rafael Tomaz, Paloma Guenes, Allysson Allex Ara&#250;jo, Maria Teresa Baldassarre, and Marcos Kalinowski, &#8220;<a href="https://doi.org/10.1145/3793655.3793728">Impacts of Generative AI on Agile Teams&#8217; Productivity: A Multi-Case Longitudinal Study</a>&#8220; (FORGE &#8216;26, IEEE/ACM Third International Conference on AI Foundation Models and Software Engineering, 2026). Peer-reviewed. A small sample watched for a long time, and honest about its limits. The <a href="https://doi.org/10.5281/zenodo.17536708">dataset is open on Zenodo</a>.</p></li><li><p>The five-dimension lens the study uses: Nicole Forsgren, Margaret-Anne Storey, Chandra Maddila, Thomas Zimmermann, Brian Houck, and Jenna Butler, &#8220;<a href="https://queue.acm.org/detail.cfm?id=3454124">The SPACE of Developer Productivity</a>&#8220; (ACM Queue, 2021). Practitioner venue, not peer-reviewed in the journal sense.</p></li><li><p>The lab-speed antecedent the paper builds on: Sida Peng, Eirini Kalliamvakou, Peter Cihon, and Mert Demirer, &#8220;<a href="https://arxiv.org/abs/2302.06590">The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</a>&#8220; (arXiv 2302.06590, 2023). Controlled experiment, preprint, not peer-reviewed: 55.8 percent faster on a fenced task.</p></li><li><p>The perception gap, again: Joel Becker, Nate Rush, Elizabeth Barnes, and David Rein, &#8220;<a href="https://arxiv.org/abs/2507.09089">Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity</a>&#8220; (METR, arXiv 2507.09089, July 2025). Randomized controlled trial, preprint, not peer-reviewed.</p></li><li><p>Herbie and the hour at the bottleneck: Eliyahu M. Goldratt and Jeff Cox, &#8220;<a href="https://books.google.com/books/about/The_Goal.html?id=os1awAEACAAJ">The Goal: A Process of Ongoing Improvement</a>&#8220; (North River Press, 1984). Still not peer-reviewed. Still right.</p></li></ul><p></p><p style="text-align: center;"><strong>I make this Substack thanks to readers like you!</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><p style="text-align: center;"></p>]]></content:encoded></item><item><title><![CDATA[Your bottleneck doesn't burn tokens]]></title><description><![CDATA[AI usage mandates put a jetpack on the one step of delivery that was already fast. Goldratt named the mistake in 1984, and the token dashboard is now making it at scale.]]></description><link>https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/your-bottleneck-doesnt-burn-tokens</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 04 Aug 2026 12:30:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xTkk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The 1:1 was going fine until the screen share.</p><p>It is a dashboard: AI usage by engineer, tokens per week, sorted descending. The manager scrolls to a name near the bottom of the list, and the question is almost kind. &#8220;Why is your number so low?&#8221;</p><p>Two desks over sits an engineer whose number is magnificent. He wears that dashboard the way other people wear a marathon medal. And in the same team&#8217;s repo, the oldest pull request has been waiting for a reviewer longer than either of them has been tracking tokens.</p><p>I have watched versions of this meeting more than once. The company changes, the tool changes&#8230; the dashboard survives.</p><p>Everyone in that room believes they are doing AI transformation. What they are actually doing is maximizing the input to the one step of delivery that was never the problem.</p><blockquote><p><strong>The mandate says: use the model more. <br>The delivery data says: your bottleneck doesn&#8217;t burn tokens.</strong></p></blockquote><p><a href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the trap: sequencing.</a><br><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready.</a><br><a href="https://writing.tilinthecloud.com/p/steer-dont-sequence">Issue 3 put three bodies on the table that have to move together.</a><br><a href="https://writing.tilinthecloud.com/p/in-the-loop-not-in-the-room">Issue 4 climbed inside the AI capability and asked for one number: the acceptance rate.</a></p><p>This week, as promised: the team body. What the org chart has to give up for the model to stay in the loop.</p><p>And for the first time, there is a kit. Near the end you will find a five-question team-shape test and a prompt you can paste over your own delivery data, today, with the tools your mandate already bought. </p><p>If you run it, subscribe and tell me what your Herbie turned out to be. Herbie is explained below, and he matters more than your token count.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></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_!xTkk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xTkk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!xTkk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!xTkk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!xTkk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xTkk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:342501,&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://writing.tilinthecloud.com/i/209774316?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.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_!xTkk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!xTkk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!xTkk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!xTkk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F883b227e-df9a-4e11-8b05-673a890a0799_1200x675.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 aria-hidden="true" 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><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>The mandate arrived with a leaderboard</h2><p>In April 2025, <a href="https://x.com/tobi/status/1909251946235437514">Tobi L&#252;tke told Shopify that &#8220;reflexive AI usage is now a baseline expectation&#8221;</a> and wired AI competency into performance reviews and hiring. A few months later, <a href="https://www.cio.com/article/4050185/fire-any-developer-who-doesnt-use-ai-why-coinbase-ceos-tough-message.html">Brian Armstrong told the Cheeky Pint podcast that Coinbase bought Cursor and Copilot, gave engineers a week to onboard, and fired the ones who did not</a>. Coinbase now says roughly a third of its code is written by AI, aiming to have it at 50%&#8230;</p><p>Let me be fair to the memos before I take them apart. Refusing to seriously try these tools in 2026 is a career decision, and a bad one. If the mandate stopped at &#8220;try it, properly, this quarter&#8221;, I would co-sign it.</p><p>But the mandate never stops there, because an executive who mandates something needs to measure it&#8230; and usage is the number that is easy to get. Seats. Active users. Tokens per engineer per week. Somewhere down the org chart, that number becomes a sorted list&#8230; that list becomes a 1:1 conversation and even a way to evaluate &#8220;performance&#8221;.</p><p>All this knowing that measured people have always done: they optimize the metric. Pipe the model into everything, let it summarize what nobody reads, regenerate until the meter looks respectable. Call it <strong>tokenmaxxing</strong>. Burning tokens is the one KPI an engineer can max without shipping anything and some wear it as a badge of honor. A leaderboard where the prize for winning is a bigger invoice.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ygzP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ygzP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ygzP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ygzP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ygzP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ygzP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:790843,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://writing.tilinthecloud.com/i/209774316?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.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_!ygzP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ygzP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ygzP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ygzP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea383e74-606a-4307-89d0-5d416c8c7337_1264x848.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" 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><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>Which is exactly where the story has now arrived. The same companies that mandated usage are staring at their AWS Bedrock, Anthropic and OpenAI bills and asking where the value went. </p><blockquote><p>They mandated an input&#8230; they got the input&#8230;<br>And now they act surprised because input is not the same as value created :-D</p></blockquote><p>Issue 4 called usage the vanity metric: the treadmill is plugged in, nobody is running. This issue is about something worse. Even if everyone runs, maximizing this particular input cannot move delivery, even in principle. To see why, you need a book that is older than everyone building those dashboards&#8217; careers.</p><h2>Herbie doesn&#8217;t type</h2><p>In 1984, <a href="https://books.google.com/books/about/The_Goal.html?id=os1awAEACAAJ">Eliyahu Goldratt published &#8220;The Goal&#8221;</a>, a novel about a factory manager (which is a sentence I promise gets better). For the academices out there, it is not peer-reviewed&#8230; it is barely literature. At the same time, it is also the clearest thing ever written about why your AI mandate is not working.</p><p>The famous scene is a boy scout hike. The troop keeps stretching apart because one kid, Herbie, is slow. The fast kids sprint ahead, then wait. The line&#8217;s speed to the destination is Herbie&#8217;s speed, no matter how impressive everyone else&#8217;s pace looks. The fix is not to yell at the fast kids to walk faster. It is to put Herbie at the front, take the extra weight out of his backpack, and subordinate everyone&#8217;s pace to his.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9pmN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9pmN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!9pmN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!9pmN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!9pmN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9pmN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2397259,&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://writing.tilinthecloud.com/i/209774316?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.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_!9pmN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!9pmN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!9pmN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!9pmN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912f2c9d-dfed-4d3a-90d4-51ed7ee9a18d_1264x848.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 aria-hidden="true" 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><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>Out of that hike comes the Theory of Constraints and its two brutal accounting rules:</p><div class="pullquote"><p>An hour lost at the bottleneck is an hour lost for the entire system, and an hour saved at a non-bottleneck is a mirage.</p></div><p>An AI usage mandate is a jetpack for every scout except Herbie.</p><p>Because in software delivery, typing code was almost never Herbie. Ask where a change actually spends its calendar life. Waiting for review. Waiting for the meeting where two teams agree on the interface. Sitting in the handover between the team that wrote it and the team that operates it. Or worst of all, being rebuilt, because what shipped was not what the customer needed and finding that out took a full cycle. <strong>The constraint lives in the seams between people. It always did.</strong></p><p>Now make code creation dramatically faster, company-wide, by decree. What happens? The queue in front of Herbie gets longer. That is the entire story of enterprise AI adoption in one sentence, and Goldratt priced it forty years before the first token was billed.</p><h2>The data agrees, awkwardly</h2><p>Two pieces of evidence, one small and sharp, one large and blunt.</p><p>The sharp one: <a href="https://arxiv.org/abs/2507.09089">Joel Becker, Nate Rush, Elizabeth Barnes, and David Rein at METR ran a randomized controlled trial</a> (July 2025) with 16 experienced open-source maintainers doing 246 real tasks in repos they knew deeply. Before starting, the developers forecast AI would make them 24% faster. Afterwards, having lived it, they estimated it had made them 20% faster. The stopwatch said they were 19% slower.</p><p>Sixteen developers, early-2025 tools, unusually mature codebases: carry the number with care. But carry the shape of it everywhere, because the gap between felt speed and measured speed is the fuel every usage mandate runs on. If the person doing the work misreads their own speedup by nearly 40 points, the executive reading a token dashboard three levels up has no chance.</p><p>The blunt one: <a href="https://dora.dev/insights/balancing-ai-tensions/">the 2025 DORA report</a> (Google&#8217;s research program, vendor-funded, not peer-reviewed, and honest about both) finds that AI adoption now correlates with higher delivery throughput and with higher instability at the same time. More change ships, more change fails and the pile-up happens exactly where Goldratt said it would: review, testing, QA. Their respondents say reviewing AI output is harder than writing code, that time saved writing is re-spent auditing, and 30% of developers report little or no trust in AI-generated code. DORA&#8217;s own framing is that AI is an amplifier: it does not remove your bottleneck, it delivers more traffic to it.</p><p>I'd be reluctant to follow these studies as they are 2025 dated and data-bounded to that era&#8230; while we all know how much has changed since Opus 4.6 and the whole Agentic AI boom in the last 8 months. Nevertheless, I see and hear these arguments and feelings in every customer&#8230;</p><p>Which brings me to the promise I made last week, about the acceptance rate that climbs for a quarter and then quietly slides back.</p><p>Last week's edition argued acceptance rate is the honest number, and it is. Honest about the model. It is not honest about the system, because when the constraint sits downstream of the model, the number decays in one of two ugly ways. Either reviewers drown and start waving things through, so acceptance climbs while your change-failure rate climbs with it. Or reviewers hold the line and become the queue, so acceptance stalls, your best senior turns into a full-time auditor, and adoption slides back to whatever the team could actually digest. Nothing about the model changed in either case. The team shape did the deciding. That is what a team-shape problem wearing a model costume looks like from inside.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RZxg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RZxg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!RZxg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!RZxg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!RZxg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RZxg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png" width="1264" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1949004,&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://writing.tilinthecloud.com/i/209774316?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.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_!RZxg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png 424w, https://substackcdn.com/image/fetch/$s_!RZxg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png 848w, https://substackcdn.com/image/fetch/$s_!RZxg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.png 1272w, https://substackcdn.com/image/fetch/$s_!RZxg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e173a9-2b6c-4ae8-a9b5-a7438ac4b12f_1264x848.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 aria-hidden="true" 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><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>What the org chart has to give up</h2><p>Goldratt&#8217;s method, compressed: find the constraint, get the most out of it, and subordinate everything else to it. Subordinate is the step where org charts flinch, because subordination costs status. Here is what it costs, concretely.</p><p><strong>Give up the usage league table.</strong> Replace tokens-per-engineer with flow at the constraint: time to first review, time in review, age of the oldest open PR. You cannot manage Herbie with a dashboard that only shows the fast kids. Measure the queue, not the faucet.</p><p><strong>Give up output-per-person as the status currency.</strong> If review is your constraint, then review capacity is first-class engineering work, not a tax on the seniors&#8217; &#8220;real&#8221; job. The engineer who reviews fast and well is not underperforming on code output. They are carrying Herbie&#8217;s backpack, and the career ladder has to say so out loud, or nobody sane will keep doing it.</p><p><strong>Give up the single gate.</strong> One architect who must bless everything, one platform team every change routes through, one codeowner file that funnels a whole repo to one person: these are constraints you built on purpose and forgot about. Redraw ownership so one team can take a change, including the model&#8217;s share of it, from start to shipped without leaving the room. This is the argument of <a href="https://teamtopologies.com/book">Skelton and Pais&#8217;s &#8220;Team Topologies&#8221;</a>: teams are the unit of delivery and their cognitive load is a budget you design for, not a personal failing.</p><p><strong>Give up the ceremony.</strong> Alignment that lives in standing meetings and handover documents is the constraint wearing a calendar costume. Every handover is a queue. Every weekly sync that exists because two teams share a seam is Conway&#8217;s law sending you an invoice. Remember from last week that the model reads your architecture like an honest new hire? Your meeting load is the same reading, of the team body this time.</p><p>Notice what is not on this list: a bigger model, a better prompt, one more token. The 8% to 80% story I have carried since the first Substack post was never a model story alone. That step only held at 80 because the team around it changed shape at the same time, ownership included. The model got it to possible. The org chart got it to Tuesday.</p><h2>Run the team-shape test</h2><p>Five questions, yes or no. Count your yeses.</p><ol><li><p>Is your primary AI metric a usage number (seats, active users, tokens), viewable per person?</p></li><li><p>Take the last meaningful change your team shipped: did it spend more calendar time waiting (for review, for approval, for a meeting) than being built?</p></li><li><p>Can you name, without thinking, the one person or team most changes queue behind?</p></li><li><p>Has an AI metric (usage or acceptance) climbed and then slid back within two quarters, with no model change to blame?</p></li><li><p>If every engineer&#8217;s AI usage doubled tomorrow, would the first thing to break be a human queue: review, QA, or a release approval?</p></li></ol><p><strong>0 to 1 yes:</strong> your constraint may genuinely be code creation. Mandate away, you strange and fortunate shop.<br><strong>2 to 3 yeses:</strong> mixed picture. Start measuring the queues this week, before the next dashboard review measures the wrong thing again.<br><strong>4 to 5 yeses:</strong> you have a team-shape problem wearing a model costume. Your org chart owes Herbie an apology, and the next section is for you.</p><h2>The prompt</h2><p>Paste this into whichever assistant your mandate bought you, and feed it real data. It takes about twenty minutes to collect and one meeting to act on.</p><pre><code><code>You are helping me find my software delivery constraint. Be blunt. Do not flatter me.

I will give you three inputs:

1. My team's last 20 merged PRs/MRs, each with four timestamps:
   opened, first review comment, approved, merged.
   [paste]

2. One typical week of the team calendar: each recurring meeting,
   its length, and how many people attend.
   [paste]

3. Our AI usage snapshot, if one exists: seats, active users,
   tokens or suggestions per week. If none, I will say "none".
   [paste]

Compute, per PR: time to first review, time in review, and time from
approval to merge, each as a share of total open-to-merge time.
Use medians, not averages.

Then answer three questions:
- Where does a change spend most of its calendar life: being written,
  waiting for a human, or waiting for a meeting?
- Who or what is my Herbie: the single queue the median change waits
  in longest?
- If my team's AI usage doubled tomorrow and nothing else changed,
  which queue grows first?

End with: the one team-shape change most likely to cut the median
open-to-merge time, and the one metric I should stop reporting.
</code></code></pre><p>The model will happily run this analysis. It is, after all, already in the room.</p><blockquote><p><strong>A mandate can make everyone use the model. Only the org chart can make it matter. Feed the constraint, not the meter.</strong></p></blockquote><h2>Coming up</h2><p>Next week I open the field notebook: what it actually looks like when a shop moves its constraint, all three bodies at once, and the before-and-after numbers that survived contact with reality.</p><p>More soon. :-]</p><h2>Sources</h2><p>Because none of this comes only from my head. Every link checked.</p><ul><li><p>The constraint, Herbie, and the mirage: Eliyahu M. Goldratt and Jeff Cox, &#8220;<a href="https://books.google.com/books/about/The_Goal.html?id=os1awAEACAAJ">The Goal: A Process of Ongoing Improvement</a>&#8220; (North River Press, 1984). A business novel, not peer-reviewed, and still the sharpest operations book on this list.</p></li><li><p>The Shopify mandate: Tobi L&#252;tke, &#8220;<a href="https://x.com/tobi/status/1909251946235437514">Reflexive AI usage is now a baseline expectation at Shopify</a>&#8220; (internal memo, self-published on X, April 2025). Primary source.</p></li><li><p>The Coinbase mandate: Brian Armstrong on Stripe&#8217;s Cheeky Pint podcast, as reported by <a href="https://www.cio.com/article/4050185/fire-any-developer-who-doesnt-use-ai-why-coinbase-ceos-tough-message.html">CIO, &#8220;Fire any developer who doesn&#8217;t use AI&#8221;</a> (September 2025). Press coverage of a podcast, not peer-reviewed.</p></li><li><p>The perception gap: Joel Becker, Nate Rush, Elizabeth Barnes, and David Rein, &#8220;<a href="https://arxiv.org/abs/2507.09089">Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity</a>&#8220; (METR, arXiv 2507.09089, July 2025). Randomized controlled trial, preprint, not yet peer-reviewed.</p></li><li><p>Throughput up, instability up: the <a href="https://dora.dev/insights/balancing-ai-tensions/">2025 DORA report and its &#8220;Balancing AI tensions&#8221; insight</a> (Google Cloud&#8217;s DORA research program). Large-scale survey, vendor research, not peer-reviewed.</p></li><li><p>Teams as the unit of delivery: Matthew Skelton and Manuel Pais, &#8220;<a href="https://teamtopologies.com/book">Team Topologies</a>&#8220; (IT Revolution Press, 2019). Practitioner framework, not peer-reviewed.</p></li></ul><p>I make this Substack thanks to readers like you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[In the loop. Not in the room]]></title><description><![CDATA[A model in your delivery pipeline is two things at once, a build lever and an architectural mirror. But what share of its work you ship without redoing it?]]></description><link>https://writing.tilinthecloud.com/p/in-the-loop-not-in-the-room</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/in-the-loop-not-in-the-room</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 28 Jul 2026 16:45:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jSAv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.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_!jSAv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jSAv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!jSAv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!jSAv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!jSAv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jSAv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:308909,&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://writing.tilinthecloud.com/i/208843610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.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_!jSAv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!jSAv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!jSAv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!jSAv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a143cb0-53ab-40e7-a5a9-f3a9ec6a47a0_1200x800.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 aria-hidden="true" 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><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The slide says the AI capability is delivered. Seats are bought, the usage graph climbs, and someone has drawn a green checkmark next to the third body. On paper, the model is in your pipeline.</p><p>Then you look at where the work actually happens. The model drafts, and a person quietly rewrites most of it before anything ships. It suggests, and the suggestion gets read, sighed at, and closed. The tool is open on every screen and the job is being done the same way it was 6 months ago.</p><p>That model is present. Present is not the same as in the loop.</p><p><a href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the trap: sequencing.</a><br><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready.</a> <br><a href="https://writing.tilinthecloud.com/p/steer-dont-sequence">Issue 3 put the AI capability on the table as one of three bodies that move together.</a></p><p>This week I climb inside that body and ask the only question that matters once the model is bought: <strong>is it in the loop, or just in the room?</strong></p><p>A model is in the loop only where you would ship its work without redoing it. Everywhere else it is in the room: adopted, visible, paid for and not actually doing the job.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0B04!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0B04!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png 424w, https://substackcdn.com/image/fetch/$s_!0B04!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png 848w, https://substackcdn.com/image/fetch/$s_!0B04!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!0B04!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0B04!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png" width="1456" height="977" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:977,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7280657,&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://writing.tilinthecloud.com/i/208843610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.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_!0B04!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png 424w, https://substackcdn.com/image/fetch/$s_!0B04!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png 848w, https://substackcdn.com/image/fetch/$s_!0B04!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!0B04!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b90bd1d-144d-474e-9738-08874fe3f392_2528x1696.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 aria-hidden="true" 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><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></p><p>No kit this week. Just the argument and the standing ask: if you have put a model into a real pipeline, subscribe and tell me where I am wrong.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><h2>The model as a build lever</h2><p>The first thing a model in the loop does is change what is worth building. Not how fast you type. The size of the thing one person can now finish.</p><p>Every backlog has a graveyard: the work that was permanently parked because the payback never cleared the bar. The manual review step no one would fund a rewrite for. The migration that needed six months of a team you were never going to get. A model in the loop moves the economics, not just the ergonomics, and some of that graveyard work suddenly clears the bar. The item that was &#8220;too expensive to bother with&#8221; becomes a Tuesday.</p><p>That is the lever. It is quieter than the demos suggest and more consequential. It does not make your existing plan faster. It changes which plan is worth having, which means it reaches straight back into the architecture body and the team body, the same coupling Issue 3 was about. Treat the model as a faster autocomplete and you will use a build lever to shave minutes off typing, which is roughly using a forklift to carry your lunch.</p><h2>The model as an architectural mirror</h2><p>The second thing a model in the loop does is show you your architecture, whether you asked or not.</p><p>A model can only act where your system lets it act. Point it at a clean seam with a real contract, and it moves: it reads the boundary, does the work, hands back something you can ship. Point it at a tangle where the batch job, the shared database, and the nightly cron all reach into each other, and it stalls, hedges, or invents. It cannot find the edge of the thing you are asking it to change, because there is no edge.</p><p>So where the model reliably fails, it is usually not failing. It is reflecting. A model that keeps getting the same file wrong is often telling you that file does three jobs. That is Conway&#8217;s law with a faster feedback loop: <a href="https://www.melconway.com/Home/Committees_Paper.html">Melvin Conway said in 1968 that a system&#8217;s design mirrors the communication structure that built it</a>, and now the mirror talks back in an afternoon instead of a reorg. The model reads your architecture the way an honest new hire reads it, out loud, on day one, without the tact. Most teams experience that as the AI being bad at their codebase. It is worth asking, at least once, whether the AI is being accurate about their codebase.</p><h2>The wall chart of the future cannot tell you</h2><p>There is a genuinely useful map of this territory, and I want to credit it before I argue with it. <a href="https://doi.org/10.1145/3788879">Amalfitano and ten co-authors, in a 2026 ACM TOSEM roadmap</a>, sort GenAI in software engineering along two honest questions: what is being augmented (your process or your product), and how autonomous it is (does it wait for you, or act on its own). </p><p>That gives four clean forms, the <strong>Copilot</strong>, <strong>GenAIware</strong>, the <strong>Teammate</strong> and the <strong>Robot</strong>. As a shared vocabulary that beats the usual &#8220;AI for SE&#8221; hand-waving, and I will happily use it.</p><p>Then the same paper closes with ten predictions for 2030, and the precision is where it gets funny. </p><ul><li><p>70% of boilerplate autonomously generated</p></li><li><p>&#8220;Prompt Architect&#8221; a certified job title</p></li><li><p>40% of job postings requiring it</p></li><li><p>20% of teams in regulated industries carrying a dedicated role. </p></li></ul><p>These are not ranges or scenarios. They are two-significant-figure forecasts for a field that cannot reliably tell you what next quarter&#8217;s model will cost. And in the acknowledgments, the authors note the predictions were brainstormed with Claude Sonnet 4.5, off a literature review filtered by two other models. A roadmap for GenAI in software, whose boldest numbers were generated by GenAI. </p><p>The taxonomy is real work, so I say this without malice: the map of the future is cheap to generate and getting cheaper, and it will never tell you whether the model is in your loop this week.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5izl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5izl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png 424w, https://substackcdn.com/image/fetch/$s_!5izl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png 848w, https://substackcdn.com/image/fetch/$s_!5izl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!5izl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5izl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png" width="1456" height="977" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:977,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6940742,&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://writing.tilinthecloud.com/i/208843610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.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_!5izl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png 424w, https://substackcdn.com/image/fetch/$s_!5izl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png 848w, https://substackcdn.com/image/fetch/$s_!5izl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!5izl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9daf315c-bbb5-41a9-adce-10957a38dc69_2528x1696.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 aria-hidden="true" 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><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></p><p>The gap between present and in-the-loop shows up one layer down too. Moonshot just released Kimi K3 with open weights, and plenty of people read &#8220;open weights&#8221; as &#8220;we can run this ourselves now.&#8221; </p><p>The weights are about 1.5 terabytes and need multiple top-end GPU nodes to serve. Downloadable, yes. Runnable on your very expensive macbook or even a server under your table, no.</p><p>And a model can top the public leaderboard and still not be the one a team ships with, because fit to the actual work, the cost of a wrong answer, and where it sits in the pipeline decide more than the benchmark does.</p><p>Route the cheap work to the cheap model, keep the expensive judgment where it earns its keep, and stop confusing a model you can name with a model that is doing your job.</p><p>Present is not in the loop, at the model layer and the org layer both.</p><h2>The one number</h2><p>So how do you tell present from in-the-loop without a slide? One number: the acceptance rate of the model&#8217;s work. The share of what it produces that you ship without a human redoing it.</p><p>Not seats. Not tokens burned. Not &#8220;queries this month,&#8221; which measures that people opened the tool, not that the tool did the job. Usage is the vanity metric of AI adoption - it goes back to when we started doing BI dashboards and competed which teams had more. </p><p>Acceptance is the outcome. A usage dashboard tells you the treadmill is plugged in. Acceptance rate tells you whether anyone is running.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BUdZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BUdZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png 424w, https://substackcdn.com/image/fetch/$s_!BUdZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png 848w, https://substackcdn.com/image/fetch/$s_!BUdZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!BUdZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BUdZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png" width="1456" height="977" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:977,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6896248,&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://writing.tilinthecloud.com/i/208843610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.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_!BUdZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png 424w, https://substackcdn.com/image/fetch/$s_!BUdZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png 848w, https://substackcdn.com/image/fetch/$s_!BUdZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.png 1272w, https://substackcdn.com/image/fetch/$s_!BUdZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a546477-a106-4f97-b14a-edd2533ffd53_2528x1696.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 aria-hidden="true" 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><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is not just my framing. <a href="https://www.sigplan.org/OpenTOC/maps22.html">Albert Ziegler and colleagues, in &#8220;Productivity Assessment of Neural Code Completion&#8221; (MAPS 2022, expanded in Communications of the ACM in 2024)</a>, found that the acceptance rate of a model&#8217;s suggestions predicted developers&#8217; own sense of productivity better than the other metrics they measured. The thing you keep is the thing that counts.</p><p>Which is why the one number I carry from the earlier issues is an acceptance number. That manual review step that went from roughly 8% machine-handled to 80% was never &#8220;the model was consulted 80% of the time.&#8221; It was 80% of cases closed by the model&#8217;s output and shipped, no human redoing the work. The 72 points between those two states is the model moving from in-the-room to in-the-loop on that one step. Had the number instead been &#8220;80% of reviewers now have the AI tool open,&#8221; we would have been measuring furniture and calling it transformation.</p><h2>Run the in-the-loop test on your own pipeline</h2><p>You can tell present from in-the-loop in about 3 questions.</p><ol><li><p>Can you say your acceptance rate today, for one real step, as a number? If the only figures you have are seats and logins, you are measuring the room, not the loop.</p></li><li><p>Where the model stalls, is that a model limit or an architecture seam? Point it at your worst file and watch. If it keeps missing, the file is probably doing three jobs, and the model just told you which three.</p></li><li><p>What would you ship from the model without redoing it? If the honest answer is &#8220;nothing yet,&#8221; the model is present, and you have a build-lever and a mirror problem to fix before you have an AI capability.</p></li></ol><p>Run it on your own pipeline before the next planning cycle, not on a vendor&#8217;s demo after.</p><blockquote><p><strong>A model is in the loop only where you ship its work without redoing it. Everything else is furniture with a login.</strong></p></blockquote><h2>Coming up</h2><p>Next week, the body nobody puts a number on: the team. What the org chart has to give up for the model to stay in the loop, and why an acceptance rate that climbs for a quarter and then quietly slides back is almost always a team-shape problem wearing a model costume.</p><p>More soon. :-]</p><h2>Sources</h2><p>Because none of this comes only from my head. Every link checked.</p><ul><li><p>The taxonomy and the 2030 predictions: Domenico Amalfitano, Andreas Metzger, Marco Autili, Tommaso Fulcini, Tobias Hey, Jan Keim, Patrizio Pelliccione, Vincenzo Scotti, Anne Koziolek, Raffaela Mirandola, and Andreas Vogelsang, &#8220;<a href="https://doi.org/10.1145/3788879">A Research Roadmap for Augmenting Software Engineering Processes and Software Products with Generative AI</a>&#8220; (<em>ACM Transactions on Software Engineering and Methodology</em>, 2026). Peer-reviewed. The four forms are in the classification section; the ten predictions and the note that they were brainstormed with Claude Sonnet 4.5 are in the concluding section and acknowledgments.</p></li><li><p>Acceptance rate as the signal: Albert Ziegler, Eirini Kalliamvakou, and colleagues, &#8220;<a href="https://www.sigplan.org/OpenTOC/maps22.html">Productivity Assessment of Neural Code Completion</a>&#8220; (Proceedings of MAPS 2022, the 6th ACM SIGPLAN International Symposium on Machine Programming), expanded as &#8220;Measuring GitHub Copilot&#8217;s Impact on Productivity&#8221; (<em>Communications of the ACM</em> 67, no. 3, 2024, pp. 54-63). Peer-reviewed.</p></li><li><p>The org mirror: Melvin E. Conway, &#8220;<a href="https://www.melconway.com/Home/Committees_Paper.html">How Do Committees Invent?</a>&#8220; (<em>Datamation</em>, 1968). The origin of Conway&#8217;s Law.</p></li><li><p>Kimi K3 open weights and hardware footprint: Moonshot AI&#8217;s Kimi K3 open-weights release (July 2026), reported by <a href="https://theweek.com/tech/kimi-k3-moonshot-chinese-ai-firm-anthropic-openai">The Week</a> and others; the roughly 1.5 TB weight size and multi-node serving requirement come from the release and deployment coverage. Vendor release and press, not peer-reviewed.</p></li></ul><p style="text-align: center;"></p><p style="text-align: center;"><em>I make this Substack thanks to readers like you!</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Steer, don't sequence]]></title><description><![CDATA[Architecture, teams, and AI capability pull on each other like three gravitating masses. You do not sequence a system like that. You steer it.]]></description><link>https://writing.tilinthecloud.com/p/steer-dont-sequence</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/steer-dont-sequence</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 21 Jul 2026 07:31:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BQJC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The roadmap is on the wall and it looks responsible. Modernization this year. The reorg next year, once the platform is stable. The AI program the year after, once the teams have settled. Three neat bars, three budgets, three owners and a logic any board would wave through.</p><p>It is wrong before the first bar starts. Not because the order is wrong, but because there is no right order.</p><p>The three things on that wall are not three projects waiting their turn. They are one big sociotechnical system, and each part pulls on the other two the moment it moves.</p><p><a href="https://writing.tilinthecloud.com/p/one-program-not-three">Issue 1 named the failure: sequencing is the trap</a>. </p><p><a href="https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native">Issue 2 named the destination: AI-native, not AI-ready,</a> and you buy AI-ready by default. </p><p>This is the machinery underneath both. The three bodies themselves, what each one is, and what &#8220;moving together&#8221; looks like on a real roadmap instead of a slide.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><p>No kit this week. Just the machinery, and the standing ask: if you have run one of these, subscribe and tell me where I am wrong.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BQJC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BQJC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!BQJC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!BQJC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!BQJC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BQJC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:314280,&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://writing.tilinthecloud.com/i/207801017?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.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_!BQJC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!BQJC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!BQJC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!BQJC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3563e5-1b30-46fb-a936-f6aef0b8f738_1200x675.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 aria-hidden="true" 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><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Why three bodies, not three projects</h2><p>Borrow the name honestly. In celestial mechanics, two bodies under gravity have a clean solution: you can write down where they will be forever. Add a third and it collapses. Henri Poincar&#233; showed in the 1890s that the three-body problem has no general closed-form solution. Each mass pulls on the other two continuously, so you cannot compute one path while holding the others still. This is settled mathematics, not a metaphor I am stretching, and it is why we fly spacecraft through these systems with continuous course corrections instead of one equation.</p><p>That is your transformation. The three bodies are the architecture (the system you are rebuilding), the teams (the org that owns it: topology, cognitive load, decision rights), and the AI capability (what the model now makes buildable, and how it reshapes the other two). Move one and the other two move, whether you planned for it or not. Rebuild the platform and the team that owned the old one is now shaped for a system that no longer exists. Put a model in the loop and what is even worth building changes, and the team shape with it.</p><p>Sequencing assumes you can freeze two bodies while you work the third, then unfreeze them. <strong>You cannot</strong>. Nothing holds still while you take your turn.</p><h2>Body one: the architecture</h2><p>These are your systems being constantly stressed and rebuilt, and it is the one everyone books first because it feels like the foundation. It is also the one that yanks the other two hardest. A real modernization does not just swap the runtime. It changes where work happens, which means the team that grew up around the old system is now organized for a shape that no longer exists, and the AI you were going to add later suddenly has a very different surface to attach to. You cannot finish this body and hand a stable artifact to the next program. The moment it moves, it has already reached into the other two.</p><h2>Body two: the teams</h2><p><a href="https://www.melconway.com/Home/Committees_Paper.html">Melvin Conway said it in 1968 and it has never stopped being true</a>: a system&#8217;s design mirrors the communication structure of the org that built it. Move the architecture and leave the org boxes where they were, and the old structure quietly pulls the new system back into its shape. This is the reorg that does not take, the one that gets celebrated at launch and reverts by the next quarter.</p><p><a href="https://teamtopologies.com/book">Team Topologies (Matthew Skelton and Manuel Pais, 2019)</a> gives this a handle: organize teams around the flow of the work and manage cognitive load deliberately, or the load lands on people anyway, uninvited. The team body is not an HR exercise you run after the platform ships (or worse, an excuse for a reorg). It is the difference between a system that holds and one that erodes back into the org chart that predates it.</p><h2>Body three: the AI capability</h2><p>The third body is not a library you consult. It is a capability in the loop where the work actually happens, in how code gets written and reviewed, how a platform validates itself, what a team can take on. And it does not sit politely inside the box you drew for it in FY3. It reshapes the other two. It changes what is worth building at all (that is the architecture body moving again) and how many hands a thing takes (that is the team body moving again). Bolt it on at the end and you get AI-ready: a structure that can hold AI, sitting next to a system that never changed to use it. Put it in the loop from the start and it pulls its weight, and pulls on everything else.</p><h2>Moving together is a verb, not a Gantt chart</h2><p>Here is the part the wall chart cannot show. Steering three coupled bodies does not look like three bars in a row. It looks like one program that replans continuously, because every time one body moves you re-solve the other two. A platform decision changes the team plan this week, not next year. An AI capability lands and the backlog it was supposed to accelerate turns out to be the wrong backlog, so you change what you are building.</p><p>This is also why the vendor split is so expensive. Run modernization with a systems integrator, the org change with a transformation firm, and the AI with a separate consultancy, and you have handed the three coupled bodies to three parties who each optimize their own and none of whom own the coupling. They do not compound into capability. They compound into dysfunction, on three invoices. The alternative is not a bigger program. It is one operator holding all three, with no hand-offs across the seams where the pull actually happens.</p><h2>The smallest complete example, the whole thing in motion</h2><p>The cleanest version I have run looked like this. One mandate that, on a normal roadmap, would have been three projects in a line. We rebuilt a batch platform into one that ran in real time. We restructured the team around the flow of the work instead of the old function boxes. And we put a language model into a manual review step, the kind where people used to grind through a queue by hand, and took it from roughly 8% machine-handled to 80%.</p><p>Told as three programs, that is a modernization, then a reorg, then an AI pilot, each waiting on the one before it, and the review step stuck at 8% the whole time while everyone waits their turn. Told as one program, it is three bodies moving together: the platform made real-time work possible, the team shape made the platform hold, and the model in the loop was the thing that made the whole rebuild pay. Not the AI beside the process. The AI as the process, on a platform and a team reshaped to own their flow of work.</p><h2>Run the coupling test on your own program</h2><p>You can tell steering from sequencing in about three questions:</p><ol><li><p>How many budgets and owners do the modernization, the org change, and the AI sit under, and on whose timeline? Three separate ones, each with its own year: you are sequencing.</p></li><li><p>What happens to the team plan when the architecture slips a quarter? If the answer is &#8220;nothing, that is a different workstream,&#8221; the bodies are not coupled on paper, which means they will collide in practice.</p></li><li><p>When does the AI capability get to change what you build, not just how fast? If the answer is &#8220;after the platform is done,&#8221; the third body is bolted on, not in the loop.</p></li></ol><p>Run it on your own program before the next planning cycle, not on a vendor after.</p><h2>The whole thing, in one line</h2><p>You do not sequence a system whose parts pull on each other. You steer it. Together, or it does not really move at all.</p><h2>Coming up</h2><p>Next week I go hands-on inside one body, the AI capability, and what &#8220;in the loop&#8221; actually means in the delivery pipeline: the model as a build lever, the model as an architectural mirror, and the number that tells you it is working instead of just present.</p><p>More soon. :-]</p><h2>Sources</h2><p>Because none of this comes only from my head. Every link checked.</p><ul><li><p>The physics: the three-body problem&#8217;s lack of a general closed-form solution is due to Henri Poincar&#233; (1890s); a standard scholarly treatment is June Barrow-Green, <em><a href="https://bookstore.ams.org/hmath-11/">Poincar&#233; and the Three Body Problem</a></em> (American Mathematical Society, 1997). Scholarly / peer-reviewed.</p></li><li><p>The org mirror: Melvin E. Conway, &#8220;<a href="https://www.melconway.com/Home/Committees_Paper.html">How Do Committees Invent?</a>&#8220; (<em>Datamation</em>, 1968). The origin of Conway&#8217;s Law.</p></li><li><p>The team body: Matthew Skelton and Manuel Pais, <em><a href="https://teamtopologies.com/book">Team Topologies</a></em> (IT Revolution, 2019). Practitioner book, not peer-reviewed.</p></li><li><p>The operating-model failure mode (callback to Issue 2): Mik Kersten, <em><a href="https://itrevolution.com/product/output-to-outcome/">Output to Outcome</a></em> (IT Revolution, 2026). Practitioner book.</p></li></ul><p></p><p style="text-align: center;"><strong>I make this Substack thanks to readers like you!</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[AI-ready is not AI-native]]></title><description><![CDATA[Most AI transformations buy a structure that can hold AI, call it one built around AI and pay AI-native money for the privilege.]]></description><link>https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/ai-ready-is-not-ai-native</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 14 Jul 2026 11:38:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!H-dD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Somewhere right now, last year&#8217;s AI program is getting its victory lap in a conference room.</p><p>The internal assistant answers a question about the travel policy. The &#8220;AI knowledge base&#8221; comes up on the big screen and people are genuinely proud of it. A slide says the pilots will save 4k hours/year and that number came out of the vendor&#8217;s ROI calculator, which has never met this company&#8217;s actual work and is therefore free to be optimistic.</p><p>And the delivery pipeline, the thing that turns an idea into software running in production, has not changed a single stage since before any of this was bought.</p><p>That company is AI-ready. It believes it is AI-native. The real story of the program is not whether the AI works, it is that nothing about how the company operates changed around it.</p><p>Last week I closed with a tell: if your proudest AI artifact is a reference library and your pipeline has not changed a stage, you already know which one you bought. This is that essay, the one Issue 1 existed to set up: </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;ddd6ad36-475f-4244-96cc-8d4aa94eb400&quot;,&quot;caption&quot;:&quot;There is a moment in a platform rebuild where you can watch the whole idea of this newsletter happen on one screen.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;One program, not three&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:234944012,&quot;name&quot;:&quot;Thiago de Faria&quot;,&quot;bio&quot;:&quot;Recovering CTO who still writes the code. Modernization, teams, and AI as one program, not three. I write about tech leadership dysfunction, with kindness as the operating principle.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5e8fded-fe2a-407f-8a36-2376b1cc05e5_800x800.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-07-07T07:03:09.634Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!tye4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://writing.tilinthecloud.com/p/one-program-not-three&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:205213874,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:9423595,&quot;publication_name&quot;:&quot;The Recovering CTO&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!uJrf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5e8fded-fe2a-407f-8a36-2376b1cc05e5_800x800.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><p>No kit this week either. Just the argument, and the standing ask: if you have run one of these programs, subscribe and tell me where I am wrong. The interesting version of this idea is the one that survives contact with your actual estate.</p><h2>AI-ready is what the money buys by default</h2><p>I keep walking into the same project. A company decides this is the year of AI. It buys the licenses, stands up an internal assistant, writes the knowledge base, runs a few pilots, and puts a number on a slide. On paper it is an AI company now. The paper is doing a lot of work.</p><p>Underneath, the operating model is exactly what it was the year before. The estate is the same. The way work moves from idea to production is the same. The AI is sitting next to the system, not inside it.</p><p>That is AI-ready: a structure that can accommodate AI. It is not nothing. The licenses are real, the assistant answers questions, the knowledge base is genuinely tidy. But it is not what the buyer thought they were paying for, and it is not where the value is.</p><h2>AI-native is a difference in kind, not degree</h2><p>AI-native is an operating model built around AI as a live capability in the workflow. The model is in the loop where the work actually happens: in how code gets written and reviewed, how decisions get made, how the platform validates itself. Not a library you consult. A capability you run.</p><p>A word on the words, because a book already uses some of them. I am not trying to claim &#8220;AI-native&#8221; as mine. Melissa Reeve&#8217;s <em><a href="https://itrevolution.com/product/hyperadaptive/">Hyperadaptive: Rewiring the Enterprise to Become AI-Native</a></em> (IT Revolution, May 2026) is built on the term, and plenty of vendors have discovered it fits nicely on a homepage. The term is cheap. The how is scarce. Own the how, not the label.</p><h2>Mik Kersten just gave this failure its proper name</h2><p>Mik Kersten&#8217;s new book, <em><a href="https://itrevolution.com/product/output-to-outcome/">Output to Outcome: An Operating Model for the Age of AI</a></em> (IT Revolution), is out today, and it lands squarely on the mechanism: organizations get very good at producing output and never move the outcome.</p><p>AI-ready is that failure with a bigger invoice. You ship more output than ever, an assistant, a knowledge base, a dozen pilots, and the outcome the business actually feels sits exactly where it sat the year before. The victory-lap meeting is a celebration of output. The outcome was not invited.</p><p>When I talked to Mik about this essay, he pointed me at Chapter 7, &#8220;Matrix to Modularity&#8221;, and he was right to. It is this argument run from the organizational end. &#8220;AI and agentic solutions can create tremendous output, especially when working within modular structures,&#8221; he writes. Most incumbents are not modular. They are a matrix of dependencies, dotted reporting lines, and meeting cadences layered over meeting cadences, and the AI gets bolted onto exactly that.</p><p>His answer is a concept called sociotechnical congruence: design the organizational structure and the technical structure to fit each other, on purpose, because &#8220;even with the best architectural intentions, a tangled organizational structure will create a tangled technical architecture.&#8221; Readers of Issue 1 will recognize this. The sociotechnical wiring I complained was missing from the operating-model textbooks just showed up in one. It went on sale this morning.</p><p>Kersten has been pulling on this thread since <em>Project to Product</em>, and this is the sharpest frame I have found for why that meeting feels so hollow. If you are going to read one book on the operating-model side of AI this quarter, make it this one.</p><h2>Sequencing is how you buy AI-ready twice</h2><p>The reason most transformations land on AI-ready is that they sequence. Modernize the architecture this year. Reorganize the teams next year. Add AI on top after that. Three programs, three budgets, three sets of consultants, each a success on its own terms. And AI-native falls out the bottom, because by the time the AI arrives, the architecture it lands on is a year stale and the teams are still shaped for the old flow.</p><p>You do not get to AI-native by sequencing. The architecture, the teams, and the AI capability pull on each other. Change the architecture and the teams that own it have to change. Put AI in the loop and what is even worth building changes again, and the team shape with it. They move together or they do not really move at all.</p><p>For a European buyer the framing that matters is cost and risk, not growth. The cost of AI-ready that looks AI-native is the second migration. You spend the budget, you get the assistant and the knowledge base, and eighteen months later the same gap is still open, because the operating model never moved. Then you pay again. The expensive path is not doing the three together. The expensive path is doing them one at a time and discovering you have to redo the first by the time you reach the third.</p><h2>The smallest complete example I have</h2><p>The cleanest version of the alternative I have run looked like this: one mandate that, on a normal roadmap, would have been three projects. We rebuilt the data platform, restructured the team around the flow of the work rather than the old function boxes, and put an LLM into the validation step where analysts used to grind through a queue by hand.</p><p>On a good engagement, that one-pass version is the difference between a grinding manual step running at roughly 8% machine-handled and the same step at 80%. Sequenced, it stays at 8% three times in a row, once per budget.</p><p>Not three projects in a line. One. The AI was not beside the process. It was the process, on a platform and a team that had been reshaped to hold it. That is AI-native in miniature.</p><h2>The five-minute tell, ready to run</h2><p>You can spot AI-ready pretending to be AI-native in about five minutes. Three questions, and you can ask them in any order:</p><ol><li><p><strong>Ask to see the proudest AI artifact.</strong> If it is a knowledge base or a reference kit, mark it.</p></li><li><p><strong>Ask what changed in the delivery pipeline since the AI program started.</strong> Same stages, same hand-offs, same lead time: mark it.</p></li><li><p><strong>Ask where the ROI number came from.</strong> A generic calculator instead of a measured before-and-after on real work: mark it.</p></li></ol><p>Three for three and you bought the structure, not the capability.</p><p>Run it on your own shop before the next AI budget goes out, not on a vendor after. It is less fun that way, and considerably more useful.</p><h2>The whole distinction, in one line</h2><p>AI-ready is a structure that can hold AI. AI-native is an operating model built around it. The invoice looks the same. The year after does not.</p><p>The good news is that the fix is not more AI. It is moving the three bodies, the architecture, the teams, and the AI capability, at once.</p><h2>Coming up</h2><p>Next week I open up the machinery: the three bodies themselves. What each one actually is, what &#8220;moving together&#8221; looks like on a real roadmap instead of a slide, and one concrete example of the whole thing in motion.</p><p>More soon. :-]</p><h2>Sources</h2><p>Because none of this comes only from my head. Every link was checked.</p><ul><li><p><strong>The frame:</strong> Mik Kersten, <em><a href="https://itrevolution.com/product/output-to-outcome/">Output to Outcome: An Operating Model for the Age of AI</a></em> (IT Revolution, 2026), released 14 July 2026. Quotes are from Chapter 7, &#8220;Matrix to Modularity&#8221;, in the Kindle edition. His earlier <em><a href="https://itrevolution.com/product/project-to-product/">Project to Product</a></em> (IT Revolution, 2018) started the thread.</p></li><li><p><strong>The term:</strong> Melissa M. Reeve, <em><a href="https://itrevolution.com/product/hyperadaptive/">Hyperadaptive: Rewiring the Enterprise to Become AI-Native</a></em> (IT Revolution, 2026).</p></li></ul><p>Both are practitioner books, not peer-reviewed research. That is fine. So are these field notes.</p><p></p><p style="text-align: center;">I make this Substack thanks to readers like you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></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_!H-dD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H-dD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!H-dD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!H-dD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!H-dD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H-dD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:315130,&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://writing.tilinthecloud.com/i/207001025?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.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_!H-dD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!H-dD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!H-dD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!H-dD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45354b81-ea55-4215-9435-3c69c5dead19_1200x675.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 aria-hidden="true" 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><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>]]></content:encoded></item><item><title><![CDATA[One program, not three]]></title><description><![CDATA[Architecture modernization, teams and AI move together, or you pay for the same migration twice.]]></description><link>https://writing.tilinthecloud.com/p/one-program-not-three</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/one-program-not-three</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Tue, 07 Jul 2026 07:03:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tye4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a moment in a platform rebuild where you can watch the whole idea of this newsletter happen on one screen.</p><p>An analyst opens a validation queue every morning and works it by hand. Check the figure, check the source, flag the ones that smell wrong, escalate the rest. Skilled work, and most of it deadening.</p><p>I got to take that apart in different customers. We rebuilt the platforms underneath it, restructured the teams around the flow of the work instead of the old function boxes, and use AI when needed while prioritizing good software engineering practices. And not a single time we managed to fully automate the processes... we could speed up things, reduce toil... and that is what I want to keep on doing.</p><p>Here is the part that matters, and it is not the model.</p><p>It never was only about three projects, but always about 1 mandate. Rebuild the systems, reshape the teams that owns it, put AI in the loop when it makes sense and where the work actually happens, all at once&#8230; because any one of them alone moves the number by roughly nothing.</p><p>Everyone wants to talk about the GenAI model (&#8220;<em>open weights is better, while the new claude/gemini/anthropic is this and that&#8221;</em>) ... but that is the easy part. The hard part, the part that on a good engagement moves a grinding manual step from roughly 8% handled by a machine over 1 week of work to 80% automagically going in 2h, was that the platform, the team and the model were built to fit each other in a single pass. Do those in sequence, a year apart, three budgets and three sets of consultants, and you get three tidy successes and a number that never budges.</p><p>That gap is the thing I keep coming back to. It is the whole reason for this.</p><h2>Who is writing this</h2><p>I am Thiago. Twenty years ago I was a statistician in Brazil, then a data scientist, a DBA, a software engineer, data engineer, a hands-on architect, then a CTO&#8230; these days a recovering CTO who still writes the code and knows that systems design while keeping myself at the trenches is what makes me happy. The recovering part is that I have run orgs internally, sat as interim head of _fill the gap_, been on the hook for the quarterly number and still never managed to fully close the loop only with tech.</p><p>Most of my recent years went into modernization and into getting generative AI into how software actually gets built, not into slides about how software might one day get built.</p><p>This is issue one. Every week I am going to work one problem out loud here: architecture modernization, team design, and AI capability as a single program, written by someone still in the code and not narrating it from a stage.</p><p>No downloadable kit this week. No five-box framework in a tidy PDF. Just the argument, and an ask. If you have lived this, subscribe and tell me where I am wrong. That is not a growth tactic, it is genuinely half the point, because the interesting version of this idea is the one that survives contact with your actual estate.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><h2>Everybody already has an operating model. Almost nobody wrote it down.</h2><p>Every company I walk into already has an operating model, whether or not anyone calls it that. It is just how IT creates and delivers value: who owns what, how work moves from an idea to something running in production, where the decisions actually get made versus where the org chart says they do.</p><p>Most companies never wrote it down. The ones that did wrote a box diagram, and the box diagram has not been opened since the offsite where it was drawn.</p><p>None of that is wrong, exactly. It is just not the part that decides whether you ship. The part that decides is whether the architecture, the teams, and the AI capability were built to fit each other, or merely filed in the same org chart and left to work it out.</p><h2>The textbooks are winging it too</h2><p>I went and read the research on this properly, because I wanted to know whether the academics had a cleaner answer than I did.</p><p>They do not, and I can point you to the receipt.</p><p>In 2025, <a href="https://doi.org/10.1080/10580530.2025.2513305">Suleman, Pekkola, Ralyt&#233; and Ahola</a> published a systematic review in <em>Information Systems Management</em> that went through 77 academic and consulting sources hunting for an agreed definition of the IT operating model. It came back without one. The number of components the thing is supposed to have swings from four to thirteen, depending mostly on which consultancy is holding the pen. It is open access, so you do not have to take my word for it: the link is in the Sources at the bottom, go argue with it yourself.</p><p>The people whose actual job is to define this cannot agree on what it is or how many pieces it has. I find that oddly reassuring. If you have ever sat in a transformation kickoff quietly unsure what &#8220;operating model&#8221; meant in that room, relax: neither does the literature.</p><h2>They drew the box. They skipped the wiring.</h2><p>Here is the more useful finding from that same review, and it is the one that explains your last reorg.</p><p>The research treats the operating model as a structure. Decision-rights grids. Boxes for standardization versus integration. Who reports to whom. All of it about shape.</p><p>The one principle that would make the thing actually work is mostly missing: designing the technical side and the human side to fit each other, on purpose, at the same time, instead of optimizing one and inheriting the other. That idea is not mine either. It is called joint optimization, and it has been around since <a href="https://journals.sagepub.com/doi/10.1177/001872675100400101">Trist and Bamforth&#8217;s coal-mining studies</a> in 1951. Somehow it never explicitly made it from the sociotechnical-systems literature into the operating-model textbooks. Tune the tech, take the team as given. Or reshuffle the team, leave the systems where they were. Either way you optimized one subsystem and let the other one ride along as a hostage.</p><p>That is why the last reorg did not take. You moved the boxes and the systems stayed exactly where they were. And it is why the AI pilot is sitting next to the work instead of inside it, technically running, in the sense that a treadmill in a spare room is technically a gym.</p><p>There is one idea the academics keep underusing that every engineer already lives: your system ends up shaped like your org chart. Conway named it in 1968, in a paper literally titled <a href="https://www.melconway.com/research/committees.html">&#8220;How Do Committees Invent?&#8221;</a>. Skelton and Pais turned it into a practice in <em><a href="https://teamtopologies.com/book">Team Topologies</a></em>. Org structure and system architecture are the same problem, which is exactly why you cannot move one and expect the other to hold still.</p><h2>On AI, the theory has not shown up yet</h2><p>Now put AI into that picture, and it gets funnier.</p><p>The most cited frameworks for an AI-era operating model are not peer-reviewed. MIT CISR put out a <a href="https://cisr.mit.edu/publication/2025_1201_EntITOperatingModels_ThorogoodWoerner">research briefing</a> on it in late 2025 (Thorogood and Woerner, &#8220;Enterprise IT Operating Models in the AI Era&#8221;). The fashionable &#8220;agentic operating model&#8221; comes from a 2026 <em><a href="https://cmr.berkeley.edu/2026/03/governing-the-agentic-enterprise-a-new-operating-model-for-autonomous-ai-at-scale/">California Management Review</a></em><a href="https://cmr.berkeley.edu/2026/03/governing-the-agentic-enterprise-a-new-operating-model-for-autonomous-ai-at-scale/"> Insights column</a> (Saini, &#8220;Governing the Agentic Enterprise&#8221;), which is editor-screened online commentary, not a peer-reviewed journal article. Both are thoughtful. Both are essentially field notes with good production values. Nobody has settled research on how AI actually reshapes the operating model. Practice is ahead of theory here, which is a generous way of saying we are all making it up, and the only real difference is who is keeping honest notes.</p><p>That greenfield is exactly what this newsletter walks into.</p><p>And it matters more than it sounds, because AI does not stay a tool for long. It becomes an actor in how your organization operates.</p><p>When Air Canada&#8217;s chatbot confidently invented a bereavement-fare policy that did not exist, the airline&#8217;s defense at tribunal was that the chatbot was &#8220;a separate legal entity responsible for its own actions.&#8221; They lost (<em><a href="https://www.canlii.org/en/bc/bccrt/doc/2024/2024bccrt149/2024bccrt149.html">Moffatt v. Air Canada</a></em><a href="https://www.canlii.org/en/bc/bccrt/doc/2024/2024bccrt149/2024bccrt149.html">, 2024 BCCRT 149</a>, if you want to watch a tribunal politely decline to believe a company). They paid about 812 Canadian dollars, plus the legal time, which I promise cost more than that.</p><p>The lesson is not that the chatbot was dumb. The lesson is that when AI becomes part of how your operating model runs, the accountability does not get to spin off into a separate legal entity. It is still yours. You have quietly hired a coworker who can commit the company to things, cannot be fired, and will never once feel bad about it. Deciding where that coworker sits, and what it is allowed to promise, is an operating-model question. It is not a procurement one.</p><h2>Four questions to run on your own operating model</h2><p>You do not need a new framework for this. You need four honest answers about your own shop.</p><ol><li><p>If you changed the architecture next quarter, would the teams that own it have to change shape? If the answer is no, those are not the teams that own it.</p></li><li><p>Where does your AI actually sit: in the loop where the work happens, or beside it, in a knowledge base people are proud of?</p></li><li><p>When the last reorg landed, did the systems change, or did the boxes move while the systems stayed put?</p></li><li><p>Name the number your AI moved. Not tokens processed, not seats licensed. The business number. If you cannot name it, you bought the structure, not the capability.</p></li></ol><p>If those questions sting a little, good. That is the material.</p><h2>The whole thesis, in one line</h2><p>Architecture, teams, and AI are one program, or they are three expensive rehearsals. Three moving parts, one mandate, a number at the end.</p><p>That is what I am here to work out, in public, every week, with my hands still in the code.</p><h2>Coming up</h2><p>Next week I go straight at the piece that started all of this: the difference between being AI-ready and being AI-native, and why most transformations buy the first, call it the second, and pay AI-native money for the privilege.</p><p>Quick tell before then. If your proudest AI artifact is a reference library and your delivery pipeline has not changed a single stage, you already know which one you bought.</p><p>More soon. :-]</p><h2>Sources</h2><p>Because none of this comes only from my head. Every link below was checked.</p><ul><li><p><strong>The definition problem:</strong> Suleman, Pekkola, Ralyt&#233; and Ahola, &#8220;<a href="https://doi.org/10.1080/10580530.2025.2513305">IT Operating Models: A Systematic Review of Academic and Practitioner Literature</a>,&#8221; <em>Information Systems Management</em> 43(1), 2025, 22-44. Open access, DOI 10.1080/10580530.2025.2513305.</p></li><li><p><strong>Joint optimization:</strong> Trist and Bamforth, &#8220;<a href="https://journals.sagepub.com/doi/10.1177/001872675100400101">Some Social and Psychological Consequences of the Longwall Method of Coal-Getting</a>,&#8221; <em>Human Relations</em> 4(1), 1951, 3-38, the founding sociotechnical-systems study.</p></li><li><p><strong>Conway&#8217;s Law:</strong> Melvin Conway, &#8220;<a href="https://www.melconway.com/research/committees.html">How Do Committees Invent?</a>,&#8221; <em>Datamation</em>, 1968. Turned into a practice in Matthew Skelton and Manuel Pais, <em><a href="https://teamtopologies.com/book">Team Topologies</a></em> (IT Revolution, 2019).</p></li><li><p><strong>AI-era frameworks (not peer-reviewed):</strong> Thorogood and Woerner, &#8220;<a href="https://cisr.mit.edu/publication/2025_1201_EntITOperatingModels_ThorogoodWoerner">Enterprise IT Operating Models in the AI Era</a>,&#8221; MIT CISR Research Briefing XXV-12, December 2025; Sandeep Saini, &#8220;<a href="https://cmr.berkeley.edu/2026/03/governing-the-agentic-enterprise-a-new-operating-model-for-autonomous-ai-at-scale/">Governing the Agentic Enterprise: A New Operating Model for Autonomous AI at Scale</a>,&#8221; <em>California Management Review</em> Insights, March 2026.</p></li><li><p><strong>Air Canada&#8217;s chatbot:</strong> <em><a href="https://www.canlii.org/en/bc/bccrt/doc/2024/2024bccrt149/2024bccrt149.html">Moffatt v. Air Canada</a></em>, 2024 BCCRT 149 (British Columbia Civil Resolution Tribunal); the airline was ordered to pay 812.02 Canadian dollars in total (650.88 damages, plus interest and fees).</p></li></ul><p></p><p style="text-align: center;">I make this Substack thanks to readers like you!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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://writing.tilinthecloud.com/subscribe?"><span>Subscribe now</span></a></p><p style="text-align: center;"></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tye4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tye4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!tye4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!tye4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!tye4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tye4!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:316119,&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://writing.tilinthecloud.com/i/205213874?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tye4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!tye4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!tye4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!tye4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F693369bd-c14a-4de4-9b58-e2dafcd58507_1200x675.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 aria-hidden="true" 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><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>]]></content:encoded></item><item><title><![CDATA[Start here]]></title><description><![CDATA[What The Recovering CTO is about, and what to expect.]]></description><link>https://writing.tilinthecloud.com/p/start-here</link><guid isPermaLink="false">https://writing.tilinthecloud.com/p/start-here</guid><dc:creator><![CDATA[Thiago de Faria]]></dc:creator><pubDate>Mon, 08 Jun 2026 11:12:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xGZx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.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_!xGZx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xGZx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!xGZx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!xGZx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!xGZx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xGZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:299217,&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://tilinthecloud.substack.com/i/201127054?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.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_!xGZx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!xGZx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!xGZx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!xGZx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd946de0e-01d0-4d15-b617-a2d0dfa3bed3_1200x800.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 aria-hidden="true" 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><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></p><p>I help companies modernize their architecture. They want to talk about Kubernetes. I end up explaining why Kate is burned out at 0.25 FTE across four workstreams.</p><div class="pullquote"><p>Technical problems are rarely the actual problems.</p></div><p>I&#8217;m a recovering CTO who still writes the code. TilinTheCloud is an independent practice where modernization, team redesign, and GenAI adoption run as one program, not three. I call it the Three-Body Program: architecture, teams, and AI capability, moving together. Most enterprises run them as three separate tracks, and the gaps between them are where the program stalls. This newsletter is where I think out loud about closing those gaps.</p><div><hr></div><p><strong>What to expect (roughly once a week)</strong></p><ul><li><p>How modernization, team design, and AI actually move together, and what breaks when you sequence them instead.</p></li><li><p>Field notes from someone still in the terminal, not just the boardroom. Every claim anchored to something hands-on, with a number on the outcome.</p></li><li><p>The occasional satirical interview with a clueless executive who genuinely believes &#8220;platform engineering&#8221; is something you can purchase.</p></li></ul><p>Twenty years from statistician to CTO to hands-on architect. I&#8217;ve run these programs from the inside at GRESB, Nike, with LINKIT, and from the CTO seat.</p><p>The common thread? Kindness. Not as a values slide. As an operating principle. You can&#8217;t optimize systems while measuring humans in decimal points.</p><p>If your architecture is six months ahead of your teams and your GenAI strategy is a deck instead of a system, you&#8217;ll feel at home here. Subscribe and let&#8217;s talk.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://writing.tilinthecloud.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 The Recovering CTO! 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><p></p>]]></content:encoded></item></channel></rss>