In this guide
Draw the dependencies first
Another agent helps only if there is useful work it can do without waiting for the first one. Start by writing the desired outputs and connecting the dependencies. If a database shape is still undecided, simultaneously implementing three consumers may create three different assumptions about that shape.
Take an article library. The shared contract defines the article metadata, which entries are public, and how a URL maps to an article. Once that contract exists, one task can build the listing interface while another prepares article content. A final task verifies the integrated result. Parallelizing the contract discussion itself is unlikely to save the same amount of time.

Read the diagram explanation
- Agree on the contract. Metadata, URLs, publication rules
- Split independent outputs. Library UI and article content
- Integrate the changes. One owner resolves shared edges
- Verify the whole path. Listing → article → related reading
Anthropic describes parallelization and orchestration as distinct patterns. The practical choice here is simpler: identify the work that can progress independently and the person responsible for reconciling it.
A useful split has a contract
Assign an outcome with a clear review boundary. “Make the site good” is not a bounded task. “Build the article search interface against this registry, without editing registry data” gives the worker an input, an output, and a boundary. It also makes the result easier to accept or reject.
| Work shape | Suggested approach | Reason |
|---|---|---|
| Small bug in one function | One agent | Investigation and the fix share the same context. |
| Independent content and layout | Separate tasks after agreeing metadata | Outputs can be reviewed independently. |
| Two edits in the same component | One owner or sequential work | Overlapping assumptions create integration work. |
| Read-only investigation of separate subsystems | Parallel research with one synthesis owner | Evidence can be gathered independently. |
Outcome: an accessible article search and category filter.
Input: the agreed public Article metadata type.
Ownership: library interface and its styles only.
Do not change: article content, URL rules, shared header.
Acceptance: case-insensitive search, combined filters, reset action.
Return: changed files, checks performed, unresolved assumptions.
Integration owner: the parent task.If two workers need to edit a shared file, assign ownership or sequence the edits. Separate branches protect file state, but they do not make incompatible decisions compatible. A clean merge can still combine a UI that expects one field with a registry that supplies another.
Count coordination and review
Elapsed time is only one part of the cost. There is also the time spent preparing briefs, resolving assumptions, checking results, and integrating changes. Consider an illustrative project with three independent tasks taking 20, 15, and 10 minutes. Sequential execution totals 45 minutes. Perfect parallel execution has a 20-minute lower bound, but ten minutes of coordination and integration brings the simplified estimate to 30 minutes.
const tasks = [20, 15, 10];
const coordinationAndIntegration = 10;
const sequential = tasks.reduce((sum, minutes) => sum + minutes, 0);
const parallel = Math.max(...tasks) + coordinationAndIntegration;
console.log({ sequential, parallel, saved: sequential - parallel });
// { sequential: 45, parallel: 30, saved: 15 }The arithmetic is reproducible; the durations are invented to explain the decision. They are not measurements of any agent product. The worksheet also assumes sufficient capacity, independent tasks, and no rework. If integration takes 30 minutes instead, the supposed advantage disappears.
Integrate in a deliberate order
Have each task report what changed, how it was verified, and what it assumed. Review changes against the agreed contract before combining them. Integrate the smaller independent pieces first, then run the checks that cross their boundaries. A content-only check cannot prove that a client-side search still renders its cards.
Use separate Git worktrees when concurrent coding needs independent working directories. Give each development server a distinct port, and remember that external services may still be shared. Assign one final integration owner even if several agents contribute code.
When a task becomes tightly coupled, stop splitting it. Consolidating the context into one owner is a valid correction. The purpose of delegation is to make a reviewable outcome arrive sooner, not to maximize the number of agents running.
Sources & further reading
Primary references checked . Version-specific examples identify the version used; current product behavior may differ.
- Anthropic: Building effective agents ↗
Background on parallelization and orchestrator patterns. The decision worksheet here is an editorial example.
- Git worktree reference ↗
Separate working directories for independent tasks.


