The software factory and its delivery boundary
A software factory is an organized system for repeatable, controlled software production. The production model here is an engineering synthesis: it follows the whole delivery flow, including decisions, waiting, and correction. A work item tracks one requested outcome through that flow; its identity survives individual execution attempts.
An artifact is a retained output, such as code, configuration, documentation, or a build. Delivery requires both suitable artifacts and a recipient prepared to use them. The software delivery lifecycle includes the activities that develop, deliver, and maintain those outputs.
The request-to-acceptance path
ExampleImplementation leaves several downstream obligations unresolved.
Read the diagram as text
- Request. Intake owner
- Agreed specification. Requirement owner
- Implementation. Assigned producer
- Integrated candidate. Integration owner
- Quality decision. Acceptance authority
- Authorized release. Release owner
- Receiving acceptance. Operating owner
- Repair or clarification. Assigned recipient
- Request → Agreed specification: Data: requested outcome.
- Agreed specification → Implementation: Control: admitted.
- Implementation → Integrated candidate: Data: contributions.
- Integrated candidate → Quality decision: Data: candidate evidence.
- Quality decision → Authorized release: Control: accepted.
- Quality decision → Repair or clarification: Control: rejected.
- Authorized release → Receiving acceptance: Data: confirmed release.
- Receiving acceptance → Repair or clarification: Control: unresolved obligations.
Work item EXP-17 requests CSV export from an existing reporting service so analysts can stop manually copying report rows. Its contracts, identities, and outcomes below form a constructed example. The production map assigns responsibilities, not an agent to every box: one person or program may perform several stages while preserving their distinct acceptance decisions.
| Boundary | What it establishes |
|---|---|
| Implementation completion | The worker returned its required outputs. Subsequent integration and acceptance remain separate obligations. |
| Accepted delivery | Required behavior is confirmed and the receiving role accepts the operating responsibilities and recorded obligations. |
| Realized user benefit | Actual use improves the intended work. An available export alone does not establish reduced manual reconciliation. |
Work intake, readiness, and admission
Work intake receives, clarifies, classifies, and selects requests. Triage determines the next disposition and responsible role. Readiness means sufficient information exists to undertake the work; admission commits current production capacity. The Scrum Guide similarly distinguishes refinement and readiness from selection without requiring every organization to adopt a separate readiness document.
For EXP-17, the requirement owner decides intended behavior; the service maintainer owns technical suitability; the release owner authorizes exposure; and the receiving operator accepts ongoing operation. These are responsibilities that need named holders, not necessarily four jobs. The intake record identifies their decisions before execution starts.
| Record | Required information |
|---|---|
| Outcome and scope | Replace manual report copying; identify affected reporting systems, exclusions, dependencies, and urgency. |
| Authority | Name the requirement and receiving owners. Permit repository changes and test execution; require separate authorization for production exposure. |
| Disposition | Unspecified access rules return to clarification. Missing receiving capacity defers admission. Excluded requests are rejected with a reason. |
| Existing demand | Search for related requests before creating more work. Link confirmed duplicates to the existing item without treating similarity as proof of duplication. |
Use a locally agreed route based on consequences, uncertainty, and reversibility. A reversible documentation correction can receive lighter oversight than an uncertain access-policy change. Urgency changes priority, not permission. If the required decision exceeds the assigned role’s authority, the request goes to the authorized owner rather than directly to an implementation worker.
Specifications and observable acceptance criteria
A specification records agreed behavior and constraints. An acceptance criterion is an observable condition used to assess a requirement. A revision identifies a particular version. Required behavior states what must happen and under which conditions; a design proposes how to achieve it.
| Requirement | Observable acceptance evidence | Accepting role |
|---|---|---|
| R1 — Report viewing permits export, restricted to rows that caller may view. | Access fixtures exercise permitted and denied callers; retained results show returned rows and denial behavior. | Service maintainer |
| R2 — Export all authorized rows matching the filters at request start. | Compare exported row identities with a fixed expected snapshot while underlying report data changes. | Requirement owner |
| R3 — Columns are report_id, date, amount, in that order. Commas, quotes, and line breaks preserve field values. | Parse the downloaded CSV and compare its headers and values with acceptance fixtures. | Service maintainer |
| R4 — Empty results still contain headers. | Retain the downloaded empty-result file and parsed header assertion. | Requirement owner |
| R5 — More than 10,000 rows, or failed generation, produces an explicit error rather than a successful partial export. | Exercise boundary counts and injected generation failure; inspect the response and any produced download. | Service maintainer |
Given/When/Then expresses an initial context, an event, and an expected outcome. For R4: given an authorized report with no matching rows, when export is requested, then the downloaded CSV contains the specified headers and no data rows. Gherkin connects such examples to executable steps while keeping implementation details separate.
Streaming, buffering, and background jobs are design choices constrained by S1. Generated tests provide evidence against its requirements; they cannot silently redefine them. The requirement owner approves S1 and later behavioral changes, while the maintainer reviews feasibility. Missing criteria require a decision, not an implementation guess.
Production records and accepted handoffs
Business progress records accepted work and unresolved obligations. An execution attempt records activity. Several attempts can serve EXP-17 without creating several delivered items. Cases and authoritative state develops this distinction; the factory applies it to specifications, artifacts, checks, and stage decisions.
| Relationship | EXP-17 record |
|---|---|
| Intent to work | Work-item identity; approved S1; assigned stage; accountable role; required outputs and unresolved decisions. |
| Attempt to candidate | Attempt A1 began from repository B1 and returned candidate C1 with retained execution evidence. |
| Candidate to origin | Lineage records relationships among inputs, execution, and outputs. Build provenance can identify resolved inputs and produced artifacts; it does not establish correctness. |
| Evidence to decision | Record the accepted revision, decision maker, rejection reason when applicable, and remaining obligations. Keep historical decisions separate from current status. |
Return is not accepted transfer
ExampleThe candidate persists while responsibility changes through an explicit receipt.
The worker supplies C1 and E1.
Read the diagram as text
- EXP-17.
- Candidate C1.
- Evidence E1.
- Worker returned. Producer responsible
- Acceptance pending. Producer responsible
- Acceptance receipt H1.
- Stage accepted. Integration owner responsible
- EXP-17 → Candidate C1: Produces.
- Candidate C1 → Evidence E1: Checked by.
- Evidence E1 → Acceptance receipt H1: Supports decision.
- Acceptance receipt H1 → Stage accepted: Authorizes transfer.
- Return. The worker supplies C1 and E1. Active: EXP-17, Candidate C1, Evidence E1, Worker returned. New: EXP-17, Candidate C1, Evidence E1, Worker returned.
- Wait. Submission leaves acceptance pending. Active: EXP-17, Candidate C1, Evidence E1, Acceptance pending. New: Acceptance pending.
- Accept. The recipient records H1 and takes responsibility. Active: EXP-17, Candidate C1, Evidence E1, Acceptance receipt H1, Stage accepted. New: Acceptance receipt H1, Stage accepted.
A handoff transfers work and responsibility through acceptance. For EXP-17, the producer remains accountable while integration acceptance is pending. The recipient needs the candidate, supporting evidence, and authority to act. Accepted handoffs and responsibility explains why sending a link is insufficient; acknowledgment and resolution are distinct events.
Each stage contract therefore names entry conditions, required outputs, an accepting role, and permitted waiting or rejection outcomes. A commit message can describe validation, but the receiving stage still needs the underlying evidence. Repository storage alone does not provide a trustworthy current status or resolve concurrent decisions.
Production routing and bounded worker assignments
Production routing selects workers and stages according to prerequisites, capability, authority, evidence needs, and capacity. A dependency requires another contribution’s output; coupling describes how strongly changes depend on one another. Task boundaries and bounded roles develops these concepts. Shared tooling alone does not establish a dependency, and separate files do not establish independence.
Agree EXP-17’s request parameters, response behavior, and access interface before parallel implementation, documentation, and acceptance-fixture work. Each contribution must remain reviewable and later join a combined candidate. Dependency-aware refactor batching illustrates this approach; directory grouping is only a heuristic for coherent work, not proof that batches cannot interfere.
Shared decisions precede parallel contributions
ExampleConcurrent branches still converge on one acceptance obligation.
Read the diagram as text
- Agreed export interface. Requirement owner and maintainer
- Endpoint contribution. Assigned producer
- Documentation contribution. Documentation owner
- Acceptance fixtures. Acceptance reviewer
- Integrated candidate. Integration owner
- Receiving-stage decision. Accept or return with reasons
- Agreed export interface → Endpoint contribution: Prerequisite: behavior.
- Agreed export interface → Documentation contribution: Prerequisite: user contract.
- Agreed export interface → Acceptance fixtures: Prerequisite: expected outcomes.
- Endpoint contribution → Integrated candidate: Artifact: code.
- Documentation contribution → Integrated candidate: Artifact: documentation.
- Acceptance fixtures → Integrated candidate: Artifact: checks.
- Integrated candidate → Receiving-stage decision: Data: candidate and evidence.
A coding agent selects investigation, editing, and execution actions using observed results. Its runtime makes those actions executable. Execution feedback and implementation decisions explains the internal loop; the factory supplies its assignment and decides whether the returned package meets the receiving stage’s contract.
| Assignment | Required return |
|---|---|
| S1; starting revision B1; allowed files and dependencies; approved interface; permitted actions; time and resource limits. | Identifiable candidate; actual starting state; changed artifacts; execution evidence; unresolved questions; limitations; complete, partial, or blocked disposition. |
| Feature-specific requirements and relevant dependency specifications and code. | Enough retained context for the recipient to assess compatibility without reconstructing the entire conversation. |
Use ordinary code for exact operations, agents for interpretation, and designated people for consequential authority. A worker that discovers an unresolved access decision should return it for clarification. Additional workers cannot manufacture the missing decision.
A Git worktree provides another checked-out working directory with its own HEAD and index. It separates working-file edits, but repository configuration can remain shared. It does not isolate credentials, databases, ports, or network effects, and it leaves semantic integration obligations intact.
Artifact integration and quality acceptance
Integration combines contributions and establishes that they work together. The NASA integration guidance includes interfaces, sequencing, configuration, and the integration environment. For EXP-17, the integration owner assembles identified code, dependencies, configuration, documentation, and build outputs against an identified target base.
A clean merge reconciles text; semantic compatibility requires behavioral evidence. Revision-bound integration explains this boundary. GitHub’s merge queue tests a combination containing the proposed change, current target branch, and earlier queued changes. That combination has a different identity from the original pull request, so its required checks must run on the merge-group candidate.
A quality gate prevents advancement when its required conditions are unmet. Warning-only validation leaves the transition uncontrolled. Verification checks conformity to specified requirements; validation assesses intended use. Passing S1 checks can establish export behavior without establishing that analysts’ reconciliation problem has been solved.
| Claim | Evidence and limitation | Decision owner |
|---|---|---|
| Specified export behavior | Executed R1–R5 observations against the combined candidate; examples cover only their declared cases. | Requirement owner and maintainer |
| Compatible application behavior | Relevant reporting regressions and combined interface checks. Passing components do not establish whole-system compatibility. | Integration owner |
| Access and operating limits | Check allowed and denied exports, loaded access configuration, row limits, failure responses, and visible results. Screenshots alone cannot establish all persisted or backend effects. | Service maintainer |
| Maintainability | Inspect design, coupling, and likely future changes. Immediate test success does not directly measure the later cost of modifying the system. | Maintainer |
| Reviewable validation history | Retain completed checks and relevant screenshots alongside the diff. Uber describes this packaging for autonomous pull requests; the table itself is not proof of correctness. | Receiving reviewer |
A Definition of Done states shared completion-quality conditions. Work failing them does not become a releasable increment merely because implementation ended. Different workers contributing to one product need compatible completion conditions, otherwise local acceptance can conceal gaps at integration.
Acceptance independence depends on evidence as well as reviewer identity. Another agent can share the constructor’s assumptions. Use requirement review and separately derived expected outcomes; reserve accountable judgment for ambiguous criteria. Oracles, rubrics and human judgments explains that design. Narrow judgments expose disagreements more clearly than a single assessment of overall quality.
Bind approvals to the reviewed changes. GitHub can dismiss stale approvals or require approval after the latest push, but bypass settings matter. Required status checks can also accept skipped or neutral results. A locally required executed test therefore needs evidence of execution, not merely a green protection state.
Release responsibility and confirmed delivery
Release responsibility covers authorizing exposure, confirming intended behavior, arranging intervention, and continuing ownership. Merging changes repository history; deployment installs an artifact; exposure makes behavior available to users. Operational acceptance records that the receiving role can take responsibility. Acceptance can occur separately from initial launch.
EXP-17’s release package identifies the exact candidate, configuration and data dependencies, acceptance evidence, authorized target and exposure scope, limitations, recovery conditions, receiving owner, and pending obligations. The recipient receives operating instructions as well as artifacts. A different candidate or configuration requires reassessing the authorization and evidence.
Deployment can precede accepted delivery
ExampleExposure, observation, and receiving acceptance remain distinct boundaries.
Read the diagram as text
- Release package. Candidate, evidence, obligations
- Authorization decision. Release owner
- Target deployment.
- Scoped exposure.
- Target observations.
- Receiving decision. Operating owner
- Accepted delivery.
- Hold or intervention. Named owner retains responsibility
- Release package → Authorization decision: Data: release evidence.
- Authorization decision → Target deployment: Control: authorized.
- Authorization decision → Hold or intervention: Control: denied or incomplete.
- Target deployment → Scoped exposure: Control: target confirmed.
- Target deployment → Hold or intervention: Control: failed or uncertain.
- Scoped exposure → Target observations: Data: actual behavior.
- Target observations → Receiving decision: Control: criteria met.
- Target observations → Hold or intervention: Control: criteria unmet.
- Receiving decision → Accepted delivery: Control: responsibility accepted.
- Receiving decision → Hold or intervention: Control: acceptance withheld.
In EXP-17’s chosen route, deployment precedes controlled feature exposure. Confirm exports in the actual target environment, then obtain receiving acceptance. Negotiated follow-up work can remain visible without silently waiving mandatory quality conditions. Production readiness review illustrates checking dependencies, monitoring, response arrangements, documentation, and receiving capability.
A canary exposes bounded production traffic to a candidate while a baseline supplies comparison. Version-specific observations inform promotion or intervention; unrepresentative traffic can miss defects. Controlled rollout and operational intervention covers the mechanics. The factory must supply the candidate, decision authority, stopping conditions, and receiving obligations that those controls enforce.
Exceptions and accountable recovery
An exception is work that cannot advance under normal conditions. Its useful classification identifies the decision needed next. EXP-17’s local policy keeps the current owner accountable until a recipient acknowledges the handoff, records a response expectation, and bounds correction attempts. Escalation is an acceptable result when evidence, capability, or authority is insufficient.
| Condition | Queue and recipient | Evidence and permitted next step |
|---|---|---|
| Requirement missing or contradictory | Clarification — requirement owner | Retain the disputed criteria and affected work. Resume only after an approved interpretation; otherwise defer or cancel. |
| Implementation defect | Repair — assigned producer | Retain candidate and failing observation. Attempt bounded correction, then return updated evidence for acceptance. |
| Incompatible contributions | Integration — integration owner | Inspect producer and consumer results together. Repair the violating contribution, or return an inconsistent shared contract for clarification. |
| Environment unavailable | Environment support — environment owner | Retain dependency, clock, and execution diagnostics. Restore a usable environment before attributing failure to the candidate. |
| Required check absent or failed | Acceptance — gate owner | Record the unmet contract and reason. Hold promotion until evidence is available or an authorized requirement change is accepted. |
| Release effect uncertain | Release reconciliation — release owner | Preserve candidate, target, and action records. Establish actual state before authorizing another consequential action or a remedy. |
A permitted remedy may still be unavailable. One recovery-agent example proposes a safe schema correction, discovers that the executor cannot perform it, and returns the incident for manual review. Record the proposal as unexecuted. Capability failure must not become a completion claim.
Notification, acknowledgment, and resolution are separate events. PagerDuty’s incident lifecycle illustrates continued escalation before acknowledgment and renewed escalation after an acknowledgment timeout. Each production exception similarly needs a locally defined response expectation and owner while waiting. Exceptions and resolution paths develops the general contract.
Reverting local code cannot erase an already observed external effect. Recovery may require compensating actions that preserve intervening work and can themselves fail. Partial completion and business recovery explains those limits. An uncertain deployment needs reconciliation before repetition; an irreversible disclosure needs an authorized response, not a claim that rollback undid it.
Requirement changes and selective rework
Requirements remain authoritative as the product changes. In EXP-17, approved revision S2 adds explicit export permission to S1’s report-viewing requirement. Access implementation, access fixtures, and access documentation now need revision. A living specification preserves this behavioral change rather than leaving it inside a later implementation conversation.
Pause affected assignments and obtain approval of S2 before resuming them. The earlier acceptance remains historical evidence about S1; it does not authorize S2. For this example, serialization behavior, code, dependencies, and test environment remain unchanged. Its retained evidence can support that narrower claim while access-related obligations reopen.
Changed permission, selective rework
ExampleHistorical acceptance survives as a record, not current authorization.
S1 governed C1.
Read the diagram as text
- EXP-17.
- S1: viewing permits export.
- S2: export permission required.
- Access work. Code, fixtures, documentation
- Serializer evidence. Unchanged claim and dependencies
- C1 accepted against S1. Historical record
- S2 work held.
- C2 accepted against S2.
- EXP-17 → S1: viewing permits export: Earlier specification.
- EXP-17 → S2: export permission required: Revised specification.
- S1: viewing permits export → C1 accepted against S1: Earlier basis.
- S2: export permission required → Access work: Changes obligations.
- Access work → S2 work held: Needs repair.
- Access work → C2 accepted against S2: Repaired and checked.
- Serializer evidence → C2 accepted against S2: Narrow supporting evidence.
- Earlier acceptance. S1 governed C1. Active: EXP-17, S1: viewing permits export, Access work, Serializer evidence, C1 accepted against S1. New: EXP-17, S1: viewing permits export, Access work, Serializer evidence, C1 accepted against S1.
- Approved change. S2 reopens affected work. Active: EXP-17, S1: viewing permits export, S2: export permission required, Access work, Serializer evidence, C1 accepted against S1, S2 work held. New: S2: export permission required, S2 work held.
- Conditional completion. After repairs and successful C2 checks, authorized acceptance replaces the hold. Active: EXP-17, S1: viewing permits export, S2: export permission required, Access work, Serializer evidence, C1 accepted against S1, C2 accepted against S2. New: C2 accepted against S2.
The repaired worker candidate is not necessarily the intended integrated candidate. If C2 includes a later role-mapping configuration change, S2 access checks must exercise that combination. Passing S2 on an earlier worker branch plus passing S1 on C2 leaves the crucial relationship unchecked. Advance only after the necessary results and authorized acceptance exist.
Selective reuse depends on explicit dependency reasoning. Unchanged files alone are insufficient when their environment, integration base, or criteria changed. Updated review controls can invalidate approvals after changes. If S1 is already exposed, assign a separate operational correction obligation; producing S2 does not by itself contain the earlier behavior.
Delivery feedback and controlled process improvement
Repairing one delivery and changing the production process are separate obligations. A useful incident record connects impact, causes, recovery, and concrete follow-up work. Assign each improvement an owner and tracking record; otherwise the immediate repair can finish while the conditions permitting recurrence remain unchanged.
| Observation | Responsible response |
|---|---|
| Repeated clarification of export permissions | Requirement owner proposes an intake-template change; repair the current specification separately. |
| Recurring producer–consumer incompatibility | Integration owner investigates the shared interface and coordinated checks, rather than repeatedly patching whichever consumer fails first. |
| Exports succeed, but analysts still reconcile rows manually | Requirement owner reassesses the intended outcome using observed work and user corrections. |
| Release incident repeats | Release and operating owners track a preventive change with explicit completion evidence. |
Retain the failed case with relevant specification, code, configuration, model, tool, environment, and evaluator versions. This proposed diagnostic record lets an owner assess a process change against the failure it should prevent. Retrospectives over agent conversations can identify repeated ambiguity and missing capabilities, but those findings are improvement proposals rather than demonstrated gains.
Agents must not weaken protected acceptance rules to improve apparent success. Cases used to revise a process become regression evidence, not untouched assessment data. Test the revised configuration on fresh, representative cases before claiming general improvement. Coverage and independent assessment explains why even aggregate feedback can influence later choices.
Work in progress and bottleneck-aware admission
Work in progress, or WIP, counts admitted but unfinished items. Backlog is accumulated waiting work; work-item age is elapsed time since starting. Throughput counts completions per unit time at a declared boundary. These definitions follow the Kanban Guide.
Pull ready work when capacity opens, unblock aging items, and make priority exceptions explicit. Small, coherent batches help keep acceptance manageable.
Admission changes where unfinished work waits
ExampleBoth routes accept ten items; admission control moves excess demand outside active production.
All demand admitted
Demand and admissions coincide; unfinished admitted work grows.
Scroll sideways if the figure extends beyond the screen.
- 1. Ready demand
- 2. Admitted
- 3. Accepted
Read coordinates and regions as data
X: 0–5 days; Y: 0–22 work items, increasing up. Axes scaled independently; screen angles and distances are not comparable.
(0, 0); (1, 4); (2, 8); (3, 12); (4, 16); (5, 20)
(0, 0); (1, 4); (2, 8); (3, 12); (4, 16); (5, 20)
(0, 0); (1, 2); (2, 4); (3, 6); (4, 8); (5, 10)
Capacity-matched admission
Admissions and completions coincide; deferred demand grows.
Scroll sideways if the figure extends beyond the screen.
- 1. Ready demand
- 2. Admitted
- 3. Accepted
Read coordinates and regions as data
X: 0–5 days; Y: 0–22 work items, increasing up. Axes scaled independently; screen angles and distances are not comparable.
(0, 0); (1, 4); (2, 8); (3, 12); (4, 16); (5, 20)
(0, 0); (1, 2); (2, 4); (3, 6); (4, 8); (5, 10)
(0, 0); (1, 2); (2, 4); (3, 6); (4, 8); (5, 10)
Substantive review has finite capacity. More implementation workers can create more outputs than maintainers can inspect. Review capacity and service commitments explains the receiving constraint. Protecting sustained attention can require slowing new implementation while reviewers resolve existing candidates, rather than adding more simultaneous requests for judgment.
Assume a stable admission-to-acceptance system averages six unfinished items and two accepted completions per day, with no cancellations. Average residence time is days, including waiting. This is an accounting relationship, not evidence that imposing a six-item limit will produce those results.
The figure separates internal congestion from deferred demand. Holding work before admission may improve admitted cycle time while intake-to-acceptance time remains unchanged. Review, integration, continuous-integration capacity, and feasible experiment volume can each constrain delivery; the limiting stage must be observed rather than inferred from idle agent slots.
Accepted throughput and the limits of automation
Measure delivery at its agreed acceptance boundary. Count EXP-17 once when delivered, while retaining every attempt, rejection, and repair cost. Report canceled and unfinished work separately. A completed agent run is an execution observation, and a suggestion-acceptance event may precede extensive rewriting; neither is a direct productivity measure.
| Metric | Population and boundary | Decision use |
|---|---|---|
| Intake-to-acceptance time | Elapsed time from recorded request to receiving acceptance. Keep unfinished items visible through age and completion status. | Detect delays hidden by starting the clock only after admission. |
| Stage waiting | Time awaiting the next stage’s required action, distinguished from active handling. | Locate queues rather than optimizing an already fast step. |
| Accepted throughput | Distinct accepted work items per period, grouped by comparable work class and consequence level. | Assess useful completions against downstream capacity. |
| Post-acceptance defects | Accepted items with discovered defects divided by accepted items with the declared follow-up window. Incomplete follow-up remains visible. | Detect quality costs emerging after acceptance. |
| Rework | Share of tracked items requiring correction, plus repair effort across all attempts. State whether review corrections, incidents, or both are included. | Expose shifted work and repeated failure. |
| Human handling effort | Aggregate planning, review, correction, and operating time across participants; include unsuccessful attempts and declare observation limits. | Check whether automation saves labor or relocates it. |
DORA’s delivery metrics cover commit-to-production lead time, deployment frequency, failed-deployment recovery time, change fail rate, and deployment rework rate. Their boundaries are narrower than intake-to-accepted-delivery: earlier clarification and later receiving acceptance fall outside commit-to-deployment time. Deployment rework also excludes some review corrections. Interpret the metrics together for comparable services; they do not directly measure user benefit.
Elapsed time and labor differ when people and agents work concurrently. METR’s experiment update describes concurrency, selective participation, withheld tasks, and incomplete outcomes as obstacles to productivity interpretation. Process time, quality, and total operating work develops the accounting distinction. Comparisons need matched work populations and visible missing outcomes, not only completed tasks.
| Observed condition | Justified next direction |
|---|---|
| Exact rules and stable inputs | Prefer ordinary automation; use model interpretation only where it adds useful judgment. |
| Clear, bounded task with easy completion checks | Use one capable worker and a reviewable return package before adding coordination. |
| Separable contributions and explicit join obligations | Evaluate concurrent production while measuring integration, review, and repair costs. |
| Unresolved architecture or strongly coupled behavior | Retain human-led clarification and design decisions; more implementation workers can amplify the unresolved choice. |
| Receiving review or operating capacity exhausted | Restrict admission and resolve receiving obligations before increasing generation. |
Maintainability costs can emerge only when later changes encounter architectural damage. Preserving human understanding remains a recovery constraint when agents cannot solve an incident. Automated review can help, but it does not establish that maintainers can safely evolve the system.
A practical maintainability check is whether a fresh human or agent session can find the workflow, policy, supporting modules, and memory-maintenance instructions and make a bounded change. Difficulty doing so identifies organizational or documentation work that increased generation would leave unresolved.
Evidence for retaining or simplifying coordination compares coordinating agents with a capable single agent and a prescribed workflow. Expansion requires better accepted outcomes without unacceptable defects, transferred labor, or unowned maintenance. Broader staffing, incentives, and portfolio choices belong to AI Engineering Leadership.
Open questions
Selective evidence reuse needs stronger dependency models. Rechecking everything is costly, but incomplete lineage can preserve invalid approvals. Progress would mean detecting affected claims across requirement, configuration, environment, and base changes while explaining each retained result’s continued applicability.
Useful concurrency limits remain workload-dependent. Coupling and variable review effort make agent-slot counts poor capacity estimates. Progress would require matched comparisons of sequential and concurrent work that include unfinished items, integration repairs, accepted outcomes, and total human effort.
Maintainability needs evidence extending beyond immediate acceptance. Later change costs are delayed and difficult to attribute to individual generated decisions. Progress would be a longitudinal evaluation relating accepted changes to subsequent repair effort and maintainers’ ability to modify the system.






























