Contents
  1. The software factory and its delivery boundary
  2. Work intake, readiness, and admission
  3. Specifications and observable acceptance criteria
  4. Production records and accepted handoffs
  5. Production routing and bounded worker assignments
  6. Artifact integration and quality acceptance
  7. Release responsibility and confirmed delivery
  8. Exceptions and accountable recovery
  9. Requirement changes and selective rework
  10. Delivery feedback and controlled process improvement
  11. Work in progress and bottleneck-aware admission
  12. Accepted throughput and the limits of automation
  13. Check understanding
  14. Open questions
  15. Selected talks
  16. References
  17. Talk library
← All topics

Software Factories

A software factory organizes people, coding agents, and ordinary automation around a requested software outcome. Its central challenge is preserving control as work crosses implementation, integration, review, and operational boundaries. Faster generation helps only when the resulting changes can be accepted, operated, and maintained without transferring excessive work downstream.

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

Example

Implementation leaves several downstream obligations unresolved.

EXP-17 follows this chosen production route. Rejected work enters an owned repair queue; a later authorized attempt re-enters the appropriate stage.
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
  • RequestAgreed specification: Data: requested outcome.
  • Agreed specificationImplementation: Control: admitted.
  • ImplementationIntegrated candidate: Data: contributions.
  • Integrated candidateQuality decision: Data: candidate evidence.
  • Quality decisionAuthorized release: Control: accepted.
  • Quality decisionRepair or clarification: Control: rejected.
  • Authorized releaseReceiving acceptance: Data: confirmed release.
  • Receiving acceptanceRepair 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.

BoundaryWhat it establishes
Implementation completionThe worker returned its required outputs. Subsequent integration and acceptance remain separate obligations.
Accepted deliveryRequired behavior is confirmed and the receiving role accepts the operating responsibilities and recorded obligations.
Realized user benefitActual 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.

EXP-17 intake record
RecordRequired information
Outcome and scopeReplace manual report copying; identify affected reporting systems, exclusions, dependencies, and urgency.
AuthorityName the requirement and receiving owners. Permit repository changes and test execution; require separate authorization for production exposure.
DispositionUnspecified access rules return to clarification. Missing receiving capacity defers admission. Excluded requests are rejected with a reason.
Existing demandSearch 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.

Example contract: EXP-17, specification S1
RequirementObservable acceptance evidenceAccepting 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.

Proposed production record
RelationshipEXP-17 record
Intent to workWork-item identity; approved S1; assigned stage; accountable role; required outputs and unresolved decisions.
Attempt to candidateAttempt A1 began from repository B1 and returned candidate C1 with retained execution evidence.
Candidate to originLineage records relationships among inputs, execution, and outputs. Build provenance can identify resolved inputs and produced artifacts; it does not establish correctness.
Evidence to decisionRecord the accepted revision, decision maker, rejection reason when applicable, and remaining obligations. Keep historical decisions separate from current status.

Return is not accepted transfer

Example

The candidate persists while responsibility changes through an explicit receipt.

1 / 3 · Return

The worker supplies C1 and E1.

EXP-17 and C1 retain their identities. Evidence E1 supports inspection; receipt H1 records integration-stage acceptance, not final delivery.
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-17Candidate C1: Produces.
  • Candidate C1Evidence E1: Checked by.
  • Evidence E1Acceptance receipt H1: Supports decision.
  • Acceptance receipt H1Stage accepted: Authorizes transfer.
  1. 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.
  2. Wait. Submission leaves acceptance pending. Active: EXP-17, Candidate C1, Evidence E1, Acceptance pending. New: Acceptance pending.
  3. 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

Example

Concurrent branches still converge on one acceptance obligation.

The agreed interface enables separate contributions. Integration combines their actual outputs before the receiving decision. The graph shows dependencies, not measured speedup or one agent per node.
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 interfaceEndpoint contribution: Prerequisite: behavior.
  • Agreed export interfaceDocumentation contribution: Prerequisite: user contract.
  • Agreed export interfaceAcceptance fixtures: Prerequisite: expected outcomes.
  • Endpoint contributionIntegrated candidate: Artifact: code.
  • Documentation contributionIntegrated candidate: Artifact: documentation.
  • Acceptance fixturesIntegrated candidate: Artifact: checks.
  • Integrated candidateReceiving-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.

Worker boundary for EXP-17
AssignmentRequired 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.

Acceptance evidence for the integrated candidate
ClaimEvidence and limitationDecision owner
Specified export behaviorExecuted R1–R5 observations against the combined candidate; examples cover only their declared cases.Requirement owner and maintainer
Compatible application behaviorRelevant reporting regressions and combined interface checks. Passing components do not establish whole-system compatibility.Integration owner
Access and operating limitsCheck 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
MaintainabilityInspect design, coupling, and likely future changes. Immediate test success does not directly measure the later cost of modifying the system.Maintainer
Reviewable validation historyRetain 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

Example

Exposure, observation, and receiving acceptance remain distinct boundaries.

EXP-17 uses deployment before exposure. Each failed or uncertain decision holds delivery; receiving acceptance transfers continuing responsibilities.
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 packageAuthorization decision: Data: release evidence.
  • Authorization decisionTarget deployment: Control: authorized.
  • Authorization decisionHold or intervention: Control: denied or incomplete.
  • Target deploymentScoped exposure: Control: target confirmed.
  • Target deploymentHold or intervention: Control: failed or uncertain.
  • Scoped exposureTarget observations: Data: actual behavior.
  • Target observationsReceiving decision: Control: criteria met.
  • Target observationsHold or intervention: Control: criteria unmet.
  • Receiving decisionAccepted delivery: Control: responsibility accepted.
  • Receiving decisionHold 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.

Local exception-routing policy
ConditionQueue and recipientEvidence and permitted next step
Requirement missing or contradictoryClarification — requirement ownerRetain the disputed criteria and affected work. Resume only after an approved interpretation; otherwise defer or cancel.
Implementation defectRepair — assigned producerRetain candidate and failing observation. Attempt bounded correction, then return updated evidence for acceptance.
Incompatible contributionsIntegration — integration ownerInspect producer and consumer results together. Repair the violating contribution, or return an inconsistent shared contract for clarification.
Environment unavailableEnvironment support — environment ownerRetain dependency, clock, and execution diagnostics. Restore a usable environment before attributing failure to the candidate.
Required check absent or failedAcceptance — gate ownerRecord the unmet contract and reason. Hold promotion until evidence is available or an authorized requirement change is accepted.
Release effect uncertainRelease reconciliation — release ownerPreserve 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

Example

Historical acceptance survives as a record, not current authorization.

1 / 3 · Earlier acceptance

S1 governed C1.

S2 reopens access obligations. Serializer evidence remains applicable only under the stated unchanged dependencies. C2 acceptance requires successful current checks and authorized review.
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-17S1: viewing permits export: Earlier specification.
  • EXP-17S2: export permission required: Revised specification.
  • S1: viewing permits exportC1 accepted against S1: Earlier basis.
  • S2: export permission requiredAccess work: Changes obligations.
  • Access workS2 work held: Needs repair.
  • Access workC2 accepted against S2: Repaired and checked.
  • Serializer evidenceC2 accepted against S2: Narrow supporting evidence.
  1. 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.
  2. 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.
  3. 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.

Route feedback to the decision it can improve
ObservationResponsible response
Repeated clarification of export permissionsRequirement owner proposes an intake-template change; repair the current specification separately.
Recurring producer–consumer incompatibilityIntegration owner investigates the shared interface and coordinated checks, rather than repeatedly patching whichever consumer fails first.
Exports succeed, but analysts still reconcile rows manuallyRequirement owner reassesses the intended outcome using observed work and user corrections.
Release incident repeatsRelease 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

Example

Both 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.

01.252.53.75505.51116.522Time (days)Cumulative items (work items)Ready demandAdmittedAccepted
  • 1. Ready demand
  • 2. Admitted
  • 3. Accepted
Read coordinates and regions as data

X: 05 days; Y: 022 work items, increasing up. Axes scaled independently; screen angles and distances are not comparable.

Ready demand (polyline)

(0, 0); (1, 4); (2, 8); (3, 12); (4, 16); (5, 20)

Admitted (polyline)

(0, 0); (1, 4); (2, 8); (3, 12); (4, 16); (5, 20)

Accepted (polyline)

(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.

01.252.53.75505.51116.522Time (days)Cumulative items (work items)Ready demandAdmittedAccepted
  • 1. Ready demand
  • 2. Admitted
  • 3. Accepted
Read coordinates and regions as data

X: 05 days; Y: 022 work items, increasing up. Axes scaled independently; screen angles and distances are not comparable.

Ready demand (polyline)

(0, 0); (1, 4); (2, 8); (3, 12); (4, 16); (5, 20)

Admitted (polyline)

(0, 0); (1, 2); (2, 4); (3, 6); (4, 8); (5, 10)

Accepted (polyline)

(0, 0); (1, 2); (2, 4); (3, 6); (4, 8); (5, 10)

Ready demand is four items/day; completion capacity is two/day. No initial queue, failures, cancellations, or capacity changes. Day-end totals omit within-day timing.

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.

L=λWL = \lambda W Here LL is long-run average unfinished work, λ\lambda is the matching departure rate, and WW is average residence time. Little’s law requires matching boundaries and finite limiting averages; it does not predict finite latency for an unstable, overloaded queue.

Assume a stable admission-to-acceptance system averages six unfinished items and two accepted completions per day, with no cancellations. Average residence time is 6/2=36/2=3 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.

A delivery scorecard with explicit boundaries
MetricPopulation and boundaryDecision use
Intake-to-acceptance timeElapsed 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 waitingTime awaiting the next stage’s required action, distinguished from active handling.Locate queues rather than optimizing an already fast step.
Accepted throughputDistinct accepted work items per period, grouped by comparable work class and consequence level.Assess useful completions against downstream capacity.
Post-acceptance defectsAccepted 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.
ReworkShare 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 effortAggregate 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.

Conditions for changing the automation boundary
Observed conditionJustified next direction
Exact rules and stable inputsPrefer ordinary automation; use model interpretation only where it adds useful judgment.
Clear, bounded task with easy completion checksUse one capable worker and a reviewable return package before adding coordination.
Separable contributions and explicit join obligationsEvaluate concurrent production while measuring integration, review, and repair costs.
Unresolved architecture or strongly coupled behaviorRetain human-led clarification and design decisions; more implementation workers can amplify the unresolved choice.
Receiving review or operating capacity exhaustedRestrict 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

  1. 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.

  2. 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.

  3. 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.

Follow the curated reading path through the speakers and demonstrations behind this entry.

Explore more talks

The rest of the library, beyond the curated path. Cited talks support this entry; reviewed transcripts were processed in full. Metadata candidates have not been reviewed as sources or verified as topic members.

26 matching talks

TalkSpeakerEventYear
Addy OsmaniAI Engineer World's Fair 20262026
Ben SteinAI Engineer World's Fair 20252025
Git push, get an AI API.

Transcript reviewed

Ryan Fox-TylerAI Engineer World's Fair 20242024
Eugene YanAI Engineer World's Fair 20262026
Al HarrisAI Engineer Code 20252025
How to Kill the Code Review

Cited in this entry

Ankit JainAI Engineer World's Fair 20262026
Corey J. GallonAI Engineer Code 20252025
Agents need more than a chat

Transcript reviewed

Jacob LauritzenAI Engineer Europe 20262026
Ibragim BadertdinovAI Engineer Europe 20262026
Hailong ZhangAI Engineer Summit 20252025
Talha SheikhAI Engineer Europe 20262026
A Genius With Amnesia

Cited in this entry

Victor SavkinAI Engineer World's Fair 20262026
Tariq ShaukatAI Engineer World's Fair 20262026
Itamar FriedmanAI Engineer Code 20252025
Robert BrennanAI Engineer World's Fair 20252025
Anna Marie BenzonAI Engineer World's Fair 20262026
Sumaiya ShrabonyAI Engineer World's Fair 20262026
Christopher Lovejoy, Saul HowardAI Engineer World's Fair 20262026
Raza HabibAI Engineer World's Fair 20242024
Aparna DhinakaranAI Engineer World's Fair 20252025
Zack ProserAI Engineer Europe 20262026
Justin ReockAI Engineer Code 20252025
Louis Knight-WebbAI Engineer Europe 20262026
Build Systems, Not Code

Cited in this entry

Angie JonesAI Engineer World's Fair 20262026
Allie Howe, Dex Horthy, Geoffrey Huntley, Ian Livingstone, Greg PstruchaAI Engineer World's Fair 20262026
Lou BichardAI Engineer Europe 20262026

References

Coverage and source review
Processed transcripts
29 processed in full · 5 in the curated path
Automated source review
Passed
Metadata candidates
2 unreviewed; not verified topic membership
Corpus version
1bd8e407b26a07b33815594e1b2db5f41827119a2b3cb6fbf240f9fc571fc767

Automated review checks source support; it is not publication approval.

A synthesis of selected conference talks and technical references. Citations link to the source material; they do not imply that every talk on this subject is included.

  1. The Kanban Guide — May 2025

    Definition of Workflow, active management, and flow metrics; admission, waiting, capacity limits, and measurement vocabulary.

  2. Lean Enterprise Institute: Value Stream Mapping

    Definition, current and future states, process data boxes, and whole-flow perspective. Supports boundaries and distinguishing elapsed completion time from individual-step speed.

  3. NASA Systems Engineering Handbook — Product Transition

    Sections 5.5.1.1–5.5.1.2; release evidence packages, stage handoffs, and receiving readiness.

  4. How Forward Deployed Engineering is done at Factory

    The software factory concept treats delivery as a feedback loop from incoming signals through prioritization, implementation, validation, deployment, and monitoring.

  5. Factory Missions

    How Missions work, optimal outcomes, and open questions; a concrete agent-production example spanning clarification, planning, execution, and validation.

  6. Site Reliability Engineering — The Evolving SRE Engagement Model

    PRR model, analysis, improvements, training, and onboarding; operational acceptance and continuing ownership limits.

  7. How Forward Deployed Engineering is done at Factory

    Define an outcome or ROI story at the beginning that connects changes in engineering behavior to core business goals.

  8. The Scrum Guide — November 2020

    Product Backlog, Sprint Planning, Increment, and Definition of Done; supports intake, admission, shared quality conditions, and rejection vocabulary.

  9. Guidelines for Managing Projects: How to organise, plan and control projects

    Scope definition, stakeholder analysis, change control, and benefits realization sections; supports a lightweight customer delivery agreement.

  10. NASA Systems Engineering Handbook — Technical Requirements Definition

    Sections 4.2.1.1–4.2.1.2; foundation for distinguishing required behavior, operating constraints, and implementation choices.

  11. Your Attention Is the Bottleneck, Not Your Agents — Zack Proser, WorkOS

    A 'signal layer' can bring actionable requests into the developer's primary working interface.

  12. Backlog.md: Terminal Kanban Board for Managing Tasks with AI Agents — Alex Gavrilescu, Funstage

    Acceptance criteria should describe testable behavior, and completion should depend on satisfying the definition of done.

  13. Cucumber — Gherkin Reference

    Rule, Example, Steps, Given, When, and Then; supports observable acceptance criteria for the export illustration.

  14. NASA Systems Engineering Handbook — Product Verification

    Verification versus validation, process inputs, and tailoring; acceptance criteria and proportionate quality evidence.

  15. Spec-Driven Development: Agentic Coding at FAANG Scale and Quality — Al Harris, Amazon Kiro

    EARS (Easy Approach to Requirement Syntax) provides structured acceptance criteria that Kiro uses to derive correctness properties and support more deterministic parsing.

  16. Effective harnesses for long-running agents

    Environment management, feature list fixture, incremental progress, and testing; concrete evidence for explicit task records and outcome checks.

  17. Backlog.md: Terminal Kanban Board for Managing Tasks with AI Agents — Alex Gavrilescu, Funstage

    Backlog.md stores tasks as Markdown files in the repository, with structured metadata in front matter.

  18. SLSA v1.2 — Build Provenance

    Model and schema, especially BuildDefinition and RunDetails; linking a retained build to its inputs and execution.

  19. The Cure for the Vibe Coding Hangover

    Pair feature-only Git commits with an implementation plan that tracks overall completion.

  20. PagerDuty: Incidents

    Incident statuses, assignment, acknowledgment, and incident timeline; operational vocabulary for agent-to-human escalation.

  21. The Cure for the Vibe Coding Hangover

    Validate each declared dependency as a requirement for specific output, configuration, or functionality, then resolve cycles before scheduling implementation.

  22. Automating Large-Scale Refactors with Parallel Agents

    The OpenHands Refactor SDK demo groups files into reviewable batches, derives a batch dependency graph, and processes dependencies before their consumers.

  23. OpenHands: An Open Platform for AI Software Developers as Generalist Agents

    Primary paper abstract, version 3; platform capabilities and separation of model, runtime, and evaluation.

  24. The Cure for the Vibe Coding Hangover

    Persist architectural decisions in artifacts, then assemble a feature-specific context package rather than relying on conversation history or loading every planning document.

  25. Build Systems, Not Code

    Use code for deterministic operations, agents for interpretation, and humans for consequential authority.

  26. Git Worktree Documentation

    Official git-worktree description, refs, configuration and checkout safeguards.

  27. NASA Systems Engineering Handbook — Product Integration

    Introduction and sections 5.2.1.1–5.2.1.2; first-use integration definition and obligations at artifact join points.

  28. GitHub Docs — Managing a merge queue

    Merge-group checks, queue configuration, and successful/failing CI examples; revision-specific verification and integration rejection.

  29. Every Solo Agent Builder Eventually Reinvents a Worse Version of CI/CD

    A gate must prevent rejected output from advancing; warning-only validation does not enforce acceptance.

  30. How to Kill the Code Review

    Combine agent-driven interaction with screenshots and database snapshots, using deterministic checks where possible and LLM judgment where necessary.

  31. Harness Engineering is not Enough: Why Software Factories Fail

    A reward based solely on passing correctness and regression tests does not directly penalize poor program design.

  32. Agentic SDLC at Uber - Building Blocks for Uber’s Software Factory

    Uber attaches a table of completed checks and screenshots to autonomous PRs so reviewers can assess work beyond the initial generation.

  33. Real ROI: Lessons from Enterprises that have already succeeded with LLMs at Scale: Raza Habib

    Break subjective quality into narrow, independently testable criteria instead of asking for a broad judgment of goodness.

  34. GitHub Docs — About protected branches

    Required reviews, stale approvals, required checks, and bypass settings; concrete quality-gate enforcement and authority boundaries.

  35. The Site Reliability Workbook — Canarying Releases

    What Is Canarying?; Requirements of a Canary Process; A Roll Forward Deployment Versus a Simple Canary Deployment; Selecting and Evaluating Metrics.

  36. Using RL-based Agent to Detect and Remediate ETL Pipeline Failures

    Safety constraints should sit outside the learned policy, with escalation treated as a valid outcome.

  37. Software Engineering Is Becoming Plan and Review

    The speaker recommends a plan-based approach when requirements can be clarified before execution, trading planning effort for fewer corrective review rounds.

  38. Software Development Agents: What Works and What Doesn't

    Start with small chores that have a clear completion condition and are easy for a human to verify.

  39. A Genius With Amnesia

    Polygraph describes treating CI across participating repositories as one combined result, allowing failure repair to consider both producers and consumers.

  40. SWE-rebench: Lessons from Evaluating Coding Agents on Real Software Engineering Tasks — Ibragim Badertdinov, Nebius

    External dependencies and incorrect environment clocks can introduce evaluation failures unrelated to the submitted solution.

  41. Every Solo Agent Builder Eventually Reinvents a Worse Version of CI/CD

    An audit trail should identify the failed gate, violated contract, and reason without requiring the entire pipeline to run again.

  42. Compensating Transaction pattern

    Context and problem; Solution; Issues and considerations; travel-booking example.

  43. Using RL-based Agent to Detect and Remediate ETL Pipeline Failures

    Policy safety and implementation capability require separate checks and explicit outcomes.

  44. Spec-Driven Development: Agentic Coding at FAANG Scale and Quality — Al Harris, Amazon Kiro

    Review specifications as living descriptions of system behavior, with attention to changed requirements and their design implications.

  45. NIST AI RMF: Monitoring, incident response, and recovery

    AI RMF 1.0, MEASURE 2.4 and 3.1–3.3; MANAGE 2.3–2.4 and 4.1–4.3. Delayed-label handling and operational sequence are explicitly engineering applications.

  46. The Site Reliability Workbook — Postmortem Culture: Learning from Failure

    Decommissioning case, critique of missing context and ownership, and actionable follow-up; production feedback and exception lessons.

  47. Your Attention Is the Bottleneck, Not Your Agents — Zack Proser, WorkOS

    Schedule retrospectives over retained conversations to identify recurring friction and missing capabilities.

  48. Real ROI: Lessons from Enterprises that have already succeeded with LLMs at Scale: Raza Habib

    Capture behavior and corrections as well as explicit ratings, but do not rely on production feedback as the sole evaluation source.

  49. Generalization in Adaptive Data Analysis and Holdout Reuse

    Dwork et al., 2015, version 2; introduction and section 1.2, Thresholdout section 4.1, and section 5 discussion of fresh validation. Read original full HTML.

  50. Your Attention Is the Bottleneck, Not Your Agents — Zack Proser, WorkOS

    Human capacity to judge quality and business fit can constrain throughput before agent execution capacity does.

  51. Notes on Little's Law — Karl Sigman

    Definitions and Theorem 1.1; the serving interpretation follows directly from choosing requests as the items.

  52. Agentic SDLC at Uber - Building Blocks for Uber’s Software Factory

    CI capacity, feasible experiment volume, and deciding what should be built remain bottlenecks even when implementation becomes easier.

  53. Leadership in AI-Assisted Engineering

    IDE acceptance events provide incomplete evidence of AI contribution and should be supplemented with experience sampling and surveys.

  54. The State of AI Code Quality: Hype vs. Reality

    More generated code can produce more total defects and review work even if defects per line remain unchanged.

  55. METR — We are Changing our Developer Productivity Experiment Design

    Original February 2026 methodology update; task selection, missing completions, concurrent work, and interpretation limits.

  56. DORA's software delivery performance metrics

    January 2026 guide; throughput, instability, common pitfalls, and improvement process.

  57. Automating Large-Scale Refactors with Parallel Agents

    Long agent trajectories can lose context and propagate early mistakes, while underspecified architecture and completion criteria leave the agent guessing.

  58. Harness Engineering is not Enough: Why Software Factories Fail

    A lights-off workflow can leave humans unfamiliar with the code when an agent encounters a problem it cannot solve.

  59. Harness Engineering is not Enough: Why Software Factories Fail

    Architectural damage can become observable long after the coding episode that caused it, making credit assignment difficult.

  60. Build Systems, Not Code

    Document workflow, policy locations, supporting modules, and memory maintenance at each system level, then use cold-start operation and modification as maintainability checks.

  61. How we built our multi-agent research system

    Benefits of a multi-agent system; Research architecture; Prompt engineering and evaluation for research agents; Effective evaluation of agents; artifact-output discussion.

  62. OpenHands — Automating Massive Refactors with Parallel Agents

    Git Workflow, Task Decomposition, Fixing and Verifying, and Human in the Loop; concrete production routing and integration example.

  63. APM Body of Knowledge, Seventh Edition: Transition into Use

    Sections 2.3.1–2.3.3, printed pages 88–92. Supports readiness, receiving-team acceptance, support and transferred-work accounting.

  64. NASA Systems Engineering Handbook — Requirements Management

    Sections 6.2.1.2–6.2.1.3; production lineage, specification authority, change impact analysis, and selective rework.