Kristian Tanninen

Kristian Tanninen

Product CTO

Kristian Tanninen

Observation·

Agent code is clean line by line, but overbuilt as a whole

Code written by agents is cleaner line by line than most code written by hand, but by default it is far more complex than the job needs. Claude Code has become the default way to produce code, and the excess has a pattern: an abstraction for one case, a configuration layer for one setting, a service for one call. The trouble shows up later, when the next change has to go through all of it.

Reviewing every line does not catch this. At line level there is little left to see. The prompt "build this with good architecture" does not catch it either. That sentence sends the agent into layers and patterns the job never asked for. The instruction that works is the opposite: stay minimal, stay focused, build from the facts in front of you.

What steers an agent is the frame around it. Written guidelines. A test frame it has to pass. A drawing of the architecture. Automated screenshots of what it changed. Configuration it can read instead of guess. Every gap in that frame the agent fills with an assumption, and every assumption is a risk.

Someone has to decide which of those risks to take. The agent cannot. The developer who runs it can, and has to stand behind each one. That assessment is where a developer earns a place in software development now.

Reel transcript · 0:51

Code written by AI looks clean, line by line. But as a whole, it's built far bigger than the job needs.

How AI overbuilds

It follows a pattern: a whole framework for one single case, a settings layer for one setting, and a separate service for one call.

  • A framework for one case
  • A layer for one setting
  • A service for one call

Clean lines. Too much building.

Checking every line won't catch it. And asking for a grand design only adds more layers.

Give it a frame

What works is the opposite. Tell it to stay small, stay focused, and build only from the facts in front of it.

Then give it a frame: written guidelines, tests it has to pass, and a drawing of how it all fits together. Every gap, it fills with a guess.

  • Written guidelines
  • Tests it has to pass
  • A drawing of the system

The takeaway

Every guess is a risk. Deciding which risks to take is your job now, and it's where developers earn their place.