Letting the agent write the boring parts
The most common mistake with agentic coding tools is giving them your hardest problem on day one and concluding they’re useless when they flounder. The sweet spot is much more mundane: migrations, boilerplate, repetitive refactors, glue code, test scaffolding.
What works well right now
- Mechanical changes across many files. Anything where you could write the instructions as a checklist is fair game.
- Test generation from existing code. The agent reads the implementation, you review the assertions.
- Rubber-ducking. Describing a bug precisely to an agent often finds it faster than describing it to a colleague, and it’s available at 2am.
What still needs a human
Architecture, naming, and knowing which problem to solve. The agent will happily build you a very convincing solution to the wrong problem.
# Example: ask the agent to write the tedious property tests
# while you decide whether GenStage is even the right abstraction.
defmodule PipelineTest do
use ExUnit.Case, async: true
property "events are delivered exactly once per consumer" do
# ...
end
end
The division of labor that seems to stick: you own intent and judgment, the agent owns effort.