← Patterns

Parallel Projects, Sequential Tasks

CategorySystems Thinking / Agent Design
SourceDave Paola (original synthesis, Feb 24 2026)
SurfacedConversation with a peer founder about parallelizing AI agent work

Core Concept

“As the parallelism grows, the time spent resolving merge conflicts grows faster than the time spent coding. So your agents just spend all their time resolving conflicts. Dialing back the parallelism and just doing things sequentially is actually faster past a certain point.”

The coordination cost of parallel work within a single project is superlinear — it doesn’t just limit your speedup (Amdahl’s Law), it creates a crossover point where parallelism makes you slower. Past that point, sequential execution wins.

The prescription: Parallel projects, not parallel tasks within projects. The unit of parallelism is the project, not the task.


The Merge Tax

Every parallel branch creates a future merge event. The cost of that merge is not constant — it depends on how much the codebase has changed since the branch was created, which depends on how many other parallel branches have been merged. This creates a compounding effect:

The merge tax is superlinear because each resolved conflict changes the base, invalidating other branches’ assumptions. Agents can resolve merge conflicts — but their ability to do so doesn’t change the fundamental math that the conflicts grow faster than the productive work.


Why This Matters for AI Agent Design

The temptation with cheap AI compute is to massively parallelize: spin up 10 agents, each working on a different task in the same codebase, merge everything at the end. This feels like it should be 10x faster. In practice:

  1. Agents produce code that assumes a shared state — but parallel execution means no agent sees the others’ changes
  2. Merging is inherently sequential — PRs can only be merged one at a time
  3. Each merge potentially invalidates subsequent merges — creating cascading rework
  4. The coordination layer (conflict resolution) grows faster than the production layer (code writing)

The better architecture: run agents sequentially within a project, sharing context through a protocol (like WCP) rather than competing over shared files. Each agent picks up where the last left off, with full context. No merge conflicts, no wasted work.


Where It Applies

ContextParallel UnitSequential UnitWhy
AI agent workflowsProjects (separate repos/namespaces)Tasks within a projectMerge conflicts grow superlinearly
Engineering teamsSquads (own their service)Features within a squadSame principle — Brooks’s Law is the human version
WCP architectureNamespaces (independent)Work items within a namespace (sequential agent handoffs)Design matches the physics
Git workflowRepositoriesBranches within a repoThe branching model works because repos are independent

Connection to WCP Design Principles

This pattern is why WCP is designed the way it is:

WCP’s architecture embodies this pattern: the tool supports parallel projects (namespaces) while encouraging sequential work (activity logs, status transitions, context-rich handoffs between sessions).


Relationship to Other Laws

LawWhat It SaysHow This Extends It
Amdahl’s LawSequential portions limit speedupThis extension: coordination costs can make parallelism net negative, not just limited
Conway’s LawOrg structure mirrors system architectureParallel teams → parallel systems → integration pain at the boundaries
Brooks’s LawAdding people to a late project makes it laterSame superlinear coordination cost, applied to humans instead of agents

The Test

Before parallelizing work within a project, ask: “Will these parallel streams need to be merged into a shared codebase?” If yes, you’re paying the merge tax. Consider whether sequential execution with shared context (WCP, detailed handoff notes) would actually be faster end-to-end.


Cross-References