{
    "componentChunkName": "component---src-templates-post-js",
    "path": "/blog/agents-can-write-code-you-still-own-the-system",
    "result": {"data":{"site":{"siteMetadata":{"siteUrl":"https://www.tms-doan.com"}},"markdownRemark":{"html":"<p>The other day, I watched someone try to fix an error with an AI coding agent.</p>\n<p>The agent made a change.\nThe same error came back.\nSo they copied the error message and pasted it back into the agent.</p>\n<p>The agent made another change.\nThe same error came back again.</p>\n<p>So they copied it again.</p>\n<p>At some point, I thought: we are not debugging anymore.\nWe are trying to start an infinite loop with an AI coding agent.</p>\n<p>It was funny.\nBut it also made me think about something more serious.</p>\n<p>Who is leading the product development here?</p>\n<p>The human?\nOr the agent?</p>\n<hr>\n<h3>When fast looks like progress</h3>\n<p>Agents are very good at making things happen.</p>\n<p>They can read a codebase, create a plan, write a feature, run tests, and open a pull request while you are still thinking about what to have for lunch.\nSometimes they give you ten options before you have properly understood the first one.</p>\n<p>That kind of speed feels powerful.\nAnd it is powerful.</p>\n<p>But speed also has a strange side effect.\nIt can make activity look like progress.</p>\n<p>You see files changing.\nYou see commits appearing.\nYou see a new screen in the browser.\nEverything feels alive.</p>\n<p>Then you ask a simple question:</p>\n<p><strong>Why are we building this?</strong></p>\n<p>And suddenly the room gets a little quiet.</p>\n<p>That is the moment I think matters most.</p>\n<p>Because an agent can be very confident about how to build something without knowing whether the thing is worth building in the first place.</p>\n<p>It can create a beautiful settings page.\nIt can add a workflow with six states.\nIt can refactor half the application to make the architecture look cleaner.</p>\n<p>But it does not sit with the customer when the product is confusing.\nIt does not have to explain a missed deadline.\nIt does not feel the pain when the team has to maintain a clever solution six months later.</p>\n<p>We do.</p>\n<hr>\n<h3>The agent is not the product lead</h3>\n<p>I do not see agents as little developers that we hand tickets to and forget about.</p>\n<p>I see them more like extremely fast collaborators.</p>\n<p>They are great at exploring ideas, taking care of repetitive work, and helping us move through the boring parts faster.\nThey can give us a first draft when a blank page would have slowed us down.</p>\n<p>But a first draft is not a direction.</p>\n<p>Someone still has to decide what good looks like.</p>\n<p>Someone has to understand the customer problem well enough to say no to a feature that sounds smart but solves nothing.\nSomeone has to notice when a technically correct solution makes the user experience worse.\nSomeone has to protect the simple version of the product when the agent keeps offering a more “complete” one.</p>\n<p>That is human work.</p>\n<p>Not because humans are better at typing code.\nHonestly, agents are already removing a lot of that work from the job.</p>\n<p>Humans lead because product development is mostly judgment under uncertainty.\nThere is no error message for a feature that nobody wants.</p>\n<hr>\n<h3>We still own what ships</h3>\n<p>There is a debate about whether developers should review agent-written code line by line.</p>\n<p>I think that debate is a little too narrow.</p>\n<p>Of course, quality matters.\nTests matter.\nCode review matters.\nLogs, alerts, and security checks matter too.</p>\n<p>But the deeper responsibility is understanding the system well enough to reason about it.</p>\n<p>You should know:</p>\n<ul>\n<li>which user problem a change is trying to solve</li>\n<li>what parts of the product it can affect</li>\n<li>what the agent assumed while it was working</li>\n<li>how you will tell if it helped or harmed the experience</li>\n<li>where you would look if something breaks later</li>\n</ul>\n<p>That does not mean reading every line with a magnifying glass.\nIt means staying close enough to the intent that the implementation never becomes a mystery.</p>\n<p>Agents can write the code.\nWe still own the system.</p>\n<p>That is the line for me.</p>\n<hr>\n<h3>The work changes shape</h3>\n<p>I think a lot of developers are still measuring their value by how much code they can write in a day.</p>\n<p>That made sense for a long time.\nWriting code was the bottleneck.</p>\n<p>Now, more often, the bottleneck is knowing what to ask for and knowing whether the answer is actually good.</p>\n<p>The work moves upward.</p>\n<p>Less time is spent manually wiring every small detail together.\nMore time is spent making the problem clear, setting boundaries, checking tradeoffs, and cleaning up the mess when an experiment goes too far.</p>\n<p>This is not less technical.\nIn some ways, it is more technical.</p>\n<p>You need enough product context to direct the agent well.\nYou need enough engineering context to spot a risky shortcut.\nAnd you need enough taste to know when the output is impressive but wrong.</p>\n<p>That last part is underrated.</p>\n<p>An agent can build something that works perfectly and still should not exist.</p>\n<hr>\n<h3>Agents need context that can grow</h3>\n<p>There is another part of this that I find interesting.</p>\n<p>Most agent workflows are designed like a tiny magic trick:</p>\n<ul>\n<li>start a clean sandbox</li>\n<li>give the agent a task</li>\n<li>get a result</li>\n<li>throw the environment away</li>\n</ul>\n<p>That is great for a demo.\nIt is also useful for small, isolated tasks.</p>\n<p>But product work is not usually that clean.</p>\n<p>The useful context is often scattered across half-finished experiments, product notes, old decisions, local scripts, and the weird things the team learned after talking to customers.\nThose things are not clutter.\nThey are part of the memory of the product.</p>\n<p>I want agents to have a durable workspace where that memory can compound.</p>\n<p>Not a mysterious black box.\nNot a disposable environment that forgets everything after one task.</p>\n<p>A place the team understands and controls.</p>\n<p>That could be a machine that is always available, a persistent project workspace, or a shared system that keeps the right context close to the work.\nThe exact setup will change.\nBut I think the principle will stay the same:</p>\n<p>Good agents need a good home.</p>\n<hr>\n<h3>What I am trying now</h3>\n<p>I have heard that teams like Anthropic use internal environments where agents can work inside a persistent sandbox instead of starting from zero every time.</p>\n<p>That idea stayed with me.</p>\n<p>So I started experimenting with my own version: a computer in an online data center where an AI coding agent can run pretty much full-time.</p>\n<p>The goal is not to create a machine that builds products without me.\nThe goal is to give the agent a stable place to investigate, test, document, and move work forward while I am not sitting in front of my laptop.</p>\n<p>I can still come back, review the direction, and make the decisions that need human context.\nBut the machine does not need to stop just because I closed the lid.</p>\n<p>It is still early, and I do not want to pretend I have found the perfect architecture.\nI am testing what should stay persistent, what should be isolated, and how much context is genuinely useful without becoming noise.</p>\n<p>Once I am confident this is a setup I would recommend, I will share the details.</p>\n<hr>\n<h3>My takeaway</h3>\n<p>I am very optimistic about AI coding agents.</p>\n<p>They make it easier to explore.\nThey give small teams more leverage.\nThey can help turn an idea into something testable before the excitement disappears.</p>\n<p>But I do not want to become the person who blindly copies the next error message into the machine and waits for a miracle.</p>\n<p>I want to understand the problem.\nI want to lead the product direction.\nI want to know why we are shipping something, not only whether the test is green.</p>\n<p>The best teams will not be the ones that let agents make the most changes.</p>\n<p>They will be the ones that stay responsible for the meaning of those changes.</p>\n<p>The agent can move fast.\nThe human still needs to lead.</p>","timeToRead":6,"frontmatter":{"title":"Agents Can Write Code. You Still Own The System.","description":"A story about AI coding agents, product direction, and why the human still needs to lead","date":"2026-08-11T00:00:00.000Z","updated":null,"slug":"/blog/agents-can-write-code-you-still-own-the-system","tags":["AI","Engineering","Product","Culture"]}}},"pageContext":{}},
    "staticQueryHashes": ["1672341955","2009693873","2077189868","3505212370","3825832676"]}