What I see most engineers do is parallelize. Have multiple agents work at the same time. It takes some time getting used to, but I think they are on to something.
There's even an article I read about this the other week, but I can't seem to find it ATM.
Right. The idea here is to kick of 3-8 or something tasks. They finish as you finish writing the next prompt. Then you go and review/test/merge the code from the first task, then another task finishes and you review/test/merge that code.
The challenge is that you have to be working on multiple work streams at once because so far Codex isn't great at not doing work you are doing in another task even if you tell it something like "class X will have a function that returns y"...it will go write that function most times.
I've found it really good for integration work between frontend and backend features where you can iterate on both simultaneously if the code isn't in the same codebase.
Also, for Codex this works best in the web ui because it actually uses branches, opens prs, etc. I think (though could be wrong) that locally with the CLI or IDE extension you might have to manually great git worktrees, etc.
Yeah I try to keep it away from overlapping it's work as much as possible. Using plan mode in claude or just telling codex to build a plan, that is structured in a parallelized way for multiple agents usually helps delegate tasks to be handled at the same time. Typically: app code, infra, and data layer are the main three, but obviously depends on the project.
If I ever find my self just waiting, then it always gives me an opportunity to respond to messages, emails, or update tickets. Won't be long now until the agents are doing that as well...
I can understand how you can parallelize tasks when there is some structure - but how do you get to that initially structured state where each agent isn't recreating the world to conflict with every other agent?
When i use that approach I end up merging one PR, then have to prod the others to fix themselves - resolving conflicts, removing duplicate code, etc - so it ends up slower than just running one agent at a time.
Like i said - maybe this is a problem on a bare repo? But if so, how are people vibe coding from scratch and calling themselves productive? I just don't get it.