<?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[please don't deploy]]></title><description><![CDATA[Insights from someone who's operated across the full stack of building tech start-ups: product decisions, growth tactics, org design, technical choices. Written from the trenches, for those who do the work.]]></description><link>https://www.pleasedontdeploy.com</link><image><url>https://substackcdn.com/image/fetch/$s_!IXuX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf93616-212c-42d1-b36f-fbf62ff30a59_1280x1280.png</url><title>please don&apos;t deploy</title><link>https://www.pleasedontdeploy.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 08 Apr 2026 00:52:26 GMT</lastBuildDate><atom:link href="https://www.pleasedontdeploy.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ez.-]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[harlequinetcie@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[harlequinetcie@substack.com]]></itunes:email><itunes:name><![CDATA[Ez.-]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ez.-]]></itunes:author><googleplay:owner><![CDATA[harlequinetcie@substack.com]]></googleplay:owner><googleplay:email><![CDATA[harlequinetcie@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ez.-]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Your first AI-native IC will be a manager]]></title><description><![CDATA[tl;dr: The art of management lies in the capacity to select from the many activities, the one, two or three that provide leverage well beyond the others and focus solely on those.]]></description><link>https://www.pleasedontdeploy.com/p/your-first-ai-native-ic-will-be-a</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/your-first-ai-native-ic-will-be-a</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Tue, 07 Apr 2026 13:21:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rhZE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every week I hold a 1:1 with a Tech leader I never met previously. My personal objective in those calls is to give back. You can call it mentoring, coaching, advising, etc. Often I learn something. This past Thursday wasn&#8217;t the exception.<br><br>A new manager joined the call, and they were excited. We talked about passive vs active organizations, system thinking, making yourself redundant, and that old document I wrote (~10 years ago!), <em><a href="https://docs.google.com/document/d/e/2PACX-1vSZAwlNkLpjWUHq7HlDXF-_ggmi1YUxkP-uwdZYQzGGfQJ5I5xKmPDakvqcYYDY5tPY5VY2PjqkiDh7/pub">To be a Tech Manager</a></em>. At that point it clicked, setting aside a few cultural points, that document is now more relevant to ICs than ever before. It&#8217;s how I, at least, have been leading my agents.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iIKl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iIKl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 424w, https://substackcdn.com/image/fetch/$s_!iIKl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 848w, https://substackcdn.com/image/fetch/$s_!iIKl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 1272w, https://substackcdn.com/image/fetch/$s_!iIKl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iIKl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png" width="706" height="297" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:297,&quot;width&quot;:706,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73648,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/193461997?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.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_!iIKl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 424w, https://substackcdn.com/image/fetch/$s_!iIKl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 848w, https://substackcdn.com/image/fetch/$s_!iIKl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 1272w, https://substackcdn.com/image/fetch/$s_!iIKl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b90c4f1-e652-40df-a148-a5f3c6cb0bb9_706x297.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The name indicates who&#8217;s overseeing the agents.</figcaption></figure></div><p>In 2026, AI native Individual Contributor has now the influence and role of at least the <em>former</em> jr. manager.</p><h2>First: Delegate ownership, not accountability</h2><p>The most basic principle, and the most forgotten one, as a leader you own the failure, and you share the success. This is the core of ownership vs accountability. <br></p><div class="pullquote"><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rhZE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rhZE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 424w, https://substackcdn.com/image/fetch/$s_!rhZE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 848w, https://substackcdn.com/image/fetch/$s_!rhZE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 1272w, https://substackcdn.com/image/fetch/$s_!rhZE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rhZE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png" width="728" height="474.88235294117646" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:621,&quot;width&quot;:952,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:378874,&quot;alt&quot;:&quot;&quot;,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!rhZE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 424w, https://substackcdn.com/image/fetch/$s_!rhZE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 848w, https://substackcdn.com/image/fetch/$s_!rhZE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 1272w, https://substackcdn.com/image/fetch/$s_!rhZE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c5ffed-401e-4df6-b77d-46f2516c4c21_952x621.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">With AI, this is the true CTO challenge. Everyone is more focused on celebrating Anthropic&#8217;s new model, than their heroes driving them. Make sure the spoils go to them. <a href="https://www.airuniversity.af.edu/Portals/10/AUPress/Books/B_0081_GOLDFEIN_SHARING_SUCCESS.PDF">&#8212; Sharing Success - Owning Failure</a>.</figcaption></figure></div></div><p>I&#8217;ve seen many inexperienced leaders fail at this in all roles. And I was a victim of some of these early in my career. They believed that someone doing their job poorly in their team justified not meeting a deadline, and that their performance was still brilliant. It wasn&#8217;t. Others would burnout taking on the heavy load from the rest of the team with a simple: &#8220;I can code faster than them&#8221;. The best ones, though, would build mechanisms in place to ensure things happened in time and manner.</p><p>Initially, they would lean heavily on choosing teammates that are &#8220;up to their standards&#8221;, they&#8217;ll invest heavily in hiring, mentoring, and firing, trying to ensure each team-member is perfect. Eventually this, even though necessary, won&#8217;t be enough. When a code-base/solution/organization grows sufficiently, smart people also need context. Onboarding becomes a challenge, and you don&#8217;t have the time to constantly train your team on what other 100 people are doing in a remote office. At that point, the answer is unequivocally &#8216;safeguards&#8217;, a.k.a. &#8216;guardrails&#8217;.</p><p>This was the thesis behind all our products at <a href="https://desplega.sh/">Desplega Labs</a>, and the first manager intuition that paid off. Every time I found myself reviewing an issue with our system, the question was: why did this happen?</p><p>Three examples that reflect on that:</p><ol><li><p><em><strong><a href="https://github.com/desplega-ai/agent-swarm">Agent swarm</a> user database.</strong></em><br><a href="https://github.com/desplega-ai/agent-swarm">Agent swarm</a> kept confusing me with Taras in our different platforms. Linear, Github, Slack, email. Even though it had definitions and relationships defined in different MDs, it struggled to keep those relationships working.<br><br>This is how our <a href="https://github.com/desplega-ai/agent-swarm/pull/287">Unified user identity system</a> came to be.</p></li><li><p><em><strong><a href="https://github.com/desplega-ai/agent-swarm">Agent swarm</a> Coordination challenge</strong></em></p><p>I found myself actually coordinating tasks way too often. Even though our <a href="https://github.com/desplega-ai/agent-swarm">swarm</a> run with different worktrees, and separate, isolated agents, the tricky part was ensuring things happened in the &#8216;correct order&#8217;.</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_!rmHY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rmHY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 424w, https://substackcdn.com/image/fetch/$s_!rmHY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 848w, https://substackcdn.com/image/fetch/$s_!rmHY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 1272w, https://substackcdn.com/image/fetch/$s_!rmHY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rmHY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png" width="533" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:533,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101906,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/193461997?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dbb0fd7-9911-4647-8c51-581f45fb5484_533x451.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_!rmHY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 424w, https://substackcdn.com/image/fetch/$s_!rmHY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 848w, https://substackcdn.com/image/fetch/$s_!rmHY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 1272w, https://substackcdn.com/image/fetch/$s_!rmHY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab64839-940f-42d5-b7e6-3e605a4ce265_533x441.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Three different overlapping tasks, organized on the fly, while two were already running.</em></figcaption></figure></div><p><br>We decided the agent leader should be more aggressive in coordinating tasks. There&#8217;s no single PR on this, it&#8217;s the system that ensures we check similar tasks happening and we coordinate internally.</p></li><li><p><em><strong>Litmus tests for all communications</strong></em><br>Every time we generated content for marketing or our users, my question was the same: is this meant for my audience?<br><br>That&#8217;s when I started implementing litmus tests for each content piece. Initially it was quite simple, one pass, one score, if bad, throw it out.<br><br>Nowadays, it&#8217;s a complex loop that can decide if we need to start from scratch and choose a completely different approach, or if it can be fixed with minor adjustments. It also has a powerful DB to avoid repeating itself, use the right tone, tags, and images according to our branding.<br><br>By the end, the work produced is &#8216;good-enough&#8217; to be reviewed weekly or even less.</p></li></ol><p>The motivation is always the same: we are accountable for the outcomes, their quality, effectiveness and efficiency, even if we don&#8217;t own the implementation. The mindset then, is that of systematically understanding the whole, and focusing on accelerating the parts. Which takes us to our second point.</p><h2>Second: Eliminate the Toil</h2><p>Understanding that the only way to make significant progress is to make yourself redundant is the most dreaded question by ICs. Individual Contributors tend to see their job as a static set of tasks. In fact, they are not used  to the idea of infinite work.</p><div class="pullquote"><p>&#8220;My day always ends when I&#8217;m tired and ready to go home, not when I&#8217;m done. I&#8217;m never done&#8221;. &#8211; <strong>Andrew Grove; High Output Management.</strong></p></div><p>Truth is closer to <a href="https://en.wikipedia.org/wiki/Parkinson%27s_law">Parkinson&#8217;s Law</a>, work expands. Managers know latency is the silent killer in business, and that whenever you delegate, it&#8217;s fundamental you take on the immediate next hot topic. It&#8217;s never enough, you can always do more, faster, and better. You need to do this, because everyone is doing this, and because your customers deserve it.</p><p>Add to that the ever-growing definition of <a href="https://sre.google/workbook/eliminating-toil/">Toil</a>. Three years ago, SEO required a lot of unavoidable manual labor. Generating a glossary in your website, consistently posting content for different audiences, refreshing your content periodically, adding the right meta tags, including the relevant links, creating appealing header images, etc. You needed a team to produce just 4 entries a week, and most of these tasks seemed unaffordable to automate. My Marketing Growth journey started there.</p><p>I created my early tinkering with a <a href="https://templates.agent-swarm.dev/official/content-strategist">Content Strategist</a>. It would suggest topics, do some web search, eventually even write a draft. However, the work was tedious. What happened since day one:</p><ul><li><p>It would repeat itself, and I would need to correct it. So I added a DB.</p></li><li><p>It would forget who to write for. So I added the reviewer agent mentioned before.</p></li><li><p>It would struggle to generate images. So I started using imgflip to generate wonderful memes.</p></li><li><p>It would still require me to prompt to code it. So I integrated it into our repo, and CI/CD.</p></li><li><p>It would run on my laptop&#8230; So I started using <a href="https://github.com/desplega-ai/agent-swarm">agent-swarm.dev</a>.</p></li></ul><p>Eventually it became such a powerful thing that for 5 minutes every morning I would review the content, and simply say &#8216;not today&#8217;, when it wasn&#8217;t really adding value. We also started using it to generate our releases, FAQs, and more documentation.</p><p>Today I don&#8217;t have less work, I have other jobs. That&#8217;s the interesting thing. At the end of the day, you will need to keep defining tasks, and your job will start looking more and more as a Leader than an IC. Nowadays, I review once a week how our SEO is doing, and I ask myself what new topics should we be looking into. That&#8217;s the job, to make sure each day you are one step higher.</p><h2>Third: Decisions make or break careers.</h2><p>Today the choice for any Individual Contributor is how much they want to own. Should they own:</p><ol><li><p>The input, features delivered, lines of code contributed, etc,</p></li><li><p>input &amp; output, quality &amp; reliability of the features delivered, or</p></li><li><p>the outcome, usage, revenue, engagement, etc&#8230;</p></li></ol><p>Managers intuitively chose outcome over output, and output over input. That&#8217;s how they grow their teams. They consistently ask themselves, how is my team helping the company succeed? Furthermore, they are trained to pick those critical projects with high likelihood of success that balance perfectly with risk. That&#8217;s their job, and the more senior they are, the more they excel at making critical decisions.</p><blockquote><p>In <a href="https://www.toomanytrees.com/book">You Have a Choice</a>, Eric argues you <em><a href="https://www.nehrlich.com/blog/2022/11/09/getting-unstuck-in-your-life-and-career/">&#8220;decide whether to just react as we have always done previously, or to choose a new option that might open up new possibilities of growth&#8221;</a></em>. Through that thought process, it&#8217;s important to understand the role of a leader, and how our influence changes as we partner in different capacities with an organization.</p></blockquote><p>That&#8217;s the mindset that allows you to introduce real changes. My last two contributions to <a href="http://desplega.ai">desplega.ai</a> weren&#8217;t fast to code, or direct improvements. In fact, by all metrics, I am probably coding less in <a href="http://desplega.ai">desplega.ai</a> than 3 months ago. However, our users truly benefit from these additions:</p><ol><li><p><em>Shared test caches</em><br>I focused for a month on sharing browser state across tests. This meant sharing login credentials (think multi-tab login) across different browser instances. Implementing this resulted in direct savings for our customers, they literally consume less tokens and their tests run faster. Win-win-win.</p></li><li><p><em>Self-improving tests</em></p><p>We implemented a Night Agent that periodically revisits tests and tries to improve them following a formula that considers reliability, speed, and cost. Again, something that if we had to be taking care of every little fix in our app, we wouldn&#8217;t be able to tackle. Now we had time for the big things, while redesign happens in the background.</p></li></ol><h2><strong>The one thing: Only the Paranoid Survive.</strong></h2><p>Truth is most managers will also fail. Even those that have been labelled as superstars. Superstars came to a job with a playbook, they talked about their experience and how they did it in the past. They seldom talked about the new world. Those overconfident leaders are the real risk.</p><div class="pullquote"><p>&#8220;The person who is the star of the previous era is often the last one to adapt to change, the last one to yield to the logic of a strategic inflection point and tends to fall harder than most.&#8221; - <strong>Andrew S. Grove, Only the Paranoid Survive.</strong></p></div><p>The Paranoid, always looking outside, always chasing what others are doing better, always improving themselves and their teams, always looking at users &amp; competitors. Those will be your successful ones. Those that constantly doubt their methodologies, adapt their playbook, and recognize they need constant help keeping up-to-date.</p><p>If you are asking yourself why do I spend so much time learning, and spreading those learnings, it&#8217;s because technology is getting deprecated faster than most can learn it. Your teams cannot take care of the day to day while keeping up with the latest trends. It&#8217;s not about years, it&#8217;s about weeks.</p><p>That&#8217;s my paranoia, it&#8217;s knowing that <a href="https://jamesclear.com/book-summaries/what-got-you-here-wont-get-you-there">What Got You Here Won&#8217;t Get You There.<br><br></a></p>]]></content:encoded></item><item><title><![CDATA[Next 6 months: The Open Source revolution.]]></title><description><![CDATA[Tl;dr: Every Tech leader should be asking themselves 2 questions: Would my business survive if my software was free? Is my business IP locked in a single (not FOSS) provider?]]></description><link>https://www.pleasedontdeploy.com/p/next-6-months-the-open-source-revolution</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/next-6-months-the-open-source-revolution</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Mon, 23 Mar 2026 13:24:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f25033a6-d231-49a1-a2ce-d235c4f6fe4d_1318x723.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Early this year all big players clamored <a href="https://medium.com/@mathias.fuchs/is-ai-breaking-open-sources-business-model-5f74081774f3">Open Source was dead</a>. Immediately after, an Open Source project, <a href="https://openclaw.ai/">Open Claw</a> took over the world. The business behind it was unclear, however the explosive growth wouldn&#8217;t have been possible without it being free &amp; open source. <br><br>Engineers in all companies are trying to leverage the latest provider, reducing their LLM costs, and building their own abstractions on top of Claude, OpenAI, and others, to provide faster value to the business. The hope is that this scaffolding will help them leverage future advances while keeping some sort of &#8216;secret sauce&#8217;. This is the reminiscence of our previous two decades of software engineering: specialized software was expensive. CEOs understood this best.<br><br>That&#8217;s changing, and the reigning opinion is that <a href="https://sequoiacap.com/article/services-the-new-software/">&#8220;Services will be the New Software&#8221;</a>. That&#8217;s bullish on a simple idea: Consulting firms. For decades, consulting firms have leveraged the idea of in-house knowledge from working with multiple customers. This idea of quasi-realtime insights would give them an edge, when combined with superb talent. And it was survival of the fittest all the way to the top.<br><br>The conclusion that many draw was simple: </p><blockquote><p>If replicating software is now marginally more expensive than checking out a repo, and accessing top talent is an API call away, then our technical leverage is organizational operational knowledge.</p></blockquote><p>In that world, open sourcing code, seen as giving knowledge away, seems to be the worst option. <strong>That is wrong</strong>.</p><h1>First: Open Source evolution.</h1><p><a href="https://a16z.com/author/peter-levine/">Peter Levine</a> wrote two amazing articles in <a href="https://a16z.com/why-there-will-never-be-another-red-hat-the-economics-of-open-source/">2014</a> and <a href="https://a16z.com/open-source-from-community-to-commercialization/">2019</a> describing the business evolution behind Open Source solutions during the past 40 years. The path we followed was this:</p><ol><li><p>80s: Open Source as a tool for hardware adoption.<br><br>BSD &amp; GNU allowed anyone to actually use their new hardware. OEMs needed a way to ensure their devices could be used by as broad an audience as they could, and having a centralized organism made it so that they could grow faster.<br></p></li><li><p>90s: Open Source meant broader talent available.<br><br>Once Operating Systems became more standardized, and software companies grew enough to actually create deep collaborations with OEMs, the &#8220;driver&#8221; era wasn&#8217;t a problem anymore. OS companies will usually develop the basic integrations themselves, and help users adopt new technologies, favoring those companies they worked with.<br><br>The new problem was actually running those large datacenters with particular architectures. That&#8217;s when support as a service originated. Large organizations needed experts that would help them run their software, even if they had the code. And they knew developing their own custom solutions will greatly reduce their available talent pool. They also knew they weren&#8217;t in the business of developing such solutions, and they couldn&#8217;t afford to depend on a private player, like Microsoft.<br><br>RedHat, Ubuntu, and other Linux flavors revolved around selling those support services. They&#8217;ll provide you top support, develop specific solutions following a well known standard and, still, be flexible enough that you could potentially find others to take on the challenge. This is key, having &#8220;small competitors&#8221; working on their open sourced codebase was part of the value offered.<br></p></li><li><p>10s: The SaaS shift<br><br>Two things happened in 2010. Smaller teams started providing software solutions, and those teams didn&#8217;t have <em>time</em> to invest on running particular infrastructure or specialize on certain stack levels. That was the key for Software as a Service. <br><br>Still, Open Source meant eventually you could run the software, however the true cost had shifted to optimize the infrastructure use. That was the most prominent billing item, and economies of scale didn&#8217;t kick in until your need for a particular product was too great.<br><br>Hence, the math worked: running &amp; maintaining a software solution for a fraction of the cost it would take you to do it seems like a no-brainer. <br></p><p>Great examples of that are: Github, MongoDB, Databriks, Elastic, and more. Yes you could implement and run those, and competitors could provide alternative services, but usually going to the source meant you&#8217;d get a better pricing and, in many cases, the latest features early on.</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_!-avb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-avb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 424w, https://substackcdn.com/image/fetch/$s_!-avb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 848w, https://substackcdn.com/image/fetch/$s_!-avb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 1272w, https://substackcdn.com/image/fetch/$s_!-avb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-avb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png" width="1456" height="702" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:702,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3173423,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/191860874?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.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_!-avb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 424w, https://substackcdn.com/image/fetch/$s_!-avb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 848w, https://substackcdn.com/image/fetch/$s_!-avb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 1272w, https://substackcdn.com/image/fetch/$s_!-avb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ab9105c-bb9d-4a6e-aee8-9f72b4ff9f33_2920x1408.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Technology and Business innovation loop circle as we become proficient in each.</figcaption></figure></div><p>The interesting part is not how the business evolved, but that in every stage the advantage of choosing an open source solution stayed the same for businesses. You could always have the assurance that choosing Open Source meant low lock-in, and protected IP on your business layer. <br><br><strong>Why?</strong> <br><br>You can always branch the solution and start your own, or look into their community, while deploying and evolving the software yourself, giving 0 visibility to external parties.</p><div class="pullquote"><p><br>The Achille&#8217;s heel for Open Source<br>Hostile takeovers are a real thread for all OSS business models. You can always be a victims, it doesn&#8217;t matter <a href="https://x.com/cramforce/status/2033285112478171373?s=20">who you are</a>.</p></div><h1>Second: The fallacy of these last 3 months.</h1><p><a href="https://medium.com/@mathias.fuchs/is-ai-breaking-open-sources-business-model-5f74081774f3">Tailwind</a> is no example of a business model that didn&#8217;t work with the new AI paradigm, in fact, it&#8217;s the worst one to reflect on. Their business model was predicated on access to specific add-ons, for life, almost like template as a service. The problem for SaaS is different.<br><br>Most SaaS, and those with Open Source versions are more vulnerable, are predicated on the idea that expertise on the area, combined with the cost of developing, deploying, running and maintaining software is sufficiently expensive that you are willing to pay the cost of 1 Software Engineer a year to have premium access to said solution. The math has changed.<br><br>For most SaaS, you don&#8217;t need their latest version and it&#8217;s now cheaper than ever to build that 80/20 solution. Hence, the argument that Sequoia makes around <a href="https://sequoiacap.com/article/services-the-new-software/">Outcome-as-a-Service</a>.<br><br>Their thesis is simple: &#8220;if you can deliver outcomes, then you can capture the existing outsourcing budget (6x that of software)&#8221;. They paired this with the idea that AI will allow you to increase margins, however they fail to recognize a simple reality:</p><div class="pullquote"><p>Every time you use software to do something that produces an outcome, you are outsourcing &#8220;that&#8221; to a computer. </p></div><p>This is key, the budget for software is less because it&#8217;s software, ie. the expectations on pricing for software are ~15% of the cost of outsourcing. That is a standard SaaS practice. In particular, Sequoia refers to turnkey outsourcing (outcome based)  and how that could be a software behind the scenes.</p><p>For Open Source, this is relevant because it is a particular way of turnkey outsourcing, it&#8217;s a way in which you keep all sub-products, and have full transparency on how something is being operated. This is always the preferred option for outsourcing for most serious businesses. </p><p>Finally, there&#8217;s a big &#8216;if&#8217; in this scenario:  AI doesn&#8217;t move fast enough, you can always be one step ahead, and your job is to always be there. To say it differently: you can leverage your customer base learnings to grow your product faster than they can and always give them better value:<br></p><blockquote><p><strong>Assume what you call judgement today, will be table-stakes tomorrow.</strong></p></blockquote><p><br>That&#8217;s actually more powerful that it seems.</p><h1>Third: AI native Open Source will win</h1><p>Back in 2010, one of my first jobs was to develop a way to update firmware on a network of custom hardware devices. It wasn&#8217;t my only responsibility, but it did take weeks of work to reach a stable state. Years before that, it would have required a whole engineering team to do so. Python libraries made it so that a quite junior engineer could do it. <em>15 years later, Tech accelerated significantly.</em></p><p>Nowadays, Claude Code <a href="https://www.linkedin.com/posts/edieguez_claude-ai-share-7441002846575247360-2p-W?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAPiJJwB0LmpHdW8bLd4wZ0_Zuy-prVZFNo">can code that in less than an afternoon</a> with the right prompting. That&#8217;s normal software evolution, and that&#8217;s also the power of Open Source projects. <em>Why?</em></p><p>When we decided to Open Source our<a href="https://github.com/desplega-ai/agent-swarm"> Agent Swarm</a>, it was a result of hearing: &#8220;Tell me how you are doing it, we are trying to do the same&#8221; multiple times during December. It was a wake up call. The top startups in Barcelona, the ones we aspired to become, were lagging here. Furthermore, they couldn&#8217;t comprehend what we were already doing. It looked like magic to them. Since then, our swarm kept improving with self-learning, supporting multiple LLMs, and expanding beyond Software development. But that&#8217;s not the amazing thing, <strong>the amazing thing is the community around it</strong>.<br><br>Since we open source it, we have done more than 15+ workshops, talked to over 300+ individuals, and found out use cases beyond Engineering (e.g. Customer Support &amp; Marketing).  That engagement is motivated by giving away value, beyond software. In fact, our <a href="https://github.com/desplega-ai/agent-swarm">Agent Swarm</a> is just a particular way to apply those learnings. <strong>That&#8217;s the new model:</strong> </p><div class="pullquote"><p>Teach&#8217;em how to fish, and set them free.</p></div><h3>It needs to be open source</h3><p>If these agents are actually operating the company, then they are of such importance to the business as a collective, that they need to have full control. Vendor lock-in would be a no-go from day one. They would need to know they can easily scale and run this solution with competing providers, before being at the mercy of a single provider. Which is the known strategy of these big players.<br><br>In fact, daily operators <em>should be</em> company employees. You need them to react immediately, be able to <a href="https://www.lennysnewsletter.com/p/the-art-of-influence-jessica-fain">influence the organization</a>, be accountable and available 24/7. Above all, you need them to deeply understand your business, your customers, and your vision. They also need to be your subject matter experts, and that&#8217;s a challenge when added to all the rest. Hence also the importance of a community or advisory, to make that part of their job just that, a part of it.</p><p>To the two concerns above there&#8217;s a third one: <em><strong>would my providers become competitors?</strong></em> We&#8217;ve seen this play out before through history, <a href="https://stitch.withgoogle.com/">Google Stich</a> just threatened the whole Figma business model. It&#8217;s not exactly the same (Figma spends 100million USD/yr in AWS vs GCP), but you can see how it could be the case otherwise. <br><br>This IP challenge is a major one, when it&#8217;s so easy for companies providing this service to &#8216;anonymize, learn, and replicate&#8217;.</p><h3>Judgement-as-a-service</h3><p>We define Judgement-as-a-service as the continuous process of helping teams assimilate new capabilities faster than the market moves, an ongoing partnership tied to outcomes. Although counter-intuitive at first, it is the immediate corollary from combining Sequoia&#8217;s arguments of Outcome as a Service and Compounding learnings.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u75b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u75b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 424w, https://substackcdn.com/image/fetch/$s_!u75b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 848w, https://substackcdn.com/image/fetch/$s_!u75b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 1272w, https://substackcdn.com/image/fetch/$s_!u75b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u75b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png" width="1456" height="1056" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1056,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u75b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 424w, https://substackcdn.com/image/fetch/$s_!u75b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 848w, https://substackcdn.com/image/fetch/$s_!u75b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 1272w, https://substackcdn.com/image/fetch/$s_!u75b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1532e455-9c26-4dc0-83b3-fe51ed5d3ab2_2048x1486.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If Agents learn at a speed beyond that of their base models, then the only key value you can deliver to an organization is that of helping teams kick-off efforts in the right direction, and then ensure their learnings keep compounding exponentially. A continuous onboarding process.<br><br>During our last  <a href="https://www.linkedin.com/posts/ecura_last-night-our-future-of-software-engineering-ugcPost-7439973773539229696-32Zp?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAPiJJwB0LmpHdW8bLd4wZ0_Zuy-prVZFNo">event with top AI leaders</a>, we were surprised by the three learnings they shared:</p><ol><li><p><strong>Enabling new capabilities has an extremely fast compounding effect.</strong><br>This means, if you use AI well, the value that you get could be seen in hours. Hence, the question is how can you learn faster?</p></li><li><p><strong>Companies are looking for Elasticity in candidates</strong><br>They want highly adaptable individuals that are always challenging their fundamentals to introduce new technologies and practices. Once they have that, they need to implement those across the organization, hence</p></li><li><p><strong>They devote 50% of their time to introduce new practices, and improve their internal systems.</strong><br>This is for organizations that can afford it, which tend to be either new organizations or those that have a surplus of talented individuals available. Unfortunately, that&#8217;s not the majority of cases.</p></li></ol><p>Welcome to the business model for Open Source solutions: Teams need an effective and efficient way to keep up with current trends through a trusted source. The bottleneck is not really the technology, but the humans that need to assimilate those new tools constantly. At least for the next 2 years.<br><br>The service is really continuous training in the fundamentals, tied to business outcomes, and free software updates. Whoever is capable to show that value, and earn the respect of organizations, will be able to convert their Open Source product into an entry point for their services.</p><h1>The one thing</h1><p>The value behind Open Source hasn&#8217;t changed in the last 40 years. It&#8217;s the value of the community, low vendor lock-in, and full control. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zhyw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zhyw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 424w, https://substackcdn.com/image/fetch/$s_!Zhyw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 848w, https://substackcdn.com/image/fetch/$s_!Zhyw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 1272w, https://substackcdn.com/image/fetch/$s_!Zhyw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zhyw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png" width="960" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e98df555-fdfa-4346-9197-1076f9e0db99_960x540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Zhyw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 424w, https://substackcdn.com/image/fetch/$s_!Zhyw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 848w, https://substackcdn.com/image/fetch/$s_!Zhyw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 1272w, https://substackcdn.com/image/fetch/$s_!Zhyw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98df555-fdfa-4346-9197-1076f9e0db99_960x540.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Through the years, we experienced the same cycle: businesses built around technical MOATs suffered when those were removed or reduced, and the first ones to experience that pain were actually Open Source Solutions. <br><br>As a leader then, you should look closely into what&#8217;s happening in the Open Source Ecosystem and ask yourself:</p><div class="pullquote"><p><em>If my solution was Open Source, would I survive?</em></p></div><p>The business model that can&#8217;t survive open source isn&#8217;t a business model, it&#8217;s a ticking bomb. Start thinking on a pivot.</p>]]></content:encoded></item><item><title><![CDATA[4 Leaps of Agentic Coding: Where do you stand?]]></title><description><![CDATA[tl;dr: An easy framework to understand where you are in your Agentic Coding transition, and the do&#8217;s and don&#8217;ts to progress in each stage.]]></description><link>https://www.pleasedontdeploy.com/p/4-leaps-of-agentic-coding-where-do</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/4-leaps-of-agentic-coding-where-do</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Tue, 03 Mar 2026 17:13:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pYox!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In <a href="https://www.youtube.com/watch?v=PHVmmpeLmD0">my last talk</a> at <a href="https://cto.pullpo.io/">CTO circle</a> (Thanks, Marco!), I presented this model to 100+ Tech leaders so they could quickly help their teams grasp what they need to do to advance in their agentic coding journey.  The model became such a hit, that I decided to share it in the hopes that we could have a unified vocabulary when looking into where we stand as developers.<br><br>The framework is intentionally simple:</p><ol><li><p>Leap 1: From <strong>copy &amp; pasting</strong> chatGPT <strong>to</strong> <strong>AI-powered IDEs</strong>.</p></li><li><p>Leap 2: From <strong>AI-powered IDEs</strong> <strong>to</strong> <strong>CLIs</strong>.</p></li><li><p>Leap 3: From <strong>CLIs</strong> in local, <strong>to</strong> <strong>agent swarms</strong> in the cloud.</p></li><li><p>Leap 4: From <strong>swarms</strong>, <strong>to self-learning</strong> and always busy <strong>coding agents</strong>.</p></li></ol><p>Each leap is a series of brutal, distinct, cognitive loaded, new learnings. You go from non-stop &#8220;coding&#8221;, to an abundance of perceived &#8220;idle time&#8221;, to re-wiring one of your core mental models that held true for the past 20 years. And the worse part, once you finally feel like you&#8217;ve got a mild grasp of this new paradigm, you leap again.</p><blockquote><p>You need to acknowledge the <strong>serious cognitive load we are exposed to as software engineers</strong>. </p><p>Traditionally, Software Engineers have been exemplary at keeping up with  trends. We are avid readers, we explore new technologies constantly, and we pride ourselves on being innovators. <strong>We are known to be early adopters and quick learners</strong> that could move across industries flawlessly. So what&#8217;s happening?</p><p>The floor is shifting so fast that it&#8217;s not about keeping up with trends in a quarterly manner, it&#8217;s about what happened yesterday. In December, very few knew about agentic coding, in fact Taras &amp; I were just starting to build our system. Today, it feels like if you are not using it, you are in the past. </p><p>This is, by any older standards, just bollocks.</p><p><strong>When people are &#8220;so tired&#8221; after work</strong> <strong>nowadays, it&#8217;s more likely that their Germane Load is the one giving up</strong>, resulting in a false feeling of lack of accomplishment. <br><br>My advice: embrace it. These days learning for an hour pays off in minutes.</p></blockquote><p><br>Here a simple framework with 5 stages, 4 leaps, and how to reach &#8220;Beast Mode&#8221;.</p><div><hr></div><h1>First: The 5 AI stages you&#8217;ll leap across</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pYox!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pYox!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 424w, https://substackcdn.com/image/fetch/$s_!pYox!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 848w, https://substackcdn.com/image/fetch/$s_!pYox!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 1272w, https://substackcdn.com/image/fetch/$s_!pYox!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pYox!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png" width="1456" height="522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:522,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pYox!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 424w, https://substackcdn.com/image/fetch/$s_!pYox!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 848w, https://substackcdn.com/image/fetch/$s_!pYox!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 1272w, https://substackcdn.com/image/fetch/$s_!pYox!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f105bd3-c904-484b-8aeb-b24cc183d5f3_2048x734.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">5 stages, in red lines  my actual leaps.</figcaption></figure></div><p>Nowadays teams are in one of these 5 stages. In fact, <strong>most teams are in Stage I</strong>, a few are tinkering with Stage II, and every CTO will tell you they are in Stage III. <em>That&#8217;s OK!</em></p><p>The story goes as follows. Everyone starts by coping &amp; pasting. That&#8217;s the C&amp;P stage. Maybe your boss doesn&#8217;t know it, but you are doing it. You heard ChatGPT is awesome, so you copy a file, a stacktrace, maybe more, and you paste it in your personal ChatGPT account. You feel a bit dirty about it, but the result is amazing. After a few weeks, you start asking yourself, how can I do this with less C&amp;P?</p><blockquote><p>This is how it happens in each stage, you are always &#8216;trapped by an activity&#8217;. Each leap will be an attempt to remove that human bottleneck, so that you can go faster. Having said so&#8230;</p><p>Alas! Another activity will pop-up, one that you considered minor before, and that&#8217;s the target gap to fill with the next leap. </p></blockquote><h4><strong>IDE &amp; CLI stage</strong></h4><p>We make a  distinction between using an IDE and a CLI, even though IDEs have background agents, inboxes, and cloud support. This is intentional, and the answer is very simple:</p><p>How much code you are reviewing on a daily basis implies how much you trust your Agentic coding set-up.</p><p>When using IDEs (heavily) you are still reviewing most of the code, so you are closer to an extremely powerful auto-complete, than to be working in a higher level of abstraction.</p><div class="pullquote"><p>Nowadays, IDE&#8217;s provide ways to be less code centric, and move towards a CLI approach. This is why they are such a great intermediate step.<br><br>Antigravity Inbox setup (cmd+E) &amp; Cursor Agents are an amazing way to start exploring what&#8217;s possible in that new paradigm.</p></div><p>CLIs, instead, force you to have a completely different relationship with your LLM. You will define criteria, steps, hurdles, and other mechanisms that your AI needs to overcome before it considers something done. That means the maturity of your AI Software Development Lifecycle will need to be greater, otherwise your team will immediately revert to an IDE. And they&#8217;ll be right to do so.</p><h4><strong>Swarms</strong></h4><p>Everyone is lying on the internet! They talk about their agents as if they were peers, that code for them, and they treat them as interns&#8230; liars! </p><p>Well, it&#8217;s not, sorry, you should be there, and you aren&#8217;t. But it&#8217;s understandable. It&#8217;s impossible to get there without doing all the homework in the previous stages. </p><p>Having an agent swarm means you now operate with your agentic coders in a fully asynchronous peer based communication style. In our case, that is through slack and github PR reviews. Every now and then, you&#8217;ll go deeper into a task, or tackle a specific project locally. However, 90% of the contributions will be coming from the cloud, and in some cases no-one will be reviewing them.</p><h4><strong>Beast Mode: what&#8217;s next.</strong></h4><p>We are working hard on this. It's what you hear as &#8216;back-pressure&#8217;, &#8216;success/objective functions&#8217;, &#8216;compounding&#8217; or &#8216;self-learning&#8217;.</p><p>This is truly autonomous coding agents, where you set a direction, and they continue to make relentless progress in that direction, with you having weekly 1&lt;&gt;1s with them.</p><p>If you want to get into Beast mode, <em><strong>shoot me a DM.</strong></em></p><div><hr></div><h1>Second: Becoming code agnostic</h1><p>The first two leaps share a common thread: <em><strong>learning to disregard the code</strong></em>. This is the thing you were the best at. In fact, this is probably what made you progress. Either because you mastered how to diagnose issues in seconds or, because you were capable of truly understanding in depth the technologies you were relying on. Now it feels weird.</p><p>You feel like you are spending more time reviewing what the LLM did, than actually doing it yourself, and you have the confidence that you would have done it better. In fact, each bug you find, is a testament on how poorly LLMs work. What you have is <strong>confirmation bias</strong>. </p><p>You have an intern without their learning attitude, and your feel the intern is trying to get your job, and you keep reminding everyone that they are not you. Good news! They aren&#8217;t. Bad news! You&#8217;ll need to admit, sooner or later, that there is something they do better.</p><p>If you are lucky to get over this hurdle, then there is another thing that would come up: you need to choose wisely which technology to adopt. Here you spend weeks looking at all possible providers, and you decide to go with the one that is &#8216;easiest&#8217;. You also start thinking about how many quarters and training your team is going to need, and how slow or fast the roll-out will be. That&#8217;s the second wall: <strong>organizational inertia</strong>. </p><p>Finally, there&#8217;s a third and last serious blocker that results from combining <strong>confirmation bias </strong>and <strong>organizational inertia</strong>: <em><strong>lack of urgency</strong>. </em>Basically, there are always more important, and urgent, projects to deliver. After all, we know how to solve those the old way, and we will tackle innovation next week, or maybe the week after&#8230; once we understand exactly what needs to be done.</p><p>Funny enough, after a few weeks of delay, you pat your own back, happy because now something new came out, and you tell your boss: &#8220;aren&#8217;t you glad we didn&#8217;t waste our time on <em>Devin</em>?&#8221; when in reality your organization just missed a chance to learn this when it was easier to understand.</p><div class="pullquote"><p>The cognitive load from trying to force a one-size-fits-all solution for a problem you don&#8217;t know whilst trying to keep up with the day to day is a recipe for disaster. </p><p><strong>You need to get out of  the Copy &amp; Paste hell fast</strong>, into a mode in which you are using an AI that has a persistent context of your codebase.</p></div><p>How to make the first leap:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0uwY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0uwY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 424w, https://substackcdn.com/image/fetch/$s_!0uwY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 848w, https://substackcdn.com/image/fetch/$s_!0uwY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 1272w, https://substackcdn.com/image/fetch/$s_!0uwY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0uwY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png" width="1456" height="705" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0uwY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 424w, https://substackcdn.com/image/fetch/$s_!0uwY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 848w, https://substackcdn.com/image/fetch/$s_!0uwY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 1272w, https://substackcdn.com/image/fetch/$s_!0uwY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28e7fee8-8926-4aaf-be4f-ddae061647e0_2048x992.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ol><li><p><strong>Break the standardization mandate</strong> <br>Choose any IDE, I recommend Cursor and/or Antigravity. Everyone should have different ones:</p><ol><li><p>LLMs have made it so that IDE set-ups are trivial,</p></li><li><p>Remember IDEs are an intermediate step, no need to customize or unify this.</p></li><li><p>From trying multiple IDEs the team will learn what good looks like.</p></li></ol></li><li><p><strong>Keep reviewing the code</strong>, you are not ready to fully trust AI, and AI is not ready for you either.</p></li><li><p><strong>Do it now!</strong></p><ol><li><p>Block a day in your calendar per week to introduce new AI workflows in your development lifecycle.</p></li><li><p>Check how much progress you make after moving to an IDE, you won&#8217;t believe it. In the first leaps, you&#8217;ll probably 2x your pace within a day or less. The feeling is thrilling.</p></li></ol></li></ol><h4><strong>Leap II: CLI Revolution</strong></h4><p>It will take a few months, but eventually your team will master the AI IDE. And you&#8217;ll start hearing a few complaints. </p><p>Suddenly, some will mention how they spend so much time reviewing code before sending the PR, or how some people are sending PRs that are &#8220;horrible&#8221;. You will also hear how features that require more work, or go across repos, cannot be tackled by the planning mode, or how the background agents sound good in theory, but they don&#8217;t work because &#8220;something, something, something&#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_!cn_1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cn_1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 424w, https://substackcdn.com/image/fetch/$s_!cn_1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 848w, https://substackcdn.com/image/fetch/$s_!cn_1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 1272w, https://substackcdn.com/image/fetch/$s_!cn_1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cn_1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png" width="1456" height="552" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:552,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cn_1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 424w, https://substackcdn.com/image/fetch/$s_!cn_1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 848w, https://substackcdn.com/image/fetch/$s_!cn_1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 1272w, https://substackcdn.com/image/fetch/$s_!cn_1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7d01002-b5ca-4944-b060-9b646fbdab05_2048x777.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Whatever you are hearing, you can group complaints into:</p><ul><li><p><strong>Opaque system prompts<br></strong>Suddenly the AI IDE cannot be customized as much as you&#8217;d like. In fact, you try the latest Codex 100.2x or Sonnet 3302.21 and it&#8217;s the same as that cheap QWEN, or maxmode. Everyone is revving about those models, for your team, nothing changed. The truth is probably it didn&#8217;t.<br>IDEs were important for you to understand how to work with AI when you didn&#8217;t have deeper knowledge on how it works. Now that you have a better grasp, the scaffolding they have added it&#8217;s limiting you, and this is more evident in their&#8230;</p></li><li><p><strong>Arbitrary frameworks</strong><br>Each IDE has a different way of understanding your codebase, and it was optimized with a different customer in mind. They are very good at superficial things, but suddenly the team starts sharing &#8220;proven prompts&#8221;, or simply doing things manually because &#8220;it&#8217;s faster&#8221;. You are missing the command, skill, and agent layer from the CLIs, in a way that you can tweak faster.</p></li><li><p><strong>Proximity to code</strong><br>&#8220;I don&#8217;t have time to review all the garbage it produced&#8221;. The key thing here is that your team is working still so close to the code, that they feel they need to review each line. That also makes it so that they usually &#8220;wait&#8221; for the LLM to finish, as some people used to wait while &#8220;it compiles&#8221;. They are not parallelizing enough which means&#8230;</p></li><li><p><strong>The inbox paradox</strong><br>Moving from a real-time editor to an asynchronous &#8220;inbox&#8221; or terminal-output mindset feels unnatural. You are no longer coding; you are reviewing and dispatching. And to be honest, you are trying to review as little as possible.</p></li></ul><p><em><strong>Take the leap!</strong> </em><br>Yes, it&#8217;s that easy, here what&#8217;s holding you back is the actual IDE and your habits. If you just give any CLI a try, and you use a framework (<a href="https://github.com/desplega-ai/ai-toolbox/tree/main/cc-plugin/base#agentic-coding-101-with-claude-code">you&#8217;ll finally develop your own, like we did</a>). That would take you out of this loop in weeks.</p><p>The secret to get the best out of it: move to Antigravity first, start using their inbox feature, and then claude-code. That&#8217;s so natural that your team won&#8217;t even notice the transition.</p><div><hr></div><h1>Third: The &#8220;Idk what to do&#8221; phase</h1><p>This is the most jarring transition. You will be moving from CLIs to full-blown Agent Swarms. You will eventually have background agents coding 24/7. The emotional blocker of this phase is the reality of <em><strong>making yourself redundant</strong></em>. The promise on the other side is scary, soon your team will be thinking: <em>&#8220;Idk what to do.&#8221;</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2M3a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2M3a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 424w, https://substackcdn.com/image/fetch/$s_!2M3a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 848w, https://substackcdn.com/image/fetch/$s_!2M3a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 1272w, https://substackcdn.com/image/fetch/$s_!2M3a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2M3a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png" width="620" height="451" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:451,&quot;width&quot;:620,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2M3a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 424w, https://substackcdn.com/image/fetch/$s_!2M3a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 848w, https://substackcdn.com/image/fetch/$s_!2M3a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 1272w, https://substackcdn.com/image/fetch/$s_!2M3a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6025e628-9cd9-4ca4-9334-26a8c8e08aac_620x451.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>From CLI to Swarms</h4><p>The emotional toll to start using <a href="http://agent-swarm.dev/">agent swarms</a> is massive. Your ICs need to relinquish the activity  they love the most, reviewing code, and become TLs that review the work assigned, scoping and planning documents. This means the code won&#8217;t be reviewed until it&#8217;s too late, in the PR review phase at best. In some cases, not even then. Our advice in this step: focus on the message. Managers and TLs have known for decades that making yourself redundant is actually a strength in senior roles. You need to make <a href="https://en.wikipedia.org/wiki/High_Output_Management">High Output Management</a> a mandatory read for all Software Engineers.</p><p>The second step is actually the technically challenging one. Blockers are centered on updating your Software Development Lifecycle (SDLC) to that of a team of 10x your size. That&#8217;s what it needs to be AI ready, and that means tackling the 4 stages of <a href="https://www.tarasyarema.com/blog/2026-02-18-introducing-semantic-distance">Semantic Distance</a> while updating the jobs to be done by your team. <a href="https://www.pleasedontdeploy.com/p/validation-not-verification-3-strategies">We already wrote extensively about it</a>, so here a short summary of what we&#8217;ve seen:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MHoZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MHoZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 424w, https://substackcdn.com/image/fetch/$s_!MHoZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 848w, https://substackcdn.com/image/fetch/$s_!MHoZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 1272w, https://substackcdn.com/image/fetch/$s_!MHoZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MHoZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png" width="1456" height="479" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:479,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MHoZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 424w, https://substackcdn.com/image/fetch/$s_!MHoZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 848w, https://substackcdn.com/image/fetch/$s_!MHoZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 1272w, https://substackcdn.com/image/fetch/$s_!MHoZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e02f21f-7ad6-439d-9550-1c8e581e5c8f_2048x674.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>Defining specs &amp; Reviewing implementation plans</strong><br>Usually your team will start spending most of their time meticulously defining what the LLM needs to code. <em>They will fall into the <a href="https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html">&#8220;Verschlimmbesserung&#8221; trap</a></em>. They&#8217;ll start making something more and more complex in an attempt to make it better.</p></li><li><p><strong>Manual validation &amp; Verification</strong><br>Another classic trap, features get delayed because most of the review happens manually, from coding styles, libraries used to actual business functionality. In a worst case scenario, your team is doing a checkout of each PR generated by your LLM and testing it locally.</p></li><li><p><strong>Complex dev-setups</strong><br>If you don&#8217;t have an agentic way to easily spawn your local dev, this is actually the most challenging part. Many will say they need to configure providers, or they don&#8217;t have ephemeral environments. It&#8217;s not a must, but it&#8217;s something you&#8217;ll need to address for sure within the next 2 leaps.</p></li></ul><p>By the end, you&#8217;ll go from non-stop coding to an abundance of idle time. But it&#8217;s not a relaxing idle time; it&#8217;s an anxiety-inducing, high-cognitive-load idle time. You will feel every hour your swarm is not working, you are wasting time.</p><p><em>How to survive it</em> <br>When we hit this leap, we spent weeks monitoring the swarm like anxious parents. The fix was realizing that validation, not verification, is the new job description. You have to stop reviewing the <em>plans</em> (the &#8220;how&#8221;) and start rigorously defining the <em>evaluations</em> (the &#8220;what&#8221;). You overcome this leap by investing heavily in robust linters, pre-merge hooks, automated E2E testing, observability, etc. Not just for humans, but also tools for your agents to understand what&#8217;s not working, and what are non-functional requirements for your business. This will become the majority of your work going forward, optimizing your machine that builds the machine..</p><h4>Leap IV: Beast Mode</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uz3b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uz3b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 424w, https://substackcdn.com/image/fetch/$s_!Uz3b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 848w, https://substackcdn.com/image/fetch/$s_!Uz3b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 1272w, https://substackcdn.com/image/fetch/$s_!Uz3b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uz3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png" width="1456" height="409" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:409,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Uz3b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 424w, https://substackcdn.com/image/fetch/$s_!Uz3b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 848w, https://substackcdn.com/image/fetch/$s_!Uz3b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 1272w, https://substackcdn.com/image/fetch/$s_!Uz3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32f35c6e-5b17-4f92-a232-62c6961bd8d2_2048x575.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the frontier. We are here right now, and the playbook is being written as we speak. The premise: You aren&#8217;t assigning specific tasks to the swarm, you are defining a continuous Objective, a Northstar. </p><p>The objective could be as simple as the acceptable latency in an API response, or as complex as conversion rate in an onboarding funnel. It could involve defining health metrics around churn, or costs. And it needs to be a self-learning experience. The friction lies in setting up the feedback loop tightly enough that the swarm doesn&#8217;t silently destroy your business or rack up a $10,000 API bill in an hour trying to solve an NP-hard problem.</p><p>If your business is unique, your objectives are unique, hence your agent swarm will need to be unique. It&#8217;s now your Company Operating System</p><div class="pullquote"><p>The swarm takes the objective, executes, hits blockers (???), self-corrects, and loops back automatically.</p></div><p>Hence, the only way &#8220;Beast Mode&#8221; doesn&#8217;t implode your company is if your <a href="https://www.pleasedontdeploy.com/p/the-trap-we-automated-coding-not">Software Control (QA, Monitoring, Observability)</a> is fluent in business outcomes. That&#8217;s what we are working on.</p><div><hr></div><h1>The-one-thing: Embrace the learning curve</h1><p>The biggest shock of the Leaps isn&#8217;t how much you need to improve your SDLC, it&#8217;s the psychological toll of the idle time it creates and how it forces you to redefine your team&#8217;s work over and over again.</p><p>When you strip away the toil, the syntax-wrangling, and the manual testing, your engineers are left staring at a void of <em>essential complexity</em>. They are forced to think purely about product architecture, user validation, and business logic.</p><p>Don&#8217;t let your team fill this new idle time with micromanagement. Acknowledge the cognitive load. <br><br>Name the leaps. Push them through the discomfort of losing &#8220;proximity to the code&#8221;, and teach them how to be technical managers rather than coders. And above all, it&#8217;s time to look for help, you need to get the learnings fast, and they won&#8217;t come from your own company echo chamber.<br><br>That&#8217;s the way to get into Beast Mode.</p>]]></content:encoded></item><item><title><![CDATA[Validation, not verification: 3 strategies for testing AI-generated code]]></title><description><![CDATA[Validation / Validazione / Validaci&#243;n]]></description><link>https://www.pleasedontdeploy.com/p/validation-not-verification-3-strategies</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/validation-not-verification-3-strategies</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Fri, 13 Feb 2026 09:13:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rXER!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>tl;dr:</strong> a guide on what&#8217;s actually useful when adding a testing layer to your generated code.</em></p><p>You have an agentic coding workflow that makes sense. Your team is finally using the LLMs for much more than a smarter autocomplete. In fact, now you have background agents coding 24/7 for you. A few kick off automatically to update libraries, fix sentry errors, the simple stuff. As a result, your team is neither happy, nor feels more empowered. They are overwhelmed.<br><br>They are the silent victims of their own demise. They have carved out the fun parts of their job, the mindless things that they did when being &#8216;in-the-zone&#8217; and given those to their AI bots. As payment, their job now resembles that of a poor man&#8217;s product manager or an extremely expensive manual QA. In turn, that means you are not seeing the ROI you expected. You are producing more LOCs, but you are releasing more brittle code, and  your team spends countless hours mindlessly reviewing generated code, re-writing features, manually testing corner cases, and making sure UX keeps making sense after 10 different features were added and they didn&#8217;t even know about them. We were there not so long ago.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rXER!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rXER!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 424w, https://substackcdn.com/image/fetch/$s_!rXER!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 848w, https://substackcdn.com/image/fetch/$s_!rXER!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 1272w, https://substackcdn.com/image/fetch/$s_!rXER!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rXER!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png" width="1456" height="933" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:933,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rXER!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 424w, https://substackcdn.com/image/fetch/$s_!rXER!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 848w, https://substackcdn.com/image/fetch/$s_!rXER!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 1272w, https://substackcdn.com/image/fetch/$s_!rXER!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc874a155-b50b-4015-b3e6-468bdb5e1afa_2048x1312.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Agentic SDLC, today focused on validation</figcaption></figure></div><p>Yes! Our plans include <a href="https://github.com/desplega-ai/ai-toolbox/blob/main/cc-plugin/base/skills/planning/SKILL.md#success-criteria-requirements-mandatory">verification steps</a>, and we experimented with test driven plans (<a href="https://github.com/desplega-ai/ai-toolbox/blob/main/cc-plugin/base/skills/tdd-planning/SKILL.md">TDD skill</a>), however what was key for us to crystallize the concept for us and our agents, so that we could target it explicitly. For that, we used <a href="https://es.wikipedia.org/wiki/Barry_Boehm">Barry Boehm</a>&#8217;s definitions:</p><div class="pullquote"><p><strong>Software Validation</strong><br>The process of ensuring a software system meets the true needs and expectations of its users, famously summarized as <br><em><strong>&#8220;Are we building the right product?&#8221;</strong></em></p></div><p>Instead, <strong>Software Verification</strong> ensures the software conforms to its specified requirements and design, confirming that internal development stages align with the established requirements baseline. ie. <em>&#8220;Are we building the product right?&#8221;.</em>  <br><br>As Engineers, traditionally we tend to overzealously focus on Software Verification, and disregard Software Validation as someone else&#8217;s task. Even when we add end-to-end tests we ask others to define such tests. In a world where coding, and software verification, become the norm for coding agents, actual software validation is a main engineering task. <br><br>Confusing Validation and Verification, and relinquishing the SWE responsibility in both leads to lower quality, and making it a less defensible product. This is your job.<br><br>Below, the 3 strategies we implemented to enhance our software validation &amp; how they empower each other.</p><blockquote><p><strong>Note</strong> <br>This is our fourth installment in our agentic coding SDLC. <br>Previous related articles here: <a href="https://www.pleasedontdeploy.com/p/push-for-qa-as-your-devex-powerhouse">[0]</a><a href="https://www.pleasedontdeploy.com/p/how-we-stopped-drowning-in-ai-slop">[1]</a><a href="https://www.pleasedontdeploy.com/p/agent-swarm-leap-we-built-a-ui-for">[2]</a>.</p></blockquote><h1>First: Remote browser sessions</h1><p>Taras started his adventure in AI by contributing on <a href="https://github.com/browser-use/browser-use/pulls?q=is%3Apr+is%3Aclosed+author%3Atarasyarema">browser-use</a>. Early on, he had conversations with the team on their approach, using <a href="https://chromedevtools.github.io/devtools-protocol/">CDP</a>, and he continues to monitor their progress. Since then, we also track alternatives like <a href="https://github.com/ChromeDevTools/chrome-devtools-mcp">Chrome&#8217;s MCP</a>, <a href="https://github.com/browserbase/open-operator">Open Operator</a>, <a href="https://www.skyvern.com/">Skyvern</a>, <a href="https://openai.com/index/introducing-operator/">OpenAI Operator</a>, <a href="https://github.com/microsoft/playwright-mcp">Playwright MCP</a>, etc. The list is so extensive that we have an internal benchmark on which one can perform different tasks faster and more accurately. However all of them have the same strength: <em>they make things happen.</em></p><p>For us, that is no go. We don&#8217;t want a magic solution that generate scripts in python, access the DOM directly or intercept API requests to overcome system limitations. In fact, that would void all our efforts, and make it so that everything/anything works. What we need is something that would act as a human, but faster and more efficiently. <br><br>We developed our own browser operator focused on emulating human validation with that in mind. And <a href="https://github.com/desplega-ai/qa-use?tab=readme-ov-file#browser-commands">qa-use browser cli</a> became the tool that made it seamless to use.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hDrg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hDrg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 424w, https://substackcdn.com/image/fetch/$s_!hDrg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 848w, https://substackcdn.com/image/fetch/$s_!hDrg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 1272w, https://substackcdn.com/image/fetch/$s_!hDrg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hDrg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hDrg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 424w, https://substackcdn.com/image/fetch/$s_!hDrg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 848w, https://substackcdn.com/image/fetch/$s_!hDrg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 1272w, https://substackcdn.com/image/fetch/$s_!hDrg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e8bf888-1176-4b90-adcb-3079cd59b918_2048x1166.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Remote Browser Session as seen in desplega.ai</figcaption></figure></div><p>The key insights that make <a href="https://github.com/desplega-ai/qa-use?tab=readme-ov-file#browser-commands">qa-use cli</a> such a powerful tool are:</p><ol><li><p><strong>3 types of context: agent, users, business.</strong><br>A research and plan before starting implementation are essential starting points, and every tool during the SDLC should have access to it. On top of that, for validation, we introduced two more concepts: Personas, and Business insights.</p><ol><li><p><em>Session Local Context</em><br>Instead of having a completely isolated system running in the cloud, or even in your local machine, qa-use leverages all the context and set up your coding agent has. This means onboarding to a task is immediate and transparent, most of the knowledge is already there.</p></li><li><p><em>Personas</em><br>Prompts shared from product/ux that define user-types, you usually have one or two associated with each feature, and having them handy during these steps means that you can add some &#8216;color&#8217; to your usability test.</p></li><li><p><em>Business context</em><br>The key learning: don&#8217;t stress too much about it. In fact, sometimes it&#8217;s sufficiently clear if it&#8217;s defined in a <a href="http://claude.md">CLAUDE.md</a> file. We learned quite quickly that simply describing your business in the same way you&#8217;d do in a marketing leaflet will take you 80% there, together with the personas it would be good enough.</p></li></ol></li><li><p><strong>You need to run these remotely</strong><br>What&#8217;s worse? Having to stop working while your laptop is &#8220;using your browser&#8221; or cloning the PR an agent sent you and running it locally to see the changes?<br>Obviously both are terrible, and neither scales with the amount of work your new agentic flows produce. The only way to achieve this kind of productivity is to have that team working with their own resources, and you be able to review from afar. Hence, running everything in the cloud, and then reviewing recording sessions at leisure seems best&#8230; and it is. <br>It really feels like you are working with a remote peer now.</p></li><li><p><strong>The silent killer: infra</strong><br>This was the most tedious part, and the part that needs continuous time investment. The infrastructure required to run such browser sessions, keep recordings, manage logs, traces, storage, handle specific website controllers, etc. That&#8217;s a whole system that would become a real time sink as soon as your team starts producing at that extreme velocity. Eventually, you&#8217;ll need an expert team fully dedicated to this.</p></li></ol><p>It&#8217;s extremely important to note that once you have this in place, you can actively see, and ask through comments in PRs, actions take place in your web/mobile/desktop app. It sounds wonderful, if it wasn&#8217;t because most features affect 10 services, 2 DBs, and need 4 different things to happen to trigger such flow&#8230;</p><h1>Second: MCPs &amp; CLIs</h1><p>We were so proud, thus so wrong. We thought we had done it, and then we started implementing complex features in larger codebases. <em>Guess what happened?</em><br><br>We found 2 categories of challenges that were making it so we would get in lengthy loops with our agents, Setup &amp; Visibility.  We defined Setup as either mocking 3rd parties, running specific routines, creating fake data, etc. Even though this deserves a whole article on its own, our major learning was to <em>KISS</em> and avoid investing countless hours on non business core activities. You can translate that into your agents, by giving them&#8230;</p><h3>Visibility</h3><p>This one was a key differential, and something that&#8217;s usually overlooked; we encouraged a deeper integration of our agents with our deployment and observability tools. In fact, we started implementing layers of tooling that before would have been deemed &#8216;unnecessary&#8217; just to give that access.</p><p>What worked for us has been a mix of MCPs &amp; cli-tools that give our agents full visibility into what is happening in their local/dev environment. A funny simple example was the bump in accuracy &amp; reliability we saw when we started using <a href="https://pm2.io/">pm2</a>. Suddenly our agents had a much better understanding of what they could and couldn&#8217;t run, what was failing, the logs for all our services, and their state. A similar jump to that we saw when we started using Anthropic&#8217;s PostgreSQL MCP.</p><p>Another example of visibility that often gets overlooked, is how we allowed the use of APIs to retrieve and validate information. We want to stress that:</p><blockquote><p><em>Majority of APIs are for our coding agents, in dev or production, so they get insights and act without the burden of UX.</em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SvHm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SvHm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!SvHm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!SvHm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!SvHm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SvHm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SvHm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 424w, https://substackcdn.com/image/fetch/$s_!SvHm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 848w, https://substackcdn.com/image/fetch/$s_!SvHm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!SvHm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20587782-edc3-4632-91c9-11cbc9cba01c_2048x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Historic API Checks</figcaption></figure></div><p>This is a another clear example of why you ought to think of your UX in terms of agents, not humans.</p><h1>Third: A wrinkle in end-to-end tests.</h1><p>Yes, you need end-to-end tests. Yes, a lot of them. Yes, you can convert your browser sessions into end-to-end tests. NO, I&#8217;M NOT GOING TO TALK ABOUT THAT. <br><br>I&#8217;m going to talk about the best unexpected use case for our <a href="https://github.com/desplega-ai/qa-use?tab=readme-ov-file#2-create-your-first-test">testing cli</a>.<br><br>If you are striving for an unearthly app, your end-to-end tests are not there to tell you that something is broken, they are there to tell you you&#8217;ve lowered the bar, ie. your app s*cks.  That moves them from verification to validation, furthermore, that means your e2e tests are evaluating your app.</p><blockquote><p><em>&#8220;to get a model to perform certain tasks, such as use a web browser, developers might go through an even more laborious process of creating many <strong>RL gyms (simulated environments)</strong> to let an algorithm repeatedly practice a narrow set of tasks.&#8221; -</em>  <a href="https://www.deeplearning.ai/the-batch/issue-332/">Andrew Ng</a></p></blockquote><p>If you embrace this <em>RL gym</em> concept, instead of using your end-to-ends in isolation, you&#8217;ll start comparing results between builds to ensure the experience is improving, and you&#8217;ll use LLMs as a judge to verify such improvements. That&#8217;s our qa-use cli true power. You are now running continuously, creating new tests, and comparing between different builds.<br><br>This could be too abstract for many, so let&#8217;s go over an example we&#8217;ve been using for the past 3 months,</p><h3>Speed run challenge</h3><p><a href="https://evals.desplega.ai/speedrun/challenge">https://evals.desplega.ai/speedrun/challenge</a></p><p>An essential set of KPIs for everyone using a browser operator should include how efficient &amp; effective the engine is at performing chained, complex, actions. Years ago, that would have meant having thousands of unit-, integration, and end-to-end tests.  Nowadays you can flip the concept entirely, a single e2e test that can execute  &amp; compare multiple builds simultaneously with a single objective: <em><strong>complete the speed run as fast and seamlessly as possible</strong></em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jNg6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jNg6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 424w, https://substackcdn.com/image/fetch/$s_!jNg6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 848w, https://substackcdn.com/image/fetch/$s_!jNg6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 1272w, https://substackcdn.com/image/fetch/$s_!jNg6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jNg6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png" width="1456" height="1204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1204,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jNg6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 424w, https://substackcdn.com/image/fetch/$s_!jNg6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 848w, https://substackcdn.com/image/fetch/$s_!jNg6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 1272w, https://substackcdn.com/image/fetch/$s_!jNg6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63764c36-8a87-46b6-836a-17be8f6cd319_2048x1693.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Our Speed Run set up is used to compare our own and other browser operators constantly.</figcaption></figure></div><p>This is counter-intuitive, because you are still used to have a reasurred level of determinism in your code. The shift to see it at a high level, and think of it as benchmark comparison between releases may result foreign. However, this will actually give you a clear understanding of the progress, and your coding agents can self-correct accordingly. Remember, your team is magnitudes larger than before.</p><h2>The-one-thing</h2><p>Coding agents need much more clarity than a human. Even when you provide them with the right context &amp; tooling, they will lack the &#8220;intuition&#8221;, and they overcompensate by being extremely confident. The same way that you wouldn&#8217;t trust a new joiner to deliver on a project autonomously without giving them clear objectives and incentives, <em><strong>you should provide your coding agents with  clear, accurate, iterative objective functions</strong></em>.</p><p>This is the power of our <a href="https://evals.desplega.ai/speedrun/challenge">Speed Run</a>, an example on how to increase the autonomy and reliability of a coding agent. Defining those key evaluation mechanisms that would shape your unique Agentic SDLC will become your new tech leverage.<br><em><br>Keep it strong!</em></p><div><hr></div><p>For the curious, here an example of our <a href="http://claude.md">CLAUDE.md</a> utilizes qa-use cli:</p><p><code>## E2E Manual Validation (qa-use)</code></p><p><code>NOTE: Always run from the git root! If you run from inside `be/` or `new-fe/`, the CLI may not find the right files.</code></p><p><code>Use `qa-use` CLI to manually verify features work end-to-end. Tests are in `qa-tests/`.</code></p><p><code>*Before testing:* Worker doesn&#8217;t hot reload - restart services first:</code></p><p><code>```bash</code></p><p><code>pm2 restart cope-worker cope-api</code></p><p><code>```</code></p><p><code>```bash</code></p><p><code># Core workflow</code></p><p><code>qa-use browser create # Create browser session, DO NOT USE --tunnel as API runs in localhost</code></p><p><code>qa-use browser goto &lt;url&gt; # Navigate</code></p><p><code>qa-use browser snapshot # Get element refs (ALWAYS run before interacting)</code></p><p><code>qa-use browser click &lt;ref&gt; # Click by ref (e.g., e3)</code></p><p><code>qa-use browser click --text &#8220;X&#8221; # Click by text/description</code></p><p><code>qa-use browser fill &lt;ref&gt; &#8220;value&#8221; # Fill input</code></p><p><code>qa-use browser screenshot # Save screenshot.png</code></p><p><code>qa-use browser close # ALWAYS close when done</code></p><p><code>```</code></p><p><code>*Important:* Always run `qa-use browser close` when done - sessions consume resources.</code></p><p><code>*Existing tests:* See `qa-tests/` folder for available test definitions.</code></p><p><code>*Pattern for verifying new features:*</code></p><p><code>1. Create a session with the feature enabled</code></p><p><code>2. Use `qa-use browser snapshot</code></p>]]></content:encoded></item><item><title><![CDATA[Agent-swarm leap: We built a UI for our agents. They used it more than we did.]]></title><description><![CDATA[tl;dr: Slow is smooth, and smooth is fast. Agent-swarm didn&#8217;t make us faster by coding more. They made us faster by letting us plan instead of firefight.]]></description><link>https://www.pleasedontdeploy.com/p/agent-swarm-leap-we-built-a-ui-for</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/agent-swarm-leap-we-built-a-ui-for</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Mon, 02 Feb 2026 13:50:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mfpn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When we built our first agent swarm, we expected to ship faster. Instead, we spent weeks monitoring it like anxious parents. Here&#8217;s what changed.</p><p>Late November, after a good experience with our <a href="https://github.com/desplega-ai/ai-toolbox/tree/main/cc-plugin/base#agentic-coding-101-with-claude-code">cc-plugin</a> <a href="https://www.pleasedontdeploy.com/p/how-we-stopped-drowning-in-ai-slop">[1]</a>, we gained enough confidence to believe we would have a positive ROI by building our own cloud coders. We tried multiple existing solutions, think conductor, superpowers, etc; and nothing was remotely up to the standards we needed, so we decided to give it a try.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mfpn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mfpn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 424w, https://substackcdn.com/image/fetch/$s_!mfpn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 848w, https://substackcdn.com/image/fetch/$s_!mfpn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!mfpn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mfpn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png" width="1456" height="653" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:653,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:579026,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/186610347?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.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_!mfpn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 424w, https://substackcdn.com/image/fetch/$s_!mfpn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 848w, https://substackcdn.com/image/fetch/$s_!mfpn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 1272w, https://substackcdn.com/image/fetch/$s_!mfpn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8998a17-135b-47e1-b5bc-d9097122af73_2856x1280.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Consumption over the past 30 days.</figcaption></figure></div><p>The first few weeks we seldom used it. It was a fun toy. We were pretty comfortable navigating locally our 5 claude-code tabs, and having to monitor progress in a foreign behavior made it so that it didn&#8217;t really feel like an autonomous developer.  It felt like training an intern. A month in, though, the first behavior shift happened. We crystallized 2 key learnings: </p><blockquote><p><em><strong>(1)</strong> <strong>We are used to working with peers</strong> in very integrated ecosystems (github, slack, documents, etc.) and,</em></p><p><em><strong>(2)</strong> <strong>Lack of context</strong> was the most tedious part of the process.</em> </p></blockquote><p>We were the bottleneck, and that realization is what allowed us to 8x the productivity of our agent swarm in the last 8 weeks.</p><div><hr></div><h1>First: You are not the user, they are</h1><p>It&#8217;s so easy to create a webpage nowadays, that everything you do feels like deserving of their own web footprint. That was our first mistake. <br><br>We created a UX meant for us to chat with our swarm, it is quite wonderful and we rarely used it. In fact, I don&#8217;t think I ever checked it more than a couple of times a week. Not since the start. <br><br>In a world where we are already communicating over so many different apps (whatsapp, notion, linear, jira, slack, imessage, email, github, etc) adding a new one seems so tedious, that in foresight it is obvious we wouldn&#8217;t put with that friction. Our first learning was clear: </p><div class="pullquote"><p>Agents used our chat more than ourselves.</p></div><p>The first obvious moment was when we were commuting and we wouldn&#8217;t find out our agents were stuck. The second one was the extreme frustration to see that an agent had spent the night waiting for a simple &#8220;yes/no&#8221; answer. That made it obvious we needed to introduce 2 changes:</p><ol><li><p><em><a href="https://desplegaai.slack.com/marketplace/A0A4C54AAF8-agent-swarm?settings=1">Slack app</a></em> to interact with our swarm,</p></li><li><p><em><a href="https://github.com/orgs/desplega-ai/people/desplega-bot">desplega-bot</a> </em>to interact directly with PRs.<br>Funny enough, we had to actually create a github user for our bot, given that github doesn&#8217;t allow you to tag apps, otherwise. At least not reliably.</p></li></ol><p>Now our agents are part of every PR, and every conversation. We went from monitoring our agents as you do with software to actually having conversations as we did with our peers. The spike in interactions was immediate, from a couple of times a week, to tens of times a day, as they interacted with our product. Our relationship changed to be much more hands-off, it&#8217;s just that they were doing more&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!koyv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!koyv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 424w, https://substackcdn.com/image/fetch/$s_!koyv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 848w, https://substackcdn.com/image/fetch/$s_!koyv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 1272w, https://substackcdn.com/image/fetch/$s_!koyv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!koyv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png" width="1456" height="806" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:350546,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/186610347?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.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_!koyv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 424w, https://substackcdn.com/image/fetch/$s_!koyv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 848w, https://substackcdn.com/image/fetch/$s_!koyv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 1272w, https://substackcdn.com/image/fetch/$s_!koyv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3617f513-4762-4de1-b425-f6d00c8b5fb1_2234x1236.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h1>Second: Give them <em>alert</em> feeds</h1><p>Context, context, context, context. If you use an observability platform, you are used to copy long stack traces and pasting them in your coding LLM. Alas, you are also used to seeing lots of noise, and disregarding half of what you see.<br><br>Guess what? LLMs are better than us at understanding those messages, but lack the context to understand the importance of them. Hence our second lesson:</p><div class="pullquote"><p>Give them access to alerts, and invest on pruning them constantly.</p></div><p>Specifically, gave them access to Sentry via sentry-cli (agents are great at CLIs, but that&#8217;s for another article)&#8230; and we had to turn it off.  The first couple of days were a disaster, we had alerts that were expected, even positive, and agents proposing different ways to break our system. The second week was even worse, agents seem to reply to random alerts, ignore others, and misinterpret everything in that channel. It wasn&#8217;t the panacea people promised, at least not initially. Instead, we took the time during the following weeks to actually tag manually the agent on those alerts we wanted them to intervene. For the negligible ones, we also ask them to mute/ignore/change them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nGOQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nGOQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 424w, https://substackcdn.com/image/fetch/$s_!nGOQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 848w, https://substackcdn.com/image/fetch/$s_!nGOQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 1272w, https://substackcdn.com/image/fetch/$s_!nGOQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nGOQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png" width="1122" height="1316" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1316,&quot;width&quot;:1122,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nGOQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 424w, https://substackcdn.com/image/fetch/$s_!nGOQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 848w, https://substackcdn.com/image/fetch/$s_!nGOQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 1272w, https://substackcdn.com/image/fetch/$s_!nGOQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bea339d-ad66-43c3-83c3-bddc5f115463_1122x1316.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">17 merged PRs from desplega-bot in the last few weeks, incl. fixes, docs &amp; refactors that would've never happened otherwise.</figcaption></figure></div><p>With a self-developed system, the amount of meta-work you could do in every flow is unparalleled, and grasping such a concept early on is absolutely key: you should always ask it to improve itself, <a href="https://github.com/desplega-ai/agent-swarm/pulls?q=is%3Apr+is%3Aclosed+author%3Adesplega-bot">and it will</a>.<br><br>Week over week, the system continues to finetune itself, with PRs that are either simple fixes, or &#8220;correcting&#8221; alerts. In a few cases, they would span major refactorings. Seems quite straight forward right? </p><p><em>The next major step: what happens if we give them objectives on performance metrics?</em></p><div><hr></div><h1>Third: Make them compete</h1><p>When resources are scarce, you pick one path and commit. That&#8217;s how most of us learned to build. But agent swarms break that constraint, we have much more resources than before, and we have to update our instincts.<br><br>Microsoft, Google, or Apple have been known for having unlimited resources. As a result, they have multiple teams working on the same product, without even knowing. For example, how many social apps or messaging apps did <a href="https://gcemetery.co/">Google create</a>? What about Apple having multiple competing teams developing the iphone, to then pick the best one at the end? Now you can do the same.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pHUe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pHUe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 424w, https://substackcdn.com/image/fetch/$s_!pHUe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 848w, https://substackcdn.com/image/fetch/$s_!pHUe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 1272w, https://substackcdn.com/image/fetch/$s_!pHUe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pHUe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png" width="600" height="584" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d140bda2-f660-41a3-9e34-40ed2200be13_600x584.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:584,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pHUe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 424w, https://substackcdn.com/image/fetch/$s_!pHUe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 848w, https://substackcdn.com/image/fetch/$s_!pHUe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 1272w, https://substackcdn.com/image/fetch/$s_!pHUe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd140bda2-f660-41a3-9e34-40ed2200be13_600x584.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Albeit you probably don&#8217;t have those billions of users, you can opt for a similar approach.  Now your research and planning costs, and even implementation costs, have reduced greatly, so creating 5 versions of your next feature shouldn&#8217;t be that stressful. It&#8217;s a world where POCs could succeed. That&#8217;s our 3rd learning:</p><div class="pullquote"><p>Don&#8217;t do it once, do it thrice</p></div><p>Let me give you an example: You want to unify your web table component across your codebase. Before, you&#8217;d ask your team to research all available tools, pick one and then use that one. At best, you&#8217;ll ask them to try and implement 2 of those and compare. Now, you can do something completely different, you can actually migrate all your tables (or a good number of them) and then actually see it in production under a feature flag. Is it really smoother? Is it really optimized for our QPS? <br><br>It doesn&#8217;t mean you are doing it for everything, it just means that now you can have better informed decisions at a fraction of the cost.</p><div><hr></div><h2>The-one-thing</h2><p>Our leaps didn&#8217;t come from coding every imaginable option, they came from realizations after tinkering with AI for days, weeks and months. What initially was counterintuitive, becomes obvious once you&#8217;ve done enough. </p><div class="pullquote"><p>Give yourself time to plan, instead of react.</p></div><p>We found out we were creating teamplayers, instead of a new devex, and that actually completely shifted our approach. </p><p>It was a good Monday catch-up with Taras.</p>]]></content:encoded></item><item><title><![CDATA[How we stopped drowning in AI-slop PRs]]></title><description><![CDATA[Software Development Life Cycle (SDLC) methodologies were meant to avoid Human Slop, ie. miscommunications. You can address AI cognitive dissonance following those same principles.]]></description><link>https://www.pleasedontdeploy.com/p/how-we-stopped-drowning-in-ai-slop</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/how-we-stopped-drowning-in-ai-slop</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Thu, 22 Jan 2026 10:43:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!E6R0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In September&#8216;25, we started spending hours in iterative loops of AI slop. AI just wasn&#8217;t smart enough to attack our complicated distributed algorithms.  Four months ago, we were struggling with:</p><ol><li><p>Reviewing large PRs that seem to be all over the place,</p></li><li><p>Creating brittle systems that seem to break with every change,</p></li><li><p>Gate-keeping areas of code that were &#8216;human only&#8217;, and</p></li><li><p>Keeping up with all the accelerated innovation.</p></li></ol><p>We often will get into infinite loops being &#8216;totally right&#8217;, and then having AI do whatever the h*ck it wanted. <br><br>In the meantime, we kept hearing how Software Engineering teams kept multiplying their productivity month-over-month (MoM). <em>But how?</em> If your codebase is non-trivial, and you are working on fairly complex technology, this seems impossible. <br><br>In October&#8217;25 we started thinking about how to move from AI informed to <a href="https://www.forbes.com/sites/jakepryszlak/2019/03/08/the-key-differences-between-data-driven-and-data-led/">AI lead</a>, in the hopes of eventually becoming AI driven. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E6R0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E6R0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 424w, https://substackcdn.com/image/fetch/$s_!E6R0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 848w, https://substackcdn.com/image/fetch/$s_!E6R0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 1272w, https://substackcdn.com/image/fetch/$s_!E6R0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E6R0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png" width="1456" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E6R0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 424w, https://substackcdn.com/image/fetch/$s_!E6R0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 848w, https://substackcdn.com/image/fetch/$s_!E6R0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 1272w, https://substackcdn.com/image/fetch/$s_!E6R0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58b3f506-0469-4b3a-8f04-330e04e7f01d_2048x1131.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Productivity during the past 6 months.</figcaption></figure></div><p>Since then, at <a href="http://desplega.ai">desplega.ai</a>, we&#8217;ve been doubling our productivity monthly. We did this by reducing the human-in-the-loop to 3 essential moments, and by adding structure to what was initially a set of unstructured prompts. <br><br>This article will give you an idea on how to start the path to get there yourself.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><h1>First: Software Development Life Cycle (SDLC) applied to AI</h1><p>AI coding platforms include a plan mode, a step in which they try to understand exactly what needs to be done and they describe how they&#8217;ll do it. <em>That&#8217;s wrong</em>. <em>What and How shouldn&#8217;t be together</em>, their objectives are different, the thought process is different, and also a mistake on defining What renders the How unnecessary. <br></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zpim!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zpim!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 424w, https://substackcdn.com/image/fetch/$s_!Zpim!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 848w, https://substackcdn.com/image/fetch/$s_!Zpim!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 1272w, https://substackcdn.com/image/fetch/$s_!Zpim!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zpim!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png" width="1024" height="253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:253,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155762,&quot;alt&quot;:&quot;&quot;,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Zpim!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 424w, https://substackcdn.com/image/fetch/$s_!Zpim!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 848w, https://substackcdn.com/image/fetch/$s_!Zpim!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 1272w, https://substackcdn.com/image/fetch/$s_!Zpim!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590310f5-7515-4c34-a696-b99aeddff4a7_1024x253.png 1456w" sizes="100vw"></picture><div></div></div></a><figcaption class="image-caption">Traditional phases in SDLC</figcaption></figure></div><p>That&#8217;s why SDLCs have stages with clear separation of concerns bolted in well structured communication mechanisms. The <em><a href="https://en.wikipedia.org/wiki/Shift-left_testing">shift-left movement</a></em><a href="https://en.wikipedia.org/wiki/Shift-left_testing"> </a>has proven that those steps are cost-reducing and increase overall speed for delivery. Hence, if you merge two essential parts of the process, imagine what you can expect?<br><br><strong>First learning</strong> </p><div class="pullquote"><p><em><strong>Research first<br></strong>You need to understand a problem in depth (research) before proposing a solution</em>.</p></div><p>LLMs are compartmentalized. Your coding LLM and your GTM LLM, or your Notion one, don&#8217;t have holistic knowledge. Furthermore, they are limited by a context attention span (by size or focus). The same is true for the human reviewing, give them something too long, and they&#8217;ll also lose focus or procrastinate. That is our second learning.<br><br><strong>Second learning</strong></p><div class="pullquote"><p><em><strong>Split Into Atomic Tasks</strong> <br>You need to split tasks in self-contained steps that provide a small &amp; structured context. Humans will review said context.</em></p></div><p>Now that you understand the problem, and you have smaller tasks, you need to deal with the compounding effect of introduced errors. The earlier you introduce an error, or your LLM assumes erroneously something and keeps that in their context, the higher the impact down the line. </p><p>At least for me, it happens often that I find myself switching LLMs for different problems or restarting a new chat, simply because they are on an infinite loop of wrong answers, they just decided wrong at the beginning. It&#8217;s not only coding, generating images or text has the same problem.  Sometimes you need to just start fresh again, because the context built in a single step has gone awry.  That&#8217;s the third learning.</p><p><strong>Third learning</strong></p><div class="pullquote"><p><em><strong>Don&#8217;t iterate, restart</strong><br>You shouldn&#8217;t hesitate to starting from scratch at any step, if the output seems inaccurate.</em> Particularly true during research and planning, as the quality of these compounds heavily. </p></div><p>If you apply this, your software engineers now will behave closer to Tech Leads, than to developers.</p><h1>Second: Researching, Planning, and Implementing</h1><p>From those 3 learnings, we distilled three distinctive steps for our SDLC:<br><br><strong>Research</strong></p><p>Once you have an objective, you start a research on how your current solution, and existing libraries work. It could be a highly intensive process, hence we usually rely on multiple agents, MCPs, and other plugins that investigate the web, architecture, DB, infrastructure, code (even the deprecated one), libraries, docs, etc.<br></p><p>The output is a snapshot on the current systems available to achieve your objective. It&#8217;s a well crafted document that summarizes the state of the art at a given point in time. No more, no less. <br></p><p>You can store and version your research, and you can also stop relying on documentation altogether. This was key, now you have fresh research before a task, not outdated documentation that&#8217;s more difficult to maintain.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w5Jw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w5Jw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 424w, https://substackcdn.com/image/fetch/$s_!w5Jw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 848w, https://substackcdn.com/image/fetch/$s_!w5Jw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 1272w, https://substackcdn.com/image/fetch/$s_!w5Jw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w5Jw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png" width="1257" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1257,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w5Jw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 424w, https://substackcdn.com/image/fetch/$s_!w5Jw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 848w, https://substackcdn.com/image/fetch/$s_!w5Jw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 1272w, https://substackcdn.com/image/fetch/$s_!w5Jw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d4184ea-3428-4c9c-baf6-e81d0b2efe79_1257x628.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p> As humans, we review, edit and approve research. For example, you would remove deprecated libraries that don&#8217;t need updating, or corner cases that don&#8217;t represent business concerns.</p><p><strong>Planning from one, or more, research</strong></p><p>The tenet here is that you should be able to execute each step only with the output from the step before. That results in planning only requiring research documents as input. No more context, no more distractions, just plan.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Edxe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Edxe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 424w, https://substackcdn.com/image/fetch/$s_!Edxe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 848w, https://substackcdn.com/image/fetch/$s_!Edxe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 1272w, https://substackcdn.com/image/fetch/$s_!Edxe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Edxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png" width="1269" height="672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:672,&quot;width&quot;:1269,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Edxe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 424w, https://substackcdn.com/image/fetch/$s_!Edxe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 848w, https://substackcdn.com/image/fetch/$s_!Edxe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 1272w, https://substackcdn.com/image/fetch/$s_!Edxe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff77c9072-dce7-4eab-b2c6-b644d121fbbb_1269x672.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The output from planning is a design document. It goes as low-level as showing key code changes. It will describe which algorithms and libraries it&#8217;s planning to use. This is all about the How.</p><div class="pullquote"><p>As a Plan reviewer, <em>the level of scrutiny you apply would be that of a document that you&#8217;ll hand down to an intern, for them to implement on their own</em>.</p></div><p>No questions allowed. You are looking for decisions that deviate from how you envision the system in the hopes that you can detect edge cases, and lighten your code review phase.</p><p><strong>Implement a plan</strong></p><p>This is the &#8220;easy&#8221; part, if you did well before. Plans usually have phases, and each phase doesn&#8217;t require the context of the previous one, only the Plan. This is a direct result of how our plan was crafted, as you would do when defining a plan for your  team, e.g. the plan should get implemented even if someone is sick, ooo or just got hired. Hence each step needs to be &#8220;atomic&#8221;.</p><blockquote><p>Atomicity means that you can restart your coding agent with each implementation phase, keeping your context always at bay.</p></blockquote><p>Our implementation agent will ask for impromptu snippet reviews, do multiple commits, and PRs, depending on the size of the feature or the practices of your team.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p><h1>Third: DIY or try one in 2 minutes.</h1><p>As a starting point we opensourced our plugin, and agents, so you can use them as a guide <a href="https://github.com/desplega-ai/ai-toolbox/tree/main/cc-plugin/base/agents">here</a>. If you instead prefer to try it in action, you can: <br><br><strong>For claude-code</strong></p><pre><code>/plugin marketplace add <a href="https://github.com/desplega-ai/ai-toolbox/tree/main/cc-plugin/base#installation">desplega-ai/ai-toolbox</a>
/plugin install desplega@desplega-ai-toolbox
/desplega:research &lt;your research query&gt;</code></pre><p><strong>For anything else</strong> (<a href="http://skill.sh">skill.sh</a>)</p><pre><code>npx skills add desplega-ai/ai-toolbox</code></pre><p>This will get you off the ground, but if you really want to leverage this power, you&#8217;ll need to learn and adapt it to your codebase. The mastery comes from actually understanding the patterns you follow in your own SDLC. <br><br>Feel free to reach out with questions, and have fun!</p><div><hr></div><h2>The-one-thing</h2><p>Whatever you do, <em><strong>start using all the knowledge you&#8217;ve got from working in teams of hundreds of engineers</strong></em>. Because it doesn&#8217;t matter the size of your company, in a few months the dynamics are going to be that of having an unlimited number of colleagues, and you need to master how to deliver at that scale.<br></p><blockquote><p>I&#8217;ve been hearing more and more companies that are 10x&#8217;ing personal allowances. They know how much of a gain there is, a single person in 5 minutes could save them years of investment, or decide to leave the company to do it on their own.</p></blockquote><p><em>You can do it!</em></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Together with Taras we wrote this series of articles to share different concepts we applied in this journey, starting with the mental model we used to tailor each step today. We will include Reviews, Quality Assurance, Security, Monitoring &amp; Reliability soon, keep tuned!</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>We won&#8217;t talk today about testing, monitoring, and everything that comes afterwards, so that you really trust what&#8217;s produced. That comes next.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Antigravity lost me in 30 seconds, after an incredible first day.]]></title><description><![CDATA[I loved it so much, I closed Cursor immediately&#8230; blackhat manipulation techniques, & bad payment flows, lost me in seconds.]]></description><link>https://www.pleasedontdeploy.com/p/antigravity-lost-me-in-30-seconds</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/antigravity-lost-me-in-30-seconds</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Tue, 16 Dec 2025 14:20:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2a33beeb-2e24-4fa7-9a5f-d256128aadc7_2047x1520.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>tl;dr:</strong> The best product can still lose if you ask for money in the wrong way. Antigravity had the best UX, and codegen skills I&#8217;ve seen. I used them non-stop for 2 days. In 30 seconds, they lost me with unpredictable credit limits, a 4 day lockout, and broken payment flows.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kPHw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kPHw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 424w, https://substackcdn.com/image/fetch/$s_!kPHw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 848w, https://substackcdn.com/image/fetch/$s_!kPHw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 1272w, https://substackcdn.com/image/fetch/$s_!kPHw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kPHw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png" width="486" height="290" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:290,&quot;width&quot;:486,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:59708,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/181787375?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a6c7c58-0ff2-4966-826d-97d47e1c6d44_487x383.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_!kPHw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 424w, https://substackcdn.com/image/fetch/$s_!kPHw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 848w, https://substackcdn.com/image/fetch/$s_!kPHw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 1272w, https://substackcdn.com/image/fetch/$s_!kPHw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f2987d-d84d-421c-b9ad-ba910474f328_486x290.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Antigravity timeline (<em>pardon my Spanish</em>)</figcaption></figure></div><p>Friday afternoon I decided to work on a fun project. For a long time, I&#8217;ve been experimenting with gamifying my day-to-day work experience. That&#8217;s how the idea for <a href="http://swipe.desplega.sh">swipe.desplega.sh</a> came to be. I wanted a simple app to swipe through my issue tracker, deciding what I would dismiss, mark as WAI, or assign to claude-code&#8230; ehmmm, I meant myself.</p><p>That&#8217;s when I recalled a convo with a Googler that pushed me to try Antigravity. He was vigorously telling me it was exactly what we used back in the day. As a Xoogler the temptation was too big not to try it. And it was amazing. It took me 10 minutes from nothing to having a proof-of-concept.</p><p>I&#8217;m not big at planning, neither letting my agents run wild, however they prompted me in the right time to check their inbox feature, and it was a game changer. Suddenly I was writing plans, reviewing them, and adding key features I had never thought of before. But it didn&#8217;t stop there, they also detected related repos &amp; configurations while using the inbox, which immediately made it so I started developing important things there.</p><p>After 1hr, I had closed Cursor, I was sharing the news with some friends, and I was convinced from now on I would only use Antigravity. I was wrong.</p><h2>First: Flawless Onboarding</h2><p>The biggest blocker I find lately to test new solutions is cognitive. It takes an hour to set up, a day to see some ROI, and a week to feel I&#8217;m productive. That has been my experience with GTM (rb2b, ahrefs, vidIQ, etc) and Tech tools  (Claude CLI, Gemini CLI &amp; <a href="http://opencode.ai">OpenCode.ai</a>) alike. Only 10% became tools I rely on, doesn&#8217;t matter how hard I try. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OsfU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OsfU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 424w, https://substackcdn.com/image/fetch/$s_!OsfU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 848w, https://substackcdn.com/image/fetch/$s_!OsfU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 1272w, https://substackcdn.com/image/fetch/$s_!OsfU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OsfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png" width="1456" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OsfU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 424w, https://substackcdn.com/image/fetch/$s_!OsfU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 848w, https://substackcdn.com/image/fetch/$s_!OsfU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 1272w, https://substackcdn.com/image/fetch/$s_!OsfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feeccf270-a6ab-48ae-9409-ec243a892476_1600x659.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Can you tell which one is Cursor?</em></figcaption></figure></div><p>From the start, Antigravity felt different. It didn&#8217;t ask me for anything other than a folder, my repo, and then it naively suggested in a pop-up that I try their inbox functionality. The plot twist? I didn&#8217;t check it. Instead it creeped in when I received the first notification after planning.</p><p>The inbox experience was game-changer. Notifications worked like a charm, and commenting on plans was natural. It was during those planning sessions that it kept discovering other repos, and added them to my inbox. By the end, I was doing all my &#8216;coding&#8217; from my &#8216;gmail inbox&#8217;, and it felt great.</p><blockquote><p>By hour 3, I had closed all my Cursor windows, and I had decided I was going to use Antigravity moving forward. I didn&#8217;t need anyone to tell me I was being more productive, I knew I was.</p></blockquote><h2>Second: Surprisingly Delightful</h2><p>Looking back, what really prompted me to close cursor was only ease of use, in two areas:</p><ol><li><p><strong>Inbox UX</strong><br>Our current coding experience is closer to async reviewing of design documents than it is to chat with someone. The inbox concept recognizes how async the relationship with new IDEs is. <br><br>Cursor &amp; others tried to embrace this new paradigm with moderate success, Antigravity is simply better. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gVZe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gVZe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 424w, https://substackcdn.com/image/fetch/$s_!gVZe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 848w, https://substackcdn.com/image/fetch/$s_!gVZe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 1272w, https://substackcdn.com/image/fetch/$s_!gVZe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gVZe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png" width="696" height="283.467032967033" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:593,&quot;width&quot;:1456,&quot;resizeWidth&quot;:696,&quot;bytes&quot;:92090,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/181787375?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.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_!gVZe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 424w, https://substackcdn.com/image/fetch/$s_!gVZe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 848w, https://substackcdn.com/image/fetch/$s_!gVZe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 1272w, https://substackcdn.com/image/fetch/$s_!gVZe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d295e91-c82c-4b6c-b436-9a57b7bcb686_1709x696.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Inbox with detected repos</em></figcaption></figure></div></li><li><p><strong>An effective collaborative agent</strong>, that reinforces (1)<br>During my first few hours, I didn&#8217;t really have to re-prompt much. Even when I had to comment on the planning, the implementation afterwards was good enough. <br><br>The truth is, I found some things I wasn&#8217;t entirely happy with, however,  prompting for small fixes was enough. This delightful interactions completely shifted my previous experiences. Antigravity truly understood the type of solutions I was looking for.</p></li></ol><p>You may ask yourself <em>&#8216;how did I know it was better&#8217;?</em> Truth is, last week I built a similar app with Cursor + Claude (<a href="https://www.desplega.ai/tools/flaky-or-fixable">https://www.desplega.ai/tools/flaky-or-fixable</a>). Only the swiping took multiple iterations with that setup, and I&#8217;m still not happy with the results. In fact, I asked Antigravity to re-do that app, when&#8230;</p><h2>Third: The blackhat wall</h2><p>After 2 days of smooth sailing, Monday was here and I was looking forward to my Antigravity time.  Suddenly, Antigravity decided I had run out of credits&#8230; and it did 3 things wrong:</p><ol><li><p><strong>Unpredictability.</strong><br>I didn&#8217;t know I was running out of credits this fast. Actually, I thought I was being extra careful, using fast models for easy tasks and using planning sporadically.  <br>I wasn&#8217;t prepared for a sudden lockout, it was frustrating.</p></li><li><p><strong>Artificial Scarcity</strong><br><em>&#8216;Your credits will reset on Nov 19th&#8217;</em>, that was four days!! Now you are full on blackhat manipulation mode, yup I know the game. My question: <br><br>     <em>Why are you looking to generate negative feelings?</em><br><br>You got me defensive, and my brain will be looking for any excuse not to do it, and it got worse&#8230;</p></li><li><p><strong>Paying was friction-full</strong><br>I had Cursor closed, a bunch of things I wanted to do, I was somewhat frustrated, but I thought <em>&#8216;hey, I&#8217;ll cancel my Cursor subscription and that&#8217;s that&#8217;.</em> Well, that&#8217;s when the fun started.</p><ol><li><p><em>No payment link</em><br>The note referred to a &#8216;X service subscription&#8217;, do I need all that? Why am I paying so much if I only need this. Well, ok, let me check the price.</p></li><li><p><em>&#8216;Not available for your business account&#8217;</em><br>Dude, really? I need to use my personal account? Ok&#8230;</p></li><li><p><em>Yes! Upgrade to Google One for more&#8230;</em><br>How much more? I had learned my lesson from (1) &amp; (2), I wasn&#8217;t going to become dependent on a scarce, opaque and unpredictable tool.</p></li></ol></li></ol><p>All of this happened in a span of 30 seconds, by the end I had Cursor opened again, and I was back with my old set up. </p><div class="pullquote"><p>Blackhat techniques destroy in seconds loyalty that you built in days. </p></div><p>If they instead would have used whitehat techniques (&#8216;Here you go, 2 more days on us&#8217; or &#8216;Share it with this code and you get 2 months free&#8217;) my sentiment would have been the exact opposite to this one.</p><h2>the one thing</h2><p>Attention is the new currency, and loyalty is your moat. <br><br>Antigravity won me over, in just a few hours it had become my de-facto IDE. I had recommended it to colleagues &amp; friends, I was ready to switch my GenAI subscriptions. However&#8230;</p><p>They destroyed all that trust in 30 seconds by showing they don&#8217;t respect their users&#8217; time, or their end-to-end experience, when it matters most. They failed when it matters most.<br><br>For me,  Monday 2:30pm, I was ready to pay. Their payment flow issues cost them not only my LTV, but they also ended up burning through their CAC for a shot at a quick buck.<br><br><em>How many others did they lose this week?</em></p>]]></content:encoded></item><item><title><![CDATA[!? Cloudflare: AI slop is a SaaS problem.]]></title><description><![CDATA[The same AI that floods internet with mediocre content is disregarding SaaS non-functional requirements]]></description><link>https://www.pleasedontdeploy.com/p/cloudflare-ai-slop-is-a-saas-problem</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/cloudflare-ai-slop-is-a-saas-problem</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Mon, 24 Nov 2025 15:47:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OZoM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>tl;dr: <em>Quality, Reliability and Service</em> are key executive concerns when selling your software as <a href="https://x.com/sama/status/1952084574366032354?s=20">SaaS is entering the fast-fashion era</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_!OZoM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OZoM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 424w, https://substackcdn.com/image/fetch/$s_!OZoM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 848w, https://substackcdn.com/image/fetch/$s_!OZoM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 1272w, https://substackcdn.com/image/fetch/$s_!OZoM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OZoM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png" width="953" height="637" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:637,&quot;width&quot;:953,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:752655,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OZoM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 424w, https://substackcdn.com/image/fetch/$s_!OZoM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 848w, https://substackcdn.com/image/fetch/$s_!OZoM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 1272w, https://substackcdn.com/image/fetch/$s_!OZoM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14d0abd6-5d29-42f4-adb9-074d560325c3_953x637.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Incidents per month trend, based on a few providers.</figcaption></figure></div><p>Every couple of weeks a provider has an outage and we all commiserate about it. Your teams tell you it&#8217;s because slack/AWS/Cloudflare/SVB is down and we don&#8217;t have the redundancy, even though SOC2 insists we should have a recovery plan. Then the real exercise in futility starts.</p><p>I&#8217;ve been in multiple conversations where you start planning for a migration that would give you the redundancy and the quality standards that your customers wish for. The team invests countless hours planning a costly migration, integrating with new providers, to come to the realization a month later that leadership has forgotten about this priority. As a result, once this project gets delayed for quarters, two things would happen: (1) You&#8217;ll fire your Head of Engineering the next time this happens, and (2) Your team won&#8217;t believe you next time you say this is a priority for the business.</p><div class="pullquote"><p><strong>Spot the fallacy</strong>: Internet shouldn&#8217;t be down if a (major) provider has an outage.</p></div><p>Before doing the math together to figure out how much of a real issue this is for your business, and your providers, let&#8217;s look into the last five years of incident data to see if this problem is getting worse.</p><h2>First: The study.</h2><p>I took the liberty of compiling all self-reported incidents from Cloudflare, DataDog, Github, Google Cloud, Zoom, and Slack. I focused on providers with transparent incident reporting. Surprisingly many major providers cap their public disclosures, or have limited historic data, making accurate comparison impossible.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zdCW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zdCW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 424w, https://substackcdn.com/image/fetch/$s_!zdCW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 848w, https://substackcdn.com/image/fetch/$s_!zdCW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 1272w, https://substackcdn.com/image/fetch/$s_!zdCW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zdCW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png" width="1456" height="861" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:861,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zdCW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 424w, https://substackcdn.com/image/fetch/$s_!zdCW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 848w, https://substackcdn.com/image/fetch/$s_!zdCW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 1272w, https://substackcdn.com/image/fetch/$s_!zdCW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ec0c1a0-86a6-4dcc-b3ad-2435b60616f6_1684x996.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://docs.google.com/spreadsheets/d/1xPesyBaRQPaFXs4pGO-lzZc9RU998iZV9as2F8PsVVI/edit?gid=1294885230#gid=1294885230"># incidents per month</a></figcaption></figure></div><p>The curve for Cloudflare speaks for itself. They went from well below 50 incidents a month in 2022, to over 100 during the last 3 years. You could argue they launched multiple products, expanded their user base, and they became the de-facto solution. You could also make the case that they may report incidents multiple times, if those affect several solutions. However, I think we can agree on 2 things:</p><ol><li><p>Peaks &amp; valleys from Google Cloud <em>kind-of</em> map those from Cloudflare &#129335;&#127997;&#8205;&#9792;&#65039;,</p></li><li><p>Other equally important platforms saw incident increases, too.</p></li></ol><p>The first one, it&#8217;s just hearsay, so I&#8217;ll skip it, it&#8217;s just a curiosity. The second one is much more interesting. If you normalize the curves, it&#8217;s clear that while most sustained some degree of increase, particularly Github, Datadog, and Zoom, they didn&#8217;t double incidents. Actually, Datadog &amp; Google Cloud improved significantly since 2022, and both seem to be trending downwards. <strong>Kudos to them!</strong> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cGzH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cGzH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 424w, https://substackcdn.com/image/fetch/$s_!cGzH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 848w, https://substackcdn.com/image/fetch/$s_!cGzH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 1272w, https://substackcdn.com/image/fetch/$s_!cGzH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cGzH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png" width="600" height="371" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:371,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cGzH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 424w, https://substackcdn.com/image/fetch/$s_!cGzH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 848w, https://substackcdn.com/image/fetch/$s_!cGzH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 1272w, https://substackcdn.com/image/fetch/$s_!cGzH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee1b2c5-aa2c-4320-af36-27636b63bb95_600x371.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://docs.google.com/spreadsheets/d/1xPesyBaRQPaFXs4pGO-lzZc9RU998iZV9as2F8PsVVI/edit?gid=1294885230#gid=1294885230"># incidents per month</a> &amp; provider, normalized by mean.</figcaption></figure></div><blockquote><p>In 2011, <a href="https://www.cbsnews.com/news/blackberry-outage-enters-third-day-washington-dc-reacts/">Blackberry</a> had a 3-day major outage affecting their private network. They went from peak revenue in 2011 (~20Bn) to ~7Bn by 2013. That&#8217;s mostly because their customers had multi-year contracts, they probably forgave the issues, but didn&#8217;t forget. Their Quality &amp; Reliability moat was eroded after such an incident.  <br><br>The Blackberry case study is categorical, you should consider that when your customers evaluate what providers to use next, reliability and quality will bite back, hard.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L_4P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L_4P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 424w, https://substackcdn.com/image/fetch/$s_!L_4P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 848w, https://substackcdn.com/image/fetch/$s_!L_4P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 1272w, https://substackcdn.com/image/fetch/$s_!L_4P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L_4P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png" width="536" height="539" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:539,&quot;width&quot;:536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128265,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/179826539?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.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_!L_4P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 424w, https://substackcdn.com/image/fetch/$s_!L_4P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 848w, https://substackcdn.com/image/fetch/$s_!L_4P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 1272w, https://substackcdn.com/image/fetch/$s_!L_4P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62d8188e-7aad-4c70-9613-f65b69da2ca7_536x539.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://twitter.com/eastdakota/status/1990925549892456558">It&#8217;s never about the commitment shown by Executives</a>, it&#8217;s about trust. In that scenario, explaining what happened is not enough, and asserting that you care, won&#8217;t be enough.</p><h2>Second: Countermeasures</h2><p>Unfortunately, the services provided by Cloudflare are not easy to replicate. It&#8217;s closer to having two ERPs or CRMs, in case one fails. <em>Do you know someone that does so?</em></p><p>No company has Salesforce with a transparent fallback to Hubspot, or viceversa. It&#8217;s true that you could build it, and both platforms allow you to have setups running 24/7 to extract and populate data. It&#8217;s also true that your customers wouldn&#8217;t notice if you are using SFDC, Hubspot or Attio, at any given point in time. However,  most organizations wouldn&#8217;t invest the resources required for this to happen. In fact, it&#8217;s so difficult with a single platform, that teams usually have RevOps experts pulling the data from their own business. It&#8217;s their built-in customer lock-in methodology, their moat.</p><p>Cloudflare, Google Cloud, Azure, AWS, etc, are in a similar situation. You can have redundancy, and your tech teams can build towards that horizon, however for a growing company this quickly becomes prohibitively expensive in time and resources. </p><p>It&#8217;s usually because Tech leaders are builders, that they rally behind the idea before evaluating the ROI for such long term investments. As an Executive, the question you need to answer is simple:</p><div class="pullquote"><p>Would avoiding a 1 day outage be worth 2x my tech infra costs?</p></div><h2>Third: The math</h2><p>Sit down with your Account Management and Customer Support team, they&#8217;ll need to help you answer the following questions:</p><ol><li><p><strong>Do we have customer agreements that penalize us due to SLAs?</strong><br>Even worse, many corporations will include clauses that allow them to cut ties with you immediately if your uptime is below 99.99%. That means your largest accounts will get a free &#8216;get out of jail&#8217; card. Or, at the very least, you&#8217;ll need to have a very uncomfortable conversation.</p></li><li><p><strong>How much new business will we lose during that outage?</strong><br>If you lost a whole day to onboard new users, how would that actually look like from a P&amp;L perspective. This is true for C2C/B2C solutions, much less for B2B SaaS.</p></li><li><p><strong>What&#8217;s the sentiment of our existing customers after an outage?</strong><br>This one is tricky, most people will be understanding at first. They probably were faced with similar issues from other providers, so they will actually let it slip&#8230; until&#8230;</p></li><li><p><strong>What happens when someone approaches them with a solution that promises better Quality?</strong><br>You need a proactive playbook. In an AI world where features aren&#8217;t a key differentiator any longer, the non-functional requirements become key.<br>It&#8217;s Quality that rules, and outages are the biggest expression of failure.</p></li></ol><p>I&#8217;m confident if your company is an SMB, or an early stage startup, you can safely ignore the redundancy idea. The only question you may ask yourself is: <em>should I change providers?</em></p><h1>the one thing</h1><p>Quality, Reliability and Service are a key competency for your team. It&#8217;s not because the absence of them will mean you&#8217;ll lose business immediately, it&#8217;s actually because once a user uses your solution, they get savvy.</p><p>Customers learn quickly about your solution, competitors, and alternatives. They will quickly consider a switch when price is not an issue, if they have  the promise of something that works &#8216;a bit better&#8217;. That&#8217;s all the push they need to do that seamless transition, and explain to their superiors how they have done the smart choice. Above all,</p><div class="pullquote"><p>Don&#8217;t fire your head of engineering! <br>They did the right thing for the business.</p></div><h2>References</h2><ol><li><p><a href="https://docs.google.com/spreadsheets/d/1xPesyBaRQPaFXs4pGO-lzZc9RU998iZV9as2F8PsVVI/edit?gid=512271886#gid=512271886">[2020-2025] Self-reported incidents</a></p></li><li><p><a href="https://x.com/sama/status/1952084574366032354?lang=en">Entering the fast fashion era of SaaS very soon</a></p></li><li><p><a href="https://twitter.com/eastdakota/status/1990925549892456558">Claudflare: I&#8217;m Sorry</a></p></li><li><p><a href="https://blog.cloudflare.com/18-november-2025-outage/">Cloudflare: postmortem</a></p></li><li><p><a href="https://www.zdnet.com/article/blackberry-outage-day-three-rim-explains-what-went-wrong/">Blackberry: &#8216;is not acceptable to us or to you&#8217;</a></p></li><li><p><a href="https://www.cbsnews.com/news/blackberry-outage-enters-third-day-washington-dc-reacts/">Blackberry: outage-enters-third-day</a></p></li><li><p><a href="https://www.statista.com/statistics/266240/blackberry-revenue/">Blackberry: revenue 2004 - 2024</a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[The trap: we automated coding, not quality]]></title><description><![CDATA[How observability, QA, monitoring, should look like if your team doesn&#8217;t know the code.]]></description><link>https://www.pleasedontdeploy.com/p/the-trap-we-automated-coding-not</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/the-trap-we-automated-coding-not</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Tue, 11 Nov 2025 11:01:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3ftW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><em><strong>tl;dr:</strong></em> Software Control solutions need to evolve to master business level communication. Most of the nitty gritty details &#8211; events, debug logs, assertion, traces, etc &#8212; will be consumed by LLMs soon enough, anyways. </p><p>Who will be able to abstract complexity?</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3ftW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3ftW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 424w, https://substackcdn.com/image/fetch/$s_!3ftW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 848w, https://substackcdn.com/image/fetch/$s_!3ftW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 1272w, https://substackcdn.com/image/fetch/$s_!3ftW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3ftW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png" width="808" height="670" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:670,&quot;width&quot;:808,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:389820,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3ftW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 424w, https://substackcdn.com/image/fetch/$s_!3ftW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 848w, https://substackcdn.com/image/fetch/$s_!3ftW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 1272w, https://substackcdn.com/image/fetch/$s_!3ftW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bb21e12-eb20-44b9-9a37-1b91347c95d4_808x670.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Before we start, let&#8217;s make sure we agree in the following statements:</p><ol><li><p><em><strong>Smaller tech teams are producing more complex software solutions,</strong></em><br>This has been true for the past decades. In the 90s you needed thousands of engineers to build a marketplace, nowadays with shopify and webflow, everyone can do it instantly.<br>This is the biggest software promise: never doing the same thing twice.</p></li><li><p><em><strong>The technical acumen required to develop software is trending downwards,</strong></em><br>Again, a corollary of the above, and something that simply got accelerated in the past couple of years. You can now build your own app without even knowing what coding is, isn&#8217;t that great?</p></li><li><p><em><strong>Software solutions are evolving faster, and becoming less deterministic,</strong></em><br>This is new. Until recently, the nature of any no-code/low-code solution was extremely limiting. You could start a project with them, and as soon as you needed to take it beyond the &#8216;standard path&#8217;, you would need to call an expert.<br>A great example of this is the whole DevOps/RevOps ecosystem around SalesForce(SFDC). For those companies using SFDC heavily, it&#8217;s usually a good idea to use providers or define a full software development life cycle (SDLC) around that supposedly no-code platform. In fact, they also develop custom plugins and abstraction layers on top of the existing solution.<br><br>Tools like Replit, v0, lovable, base44, etc. promise you can actually create what you like, anyway you want, without that burden&#8230; </p></li><li><p><strong>It&#8217;s a trap!</strong><br>The essential complexity of a running software solution is ensuring your software is reliable, accurate, secure, and performant. That to say, we know issues arise from ill conceived software, or users doing the unexpected, or providers failing, etc. Assuming that &#8216;generating a solution&#8217; is equivalent to &#8216;generating the right solution&#8217; or even worse &#8216;generating a production ready solution&#8217; is the trap. And that is the challenge that every mature software faces. <br><br><em>In this article, I&#8217;ll use <strong>software control, SC</strong>, in lieu of observability, monitoring, QA, etc.</em></p></li></ol><p><em>I</em>f you agree on the above, then here I&#8217;ll discuss:</p><ol><li><p>First: <strong>The trap</strong>, how generating &#8220;accurate&#8221; code is fixed to a point in time.</p></li><li><p>Second: <strong>Before</strong>, why we built solutions that now are intrinsically outdated,</p></li><li><p>Third: <strong>After</strong>, how to build towards a holistic approach.</p></li></ol><p>If you don&#8217;t agree with my points above, challenge me in the comments. I love when proven wrong.</p><h1>First: The Trap</h1><div class="pullquote"><p><em>&#8220;I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation</em>.&#8221; <strong>- Frederick Brooks.</strong></p></div><p>This is the trap, and we all fall into it so often, and in such unexpected ways, that we have built professions around it. We first believed translating requirements to code was the challenge, and we have been proven wrong  every time we see those that choose the<em> right problem</em> succeed. We still believe Quality Control, Observability, and Monitoring (<em>Software Control</em>) to be challenges, when those are the only mechanisms at our disposal to verify the fidelity of our generated code. And those need to change. <br><br>By falling into this trap, we long ignore the inherent properties of the irreducible essence of software systems: <strong>complexity, conformity, changeability, and invisibility</strong>. Particularly, conformity and changeability force software to be like Proteus, condemned to cycle through endless versions eternally to please its masters. Specifically:</p><ol><li><p><strong>Conformity</strong> is defined by the human desire for such a solution, and how that changes through time and as we have more individuals using our software. The <a href="https://en.wikipedia.org/wiki/Kano_model">Kano Model </a>being the ultimate example of this time affectation, we simply get used to features, and we usually experiment with software to give it new meaning and uses.</p></li><li><p><strong>Changeability</strong>, to be honest, <em>conformity</em> wouldn&#8217;t be such a big deal, if <em>changeability</em> wasn&#8217;t there. Most human products evolve, however simply the investment required to change serves to dampen the whims of the changers. It&#8217;s because software allows for fast, seamless, iterations, that it creates an expectation of constant improvement. Forty (40) years ago, this was reserved for highly advanced software, nowadays it&#8217;s the only way to have a competing product that provides a solution in any industry.</p></li></ol><p>Like a shark that is not moving, if your software is not evolving, then it&#8217;s dead.</p><h1>Second: Building the train vs running the train</h1><p>We have discussed two seemingly contradictory truths above: <br>&#9;(a) software changes constantly, hence validation is a key challenge, and <br>&#9;(b) testing the fidelity of a software representation is not an essential part of software.</p><p>On the surface, they seem to be dichotomous, however the explanation is simpler than expected: validation in (a) refers to the conceptual construct, whereas (b) is directly talking about the systems you need to have in place to verify a solution is working as defined. Unfortunately <em>we haven&#8217;t found a way to do (a) without (b)</em>, as humans or machines need to  verify a conceptual construct by seeing it behave in the wild.  Let me repeat it:</p><div class="pullquote"><p>As humans/machines, we lack the power to ensure descriptions of conceptual constructs (ideas) are accurate enough to create &amp; iterate software generated from them.</p></div><p>Observing is the only effective way we have found to partially address the problem. We believe something works well if we see the system operate under specific conditions for a period of time. That&#8217;s all that we know in this area, and it&#8217;s very little. <br><br>In fact, QA (testing, quality control, unit, integration, fuzzing, end-to-end, load, synthetic monitoring, exploratory, etc) is centered on artificially generating scenarios that we believe would happen in the wild, so that we can <em><strong>observe</strong></em> those to refine our conceptual constructs. The human struggle to prove &#8216;absence&#8217; is so deeply ingrained, that we are forced to have systems surveilling our software in real-time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TQsM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TQsM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 424w, https://substackcdn.com/image/fetch/$s_!TQsM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 848w, https://substackcdn.com/image/fetch/$s_!TQsM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 1272w, https://substackcdn.com/image/fetch/$s_!TQsM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TQsM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png" width="1456" height="787" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:787,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TQsM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 424w, https://substackcdn.com/image/fetch/$s_!TQsM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 848w, https://substackcdn.com/image/fetch/$s_!TQsM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 1272w, https://substackcdn.com/image/fetch/$s_!TQsM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73d28fa7-0b60-4f0c-9ca8-58ca3f26883d_1524x824.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As an example, when you go through a driver license exam they check you know how to drive. They don&#8217;t try to corroborate that you won&#8217;t ever get into traffic accidents. The first one is what vibe-coding apps are helping with, the latter is what we need to evolve towards, and its complexity is terrifying.</p><h1>Third: Quality for vibecoders</h1><p><em>Software Control solutions are a mess.</em><br><br>Check your APM dashboard and ask yourself if you would ever use something like this in a team of 3. We can do better, we deserve it. They are fragmented, expensive, and terribly complex.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x518!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x518!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 424w, https://substackcdn.com/image/fetch/$s_!x518!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 848w, https://substackcdn.com/image/fetch/$s_!x518!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 1272w, https://substackcdn.com/image/fetch/$s_!x518!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x518!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png" width="1456" height="894" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:894,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x518!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 424w, https://substackcdn.com/image/fetch/$s_!x518!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 848w, https://substackcdn.com/image/fetch/$s_!x518!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 1272w, https://substackcdn.com/image/fetch/$s_!x518!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a1db0a-c7e2-434d-b628-d3b700cbd377_1600x982.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The good news is that with this latest fundamental shift we can re-invent them, due to:</p><ol><li><p><strong>Including extra code to observe your system is now &#8216;free&#8217;.</strong><br>With AI generating code you can be explicit about anything, e.g. with a simple command you could ensure all software includes multiple calls to different Software Control (SC - ie. QA, Monitoring, Observability, etc) SDKs or services with high reliance and autonomy. This means, you can now invest heavily in an area that traditionally was an afterthought, and a privilege of large organizations. If you are curious, <a href="https://github.com/desplega-ai/business-use">business-use</a> is a good example.</p></li><li><p><strong>You can &#8216;safely&#8217; reduce the noise.</strong><br>Your agents should be able to understand the first layer of output from any SC solution, and make a first attempt to reflect on the meaning of such results. That&#8217;s why so many people believe it&#8217;s the end of dashboards. Agents can tell you what&#8217;s a &#8216;real problem&#8217;, and where to look into first.</p></li><li><p><strong>Computing is sufficiently cheap =&gt; cheaper than human labor</strong><br>Now you can run swarms of agents to do all your Quality Control, they can try to reach a confidence level that would be close to that &#8216;absence&#8217; above, in a time/cost efficient manner.</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_!2kHs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2kHs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 424w, https://substackcdn.com/image/fetch/$s_!2kHs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 848w, https://substackcdn.com/image/fetch/$s_!2kHs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 1272w, https://substackcdn.com/image/fetch/$s_!2kHs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2kHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png" width="769" height="286" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c290b343-1610-4686-a0f9-a389c819b1e9_769x286.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:286,&quot;width&quot;:769,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81287,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2kHs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 424w, https://substackcdn.com/image/fetch/$s_!2kHs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 848w, https://substackcdn.com/image/fetch/$s_!2kHs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 1272w, https://substackcdn.com/image/fetch/$s_!2kHs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc290b343-1610-4686-a0f9-a389c819b1e9_769x286.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>The real challenge will be the UX.</em> <br><br>Non-tech users are already looking for a solution in this realm. An experience that allows them to understand what&#8217;s happening in a system without the cognitive load of understanding traces, resources, and YAMLs. They won&#8217;t have the team to do such translation either, and if you were to facilitate such information, it would be simply copied &amp; pasted into Claude. <br><br>We need a solution that feels closer to an ERP or a CRM, a place where you define what matters for your business, and you take limited actions to course correct.</p><h1>the one thing</h1><p>While companies reduce in size, CTO &amp; C(x)O roles continue to merge. Individuals wearing the hat of Tech together with Marketing, Product, People, Operations, etc, are not an exception anymore. This was happening even before LLMs, and it has accelerated. Software has become a core competency.</p><p>Software Control solutions need to leverage this, they need to get closer to a Company mission control center, than to a Tech solution. They need to start speaking business so that your company sees, understands and decides where to invest their time and resources next. That&#8217;s where the ROI will be clear.</p><p>It&#8217;s time to start considering how your QA/Observability/SC solution can be understood &amp; used by any CEO.</p><h1>References</h1><ol><li><p><a href="https://martinfowler.com/articles/domain-oriented-observability.html">Domain-Oriented Observability</a> - Martin Fowler</p></li><li><p><a href="https://martinfowler.com/bliki/ContinuousDelivery.html">Continuous Delivery</a> - Martin Fowler</p></li><li><p><a href="https://martinfowler.com/delivery.html">Software Delivery Guide</a> - Martin Fowler</p></li><li><p><a href="https://martinfowler.com/testing/">Testing Guide</a> - Martin Fowler</p></li><li><p><a href="https://martinfowler.com/tags/continuous%20delivery.html">Continuous Delivery Tag</a> - Martin Fowler</p></li><li><p><a href="https://paulgraham.com/ds.html">Do Things that Don&#8217;t Scale</a> - Paul Graham</p></li><li><p><a href="https://x.com/karpathy/status/1767598414945292695">Tweet Thread: Automating Software Engineering</a> - Andrej Karpathy</p></li><li><p><a href="https://www.latent.space/p/s3">Latent Space: Software 3.0 Deep Dive</a> - Latent Space - Andrej Karpathy</p></li><li><p><a href="https://ikyle.me/blog/2025/andrej-karpathy-software-is-changing-again">Kyle Howells&#8217; Summary</a> - Kyle Howells</p></li><li><p><a href="https://charity.wtf/tag/observability/">charity.wtf Blog</a> - Charity Majors</p></li><li><p><a href="https://newsletter.pragmaticengineer.com/p/observability-the-present-and-future">The Pragmatic Engineer Podcast</a> - Charity Majors</p></li><li><p><a href="https://refactoring.fm/p/observability-and-testing-in-production">Refactoring Podcast</a> - Charity Majors</p></li><li><p><a href="https://thenewstack.io/honeycombs-charity-majors-go-ahead-test-in-production/">The New Stack: Testing in Production</a> - Charity Majors</p></li><li><p><a href="https://www.oreilly.com/library/view/observability-engineering/9781492076438/">Observability Engineering</a> - Charity Majors, Liz Fong-Jones, George Miranda</p></li><li><p><a href="https://37signals.com/podcast/two-person-teams/">Two Person Teams</a> - Jason Fried (REWORK Podcast)</p></li><li><p><a href="https://world.hey.com/jason/just-the-two-of-us-afb2f54e">&#8220;Just the two of us&#8221;</a> - Jason Fried</p></li><li><p><a href="https://www.produxlabs.com/product-thinking-blog/2023/8/16/episode-132-simplicity-by-design-for-product-development-with-jason-fried-co-founder-and-ceo-of-37signals">Episode 132: Simplicity by Design</a> - Jason Fried (Product Thinking Podcast)</p></li><li><p><a href="https://itrevolution.com/articles/the-three-ways-principles-underpinning-devops/">The Three Ways: Principles Underpinning DevOps</a> - Gene Kim</p></li><li><p><a href="https://www.moonshots.io/blog/2021/2/3/the-best-startup-ideas-from-paul-graham-at-ycombinator">Moonshots Podcast: Best Startup Ideas from Paul Graham</a> - Moonshots</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Practical Ephemeral Code with Imploid.]]></title><description><![CDATA[Trying to imploid without imploding.]]></description><link>https://www.pleasedontdeploy.com/p/practical-ephemeral-code-with-imploid</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/practical-ephemeral-code-with-imploid</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Thu, 23 Oct 2025 12:23:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZXEz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>Tl;dr</strong>: In my <a href="https://www.pleasedontdeploy.com/p/the-future-of-your-code-is-no-code?utm_campaign=post&amp;utm_medium=web">last post</a> we discussed how to work at the next level, this is a practical setup using <a href="https://github.com/Hey-Diga/imploid/tree/main/src">imploid</a> &amp; <a href="https://www.npmjs.com/package/@desplega.ai/qa-use-mcp">qa-use mcp</a>. [<a href="https://github.com/desplega-ai/docker-imploid">repo</a>]</em></p><p><strong>Overview</strong></p><p>Upon my disappointment with the new <a href="https://cursor.com/blog/plan-mode">Cursor&#8217;s plan mode</a>, and a great chat with <a href="https://www.linkedin.com/in/sergioespeja/">Sergio Espeja</a>, I decided to give <a href="https://github.com/Hey-Diga/imploid/tree/main/src">imploid</a> a go; here the lessons learned.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZXEz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZXEz!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 424w, https://substackcdn.com/image/fetch/$s_!ZXEz!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 848w, https://substackcdn.com/image/fetch/$s_!ZXEz!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 1272w, https://substackcdn.com/image/fetch/$s_!ZXEz!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZXEz!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif" width="498" height="326" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:326,&quot;width&quot;:498,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Blow Mind Mind Blown GIF - Blow Mind Mind Blown Explode - Discover &amp; Share  GIFs&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Blow Mind Mind Blown GIF - Blow Mind Mind Blown Explode - Discover &amp; Share  GIFs" title="Blow Mind Mind Blown GIF - Blow Mind Mind Blown Explode - Discover &amp; Share  GIFs" srcset="https://substackcdn.com/image/fetch/$s_!ZXEz!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 424w, https://substackcdn.com/image/fetch/$s_!ZXEz!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 848w, https://substackcdn.com/image/fetch/$s_!ZXEz!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 1272w, https://substackcdn.com/image/fetch/$s_!ZXEz!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe621c758-d77b-4f65-bcd6-a7d34ef9257c_498x326.gif 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been using Cursor for well over a year now, and Claude Code for the past 3 months. Both tools have their good, bad and ugly, and learning the caveats on when they are more effective takes a significant amount of time. Furthermore, the setup is the killer, it takes several weeks of trial &amp; error to understand exactly how to most effectively use each LLM, learnings which are not cross-compatible. Let me give you three examples:<br><br>+ <a href="https://x.com/josevalim?lang=en">Jose Valim, creator of Elixir</a>, discussed how for his new project <a href="http://tidewave.ai">tidewave.ai</a> this is a core part of their added value (<a href="https://changelog.com/friends/112">great podcast!</a>). Even if they work in a bring-your-own-apikey (BYOK) for LLMs fashion, their actual value is on how they use those LLMs calls. He also makes a point on how the most cumbersome challenge to tackle is testing, something that he doesn&#8217;t have the time right now to address. It is clear for him we are moving to the realm of conceptual challenges, more than &#8216;how to do it with code&#8217;<br><br>+ <a href="https://x.com/kieranklaassen?lang=en">Kieran Klassaan from Cora</a> has a similar perspective on the skills needed to run these networks of Agents when talking about <a href="https://www.youtube.com/watch?v=srh0zy1MQcI&amp;list=PL2qVyzMQnDm-vIb9qdrBs5JhIhQCM4TBO">Compounding Engineering</a>. He says it in a simple way: whatever works for you, and then shows an amazing set of <a href="https://www.youtube.com/watch?v=srh0zy1MQcI&amp;list=PL2qVyzMQnDm-vIb9qdrBs5JhIhQCM4TBO&amp;index=27">detailed agents</a> that he has created specifically for his org.</p><p>+ <a href="https://x.com/dexhorthy">Dex</a> Horty, founder of <a href="https://github.com/humanlayer">Humanlayer</a>, goes further into how disrupting adopting key patterns could be for an individual. In fact, he actually points out how difficult it is to get beyond that 80% solution that gets actually your product worth it. (<a href="https://www.youtube.com/watch?v=8kMaTybvDUw">watch it!</a>)</p><p>If you are half as lazy as I am, you would understand by now why I got excited with <a href="https://github.com/Hey-Diga/imploid/tree/main">Imploid</a>. I love the end result, I would love to contribute, I don&#8217;t know if I want to maintain it, though. The same way that I love my coffee, and I would never roast it myself. I have other things to attend.<br><br>So, how did I do it?</p><h3><em>First: Docker, Docker, Docker</em></h3><p>If you think I would go the easy way, and simply install the <a href="https://www.npmjs.com/package/imploid">npm package</a> and wish for the best&#8230; you may not know me yet. After so many years as a developer I learned that the easy way is usually the risky way, and I really didn&#8217;t want some LLM deciding it would be nice if they had more space in my harddrive and proceeding to empty all my precious downloads. Thus, I follow the standard setup:<br><br>(a) Checked out the <a href="https://github.com/Hey-Diga/imploid">imploid</a> repo into my repos folder.</p><p>(b) Created a new repo, <a href="https://github.com/desplega-ai/docker-imploid">docker-imploid</a>,</p><p>(c) Asked very kindly to claude-code if it could review the <a href="https://github.com/Hey-Diga/imploid">imploid</a> repo and create a configuration for my Docker. It didn&#8217;t work&#8230; obvs.<br><br>A few lessons learned that should help you save time:</p><ol><li><p><a href="https://github.com/Hey-Diga/imploid">Imploid</a> runs claude with &#8216;--dangerously-skip-permissions&#8217;, hence</p><ol><li><p>Your docker runs with a non-sudo user by default. <br> Claude code only allows you to use this option if you are not sudo&#8230; thank you anthropic!</p></li><li><p>You need to override your claude binary so it includes an mcp config command. I simply created a wrapper for claude-code, see below.</p></li></ol></li></ol><pre><code># ~/bin/claude
#!/bin/bash
# Claude wrapper to always load MCP config
MCP_CONFIG=&#8221;$HOME/bin/mcp_config.json&#8221;
# Check if this is an MCP management command
if [[ &#8220;$1&#8221; == &#8220;mcp&#8221; ]]; then
  # Pass through MCP management commands directly
  exec /usr/local/bin/claude &#8220;$@&#8221;
fi
# For all other commands, add --mcp-config if the config exists
if [ -f &#8220;$MCP_CONFIG&#8221; ]; then
  exec /usr/local/bin/claude --mcp-config &#8220;$MCP_CONFIG&#8221; &#8220;$@&#8221;
else
  exec /usr/local/bin/claude &#8220;$@&#8221;
fi</code></pre><ol start="2"><li><p>Git will use your SSH keys by default<br>It&#8217;s a bit misleading, but your gh token is only useful for gh, so it&#8217;s important to make sure your docker exposes your ~/.ssh directory and does the proper mappings. Personally, I have several ssh keys, so this was a nightmare.</p></li><li><p><a href="https://github.com/Hey-Diga/imploid/tree/main/src">Imploid</a> expects a <a href="http://setup.sh">setup.sh</a> file in your repo&#8217;s root<br> Simply rename your setup script accordingly. It&#8217;s good practice, and naming convention, so do it!</p></li><li><p>Map ~/.imploid to your docker directory &#8211; that <a href="https://github.com/desplega-ai/docker-imploid">docker-imploid</a> repo I mentioned above.<br>That way you can keep track of what&#8217;s going on in your agent&#8217;s activity. Personally, it made it easy for me to set all my .env variables and also run the system locally when needed.</p></li></ol><p>I know it reads easy, but it took Claude &amp; myself an hour of furious debate to agree on the strategy we followed, and I was extremely happy to find out the decisions were the right ones once I started debugging.<br><br>Finally, remember once you have docker up and running, you need to do two things: </p><pre><code>docker-compose exec &lt;instance name&gt; bash, and then:
npx imploid@latest &#8211;config
npx implid@latest &#8211;foreground</code></pre><h3><em>Second: <a href="https://www.youtube.com/watch?v=eVhO3JO5F1k">It works, It works!</a></em></h3><p>I dipped my toes into the <a href="https://github.com/Hey-Diga/imploid/tree/main/src">Imploid</a> workflow with three tasks of varied complexity:</p><ol><li><p><em>Easy -<strong> Change the default behavior of a filter.</strong></em> <br>This was my first change, and the PR was flawless, it felt like I could delegate those intern bugs without giving it a second thought. I simply ask two things: </p><ol><li><p>Make the filter disabled by default, and </p></li><li><p>Preserve in local storage the user selection. </p></li></ol></li><li><p><em>Medium - <strong>Add a new floating menu on the left side of our how-to&#8217;s</strong><br></em>This is a  non-trivial UX change that requires the agent to understand how our how-to section is structured, all the subpages, how I personally want the floating menu to be displayed, and it&#8217;s open ended enough that chances are it would fail&#8230; <strong>it didn&#8217;t!</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6lUY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6lUY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 424w, https://substackcdn.com/image/fetch/$s_!6lUY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 848w, https://substackcdn.com/image/fetch/$s_!6lUY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 1272w, https://substackcdn.com/image/fetch/$s_!6lUY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6lUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png" width="1456" height="852" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:948720,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/176915162?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.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_!6lUY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 424w, https://substackcdn.com/image/fetch/$s_!6lUY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 848w, https://substackcdn.com/image/fetch/$s_!6lUY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 1272w, https://substackcdn.com/image/fetch/$s_!6lUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a82a6e-9023-4051-9a8b-2239201d60f2_2207x1292.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">For the attentive eye, yes, the color used for the top option had to be addressed later on.</figcaption></figure></div><blockquote><p>For this task, it was essential to get visual feedback without needing to actually run the branch locally. This is when having a way to do end-to-end tests remotely came handy. More in the next section.</p></blockquote></li><li><p><em>Hard - <strong>Translate my website to Spanish.</strong></em><br>I took my landing page, and I simply ask it to translate it to Spanish in a new tree under /es/. <br><br>At this point I ran into my first hiccups. Claude didn&#8217;t feel comfortable translating text for me. On top of that given the size of the task (Translate 50+ pages), the agent decided the task was too big and suggested partitioning it in chunks, and suggested I create multiple tasks at a higher level.<br><br>It felt like I was being asked to do something that was part of the planning, but once done, it proceeded without much issues. I ended up doing the following:<br><br>1) Task to do a setup for a &#8216;Spanish web site&#8217;<br>2&#8230;n-1) Multiple tasks translating different subdirectories of content.<br>n) A task to make sure the /es/ site linked only to /es/ pages.<br><br>By the end, it was clear that <strong>the translation task was beyond claude&#8217;s scope</strong>. I opted for halting the project. If I continue in this direction, I&#8217;ll likely use a different LLM to translate the texts. </p><p></p></li></ol><h3><em>Third: How are you going to test this?</em></h3><p>A nice little thing by <a href="https://github.com/Hey-Diga/imploid/tree/main/src">Imploid</a> is that it defines your unit-tests by default. In fact, with a little fine-tuning, you can get a fair unit-test coverage on the fly. However, if you read some of my posts before, I&#8217;m not a fan of unit-testing. They help you with syntactic correctness, creating a false sense of control over the actual business semantics that you want to validate.<br><br>Hence, for the end-to-end experience, I used <a href="https://www.npmjs.com/package/@desplega.ai/qa-use-mcp">qa-use-mcp</a>. This actually had 3 great advantages:</p><ol><li><p><strong>Real-time feedback<br></strong>I&#8217;ve got to see in real-time what was happening in the <a href="http://desplega.ai">desplega.ai</a> web app; what the agent was trying to test, how it had decided to test the feature, issues it was finding or that were arising.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EBVO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EBVO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 424w, https://substackcdn.com/image/fetch/$s_!EBVO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 848w, https://substackcdn.com/image/fetch/$s_!EBVO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 1272w, https://substackcdn.com/image/fetch/$s_!EBVO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EBVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png" width="907" height="753" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:753,&quot;width&quot;:907,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:165547,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/176915162?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.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_!EBVO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 424w, https://substackcdn.com/image/fetch/$s_!EBVO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 848w, https://substackcdn.com/image/fetch/$s_!EBVO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 1272w, https://substackcdn.com/image/fetch/$s_!EBVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9a69a03-d65c-4ab5-8c74-ce29410d88ca_907x753.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Recording from the live test generation session.</figcaption></figure></div><p></p></li><li><p><strong>Fully remote<br></strong>I didn&#8217;t need to run the build to verify the functionality.<br>Because I had the recordings, I could simply check what was done in the e2e tests and verify the UX was the one I wanted. That actually saved me valuable time, because even if the feature was &#8216;correct&#8217;, I could see the flow and decide I wanted to change parts of it.</p><p></p></li><li><p><strong>An extra feedback loop<br></strong>Running the tests also generated feedback for claude code. If you think about it, it was now interacting for the first time with a system that had a different objective, not finishing the task, but actually verifying it was a valid functionality for the context and user persona it had defined.<br><br>In my case, I allowed the system to decide what e2e tests to create, so it decided to do a mobile test also. By the end, I already had 3 end-to-end tests ready to be used in staging moving forward.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jvKS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jvKS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 424w, https://substackcdn.com/image/fetch/$s_!jvKS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 848w, https://substackcdn.com/image/fetch/$s_!jvKS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 1272w, https://substackcdn.com/image/fetch/$s_!jvKS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jvKS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png" width="921" height="939" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83421385-7ad0-4059-8106-a4161a2445de_921x939.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:939,&quot;width&quot;:921,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.pleasedontdeploy.com/i/176915162?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.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_!jvKS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 424w, https://substackcdn.com/image/fetch/$s_!jvKS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 848w, https://substackcdn.com/image/fetch/$s_!jvKS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 1272w, https://substackcdn.com/image/fetch/$s_!jvKS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83421385-7ad0-4059-8106-a4161a2445de_921x939.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Final e2e test generated with qa-use. </figcaption></figure></div></li></ol><p>It wasn&#8217;t a perfect experience, but I was able to break through the docker black-box with this little add-on, that otherwise it would have been reading logs and locally running the solution. It&#8217;s true it&#8217;s not a mandatory step, and in some cases it won&#8217;t be difficult for you to run in localhost, however if you are running multiple versions, this truly gets you to be at the next level.</p><h3><em>The-one-thing: Give it time</em></h3><p>This week <a href="https://cursor.com/docs/agent/planning">Cursor launched their planner</a>, based on similar concepts, and you also have <a href="https://conductor.build/">Conductor</a>, <a href="https://github.com/humanlayer/humanlayer">HumanLayer</a>, and <a href="https://tidewave.ai/">Tidewave</a> plus many more. <br><br>It&#8217;s up to you which one you&#8217;d choose, always keeping in mind that vendor lock-in and customization are going to be your biggest challenges moving on.<br><br>Remember those old days of C/C++, Cobol, Pascal, Assembly, and Fortran, vs Java, Python, C#, RoR, JS, PHP, etc. Their VMs and interpreters may be slower, but the time savings in developer time justified the change immensely. There&#8217;s no reason to see it differently this time, this is simply the next leap.</p><div class="pullquote"><p>Take the leap.</p></div><h3>References</h3><ol><li><p><a href="https://github.com/Hey-Diga/imploid">Hey-Diga/imploid</a>.</p></li><li><p><a href="https://www.npmjs.com/package/@desplega.ai/qa-use-mcp">@desplega.ai/qa-use-mcp - npm</a></p></li><li><p><a href="https://www.figma.com/blog/introducing-figma-mcp-server/">Introducing our MCP server: Bringing Figma into your workflow</a></p></li><li><p><a href="https://github.com/humanlayer/humanlayer/tree/main">https://github.com/humanlayer/humanlayer/tree/main</a></p></li><li><p><a href="https://conductor.build/">Conductor</a></p></li><li><p><a href="https://tidewave.ai/">Tidewave</a></p></li><li><p><a href="https://podcasts.apple.com/hn/podcast/a-new-direction-for-ai-developer-tooling-friends/id341623264?i=1000731208460">A new direction for AI developer tooling (Friends)</a></p></li><li><p><a href="https://github.com/desplega-ai/docker-imploid">Docker-imploid</a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[The future of your code is no-code.]]></title><description><![CDATA[Is your codebase being reduced every day?]]></description><link>https://www.pleasedontdeploy.com/p/the-future-of-your-code-is-no-code</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/the-future-of-your-code-is-no-code</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Mon, 29 Sep 2025 15:41:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hC9j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Tl;dr</strong>: We argue how with LLMs we need to shift our software development practices to accommodate for pseudo-deterministic ephemeral code. We deep dive into the challenges with vibecoding and a potential model for software development allowing for Agentic code generation with every run.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FAvb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FAvb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 424w, https://substackcdn.com/image/fetch/$s_!FAvb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 848w, https://substackcdn.com/image/fetch/$s_!FAvb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 1272w, https://substackcdn.com/image/fetch/$s_!FAvb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FAvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png" width="448" height="341.7931034482759" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:885,&quot;width&quot;:1160,&quot;resizeWidth&quot;:448,&quot;bytes&quot;:324440,&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://harlequinetcie.substack.com/i/174820774?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbae1ef41-f563-4814-917f-6396ecfc783d_1240x1276.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_!FAvb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 424w, https://substackcdn.com/image/fetch/$s_!FAvb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 848w, https://substackcdn.com/image/fetch/$s_!FAvb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 1272w, https://substackcdn.com/image/fetch/$s_!FAvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03b7e439-5080-48c8-94fb-098a64635d7e_1160x885.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Since the introduction of High-level programming languages (HLPL), Software Development has evolved throughout the years introducing new frameworks, repositories, IDEs, and services meant to reduce the complexity of creating new software. The core precept that has guided this evolution is dual: a firm idealized belief that software provides means to solve a problem once,<em> and for all</em>, and a pragmatic realization that the world is always more complex than you could imagine, leading to increasing challenges. Complexity compounds while software eats the world. The reigning belief for the past 50 years has been to simply re-utilize as much as possible, which leads to specialization of software.</p><p>Particularly in these past two decades, we&#8217;ve seen SaaS and global repositories, like npmjs, become key. Nowadays we don&#8217;t implement their own feature-flag solutions, ORMs, or RBAC systems. In fact, multiple startups have been created with tens of engineers, instead of thousands, as a result of this, and it doesn&#8217;t end there. Many businesses don&#8217;t have a tech team, however they do have their own ecommerce and social media software strategies based on services like shopify or instagram for business. The landscape keeps shifting and adapting to that landscape has been a trademark for our profession.<br><br>Most experienced Software Engineers took those notions at core, which lead to two shifts in the last years:</p><ol><li><p><em>It became a lack of seniority trademark to develop solutions from scratch</em>.<br><br>There are things that you simply don&#8217;t do, unless it&#8217;s your team&#8217;s sole objective, e.g. creating a UI component library, an ORM, or implementing a search algorithm. Actually seniority is defined as <em><strong>refining systems to decide which providers/libraries to use</strong></em>, and that requires</p></li><li><p><em>Knowing your core business tech advantage, a must for great Tech leaders</em>.<br><br>Long gone are the days in which technologists&#8217; value was locked on knowing the intricate details of a codebase (<a href="https://itrevolution.com/product/the-phoenix-project/">check the Phoenix Project</a>! Nowadays this is detrimental). For the past decade, it has been always about identifying early on where to focus tech efforts, and delegate the rest. Great Tech leaders are able to place the right bets so that the software they produce becomes key leverage to the business. <strong>Their software is core to the value proposition of their business.</strong></p></li></ol><p>Vibe-coding is the ultimate expression of these precepts, and that&#8217;s why you should embrace it everywhere. In particular, two things happen simultaneously:</p><ol><li><p>You can afford to generate code <em>faster than ever</em>,</p></li><li><p><em>Your applications can mutate themselves</em> based on user input.</p></li></ol><p>Almost everyone is focusing on (1), very few are exploring (2), and most start-ups are focused (3). Three is the easy path forward, providing infrastructure to all, and skipping the conundrum altogether.<br><br>We argue here that you should start leveraging, buying and building, solutions that follow an approach closer to (2). We make a point on why (1) keeps adding tech debt in your codebase, one of the most insidious challenges in this new world. While (2) is actually providing a new HLPL language to your customers, what the industry has been calling no-code/low-code solutions, now in human language.</p><h3><em>First: Vibe-coding is, unfortunately, still coding.</em></h3><p>You could think it&#8217;s funny, sad, glorious or a condemnation, but vibe-coding is still coding. In fact, <em>&lt;rant&gt; it&#8217;s a bit worse than old fashion coding, you still need to debug &amp; test &#8211; which I really procrastinated on &#8211; and you don&#8217;t get to write those cool double for-loops any more&lt;/rant&gt;</em>. <br><br>Actually most vibe-coders are experiencing the same problems any software engineer team had before: lack of security, monitoring, stable releases, &#8220;wasting&#8221; time in QA, etc. And that has a simple truth: they are generating code without knowing how to <em>manage code</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oIi4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oIi4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 424w, https://substackcdn.com/image/fetch/$s_!oIi4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 848w, https://substackcdn.com/image/fetch/$s_!oIi4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 1272w, https://substackcdn.com/image/fetch/$s_!oIi4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oIi4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png" width="624" height="672.8421052631579" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abea3589-691c-40b3-972e-305487b296f4_1482x1598.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1598,&quot;width&quot;:1482,&quot;resizeWidth&quot;:624,&quot;bytes&quot;:529588,&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://harlequinetcie.substack.com/i/174820774?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41f1430b-ddc9-4e31-9ffb-b7591e8fef8e_1564x1684.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_!oIi4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 424w, https://substackcdn.com/image/fetch/$s_!oIi4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 848w, https://substackcdn.com/image/fetch/$s_!oIi4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 1272w, https://substackcdn.com/image/fetch/$s_!oIi4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabea3589-691c-40b3-972e-305487b296f4_1482x1598.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Reddit vibecoder threads are plagued with these issues.</em></figcaption></figure></div><p>The main issue for mature tech teams is a bit different, though, it&#8217;s that the code generated stays there, possibly forever. Unless you decide to dedicate part of your team to prune your codebase, which humans are historically bad at, the ratio at which you&#8217;ll be introducing new forgotten features has grown exponentially. Yes, you now can afford to introduce a new set of features per customer, it also means you&#8217;ll end in 2 years with a codebase equivalent to that one that was produced before in ~20yrs with a similar team. <br><br>This is a challenge not just for the size, and complexity of the code itself, but also because it means you have a fraction of the time to implement all the measures that came before with decades of maturity. That will take a toll, and you&#8217;ll likely end-up investing on:</p><ol><li><p>Agents that clean the codebase</p></li><li><p>Agents that remove unused code-paths,</p></li><li><p>Agents that remove unused features,</p></li><li><p>Monitoring, telemetry, etc, those things that you needed with a team of 100 before.</p></li></ol><p>The feeling would be that of a software company that is continuously deprecating their software and reducing the team. Having seen this in the past, the constant burden of maintenance 80% of the time, instead of the classic 20%, I know leads to productivity issues.</p><p>So how do you start building systems that don&#8217;t need to rely on so much code?</p><h3><em>Second: Prompts! are still non-deterministic in nature.</em></h3><blockquote><p><em><strong>&#8220;Code should self-improve with every run&#8221;</strong></em></p></blockquote><p>This has been the main tenet since day one at <a href="http://desplega.ai">desplega.ai</a>. The challenge was to adapt and rely on the non-deterministic nature of prompts. Basically, you need to generate code that is stable enough so core areas of your software work as your users expect, and knowing what they expect is always key. Because <em><strong>users will anchor their expectations</strong></em> to some version of the software ( e.g. even if the functionality provided is equivalent, a human will get bothered if buttons change color every time), we decided to use the term &#8216;anchoring intents&#8217; to denote what we need to be deterministic.<br><br>We concluded that whichever strategy we followed, we needed to allow for (a) custom code and (b) a way to anchor certain properties or characteristics down to the detail. If you end up using custom code for (b) then you run the risk of having just code, and that&#8217;s something we aim to avoid. <br><br>To solve for this, we&#8217;ve been working with the following high level flow:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hC9j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hC9j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 424w, https://substackcdn.com/image/fetch/$s_!hC9j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 848w, https://substackcdn.com/image/fetch/$s_!hC9j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 1272w, https://substackcdn.com/image/fetch/$s_!hC9j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hC9j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png" width="701" height="493.49244505494505" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1025,&quot;width&quot;:1456,&quot;resizeWidth&quot;:701,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hC9j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 424w, https://substackcdn.com/image/fetch/$s_!hC9j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 848w, https://substackcdn.com/image/fetch/$s_!hC9j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 1272w, https://substackcdn.com/image/fetch/$s_!hC9j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe9dac9a3-29b8-4148-a3d3-78cfe037b5ec_1547x1089.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Human-in-the-loop to anchor behavior is an unavoidable requirement, that is either a user action, a PM review, or a Team meeting; the system needs a confirmation. With this strategy your development efforts are now centered on Agents whilst the rest of the team (UX, Product, QA, etc) are still working on their day-to-day customer centric view. If you think about it, you have just done a major infrastructure update that will keep updating itself, and luckily reduced your codebase in the process.</p><h5>Note</h5><p>With enough expertise you could easily go and adjust the anchored intents manually, however these are usually bloated prompts with very detailed descriptions that make it so the system is deterministic where it matters.</p><h3><em>Third: Expertise still is the key differentiating factor</em></h3><p>Just in this high level example, you can see how if your objective was to build an e-commerce platform, you would need to fine-tune at least:</p><ol><li><p><em>A coding agent</em><br>You need a coding agent that knows your technology stack, business principles, design principles and limitations profoundly. It needs to know AWS/GCP, ORM, JS framework, Payment rails, tracking system, etc.</p></li><li><p><em>An observability agent</em><br>To manage your monitoring, traceability, experiments, etc. A constant oversight on your infrastructure and monitoring production before an incident escalates. It needs to understand your system signals, what systems to interact with, the options at its disposal, and when to alert who and how.</p></li><li><p><em>A set of agents to handle communications<br></em>Internally and externally, a wide range of agents supporting customers, employees, and prospects. This is your most revenue sensitive set of agents, and maybe the most relevant one,</p></li><li><p><em>An agent to ensure your quality upon delivery</em><br>Whenever you put your system out there, it needs to work better each time. Either a Web UI E2E testing agents, APIs, evals or all the previous ones, to ensure your application as a whole works as expected for all your customers, all the time. You can focus on the first 3, that if your quality is poor, no-one will use your product.</p></li></ol><p>Each of these agents mentioned above deserves special attention, and potentially a team of individuals working on it. This is why expertise is still needed in each area, and you should find out what&#8217;s the right way to get that expertise: in-house or not. You&#8217;ll always need someone in your team to review the configurations, and manage these agents, however you may not need someone in your team to develop this agent&#8217;s infrastructure in each case. Think of how you pay for DataDog, NewRelic or Grafana, each of the agent networks above would be an equivalent service.</p><p>In our e-commerce example, you may consider your products and your network effects are the key competitive advantage, bundled with your unique user experience. In that case, the scope for your team is around controlling these agents, more than creating that infrastructure, and &#8216;anchoring&#8217; a particular voice and UI. They need to do it exceedingly well, so that you don&#8217;t lose the raise against the next e-commerce.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ASi6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ASi6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 424w, https://substackcdn.com/image/fetch/$s_!ASi6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 848w, https://substackcdn.com/image/fetch/$s_!ASi6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!ASi6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ASi6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png" width="1514" height="1164" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/127fa861-535f-449f-a914-06623d6fee03_1514x1164.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1164,&quot;width&quot;:1514,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:817245,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ASi6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 424w, https://substackcdn.com/image/fetch/$s_!ASi6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 848w, https://substackcdn.com/image/fetch/$s_!ASi6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 1272w, https://substackcdn.com/image/fetch/$s_!ASi6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F127fa861-535f-449f-a914-06623d6fee03_1514x1164.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Vibe-coding apps regenerate the code in each iteration and lack the maturity to do so effectively.</figcaption></figure></div><h5>Note</h5><p>The idea of learning and re-generating the code based on usage, means that majority of the work would be around having a tight feedback loop that allows your agents to regenerate the ephemeral code upon issue discovery to improve a target metric, for example network performance, FPS, etc. Setting up and managing the feedback loop is going to be the majority of the work, and why you need to be conscious there&#8217;s an exploding need of better quality solutions, i.e. the quality bar will keep rising.</p><h3><em>The-one-thing: Code should be ephemeral</em></h3><p>Remember those old days of C/C++, Cobol, Pascal, Assembly, and Fortran, vs Java, Python, C#, RoR, JS, PHP, etc. Their VMs and interpreters may be slower, but the time savings and broader support justified the change immensely. </p><div class="pullquote"><p>Whatever solution you use, or create, it should be one where the code is ephemeral, intents are permanent. There&#8217;s no reason to see it differently this time, this is simply the next leap.<br><br><strong>Leap first</strong></p></div><h3>References</h3><ol><li><p><a href="https://www.mckinsey.com/capabilities/quantumblack/our-insights/ai-for-it-modernization-faster-cheaper-and-better">AI for IT modernization: Faster, cheaper, better</a></p></li><li><p><a href="https://martinfowler.com/articles/exploring-gen-ai/anchoring-to-reference.html">Anchoring AI to a reference application</a></p></li><li><p><a href="https://martinfowler.com/articles/2025-nature-abstraction.html">LLMs bring new nature of abstraction</a></p></li><li><p><a href="https://fortune.com/2025/05/21/technologists-are-embracing-vibe-coding-as-they-deploy-more-ai-enabled-tools-to-boost-productivity/">Technologists are embracing &#8216;vibe coding&#8217; as they deploy more AI-enabled tools to boost productivity | Fortune</a></p></li><li><p><a href="https://webtech.tools/vibe-coding-in-2025">Vibe Coding: The Rise of a Revolutionary Trend in Software Development in 2025 | WebTech Tools</a></p></li><li><p><a href="https://x.com/karpathy/status/1886192184808149383?lang=en">Andrej Karpathy on X: &#8220;There&#8217;s a new kind of coding I call &#8220;vibe coding&#8221;, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It&#8217;s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper&#8221; / X</a></p></li><li><p><a href="https://www.forbes.com/councils/forbestechcouncil/2025/08/27/the-cost-of-poor-software-quality-and-how-ai-can-fix-it/">The Cost Of Poor Software Quality And How AI Can Fix It</a></p></li><li><p><a href="https://www.mckinsey.com/capabilities/quantumblack/our-insights/ai-for-it-modernization-faster-cheaper-and-better">AI for IT modernization: Faster, cheaper, better</a></p></li><li><p><a href="https://seths.blog/2015/02/leap-first-is-now-available/">Leap First - Seth Godin</a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[Don’t Leave Quality to Chance: Step up your Software Development Life Cycle]]></title><description><![CDATA[A dirty little secret when using AI for coding: you are now in a scaleup.]]></description><link>https://www.pleasedontdeploy.com/p/dont-leave-quality-to-chance-step</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/dont-leave-quality-to-chance-step</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Wed, 03 Sep 2025 12:15:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a068c679-6dda-4a90-8dd6-bc0c513283ba_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><em><strong>tl;dr:</strong></em> You have 10x productivity from your SWE team, but your quality and efficiency have dropped. This is because you have effectively scaled your team overnight; what was previously a team of 10 now feels like a team of 50. We discuss a few reasons for this, the theory behind it, and how teams have overcome these challenges before&#8230; because they <em>have</em> done it in the past!</p></blockquote><p>A few times in my career, I've had the opportunity to be a direct manager of 10+ individuals. My record is actually ~25, and I&#8217;m not proud of it. Usually, what led to those circumstances was either me being a late hire after years of poor management practices or a major re-org that resulted in me leading a new organization. I don&#8217;t recommend it, however, I would do it again if needed.</p><p>This is the art of managing the unmanageable, and in each case, I did two things from day one that proved incredibly rewarding:</p><ol><li><p>Put safeguard processes in place that allowed me to shape the work in the organization (over the years, I started calling that &#8216;defining principles&#8217;).</p></li><li><p>Make myself redundant by spotting the talent that would later lead the organization.</p></li></ol><p>To be clear, I have tried many other approaches throughout my career, and I&#8217;ve learned quickly that these two were the only things that mattered. I&#8217;ve done this for scaling teams in Growth, Product, UX, HR, and Tech many times, and it&#8217;s a key area I mentor on. That&#8217;s because it used to be a challenge present only in larger teams; with AI, this is becoming a challenge in Tech even with a team of two people.</p><p>So let&#8217;s talk about those Safeguard Processes and leave the People Management topic for a future post.</p><h2><strong>Why is this a problem now?</strong></h2><p>Theories like the<a href="https://en.wikipedia.org/wiki/Ringelmann_effect"> Ringelmann effect</a>,<a href="https://aws.amazon.com/executive-insights/content/amazon-two-pizza-team/"> Amazon&#8217;s Two-Pizza Team</a> rule, and<a href="https://en.wikipedia.org/wiki/Brooks%27s_law"> Brooks's Law</a> were all based on humans as the main source of labor. That means humans were the ones producing the work, and very few were leading that work. To be specific:</p><ol><li><p><strong>Free-riding</strong> is the key concept in the Ringelmann effect, and it&#8217;s the result of others being so distracted that they cannot see your lack of contribution. If others are 10x as productive, it means you can &#8216;vanish&#8217; much earlier on.</p></li><li><p><strong>Single-threaded leaders</strong> may not be affordable or needed in a world where 90% of the work is defining a direction, and the rest just happens. Maybe you can save on that second pizza.</p></li><li><p><strong>Brooks's Law</strong> focuses on exponential communication as a result of a growing team. However, you can see how exponential communication is also necessary as a result of exponential productivity. There are more things to communicate than before, and humans are particularly slow when it comes to relaying information to each other.</p></li></ol><p>As a result, now more than ever, CEOs, CTOs, Heads of QA, and VPs of organizations of any size are concerned about the same thing,</p><div class="pullquote"><p>How to manage larger (augmented) teams?</p></div><p>The good news is that the solution has been around for a while, and it may be easier to implement nowadays, given that your <em>human</em> team is smaller. As I mentioned above, Leading by Principles was popularized by individuals like<a href="https://de.wikipedia.org/wiki/Andrew_Grove"> Andrew Grove</a>,<a href="https://www.trilliondollarcoach.com/"> Bill Campbell</a>, and<a href="https://a16z.com/books/what-you-do-is-who-you-are/"> Ben Horowitz</a> as the only way to introduce sustained change in an organization. Tim Howes referred to it as &#8220;<em>Make Peace with Repeating Yourself (Ad Nauseam)</em>.&#8221; I prefer pointing people to my writing, as suggested by<a href="https://www.principles.com/#get-the-books"> Ray Dalio&#8217;s Principles</a> or<a href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month"> Frederick Brooks&#8217;s The Mythical Man-Month</a>.</p><p>Here I propose a high-level framework to create a high-velocity, self-correcting system focused on three short principles that are core to bring your SDLC and organization to the next level:</p><ol><li><p><a href="https://paulgraham.com/words.html">Writing</a>, and reading, before doing</p></li><li><p>A single<a href="https://www.nasa.gov/johnson/jsc-mission-control-center/"> Mission Control Center</a></p></li><li><p><a href="https://sre.google/sre-book/eliminating-toil/">Eliminating toil!</a></p></li></ol><p>Before getting into the weeds, I want to stress one thing: This can be used beyond Tech, as this is not a Tech problem but an organizational challenge. Having said that, below I&#8217;m going to go into the specifics of how to implement this in Tech organizations. Sorry, not sorry!</p><h2><strong>First: Writing, and reading, before doing.</strong></h2><p>Suddenly, your output is not the output of a single person anymore; it&#8217;s the output of a team. That means your solutions could introduce larger mistakes, faster than before. You could, let&#8217;s say, create a software that spends $1,000/hr in resources in an afternoon, and you wouldn&#8217;t notice. Or you could develop what you think is the right feature very quickly, overnight, and expose all the PII data from your customers without notice.</p><p>Yes, your lead is going to review the code, but sometimes the issue isn't a distraction; it&#8217;s simply a lack of knowledge. The feedback from your CTO or VP will eventually come, and maybe too late. Other times, your team will end up creating an overcomplex solution, e.g. implementing an NP-hard algorithm in the front-end and making your app unusable without anyone noticing. After all, part of the trade is bringing simple solutions to complex problems.</p><p>There&#8217;s more, though! Diverging is also a major risk. One of the biggest challenges we&#8217;ve seen is learning from each other and<a href="https://medium.com/capchase/capchases-communities-blue-print-11d1904faa1e"> Breaking Silos</a>. If the person sitting next to you has discovered how to be 2x more efficient in some aspect, you want to learn it, fast! This is the way to accelerate the whole organization long-term, and nowadays that tweaking could give you a key competitive advantage.</p><p>To get started on this, start easy, and enforce it:</p><ol><li><p><strong>Add 30 minutes a day</strong> for a design review (or PRD review).</p></li><li><p><strong>Force constraints:</strong></p><ul><li><p>A document size limit of two pages.</p></li><li><p>The document must be shared 24 hours in advance.</p></li><li><p>Only comments added to the document at least 2 hours before the review will be discussed.</p></li><li><p>The output is a clear "yay" or "nay."</p></li></ul></li><li><p><em><strong>Shift Left!</strong></em> <br>Invite everyone to the meeting: QA, UX, Tech, Product, the CEO if they want to!</p></li><li><p><strong>The magic rule: </strong><em>Speak now or forever hold your peace.<br></em>Discussions could not prolong, you need to move fast, so a decision in that call needs to be held for the next few months at least.</p></li></ol><p>You will get one thing out of this process: a daily cadence for your team. You&#8217;ll see how you can remove many ad-hoc meetings if you handle this properly. Above all, the number of &#8216;surprises&#8217; from someone wanting to change something late in the game should be close to zero, if you are using the magic rule properly.</p><h2><strong>Second: Mission Control Center</strong></h2><p>If you are thinking of KPIs and OKRs to track weekly, that&#8217;s great&#8230; but it&#8217;s not what I&#8217;m talking about. <br>Four years ago, having a well-integrated observability dashboard was optional for an early-stage team. You could assume system usage was limited and the entropy added by people changing your system was small, meaning every change could eventually be reviewed by the lead. I remember being on a team of four ICs at Google early in my career, and my manager reviewed every single PR. That worked because we produced like a 4-to-1 team; it won&#8217;t work if you produce like a 20-to-1 team.</p><p>The Mission Control Center, then, becomes vital to catch your team's &#8220;mistakes&#8221; before your users do. If your k8s nodes are suddenly restarting every five seconds, or your latest release has no network connectivity, you need to know, fast. And this is going to happen because LLMs make mistakes! And they make those mistakes faster than you can review them&#8230; hopefully.</p><p>As a leader, enforcing the idea of a single, centralized, up-to-date mission control center will allow you to:</p><ol><li><p>React to issues before they become postmortems and churn problems.</p></li><li><p><a href="https://techcrunch.com/2016/06/12/data-breadlines-and-data-brawls/">Remove all data-brawls</a> that may appear when something doesn&#8217;t work as expected.</p></li></ol><blockquote><p>Did you notice how this links to the First point? <br><br>It&#8217;s in writing &amp; reading where you define your operating principles. ;)<br>In this case, that&#8217;s where you enforce the dashboard update, if needed. </p></blockquote><h2><strong>Third: Eliminating the Toil!</strong></h2><p>This is the most difficult and entertaining part of the job, and it is easy to remember: <em>don&#8217;t do the same thing twice!</em></p><p>The most challenging part about toil is the mental space it consumes. If you are thinking all day about that painful five-minute task you need to do, the burden isn't just those five minutes; it's the weight you carried throughout the day. I like to think of it as the source of<a href="https://en.wikipedia.org/wiki/Parkinson%27s_law"> Parkinson&#8217;s Law</a>.</p><p>In my experience, the biggest pain of asking people to eliminate toil is that the activity itself becomes toil, which is our favorite thing to procrastinate on. I suggest you follow three strategies to get the most out of it:</p><ol><li><p><strong>Buy, buy, buy</strong><br>Toil is, by definition, context to your business. It&#8217;s that thing you need to do, and if you do it well, nobody cares. On top of that, having toil is detrimental to your team's motivation. Repetitive tasks that don&#8217;t help them advance in their self-actualization end up being a source of burnout for talented individuals.<br>My advice, if you can, is to buy solutions. Why?</p><ul><li><p><strong>You suddenly have an expert team</strong> <br>They are improving that area of your software, it&#8217;s their core value. Think of how you don&#8217;t develop your own CRM, HRIS, ERP, or ATS, even though you could. Apply that thinking to each area of your team, e.g.,<a href="https://www.desplega.ai/pricing"> QA automation</a>,<a href="https://grafana.com/"> Observability</a>, or<a href="https://pullpo.io/"> performance measurement</a>.</p></li><li><p><strong>You can focus on your business<br></strong>You don&#8217;t have to track progress, manage, or invest time in these areas, and that&#8217;s your competitive advantage now. You do not need to understand how to build the best platform for logging, testing, or extracting data from<a href="https://bitbucket.org/product/"> Bitbucket</a> to measure productivity.</p></li></ul></li><li><p><strong>Mix it up</strong><br>Some things you won&#8217;t be able to buy, like creating that release dashboard or defining your set of test cases. For those, make them a standard part of a larger project. That way, it&#8217;s just eating the whole cake; even if you only like the frosting, at least you get some.</p></li><li><p><strong>Rotations! Rotations! Rotations!</strong><br>If you have build-cop or release rotations, a good strategy is to use those weeks for the person on rotation to work on minimizing toil. You should take it one step forward and actually reward toil minimization. A good strategy is to give the person a &#8216;skip&#8217; in the rotation queue or even a day off if the time saving was significant.</p></li></ol><p>Finally, when focused on toil, always remember to ask:<a href="https://xkcd.com/1205/"> Is It Worth The Time?</a></p><h2><strong>the-one-thing: Never be the bottleneck</strong></h2><p>It&#8217;s easy to decide to implement these mechanisms and delay everything else until they are ready. In fact, it&#8217;s even easier to say, &#8216;we are not delivering on time because we need to do &lt;toil&gt;&#8217;; that makes you [Tech, QA, Product, etc.] the bottleneck. The other little dirty secret is: <em>If you are the bottleneck, if your organization is the bottleneck, </em><strong>you are not doing a good job</strong>. </p><p>My advice is that whenever you implement this process, you agree on a timeline, hold yourself accountable to it, and ensure everything is done so that your team is <em>not</em> the bottleneck. Internalize the following:</p><div class="pullquote"><p>In the eyes of a founder, it&#8217;s better to have tried and failed than to have never tried and saved resources, even with a 100-to-1 chance. That is how they&#8217;ve been successful at building an amazing startup.</p></div><h2><strong>References</strong></h2><ol><li><p><a href="https://www.linkedin.com/posts/ecura_our-first-outage-from-llm-written-code-activity-7367176285967618048-tXPo">Our first outage from LLM-written code (LinkedIn Post)</a></p></li><li><p><a href="https://aws.amazon.com/executive-insights/content/amazon-two-pizza-team/">Amazon&#8217;s Two-Pizza Team Rule</a></p></li><li><p><a href="https://paulgraham.com/words.html">Writing, Briefly by Paul Graham</a></p></li><li><p><a href="https://sre.google/sre-book/eliminating-toil/">Eliminating Toil (Google SRE Book)</a></p></li><li><p><a href="https://medium.com/capchase/capchases-communities-blue-print-11d1904faa1e">Capchase&#8217;s Communities Blue-print (Medium)</a></p></li><li><p><a href="https://techcrunch.com/2016/06/12/data-breadlines-and-data-brawls/">Data Breadlines And Data Brawls (TechCrunch)</a></p></li><li><p><a href="https://review.firstround.com/what-i-learned-scaling-engineering-teams-through-euphoria-and-horror/">What I Learned Scaling Engineering Teams Through Euphoria and Horror (First Round Review)</a></p></li><li><p><a href="https://www.simform.com/blog/project-vs-product-mindset/">Project vs. Product Mindset (Simform)</a></p></li><li><p><a href="https://www.linkedin.com/feed/update/urn:li:activity:7358495366930976769/">AI is not a silver bullet</a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[Is Quality Assurance a waste of money?]]></title><description><![CDATA[You are as weak as your weakest link.]]></description><link>https://www.pleasedontdeploy.com/p/is-quality-assurance-a-waste-of-money</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/is-quality-assurance-a-waste-of-money</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Wed, 27 Aug 2025 10:45:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tdbS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.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_!tdbS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tdbS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tdbS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tdbS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tdbS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tdbS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!tdbS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!tdbS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!tdbS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!tdbS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fe47025-c032-4064-804c-62e7d48d088e_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p><em><strong>tl;dr:</strong> The key principle to understand with the <strong>Return on Quality Investment (ROQI)</strong> is that wealth preservation (saving) is not the same as wealth creation (return). QA leaders should be unafraid to avoid using the term ROI and instead lead with loss avoidance, e.g., "our QA efforts cost X, but they are saving money / helping with wealth preservation / loss avoidance for 10*X.&#8221;</em></p></blockquote><p>For <a href="https://substack.com/inbox/post/171250251">Quality Assurance to be a power center</a>, we need to be able to articulate precisely the value contributed by the team to the organization. Executives will challenge every dollar allocated to what they see as <em><strong>context</strong></em> efforts, and try to divert them to the <em><strong>core</strong></em>; i.e., adding new products, expanding to new geos, etc. That is their job, after all, and they will struggle to understand why your <em><strong>context</strong></em> team needs such heavy investment. <a href="https://www.youtube.com/watch?v=emQ2innvuPo">[1]</a></p><p>I propose we look into three areas to answer the dreaded question, <em>&#8220;Is it worth it?&#8221;</em> when defining your budget for your QA team for 2026. Each of these should be seen only through the lens of QA:</p><ol><li><p>Feature Delays due to <strong>Quality Control</strong> bottlenecks.</p></li><li><p>Churn due to low <strong>Product Quality</strong>.</p></li><li><p>Reputation damage due to <strong>Incidents</strong>.</p></li></ol><p>The mindset when answering these questions should be always the same: <em>we are optimizing for future revenue</em>, above all. That means, we know our team needs to be lean, and we commit to constantly optimizing costs.</p><p>At the end, a short story on how this looked for me in the past, and how a high-level company mindset would help you define a successful team.</p><h2>First: Gather the data</h2><p>In preparation for the conversation, you should make sure to gather all available data on the points for your discussion. This needs to be comprehensive and unbiased; you must do your best so this data represents the business reality.</p><p>Each area has a slightly different group of stakeholders you need to talk with, which is where your SETIs and QA Analysts can help.</p><h4><strong>Feature Delays due to Quality Control Bottlenecks</strong></h4><p>Meet with your SRE or DevOps team and ask them to help you collect metrics that explain to your organization the challenges of not having QA, e.g., building the wrong solution, or involving QA late in the process, i.e. why shifting left is important. A few metrics I&#8217;ve used in the past:</p><ul><li><p><strong>Time from pull request/code merged until deployment<br></strong>This is very tactical, but it's easy to translate into how effective we are as a team. You could run your CI pipelines in 5 minutes, and all automated tests could be flawless, but if deployments are only twice a month, then there&#8217;s something in the QA process that needs to change.</p></li><li><p><strong>% feature rollbacks<br></strong>If you are rolling back features often, it means that your practices are not mature enough when either defining or validating those features internally; both require QA involvement early on.</p></li><li><p><strong>Avg. time from project conception to full launch<br></strong>Related to the above, even if you&#8217;ve caught issues before a user ever sees them, the problem may be that your involvement is so late in the process that features take months to be delivered. Again, add a point for <em>shift-left</em>.</p></li></ul><h4><strong>Churn due to Low Product Quality</strong></h4><p>If you read <a href="https://substack.com/inbox/post/171250251">my last article</a>, this is why Customer Support should be one of your best friends. They have the knowledge and expertise to help you communicate the challenge properly. They can provide you with:</p><ul><li><p><a href="https://en.wikipedia.org/wiki/Net_promoter_score">NPS</a> overall for users.</p></li><li><p>Expenditure on discounts, rewards, or other financial compensation given to customers due to issues with the service.</p></li><li><p>Actual churn due to the quality of our product. For this, make sure they include the category in the forms they give to leaving customers.</p></li></ul><h4><strong>Reputation Damage due to Incidents in Production</strong></h4><p>This is when you talk with marketing and sales reps, and you get a sense of the following things:</p><ul><li><p>General communications sent to the customer base on topics regarding quality.</p></li><li><p>How important is quality for your ICP? A good product marketing team should have these quantified based on interviews.</p></li><li><p>Marketing investments done with a messaging around quality.</p></li></ul><p>Armed with all this information, you should now have an understanding of what&#8217;s at stake if your product lacks quality in certain areas. For example, you can now argue why the onboarding flows should be flawless, because your users might not use the product if something fails there, or justify why payments could be handled manually, and the QA investment there should be nil.</p><h2>Second: A fireside chat with Finance</h2><p>Your finance leader may not care about delivery velocity, or they may equate churn attributed to low product quality with bad customer support; or they may argue the value given by the product is so overwhelming that product failures will be dismissed even if your quality drops. In many respects, it&#8217;s a controversial topic.</p><p>The difficulty, from a data-minded leader's perspective, is simply that <em>we wouldn&#8217;t know if we could have gotten away with similar results with less investment</em>. That&#8217;s what a CFO would articulate, and I would say most of us would agree. If you are faced with this conversation, then <em>now is when you flip the script: we agree, <strong>let&#8217;s experiment!</strong></em></p><h4><strong>Option 1: Lookback Analysis</strong> </h4><p>My preferred option, and the good news is that you probably have this information already: Examine those rushed new product launches.</p><p>During those crazy launches, you purposely skipped QA practices simply because you were willing to afford it, and the results were self-explanatory. I&#8217;m sure your issues spiked immediately, and after 6 months, some of the largest projects were consuming 4x costs in infrastructure, and deliveries were equally delayed. Those 'successful' product launches give you a blueprint of the cost of skipping QA. They are a playground where expectations from your customers are also low.</p><h4><strong>Option 2: Show Me the Money!</strong></h4><p>If the objective is to experiment with new tools and processes to reduce costs while sustaining productivity, what you need is a budget to make that happen. You&#8217;ll likely need someone working on this full-time, and you&#8217;ll also need to try new tools and frameworks.</p><p>This is where you commit to a plan and align on how much you are willing to invest and for how long to achieve a clear goal on cost reduction or increased effectiveness.</p><blockquote><p><em>This is your opportunity to get promoted. If you show you can build a better organization that&#8217;s more cost-effective, then you are on the path to being a key asset in your company.</em></p></blockquote><h2>Third: An innovative QA tactic, revenue generating</h2><p>Let&#8217;s imagine you get a chance to present the budget plan and 2026 roadmap to your executive team. They are going to be interested in cost-effectiveness and how to reduce churn; that will make them feel satisfied with the department&#8230; and you can do them one better!</p><p>You can build an extra case around delivery velocity, and how that could open the door for your team to deliver multiple projects with high quality and customized features to unblock deals without dreading a release will hamper the rest of your system. This could have such a positive impact, i.e., imagine telling a customer that their special fix will take 2 days instead of a month. That even though you would agree it requires consistent investment from the engineering on writing and maintaining tests and infrastructure, you&#8217;ll want to do so for the upside alone.<br><br>Again, to prove the above you should set an experiment, define how you are going to measure success across the organization, and track those metrics to show this has paid off. For us, it was winning deals because we would implement features in hours, instead of months, and customize flows in minutes, without endangering all our users. <strong>Having tech not to be a bottleneck for sales was seen as such a competitive advantage that the investment in the area kept steady for years.</strong><br><br>This takes me to my real life example.</p><h2>A team without QA</h2><p>In my whole career, I only hired 1 QA leader, and when I hired that person, whom I already knew, I hired them to run the SRE, IT, Sec&amp;Compliance, and QA teams. Why?</p><p>Because my objective was to have them so busy with other things that <strong>automating Quality Control</strong> <strong>and</strong> <strong>teaching the art of Quality Analysts</strong> to Tech, UX, and Product, would be their only reasonable path forward. He was in the job for 3 years, we had a team of ~60 engineers at peak, and he never hired a single other person with a QA background. <em>We did hire SDETs, SREs, and trained many others to cover aspects of the QA function to create a <strong>QA culture</strong></em>.</p><p>You can think this is a fairy tale, but let me show you our metrics and how we defined success:</p><h4>Northstar: 0 business-critical incidents per Q.</h4><p>With an incredible idealistic Northstar we defined those KPIs that would get us closer to the goal.</p><ul><li><p><strong>1 user reported an incident per quarter max.</strong> <br>This is key. We didn&#8217;t care as much about having issues in our app unless a user reported them. There are two things you should keep in mind though:</p><ul><li><p>Given how we implemented CI/CD in an extremely strict manner, CFR and other standard metrics weren&#8217;t as meaningful for us.</p></li><li><p>I&#8217;m not including anything related to monitoring and alerting in this essay, but there were matching metrics to ensure we were tracking everything meaningful happening in our app in real-time.</p></li></ul><p><br>Also extremely important, we tracked how many issues we fixed proactively, ie. we would actively fix issues that were blocking users before they reached out to us, and we would notify them once everything was taken care of. That would be tracked as a great achievement in a separate board. There&#8217;s nothing better than to reach out to a customer and say: &#8220;we&#8217;ve seen you experienced a challenge, it&#8217;s fixed,&#8221; or even better if they never even realized the issue.</p></li><li><p><strong>5-minute CI duration<br></strong>This meant running 1500 end-to-end (E2E) tests in under 5 minutes, you can imagine the efforts on parallelization, ephemeral environments, and infrastructure to run these tests in a team of at most 60 individuals. <br>All worth it, because as you know, while <em>engineers tend to trust passing test results, they often <a href="https://engineering.fb.com/2020/12/10/developer-tools/probabilistic-flakiness/">retry failing tests a number of times</a> and consider failures followed by passing results as flaky.</em> By reducing the length of the CI pipeline, we save hundreds of hours a year, as each minute saved has a multiplying effect. For example, 1 minute saved here for a team of 60 potentially represents 10+ hours saved per week; thus going from 30 minutes, to 5 was an incredible achievement.</p></li><li><p><strong>1-minute rollbacks<br></strong>Whenever an issue was detected we would rollback. As fast as possible, as automated as possible. That meant all changes&#8212;configuration, flags, db migrations, etc.&#8212;needed to be tightly coupled in a single release, and all services needed to be backward compatible. This gave us the confidence of knowing that if we released frequently enough, we would be able to revert mistakes in seconds.</p></li><li><p><strong>95% E2E coverage<br></strong>Test coverage is a vanity metric, but the main concern here was: &#8220;have we automated 95% of the tests defined for this product?&#8221; For different products in different maturity stages, we oscillated between 80-99% coverage.<br>It would hold us accountable, and by defining these e2e mandatory tests sets in our design and launch documents, we were able to hold ourselves accountable to the quality we needed in each area. <br>This was the enforcement tool for our QA leader to make sure the organization was learning.</p></li></ul><p>The byproduct of these ambitious targets was that two years later we had 2.5 million fully automated E2E test runs per month, from a base of 1500 automated E2E tests. On top of that, we had unit tests, integration tests, and image diff tests to provide more comprehensive coverage. All that was supported by a community of dedicated Software Engineers, and one individual who had this as their main core responsibility. We&#8217;ve done deployments at crazy hours with extreme confidence.</p><h2><strong>The-one-thing:</strong> <strong>Cost</strong><em><strong> - </strong><s>Quality</s><strong> - Speed.</strong></em></h2><p>Counterintuitively, when discussing budget allocation for QA, you need to fix Quality by means of feedback from Marketing, Customer Support, and Sales, and you should center your plan around Speed &amp; Cost. Don&#8217;t discuss ideal Quality standards;<strong> leverage the voice of your customers</strong>.<strong> </strong>They define what Quality is acceptable. Shift the conversation to what you can do to increase the effectiveness of the team, and talk about velocity and costs for the whole organization.</p><div class="pullquote"><p>Be radically clear: <strong>optimizing revenue is QA's top priority.</strong></p></div><h3><strong>References</strong></h3><p><a href="https://engineering.fb.com/2020/12/10/developer-tools/probabilistic-flakiness/">How do you test your tests? (Probabilistic flakiness) - Meta DevInfra</a><br><a href="https://www.schneier.com/blog/archives/2013/03/is_software_sec.html">Is Software Security a waste of money? - Schneier on Security</a><br><a href="https://substack.com/inbox/post/171250251">Push for QA as your devex powerhouse - E.-</a><br><a href="https://taosecurity.blogspot.com/2007/07/no-roi-no-problem.html">No ROI? No Problem - Richard Bejtlich</a><br><a href="https://medium.com/capchase/capchases-communities-blue-print-11d1904faa1e">Capchase Communities Blue-print - E.-</a><a href="https://www.schneier.com/blog/archives/2013/03/is_software_sec.html"><br></a><a href="https://www.schneier.com/blog/archives/2008/09/security_roi_1.html">Security ROI - Schneier on Security</a><br><a href="https://www.youtube.com/watch?v=emQ2innvuPo">Core vs Context - Geoffrey Moore</a><br><a href="https://www.desplega.ai/tools/qa-cost-calculator">ROQI Calculator - desplega.ai</a></p>]]></content:encoded></item><item><title><![CDATA[Push for QA as your devex powerhouse]]></title><description><![CDATA[Your dev team is coding faster than ever, introducing exponentially more entropy, it&#8217;s time to modernize QA]]></description><link>https://www.pleasedontdeploy.com/p/push-for-qa-as-your-devex-powerhouse</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/push-for-qa-as-your-devex-powerhouse</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Wed, 20 Aug 2025 07:15:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Qh5r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69f7a49-14dd-443a-8ad1-9c720b23c59e_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><em><strong>tl;dr</strong>:</em> As AI progresses, the bottleneck shifts to testing fast &amp; well. We argue for splitting the traditional QA role into two strategic functions: QA Analysts, who ensure you build the <em>right thing</em> for the customer, and SETIs, who build infrastructure for devs to ship <em>safely and fast</em>.</p></blockquote><p>Your team is coding faster than ever, and now what was a team of 10 feels like a team of 50. The CEO wants to go even faster, and that has resulted in your CTO pushing for bigger releases, still every few days, maybe a couple of weeks. Flash-forward 2 months, and now you are sitting with Customer Support &amp; the Account Management team. The quality of your flagship product is dropping, and a top customer is about to churn. Now you are in a battle of wits with Product, Customer Support, Sales and Engineering. The blaming dance commences.<br><br>Have you seen the blaming dance? I&#8217;ve been there. QA says they didn&#8217;t have time to review, Engineering says Product wanted it to be released ASAP, Product points at Sales, at best, or back at QA at worst. Sales says &#8216;isn&#8217;t it your job to deliver things right?&#8217;. You walk out of the meeting with the certainty that your team is now going to be only doing <strong>Quality Control</strong>. There&#8217;s no time to code, so you have gone back to a team of testers.<br><br>You wish it would end on that Defect Escape Rate<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> increase since you started using Cursor, it&#8217;s not. It seems your leaders think with AI you can do more with less, it&#8217;s time to reduce your department costs. So not only are you seeing your <a href="https://en.wikipedia.org/wiki/DevOps_Research_and_Assessment">DORA metrics spike</a>, you <em>need</em> to do more with less. This isn&#8217;t a feeling, it&#8217;s a trend, e.g. the 2024 DORA report found that while AI boosts individual productivity, it has been linked to a 1.5% reduction in delivery throughput and a 7.2% decrease in delivery stability. <br><br>Personally, I&#8217;ve been faced with challenges like this in QA, HR, Data, SRE, Growth and many other orgs, and I&#8217;m going to tell you what worked in all cases: <strong>reframe the problem, think big, think positive</strong>. All that summarizes in a single question:</p><div class="pullquote"><p><strong>How can you make a power-center out of QA?</strong></p></div><p>Each of those times, I found these 3 questions helped me distill what we needed next:<br><br><em>(1) What are you doing that you shouldn&#8217;t be doing? <br>(2) What should you actually be doing to have more impact long term?<br>(3) How can you shift motivations in your team to make (1) &amp; (2) happen.</em><br><br>Below you can see this plan laid out to move QA beyond QC, a plan that took me 1yr to implement with a 60 people team before the AI revolution; <em>be patient</em>.</p><h3>First: Fight the Illusion of <em>Quality</em> <em>Control</em>.</h3><p>If your organization still thinks of QAs as testers, or simply release gatekeepers, it&#8217;s key to explicitly name those activities. You need to equate <strong>Quality Control</strong> activities with <a href="https://sre.google/sre-book/eliminating-toil/">&#8216;toil&#8217;</a> for the engineering team. The key here is to show your peers that these activities are a particular implementation of a broader vision of <strong>Quality Assurance</strong>. Avoid stepping into exactly what QA is, for now focus on naming each <strong>Quality Control </strong>activity your team does.<br><br>Start by building a list of any and all repetitive tasks that happen once the code has been written, e.g. writing tests, lint, image diff, static code analysis, build, deploy in staging, canary, feature flags set up, etc. Armed with that list, bring your SRE or DevOps team onboard so together you can have a shared, unified, understanding of what are <strong>Quality Control</strong> activities in your company. For example, you could say <strong>Quality Control</strong> groups staging monitoring, alerting, performance, all testing, static code analysis, etc. Believe me, they&#8217;ll be excited to see you understand the pain of their daily work, and how their time should really be invested in building better infrastructure.<br><br> With SREs as allies, start small, educating teams, presenting the difference between <strong>Quality Control</strong> and <strong>Quality Assurance</strong>. Add some Engineer Managers to the conversation, and introduce a key core concept: <em>Accountability</em>. At this point you need to have a discussion on who will be accountable for <strong>Quality Control</strong>. This is why the SRE team can help you, they implement the tools for logging, monitoring, alerting, etc, but Engineering uses those frameworks. <strong>Quality Control </strong>should center on the same, you provide the tools you don&#8217;t enforce the implementation. <br><br>At this point, naturally, people are going to start asking themselves what is <strong>Quality Assurance</strong>; which leads us to step 2.<br><br>[Note: It&#8217;s important to know you are defining <strong>Quality Control</strong> for your Company, and you could use arbitrary terms, like <em><a href="https://harlequinetcie.substack.com/p/writing-tests-was-never-the-bottleneck">Accidental QA</a></em>, if that simplifies conversations].</p><h3>Second: Frame QA as an <s>Engineering</s> <em>org-wide</em> Practice</h3><div class="pullquote"><p><em>&#8220;<strong>Quality Assurance</strong> is meant to prevent mistakes and defects in the development and production by avoiding problems and delays when delivering products or services to customers&#8221;.</em></p></div><p>You need to make an effort to remind everyone about a key aspect of <strong>Quality Assurance, it comprises </strong><em><strong>avoiding delays</strong></em><strong> not just problems, and </strong><em><strong>customer satisfaction</strong></em>. The defect prevention aspect differs from the defect detection aspect of <a href="https://en.wikipedia.org/wiki/Quality_control">Quality Control</a> and it is what has been referred to as a <a href="https://en.wikipedia.org/wiki/Shift-left_testing">shift-left</a>. <br><br>You should harness the core concept of shift-left, not into human hours saved by detecting a defect early, but by the reputation damage and potential loss-of-revenue that could result from building and shipping the wrong product. I recommend you use 2 data-points to accentuate the message:<br> (a) In 2024 alone, these <strong>costs were estimated at 2.4Tn in the US</strong> alone, the pain is real. You can find similar numbers for whichever geo you are focused on.<br> (b) Approach customer success &amp; sales, ask them <strong>how often they need to waive fees, give discounts, or lose customers</strong> because something wasn&#8217;t shipped in the right way; either late, faulty, or improper solution.<br><br>Those two above translate immediately to mission critical business needs, defined as a need for effective and efficient product delivery. <br><br>The final step in your presentation is to translate QA into two key areas that bring value to the company:</p><ol><li><p><em><strong>Quality Analysis </strong>(<a href="https://harlequinetcie.substack.com/p/writing-tests-was-never-the-bottleneck">Essential QA</a>)<strong><br></strong></em>Working closely with Product and go-to-market to understand the customer needs. <br>QA needs to understand beyond features, the quality and the service expected from customers. That way you can define guardrails for the organization, incl. non-functional requirements, that will ensure your releases are effective.</p></li><li><p><em><strong>Quality Control</strong> (<a href="https://harlequinetcie.substack.com/p/writing-tests-was-never-the-bottleneck">Accidental QA</a></em>) <br>Working closely with devex to accelerate delivery in the <em>&#8216;right way&#8217;</em>. QA is also responsible for providing the tools and frameworks for efficient releases. You&#8217;ll collaborate closely with SREs, Engineering and UX to provide that infrastructure that would guarantee fast releases with the right quality, or even faster rollbacks.</p></li></ol><p>We have defined a new scope, it&#8217;s time to re-shape QA to have impact across the organization.</p><h3>Third: Implement The QA Executive Playbook</h3><p>You&#8217;ve done it! Everyone understands how <strong>Quality Assurance</strong> has a broader scope and it shouldn&#8217;t be a gatekeeper, instead it should be an enabler. <em>Now, let&#8217;s outplay Tech!</em></p><p>You need to bring it all together with flawless execution, to have company-wide impact and become a powerhouse. For that, you need to ensure you have top performers building strong foundations in each area.  Timing is of the essence, every effort you do during the next 3 months needs to be successful so your credibility grows, and it&#8217;s going to be impossible to do this alone.</p><ol><li><p><strong>Building bridges</strong><br>A Quality Assurance Analyst needs to work extremely closely with Customer Support, UXR, Account Managers, Product Managers, and any other person that works directly with customers. If you can spend 10hrs a week listening into customer calls, do it! Your team needs to become a subject matter expert on the needs and expectations from customers. (My hack: Listening to Gong Calls instead of podcasts)<br><br>Please make sure to have a clear scope early on: focus on understanding what are those customer needs above all, much less on how to solve for those. This team needs to fall in love with the problem, as solutions should &#8216;surprise them&#8217; .<br><br>Two KPIs to track here: NPS (esp. for new features), and # valid tickets from customer support (think of DER).<br></p></li><li><p><strong>Delegating until it hurts</strong><br>Your Software Engineer in Test &amp; Infrastructure team (SETIs) should invest all their time on building the infrastructure so software engineers can implement their own tests, and their managers have visibility on how well they are doing so. <br><br>You can always start with quick wins like adding Image Diff, improving record-replay API tests, or adding a new low-touch, no-code, provider. <br><br>The KPIs I like to start with are proxies for change-lead-time, and change-failure-rate.</p></li></ol><h3>The-one-thing: No-one should be a tester.</h3><p>Stop asking for your testers to do better and faster, instead teach them how to have exponential impact. Divide them in at least two groups, those that have affinity with technology, and those that have affinity with the product. The former should be trained to become SETIs, working closely with SRE/DevOps, and driving delivery acceleration. The latter need to transition to QA Analysts, with a deep comprehensive understanding of the customers and company vision. They should center on user satisfaction. <br><br>Doing only one will render you exposed to the whims of your leaders, and if you manage to do both, congrats! You are on an executive path!</p><h4>References</h4><ol><li><p><a href="https://every.to/source-code/i-stopped-writing-code-my-productivity-exploded">I Stopped Writing Code. My Productivity Exploded. - Yash Poojary</a></p></li><li><p><a href="https://testfort.com/blog/ai-in-software-testing-a-silver-bullet-or-a-threat-to-the-profession">AI in Software Testing: How Artificial Intelligence Changes - testfort.com</a></p></li><li><p><a href="https://arxiv.org/abs/2409.02693">&#8220;The Role of Artificial Intelligence and Machine Learning in Software Testing&#8221; &#8211; Ramadan et al., arXiv</a></p></li><li><p><a href="https://arxiv.org/abs/2408.06224">&#8220;A Multi&#8209;Year Grey Literature Review on AI&#8209;assisted Test Automation&#8221; &#8211; Ricca et al.</a> </p></li><li><p><a href="http://prepare.sh">&#8220;QA and SDET is the Safest Job during AI Boom (2025 Market Analysis)&#8221; &#8211; prepare.sh</a></p></li><li><p><a href="https://wolfcareers.com/blog/what-are-the-differences-in-these-positions-qa-qe-and-sdet">&#8220;What Are The Differences In These Positions: QA, QE, and SDET?&#8221; &#8211; WolfCareers</a></p></li></ol><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>DER &#8211; Defect Escape Rate measures the number of undiscovered defects that escaped detection in the product development cycle and were released to customers. DER = (Defect Escapes /Total Defects)&#8727;100</p></div></div>]]></content:encoded></item><item><title><![CDATA[Writing Tests Was Never the Bottleneck]]></title><description><![CDATA[Accidental vs Essential QA]]></description><link>https://www.pleasedontdeploy.com/p/writing-tests-was-never-the-bottleneck</link><guid isPermaLink="false">https://www.pleasedontdeploy.com/p/writing-tests-was-never-the-bottleneck</guid><dc:creator><![CDATA[Ez.-]]></dc:creator><pubDate>Tue, 12 Aug 2025 15:24:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Qh5r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd69f7a49-14dd-443a-8ad1-9c720b23c59e_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been deep-diving during the past few months on Quality. Specifically on how we can accelerate the SDLC through means of QA. It&#8217;s not news, quality, velocity, and costs balance each other; however, with the revolution of LLMs, cost has become less about the financial burden and more about the focus one. And this is something difficult to grasp for most of us.</p><p>In this new landscape, I started making a key distinction when talking about tasks, and quality is no exception. For this article, I would call that distinction Accidental vs. Essential QA (yes, I love <a href="https://www.cs.dartmouth.edu/~cs50/Reading/NoSilverBullet.pdf">Frederick Brooks&#8217; &#8216;No Silver Bullet&#8217;</a>).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pleasedontdeploy.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! 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><h3>Accidental QA should be delegated</h3><p>Accidental QA is the realm of crash-finding, negative testing, and safety rails. Accidental QA has been fading away for a while; it is where your agent swarms can have fun, and potentially you could go deeper with more deterministic approaches.</p><ul><li><p>Automated exploration &amp; fuzzing.<br>Meta&#8217;s <em>Sapienz</em> runs tens of thousands of UI-level tests daily, surfacing actionable failures fast&#8212;proof that random exploration at scale can find real issues before users do. <a href="https://antithesis.com/">Antithesis</a> is a good example of a continuous reliability platform that autonomously searches for problems in your software within a simulated environment, ideal for server side applications. <a href="http://www0.cs.ucl.ac.uk/staff/K.Mao/archive/p_issta16_sapienz.pdf">[5]</a></p></li><li><p>Static analysis &amp; policy gates<br>To catch dependency, security, and style regressions automatically&#8212;prerequisites that DORA finds correlate with stronger delivery <em>and</em> organizational performance when paired with solid CI/CD. <a href="https://dora.dev/research/2022/dora-report/2022-dora-accelerate-state-of-devops-report.pdf">[1]</a></p></li><li><p>LLM-assisted test coding (not generation).<br>LLMs are fairly good at generating simple unit tests to check a well-defined set of inputs, if those inputs were defined by you, or if they are instructed to try a large enough set of input/output pairs. However, this is a sore point. Autonomy in these systems has shown that na&#239;ve generators <em>bless</em> buggy behavior because their oracles are designed to pass; that means early design choices prevent them from finding <em>real</em> bugs. <a href="https://arxiv.org/abs/2412.14137">[6]</a></p></li></ul><p>So yeah, the <a href="https://www.workingtheorys.com/p/make-something-heavy">light</a> "random walk + guardrails" check, performed by your smoke test layer, or a lazy jr QA intern could be fairly replaceable. We&#8217;ve known for a while that CPUs are good at "Try a lot, fail fast, report (somewhat) clearly." If you haven&#8217;t, you should automate this aggressively to reduce your change failure rate without burning human cycles&#8230;</p><p><a href="https://open.substack.com/pub/alduba/p/database-migration-wartime-stories?selection=fcea468b-c066-45d9-ba7b-9149363049b5&amp;utm_campaign=post-share-selection&amp;utm_medium=web&amp;aspectRatio=instagram&amp;textColor=%23ffffff">Waiting for QA should never happen again</a>, but it&#8217;s not the actual strategic bottleneck.</p><h3>Essential QA is your moat</h3><p>During my early days in the industry, I dreaded when my CEO, VP, director, Staff PM, etc, would try my functionality. Everything <em>worked</em>, everything looked <em>ok</em>, I would argue I would even have done <em>what they told me to do</em>&#8230; but it was obviously at fault, because the photo tile was too small, they couldn&#8217;t share that document with two different sets of friends without making copies, or any other arbitrary distinction. I did learn fast that it was that eye that made them who they were in the organization, the visionaries.</p><p>This is no different with AI code generation.</p><p>Birgitta B&#246;ckeler&#8217;s recent experiment on <strong>autonomous AI code generation</strong> consistently achieved "well-tested" code [i.e., great Accidental QA with high coverage, unit/integration/E2E suites]; yet the actual<strong> functionality diverged from the intent as complexity grew</strong> (the examples were fairly small). They also noted E2E suites "can&#8217;t cover all test cases" and that gaps in requirements led the AI to filling in assumptions.</p><p>If this reminds you of the old days, it&#8217;s because this is the old lesson from Frederick Brooks: the hard part of software is the conceptual design and specification, not the syntax. He framed it as <em>essential</em> vs. <em>accidental</em> complexity (surprise!), our tools can reduce the accidental, but the essence (deciding what the system should do) remains stubbornly human. LLMs are good at guessing what you aimed to say, however the context needs to be transferred so that guess is more informed; this is extremely relevant for complex scenarios where multiple answers could be &#8220;right&#8221;. <a href="https://www.cs.dartmouth.edu/~cs50/Reading/NoSilverBullet.pdf">[7]</a></p><p>Alas, the human challenge!</p><p>If LLMs have taken away the need to code these paths, then what you really need is to train your QA Lead &#8211; be it a QA professional, a Product Manager, an Engineer or an Ops person &#8211; so that they can actually deeply understand what your customers want out of this new feature. That way they would be defining at a higher level those paths your acceptance tests should follow, and those go beyond a static stage of the product.</p><p>So if you ask me, it&#8217;s time for another extreme shift-left in QA. It&#8217;s the time to ensure your organization puts the work in the acceptance criteria; this is the heavy work. Because in the same way that ML became about data cleansing &amp; optimizing loss functions, if coding fades away, <em>the relationship between customer needs &amp; crafting perfectly balanced acceptance criteria will become the talent moat.</em></p><h3>The-one-thing: Divide and conquer</h3><p>Automate the "Accidental QA" layer ruthlessly, and put your<strong> best PMs and QA leads next to customers</strong> to make acceptance criteria <em>heavy</em>, executable, and non-negotiable. That&#8217;s how hopefully quality will become part of your revenue engine, not a cost center.</p><h3>References</h3><ol><li><p><a href="https://dora.dev/research/2022/dora-report/2022-dora-accelerate-state-of-devops-report.pdf">Accelerate State of DevOps Report (DORA) &#8212; Google Cloud / DORA Research.</a></p></li><li><p><a href="https://github.blog/news-insights/research/research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/">Quantifying GitHub Copilot&#8217;s Impact on Productivity &#8212; GitHub Research Blog</a></p></li><li><p><a href="https://ordep.dev/posts/writing-code-was-never-the-bottleneck">"Writing Code Was Never the Bottleneck." &#8212; ordep.dev</a>.</p></li><li><p><a href="https://martinfowler.com/articles/pushing-ai-autonomy.html">"How far can we push AI autonomy in code generation?" &#8212; Birgitta B&#246;ckeler</a></p></li><li><p><a href="http://www0.cs.ucl.ac.uk/staff/K.Mao/archive/p_issta16_sapienz.pdf">"Sapienz: Intelligent automated software testing at scale."</a> &#8212; Engineering at Meta.</p><ol><li><p><a href="http://www0.cs.ucl.ac.uk/staff/mharman/ACM-surveys-sbse.pdf">ACM Survey</a></p></li></ol></li><li><p><a href="https://arxiv.org/abs/2412.14137">"Design choices made by LLM-based test generators prevent them from finding bugs." &#8212; Mathews &amp; Nagappan (arXiv:2412.14137)</a>.</p></li><li><p><a href="https://www.cs.dartmouth.edu/~cs50/Reading/NoSilverBullet.pdf">"No Silver Bullet: Essence and Accidents of Software Engineering." &#8212; Frederick P. Brooks, Jr. (1987)</a>.</p></li><li><p><a href="https://www.workingtheorys.com/p/make-something-heavy">"Make Something Heavy." &#8212; Anu Atluru, Working Theorys.</a></p></li><li><p><a href="https://martinfowler.com/bliki/GivenWhenThen.html">"Given-When-Then." &#8212; Martin Fowler (BDD / Specification by Example primer).</a></p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.pleasedontdeploy.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! 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></channel></rss>