Should product managers code now that agents can?

Stefan-Iulian Tesoi · · 6 min read

Alexander Graham Bell's experimental telephone of 1876, brass fittings and a black horn on a wooden base: a prototype built to answer one question, not to be the product

Prototypes, yes; unreviewed production changes, no. A product manager who builds a throwaway prototype with a coding agent reaches a decision in an afternoon instead of a sprint. The same person merging a small production change without review skips the check every engineer is held to, and small changes are exactly where nobody notices the skip.

So the honest answer to should product managers code is about which code, not whether. Claude Code and Cursor have made the typing cheap for anyone who can describe what they want. They have not changed who has to read the result, or who answers for it once it ships.

Should product managers code, and what kind of code?

They should write code that answers a question, and send code that changes the product through the same pull request as everyone else. The useful line runs between code thrown away after a decision and code that stays in the product.

Kind of codeWhat it is forReview it needsWhere it ends up
Throwaway prototypeAnswering a product questionNone, because it never shipsDeleted after the decision
Data query or scriptChecking a number before decidingA second reader on the logicA notebook, not the product
Copy or config changeA small production changeThe same pull request review as any changeThe main branch
Feature workA production changeCode review, tests and a named ownerThe main branch

The first two rows are where a product manager's code adds the most. The last two are where it causes the most trouble, because they look like the first two and are not.

The product manager technical skills that matter here are mostly reading skills: following a diff, writing an acceptance criterion a machine can check, and knowing which files are dangerous to touch.

Prototypes that answer a question

A prototype earns its place when it settles a question faster than a meeting would. PM prototyping with AI is good at exactly that: a clickable onboarding flow to show five customers, a working pricing calculator to test whether the tiers make sense, a fake integration screen to see whether anyone finds the button. For product managers using Cursor or Claude Code, a prototype like these can take an hour or two, which is less than the meeting it replaces.

Four rules keep a prototype a prototype:

A prototype that breaks these rules has quietly become production code with none of the checks production code gets.

Why do small changes from outside engineering skip review?

Because they look too small to be worth anyone's time, and because the author often holds the permissions to merge them anyway. A product manager who set up the repository, the CI or the hosting account frequently has admin rights on it. GitHub's documentation on protected branches is explicit that, by default, the restrictions of a branch protection rule do not apply to people with admin permissions. The setting "Do not allow bypassing the above settings" is what extends them to admins, and it is off until someone turns it on.

So the person least likely to have their change reviewed is often the person with the most access. The change is usually a few lines, such as a pricing-page label or a config threshold, and the agent may have done more than asked. An agent told to change a label can also reformat the file, update a test snapshot so the test passes again, or rename a key a translation file depends on. Its summary says "updated the label", and the summary is a claim. Reviewing what an agent actually did starts from the diff for exactly this reason.

A change too small to review is the change nobody reads until it breaks.

The fix is one review standard for every author, applied without exceptions for title or size:

  1. Every change to the product goes through a pull request, whoever prompted the agent.
  2. Branch protection applies to admins as well.
  3. The reviewer checks the diff against criteria written before the work started.
  4. The person who prompted the agent does not approve the result.

Who owns a change after a product manager ships it?

The product manager owns the decision and the engineering team owns the code, the same split as for any other change. That split has to be agreed before the first incident, not during it. When the change breaks at night, the engineer on call is the one who has to understand it, and they cannot ask the agent why it renamed that key.

So a change prompted by a product manager carries what every change carries: an item with acceptance criteria, passing tests, and a reviewer who could support it in production. Who owns the backlog draws the same line one step earlier, between deciding what should exist and keeping each item executable.

Laimonade applies that standard without asking who started the agent. A change handed back against an item is checked against that item's acceptance criteria one by one, and an item marked customer-facing waits in In Review for a person to look at it, whether the agent was started by an engineer or a product manager. A coding agent cannot mark its own work done.

What does this do to a product manager's week?

It moves hours from long documents to short, checkable items, and adds a few hours of prototyping that replace meetings. Two prototypes a week at an hour or two each is a common shape, each one ending a discussion that would have taken several calls.

The risk is drift. A product manager who starts shipping production changes because it is faster than waiting for an engineer becomes a part-time engineer, and the deciding work loses those hours. A useful tripwire: if more than one day a week goes into production changes, the role has shifted and nobody chose that. The broader picture in engineering team structure when agents write the code holds here too. The roles stay, and the hours inside them move.

Frequently asked questions

Do product managers need a development environment?

For prototypes, a sandbox is enough: a hosted environment or a separate repository with fake data. A local checkout of the product with production credentials is not needed for anything a product manager should be building, and it widens what a coding agent on their machine can reach. Engineers can set up a prototype template once and share it.

Should a prototype ever become the production code?

Rarely, and never by promotion. A prototype is written to answer a question fast, with fake data and no tests, so it carries none of what production code needs. When the answer is yes, build the feature again as a normal item with acceptance criteria, and use the prototype as the record of what users saw and liked.

Does this blur the line between product and engineering?

It blurs who types, not who decides. The product manager still decides what is worth building, and the engineering team still decides how it is built and whether a change is safe to merge. The line that matters is review: while every production change is read by someone who will support it, the author's title matters very little.