<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Platform-Engineering on EXPLAIN ANALYZE</title><link>https://explainanalyze.com/tags/platform-engineering/</link><description>Recent content in Platform-Engineering on EXPLAIN ANALYZE</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 13 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://explainanalyze.com/tags/platform-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>The 10x Is Real, on Internal Tools You'd Otherwise Never Ship</title><link>https://explainanalyze.com/p/the-10x-is-real-on-internal-tools-youd-otherwise-never-ship/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://explainanalyze.com/p/the-10x-is-real-on-internal-tools-youd-otherwise-never-ship/</guid><description>&lt;img src="https://explainanalyze.com/" alt="Featured image of post The 10x Is Real, on Internal Tools You'd Otherwise Never Ship" /&gt;&lt;div class="tldr-box"&gt;
 &lt;strong&gt;TL;DR&lt;/strong&gt;
 &lt;div&gt;AI coding agents do hit 10x or better on a specific slice of work: greenfield internal tools where the agent authors the code and the conventions it later re-reads. Outside that envelope (existing services, cross-team consumers, regulated code paths) the gain compresses to 10–30% at best and turns net negative on mature codebases, because verification cost dominates typing cost.&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;A DBRE has had a MySQL binlog purge script in the back of their head for six months. Current process: every other Friday, run &lt;code&gt;SHOW REPLICA STATUS&lt;/code&gt; against each replica to find the oldest binlog any of them is still reading from, take the minimum source-log-file across the fleet, factor in any replica that is lagging, then connect to the primary and run &lt;code&gt;mysql -e &amp;quot;PURGE BINARY LOGS TO 'mysql-bin.XXXXXX'&amp;quot;&lt;/code&gt; with a safe cutoff. By hand, in a notebook, while making sure no replica is far enough behind that the cutoff would yank a binlog the replica still needs and break replication. Pre-AI estimate to script it properly: half a day, with the replica-position scan across the fleet, the safe-cutoff math, a dry-run mode, and the README so the next on-call knows what it does. Never made the sprint. Friday afternoon with a coding agent: a small Go binary that walks each replica, parses &lt;code&gt;SHOW REPLICA STATUS&lt;/code&gt;, computes the minimum source-log-file with a configurable safety margin, refuses to act if any replica is more than 30 seconds behind, runs &lt;code&gt;PURGE BINARY LOGS TO&lt;/code&gt; on the primary, supports &lt;code&gt;--dry-run&lt;/code&gt;, emits structured logs, ships with a README the agent wrote in the same pass, and has a one-shot CI job that exercises it against a sandbox primary plus replica. Forty minutes including the test. Ships Monday. The twenty minutes a week of toil it removes is the kind of work that has never made anyone&amp;rsquo;s quarterly goals.&lt;/p&gt;
&lt;h2 id="where-the-multiplier-comes-from"&gt;Where the multiplier comes from
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;AI is faster everywhere now&amp;rdquo; is the reflexive read of the scenario above, and it&amp;rsquo;s the wrong read. The same agent on the customer-facing payments service, modifying a checkout flow three years old with four other teams reading the code, lands at 10–20% faster on a good day and net negative on a bad one. The numbers in the literature back this up.&lt;/p&gt;
&lt;p&gt;Stanford&amp;rsquo;s &lt;a class="link" href="https://softwareengineeringproductivity.stanford.edu/" target="_blank" rel="noopener"
 &gt;Software Engineering Productivity research&lt;/a&gt; on a corpus of more than 100,000 developers found AI gains of roughly 30 to 35 percent on low-complexity greenfield tasks, 10 to 15 percent on high-complexity greenfield, and brownfield work compressing further from there. Google&amp;rsquo;s &lt;a class="link" href="https://dora.dev/dora-report-2025/" target="_blank" rel="noopener"
 &gt;2025 DORA State of AI-Assisted Software Development report&lt;/a&gt; found 90% of developers using AI and over 80% reporting it made them more productive, while organizational software delivery metrics stayed flat. Individual perceived productivity is not translating into faster delivery to customers. DORA&amp;rsquo;s authors describe AI as an amplifier of existing engineering capability and flag a negative relationship between AI adoption and software delivery stability, with 30% of developers reporting little or no trust in the code AI generates. The verification tax is real: time saved on creation is getting spent on audit.&lt;/p&gt;
&lt;p&gt;METR&amp;rsquo;s &lt;a class="link" href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/" target="_blank" rel="noopener"
 &gt;July 2025 controlled study&lt;/a&gt; on sixteen experienced open-source developers in repositories averaging a million-plus lines of code and a decade old found something stranger. The developers were 19% slower with AI than without, and they thought they were 20% faster. Mature codebases are an antagonistic environment for an agent and a confusing one for the human paired with it.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;AI&amp;rdquo; by itself doesn&amp;rsquo;t earn the 10x. Four other conditions have to stack on top of it: greenfield, AI-authored conventions, small audience, fast feedback. Remove one and the math compresses to single-digit percentages. Remove two and the agent is net negative.&lt;/p&gt;
&lt;h2 id="greenfield-is-cheap-context"&gt;Greenfield is cheap context
&lt;/h2&gt;&lt;p&gt;An existing codebase has conventions the agent has to infer from reading. The error-handling pattern, the test-fixture convention, the logger wrapper everyone uses, the half-deprecated config layer the new code is supposed to use instead. Some of this is written down in a CONTRIBUTING file from 2022 that is now wrong in two places. Most of it lives in tribal knowledge. The agent reads twelve files and guesses, sometimes wrongly, and the engineer&amp;rsquo;s time goes into correcting the guess. The context tax is real and it doesn&amp;rsquo;t show up on any productivity dashboard.&lt;/p&gt;
&lt;p&gt;Greenfield collapses that tax to zero. The agent writes the first file and decides the convention, because there is no prior convention to defer to. Error handling is whatever the first handler returned. Logging is whatever the agent picked in the first module. The pattern propagates forward because the agent is reading its own work on every subsequent call. The convention isn&amp;rsquo;t reliable in the LLM sense (nothing the model does is reliable), but the distribution narrows considerably when the only style the agent has seen in this repo is the style it wrote yesterday. Less to hallucinate about. Fewer plausible alternatives competing for the next token.&lt;/p&gt;
&lt;h2 id="the-agent-reads-its-own-code-and-stays-in-pattern"&gt;The agent reads its own code and stays in pattern
&lt;/h2&gt;&lt;p&gt;The cleaner version of this story is that the agent authors both the code and the docs and re-reads its own docs on the next session, so everything stays coherent. That&amp;rsquo;s wishful. Agents leave READMEs stale routinely. A session edits the code, claims success, and silently leaves the documentation pointing at a function signature that&amp;rsquo;s been renamed since. Pretending otherwise is the same &amp;ldquo;AI is reliable now&amp;rdquo; framing that fails the moment someone trusts it.&lt;/p&gt;
&lt;p&gt;The real driver is smaller and more mechanical. On a small greenfield repo, the agent&amp;rsquo;s first move on a new session is usually to scan the files that are already there. The code it reads is code the agent wrote last week. The patterns it produces in this session mirror what it finds in the existing files, because the model is doing what models do: sampling tokens that match the recent style it&amp;rsquo;s already seen in the context. Error handling looks the same in module five as it did in module one because the agent read module one before writing module five. Logging conventions, naming, test layout: all of it propagates from re-reading the code, not from a doc the agent has any particular discipline about.&lt;/p&gt;
&lt;div class="warning-box"&gt;
 &lt;strong&gt;Warning&lt;/strong&gt;
 &lt;div&gt;Treat any AI-authored README as a build artifact, not a maintained source of truth. Agents skip README updates routinely, and a stale doc is worse than no doc because the next session will follow the wrong instruction confidently. If docs are sticking around, regenerate them rather than maintain them, and don&amp;rsquo;t trust any README older than the most recent code change. The code is the source of truth. The moment the tool grows to where re-reading the code on each session stops being cheap, it has graduated out of this regime and needs the discipline of any other production system.&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The shape of the speedup is the same as why a single author writes a coherent short piece faster than three co-authors with the same word count. Coordination overhead is the multiplier, not raw output speed. In a human team, coordination is meetings, code review, RFC documents, the slow accumulation of shared style. In a single-agent greenfield repo, coordination is one session re-reading the small artifact it wrote yesterday and matching the patterns it finds. The cost of &amp;ldquo;what&amp;rsquo;s our convention here&amp;rdquo; is the cost of one repo scan.&lt;/p&gt;
&lt;h2 id="small-audience-fast-deploy-throwaway"&gt;Small audience, fast deploy, throwaway
&lt;/h2&gt;&lt;p&gt;The MySQL binlog organizer is used by one team. The AZ backup shipper is used by the storage on-call. The diagnostic API in front of Redis is curl&amp;rsquo;d by whoever is debugging tonight. None of these tools have customer SLOs, escalation paths, or a third-party integration to coordinate. v1 broken on Monday is fixed by Tuesday afternoon. The cost of a bug is bounded by how loudly someone says &amp;ldquo;this broke&amp;rdquo; in Slack.&lt;/p&gt;
&lt;p&gt;Fast feedback is what makes the testing strategy work. A &lt;code&gt;--dry-run&lt;/code&gt; flag and a sandbox replica is sufficient verification for the binlog purge script, because the worst case is the script crashes and the on-call reverts to the manual &lt;code&gt;find&lt;/code&gt; command, which is what they were already doing. There&amp;rsquo;s no need for a 2000-row test suite. There&amp;rsquo;s barely a need for a runbook. The tool exists in the negative space between &amp;ldquo;the manual process&amp;rdquo; and &amp;ldquo;a properly engineered service&amp;rdquo; and both ends of that range are operationally fine.&lt;/p&gt;
&lt;p&gt;And the tools are throwaway. If the binlog organizer turns out to be shaped wrong (the team wanted archival, the agent built categorization, the bucketing scheme is awkward) it gets thrown out and rewritten from scratch. Sunk cost is hours, not weeks. The agent doesn&amp;rsquo;t carry the same emotional attachment to the previous version&amp;rsquo;s design that a human author would, which makes the rewrite cheaper than the original. That&amp;rsquo;s the property that lets a platform team take more shots than they otherwise would. Most of the toil-removal scripts that sit in the backlog die there because the expected effort feels higher than the expected payoff. The 10x reframes the expected effort, and a noticeable chunk of the backlog suddenly clears its own bar.&lt;/p&gt;
&lt;p&gt;The rewrite property has a second face: the replacement is often an upgrade, not just a regeneration. Most platform teams have the internal HTML dashboard from 2012 nobody wants to touch. Bootstrap, jQuery, server-rendered templates, no input validation on any of the forms, no real documentation, and one engineer left who remembers which buttons do what. Pre-AI estimate to modernize: a quarter that nobody schedules. Friday afternoon with a coding agent: a React frontend with form validation built in, a typed backend behind it, a README that documents what the endpoints actually do, and the input-validation gap that has been a low-grade footgun for three years closed by default, because the new stack treats validation as table stakes. The rewrite is cheaper than the original and an upgrade at the same time, because the agent is writing in a stack that already has the properties the old code lacked.&lt;/p&gt;
&lt;div class="note-box"&gt;
 &lt;strong&gt;Note&lt;/strong&gt;
 &lt;div&gt;The other property internal-only buys you: v2 ships side by side with v1. Both links go on the wiki, the team tries the new one in real work for a week, parity gets confirmed against the old one for the handful of operations anyone actually uses, and v1 gets deleted when nobody opens it anymore. No cutover plan, no customer comms, no parallel-infrastructure cost worth pricing. The team migrates itself. Try this rollout shape with a customer-facing service and the conversation goes very differently.&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="how-to-operationalize-this-without-standardizing-it-to-death"&gt;How to operationalize this without standardizing it to death
&lt;/h2&gt;&lt;p&gt;The temptation, as soon as the team notices the multiplier, is to standardize. Pick a Go scaffolding template, pick a logging library, mandate a directory layout, route everything through the platform team for review. Resist that. The standardization is where the multiplier collapses, because the moment two teams have to negotiate conventions, the agent is back in coordination-cost territory.&lt;/p&gt;
&lt;p&gt;A workable shape: every team picks two or three toil-removers from their own backlog and commits to shipping them this quarter. Each tool is owned by one team. Code review is one teammate, same-day, with the explicit understanding that the review is checking the tool does what the README says and doesn&amp;rsquo;t delete prod data, not enforcing a corporate style guide. Testing is on a sandbox or staging instance, not in CI for two weeks. A Backstage plugin backend that surfaces deploy status for the storage team&amp;rsquo;s services lives in the storage team&amp;rsquo;s repo, with the storage team&amp;rsquo;s conventions, and gets reused by other teams only if the other teams want to depend on it (and accept the version it ships in).&lt;/p&gt;
&lt;p&gt;The honest trade-off: tools built this way are good enough for one team and not good enough for the platform catalog. Some will need rewriting if they cross teams. That&amp;rsquo;s fine. The cost of rewriting is hours, and most of them will never cross teams anyway. The cost of insisting on cross-team-grade quality up front is that the diagnostic API the network team would have shipped in a Friday afternoon turns into a Q3 platform initiative, then a Q4 platform initiative, then nothing.&lt;/p&gt;
&lt;p&gt;The same multiplier extends past engineering. Marketing wants to bulk-edit campaign tags. Customer success wants a dashboard joining ticket history against feature adoption. Finance wants a quarterly close helper. With a coding agent, the team that actually knows what shape they want can build the first version themselves. Engineering takes the tool over and hardens it only if it proves valuable enough to graduate. Anything that doesn&amp;rsquo;t prove itself disappears quietly, which is the right outcome for a prototype.&lt;/p&gt;
&lt;div class="warning-box"&gt;
 &lt;strong&gt;Warning&lt;/strong&gt;
 &lt;div&gt;The sandbox is non-negotiable when non-engineers build their own internal tools. The environment has to be one where the tool cannot reach production credentials, cannot read customer data at production scale, and cannot expose anything to the public internet. A finance analyst prototyping a close helper against the prod database with their own AI agent is the worst-case version of this trend. The same prototype against pseudonymized data in a network-isolated environment is the version that pays off. What the platform team owes the business isn&amp;rsquo;t a scaffolding template. It&amp;rsquo;s a safe place to ship in. The infrastructure cost of getting the sandbox right is small. The cost of getting it wrong is the breach.&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="when-the-math-runs-the-other-way"&gt;When the math runs the other way
&lt;/h2&gt;&lt;p&gt;The regime above doesn&amp;rsquo;t extend to every tool a platform team might build. The decision matrix:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cross-team tools from day one.&lt;/strong&gt; Two teams on the same internal tool means convention negotiation, which means coordination cost, which means the multiplier is gone. Build it the way you build any shared service: design review, versioned API, deprecation policy. The agent is still useful here. It is not 10x useful.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regulated internal systems.&lt;/strong&gt; HR, finance close, anything in SOX, SOC2, or HIPAA scope. The verification bar rises sharply because the audit trail has to survive an external reviewer, and AI-speed advantage compresses against the human review time the controls require.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tools that touch customer data, even internally.&lt;/strong&gt; A script that joins across &lt;code&gt;users&lt;/code&gt; and &lt;code&gt;subscriptions&lt;/code&gt; is a customer-facing risk regardless of who runs it. Read access to PII is read access to PII whether the caller is a customer-facing API, an analytics agent, or a backup shipper. Blast-radius arguments don&amp;rsquo;t get a discount for being operational.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Destructive operations on prod infra.&lt;/strong&gt; A binlog purge script can break replication if it computes the cutoff wrong on a replica that&amp;rsquo;s silently behind. A snapshot shipper writes to S3 buckets other systems read from. The testing rigor required to ship destructive code pulls the productivity gain down. Still positive, often still 3x or 4x, but not the 10x of a pure read-only diagnostic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tools that drift into load-bearing.&lt;/strong&gt; The orchestrator that started life as a Friday-afternoon &amp;ldquo;drain, snapshot, upgrade, verify, restore traffic&amp;rdquo; script and is now the deploy path for six services. Once a tool crosses that line it has graduated out of the throwaway regime and into the production-systems regime. The conventions need writing down, the test suite needs to exist, and the next human who edits the code needs to be able to read it without an agent&amp;rsquo;s help. The productivity question is no longer &amp;ldquo;how fast can the agent ship v1&amp;rdquo; but &amp;ldquo;how cheap is the system to operate at year three.&amp;rdquo; Different question. Different answer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-bigger-picture"&gt;The bigger picture
&lt;/h2&gt;&lt;p&gt;The 10x envelope is narrow: greenfield, internal, replaceable, one team, fast feedback. It contains the toil backlog that has cost the team twenty silent minutes a week per uncreated tool for years, and the cost of writing those tools just dropped by an order of magnitude. The business case runs higher: when a non-engineer ships a tool with a coding agent, the multiplier is closer to 100x, because the pre-AI version of the tool doesn&amp;rsquo;t exist. Nobody ever wrote a ticket for it.&lt;/p&gt;
&lt;p&gt;The most ambitious version of the regime is the agent API in front of the database: greenfield, owned by one team, conventions the agent sets, audience small enough that v1 wrong is recoverable. The team that has been deferring it because it sounds like a quarter of work has a path to ship it in days.&lt;/p&gt;
&lt;p&gt;What doesn&amp;rsquo;t extend: customer-facing systems and customer data don&amp;rsquo;t tolerate the same speed. Once PII leaks into a model provider&amp;rsquo;s buffer, or a destructive script hits the wrong replica, you don&amp;rsquo;t get it back. The apology you&amp;rsquo;ll get is some flavor of &amp;ldquo;you&amp;rsquo;re absolutely right&amp;rdquo;. The phrase has no recall semantics.&lt;/p&gt;</description></item></channel></rss>