@mitchellh this is pretty spot on with my journey. Phase 1 & 2 are always awkward. Flashbacks to learning vim motions and pair programming while "almost" being proficient 😅
Shocker - agentic coding also requires learning it.
@kejne @mitchellh I'm curious, do you use pair programming routinely and efficiently?
I've done it occasionally and it's helpful. I'd put it in the same category with sparring i.e. rubberducking with a colleague - it helps when you're stuck and depleted the obvious first options and/or in need of a change.
Usually it's some specific item or ticket and there's an oppotunity to use two heads for it. One on the computer and one as the codriver. After a swift half hour it usually diffuses to "I'll take it from here, thanks". At work there's always a bit of pressure not to "waste" other people's time and pairing up for extended periods starts to feel like it's nearing diminishing returns.
I've also tried mob programming in a student project which was interesting. However I haven't had the people or the energy to drive further experiments to dig more into these. I wonder if there's still some corners unturned for me.
@rojun I've been using mob programming effectively in several teams. It has been extremely helpful to build team culture rather than the direct output I would say. A new team player with mixed experience taking turns to work on the code. (Got a blog post about it on my homepage, btw)
Key points: rotate often, git handover, create an environment of trust.
Same with pair programming really. I always leaned towards several smaller mobs or pairs that swarm rather than one big one.
With AI, things have changed a bit I think, but essences remain the same. Now you might pair up and learn how to use agents together for one (Also blog post)
@mitchellh I thought letting agents roam wild would work eventually and I could shepherd them as I would a junior sending me PRs for review. This, unfortunately, didn't work for me.
I ended up using smaller, "dumber" models that I could theoretically self-host (GLM-4.7, Qwen-3-Coder-Next) and working in a tighter loop with them (I design the interface, they fill it in).
Primeagen's 99 tool was a big big saviour here
@mitchellh my journey is similar and the agents have opened up a world where I build things that make me more efficient - like CLIs, linters and tool plugins (obsidian) but also fun things (media players).
I’ve started a process of tight engineering practices such as TDD, BDD, consistent architecture (hexagonal) and heavy linting (including custom ones). The idea here is that if these practices are consistent then I can out tool potential slop. BDD is tedious but might pay off the most as it forces you to document edge cases and hopefully it catches context that humans take for granted.
Claudes new tasks and teams are going to make things better/faster/stronger.
@mitchellh I think "harness engineering" sounds more like work on the agent CLI "runtime" itself, I called it "feedback loop engineering" as the main problem to solve is getting high signal and facts based feedback back into the context quickly so errors don't compound: