Contents
  1. Purpose and development
    1. Software production as a system
    2. Turning points in repeatable production
  2. Admitting and specifying work
    1. Receive requests, admit bounded work
    2. Specify behavior and preserved guarantees
  3. Organizing production
    1. Separate execution from acceptance
    2. Bound work for recombination
  4. Accepting current artifacts
    1. Carry identity through handoffs
    2. Make checks govern advancement
    3. Accept the combined candidate
    4. Revalidate changed inputs
  5. Delivery, recovery, and feedback
    1. Authorize release and confirm its outcome
    2. Route exceptions to the right owner
    3. Improve the production arrangement
  6. Capacity and automation choices
    1. Control unfinished work
      1. A queue with repeated work
      2. Consistent accounting
    2. Measure the complete arrangement
    3. Choose the boundary of unattended work
  7. Check understanding
  8. Open questions
  9. Selected talks
  10. References
  11. Talk library
← All topics

Software Factories

A software factory organizes people, tools, and automation to turn software requests into accepted, delivered changes. It connects requirements, implementation, checks, integration, release, and ongoing support. Faster code generation makes this coordination more important: producing a change can take less time than deciding whether it should reach users. The aim is useful delivery, with a clear account of what changed, why it was accepted, and who owns the outcome.

Purpose and development

Software production as a system

A software factory is an organized system for turning authorized software requests into accepted, delivered changes using people, tools, and automation. Its boundary extends beyond implementation: it must connect incoming work to requirements, checks, delivery decisions, and feedback from operation. Unattended delivery is one possible ambition, not a defining requirement. Eno Reyes's account of the approach at the company Factory emphasizes the organizational work needed to connect an incoming request to deployment, even when an individual change proceeds without human intervention.

A candidate is a proposed change awaiting assessment. Creating one establishes something different from accepting it, delivering it, or benefiting from it. The complete-process perspective introduced in Workflow Automation applies directly: completing an activity is not necessarily completing the requested work.

Each claim requires a different basis.
ClaimWhat must be established
A candidate existsThe proposed source changes or package can be inspected.
The candidate is acceptableApplicable checks and judgment support the agreed requirements and intended use.
The change has been deliveredThe identified output has reached its intended destination with the necessary receiving arrangements.
The change creates valueObserved outcomes support the benefit that justified the work.

These distinctions determine the factory's design. If its responsibility ends at a reviewed pull request, it should say so. If it promises working production changes, it must also own the path through integration, release, and confirmation. Increasing implementation capacity without extending those responsibilities merely produces more candidates.

Turning points in repeatable production

Software factories have a longer history than generated code. The name has described organizational arrangements, systematic reuse, model-driven development, and automated delivery. These traditions address different sources of repeated effort; they are not successive versions of one architecture.

Different problems in repeatable software production

  1. October 1968McIlroy's Mass Produced Software ComponentsReusable component families make precision, robustness, generality, and resource tradeoffs explicit.Sources & context

    Contributors: M. D. McIlroy

    What changed: Presented at the NATO software-engineering conference. The proposal concerned dependable, interchangeable building blocks rather than additional copies of finished programs.

  2. 1969Hitachi software factoryAn independent organization coordinates comprehensive software development.Sources & context

    Contributors: Hitachi

    What changed: Hitachi records separation from its Kanagawa works amid expanding railway-reservation and banking-system work. This marks an organizational change, not the invention of software production.

  3. September 1999Clements and Northrop's product-line frameworkManaged shared assets and planned variation support related products.Sources & context

    Contributors: Paul Clements and Linda Northrop, Software Engineering Institute

    What changed: Version 2.0 connects asset development, product development, and management. Shared assets include tests and integration plans; suitable product improvements can return to those assets.

  4. 2003–2004Greenfield and Short's Software FactoriesDomain-specific models and prepared frameworks connect specifications to implementation.Sources & context

    Contributors: Jack Greenfield and Keith Short; book contributions from Steve Cook and Stuart Kent

    What changed: The OOPSLA 2003 paper combines components, product lines, and model-driven transformations. The September 2004 book develops models as production inputs rather than documentation alone.

  5. 2007–2010Farley's deployment pipeline and Humble's Continuous DeliveryRetained release candidates undergo staged checks, supported by cross-role collaboration.Sources & context

    Contributors: Dave Farley; Jez Humble

    What changed: Farley's 2007 report promotes retained binaries through assessment stages instead of rebuilding them. Humble's February 2010 account emphasizes developers, testers, and operations participating together from the beginning.

  6. July 14, 2025KiroPersistent requirements, design, and tasks organize coding-agent work.Sources & context

    Contributors: Kiro; preview announcement by Nikhil Swaminathan and Deepak Singh

    What changed: The preview describes acceptance criteria feeding approved design and dependency-ordered tasks. Inspectable specifications preserve decisions that might otherwise remain undocumented between prompts and implementation.

  7. February 6, 2026 accountStrongDM's software factoryEnd-to-end scenarios assess agent-produced software without human code review.Sources & context

    Contributors: StrongDM; account by Justin McCarthy

    What changed: The reported design uses scenarios, model-assisted assessment, and behavioral service replicas for controlled testing. It describes one allocation of assessment work, not a demonstrated universal improvement in delivery quality.

Each tradition addresses a different production problem. Their dates do not imply that one architecture replaced another; spacing is not to scale.

The unit of repetition differs across these approaches: a component family, a supported product configuration, a model transformation, or an identified release candidate. A factory must choose which of these it can reproduce and assess reliably.

Generated implementation broadens what can be proposed without a prewritten transformation for every change. It does not settle which requests deserve execution, which variations remain compatible, or which results are acceptable. Those decisions explain why earlier production disciplines remain relevant.

Admitting and specifying work

Receive requests, admit bounded work

Work intake receives, clarifies, prioritizes, and assigns responsibility for proposed work. Admission is the separate decision to start execution. A request can be understandable but not yet worth starting, authorized but blocked by a dependency, or important but too ambiguous for implementation. Devin's scoping discussion identifies understanding the task, selecting the repository, and seeking clarification as prerequisites to autonomous backlog work.

For an intake decision, establish the intended benefit, scope, permitted repository access, dependencies, consequences of error, and how completion will be assessed. Assign an owner who can resolve uncertainty about the request. Then consider capacity: eligibility does not mean immediate selection. The Kanban Guide uses capacity signals to govern new starts, while the Scrum Guide distinguishes backlog refinement from selecting work.

A practical intake policy can make the permitted next step explicit.
DispositionOwned next step
ImplementThe implementation owner receives bounded behavior, constraints, and acceptance conditions.
InvestigateAn investigator receives a specific uncertainty to resolve and a bounded report or experiment to deliver.
ClarifyThe requirements owner resolves missing intent or conflicting constraints.
DeferThe intake owner records the dependency, priority, or capacity condition preventing a start.
DeclineThe decision owner records why the work falls outside the supported scope or authority.

For example, adding a specified API response format may be ready for implementation. A complaint that the API is slow may instead justify an investigation identifying where time is spent. Investigation is legitimate production work; its deliverable is an answer that supports a later decision, not an unspecified optimization.

Production fit also has historical weight. Michael Cusumano's study of System Development Corporation describes a standardized factory organization begun in 1976 that lapsed in 1978. Uneven incoming work, incompatible customer hardware, management resistance, and insufficient continuing tool investment complicated the arrangement. Standard procedures could not make every incoming project suitable for the same production system.

Specify behavior and preserved guarantees

A specification states the agreed behavior and constraints. An acceptance criterion is an observable condition used to assess the requested result. Describe inputs, outputs, required relationships, operating constraints, and interactions with other systems. Record the reason for consequential requirements so later contributors can distinguish their purpose from an incidental implementation choice. NASA's requirements guidance makes this distinction between what must happen and how well it must happen.

The agreement should cover both the addition and what must remain unchanged, along with exclusions, dependencies, and unresolved choices. Shared completion obligations are different from feature-specific criteria. A Definition of Done states common quality conditions for completed work; one feature's behavior does not replace those conditions. The Scrum Guide uses this distinction without requiring every factory to adopt Scrum.

Consider an example request to add CSV export to an existing report API while retaining its access restriction.
ObligationObservable checkDecision still needed
Add CSV outputAn authorized request returns the agreed columns and values in CSV form.The requirements owner confirms which columns serve the intended use.
Preserve access restrictionsA caller unable to read the report cannot obtain it through the export path.The existing access rule remains authoritative.
Bound resource useExercise the agreed report size under stated operating conditions.If no size or performance requirement exists, clarify it before claiming acceptance.

Specification by example expresses a rule through concrete circumstances, an event, and an expected outcome. Cucumber's Gherkin reference connects such examples to executable steps while keeping implementation details out of the requested behavior. Examples clarify an agreement; they do not establish that it is complete.

Keep the agreement inspectable and owned. Kiro's original workflow separates requirements and acceptance criteria from design and dependency-ordered tasks. That separation allows a reviewer to challenge the intended behavior before examining the proposed implementation. When a coding conversation resolves an ambiguity, incorporate the approved decision into the specification instead of leaving it only in the conversation. Generating a test from an implementation does not grant permission to change the requirement that test should assess.

Organizing production

Separate execution from acceptance

A production stage has inputs, a required result, permitted actions, retained outputs, and a condition for advancement. An artifact is a retained output, such as source changes, a test report, or a deployable package. Investigation, implementation, checking, integration, and delivery are distinct responsibilities, but they need not be separate services, separate agents, or an inflexible sequence that forbids feedback.

A coding agent inspects repository information, modifies files, executes tools, and uses observed results to choose further work. It therefore supplies an implementation capability rather than merely generating source text. Coding Agents develops that loop; Agent Runtimes and Harness Engineering explains the environment that keeps it running and preserves its work. A factory can surround one such agent with existing build, test, and release automation.

Required sequencing belongs in executable control flow. If a candidate must pass a check before advancing, the workflow should enforce that condition rather than asking the agent to remember it. The agent can still choose local implementation and repair steps. Deterministic ordering controls which operation may run next; it does not guarantee that the operation succeeds or that its output is correct.

Separate permission to propose from permission to accept. A pull request presents source changes for review and possible integration. GitHub's documented cloud-agent controls allow its agent to work on a branch but not approve or merge pull requests. This is one concrete authority boundary. A factory can also require acceptance of the candidate and separate release authorization before allowing deployment. Those decisions sit outside the implementation agent's authority: an accountable owner can approve, redirect, or stop work even when machines execute every intervening operation.

Proposal and advancement have different owners

Example

Candidate production supplies artifacts; controlled gates decide whether those artifacts may advance.

One possible production design: applicable acceptance and release authorization are required before deployment. Failed or missing prerequisites block advancement. These responsibilities need not belong to separate people or services, and deployment still requires outcome observation.
Read the diagram as text
  • Approved specification. The requirements owner establishes the permitted work and acceptance conditions.
  • Produce candidate. An implementation agent works within its assigned scope and permissions.
  • Assess candidate. Tools and reviewers collect observed results, including required checks of the combination.
  • Acceptance gate. An accountable decision establishes whether applicable evidence satisfies the agreed criteria.
  • Release authorization. A separate release policy determines whether this accepted candidate may be deployed to the target.
  • Execute deployment. Controlled execution attempts deployment of the authorized candidate; its outcome still needs observation.
  • Blocked work. Retain the candidate and reason, then assign the missing decision or repair.
  • Approved specificationProduce candidate: Data: behavior and constraints.
  • Produce candidateAssess candidate: Data: identified candidate.
  • Assess candidateAcceptance gate: Data: observed results.
  • Acceptance gateRelease authorization: Control: applicable criteria satisfied.
  • Acceptance gateBlocked work: Control: failed or insufficient evidence.
  • Release authorizationExecute deployment: Control: release authorized.
  • Release authorizationBlocked work: Control: authorization absent.

Bound work for recombination

A work package is an assignment bounded around a coherent deliverable. Before dispatch, settle its dependencies, interface obligations, acceptance conditions, and how its output will join the rest of the system. Small assignments are useful when they remain independently assessable. Dividing implementation into tiny tasks and then regrouping everything into one large testing or release batch postpones the feedback that small batches were meant to provide.

Reuse depends on similarly deliberate boundaries. Feature-Oriented Domain Analysis, or FODA, was described by Kyo Kang and colleagues at Carnegie Mellon's Software Engineering Institute in November 1990. It studies related applications before constructing reusable assets. Mandatory, optional, and alternative user-visible features describe what is common and what may vary. This makes variation something to design for rather than discover after assembling incompatible pieces.

A software product line carries that reasoning into production: shared architecture and assets, including tests and integration plans, support a bounded family of products. Excessive variation strains those assets; overly narrow scope limits their usefulness. Greenfield and Short's model-driven factories further proposed domain-specific descriptions and transformations supported by prepared frameworks. A model-generated implementation can propose changes outside a prepared transformation, but those proposals still need an explicit agreement about acceptable behavior.

Shared assets support planned differences

Example

Product-line production combines reuse with bounded variation and a path for improving common assets.

Architecture, components, tests, and integration plans support products through planned variation. Suitable improvements can return to a later revision of shared assets after review; they do not automatically propagate to other products. Two configurations are examples, not a prescribed count.
Read the diagram as text
  • Shared assets. Architecture, components, tests, and integration plans maintained for the product family.
  • Variation and production plan. Mandatory, optional, and alternative features bound supported configurations; the production plan guides their realization.
  • Product configuration A. One supported selection of common and varying features.
  • Product configuration B. Another supported selection within the same product-family scope.
  • Revised shared assets. A later revision of the same shared assets incorporates a suitable, reviewed product improvement for future production. Existing products are not automatically updated.
  • Shared assetsVariation and production plan: Use common assets.
  • Variation and production planProduct configuration A: Derive supported product.
  • Variation and production planProduct configuration B: Derive supported product.
  • Shared assetsRevised shared assets: Asset revision baseline.
  • Product configuration ARevised shared assets: Incorporate reviewed asset improvement.

The same boundary reasoning governs parallel work. Two independent documentation corrections may proceed separately. A producer and consumer changing a shared API must first agree on its representation and deployment order, even if they edit different files. Git worktrees provide separate checked-out working directories, each with its own index and HEAD; they do not isolate credentials, shared services, or behavioral assumptions. Git's documentation describes workspace separation, not a guarantee of safe recombination.

Different workloads justify different arrangements. Factory Missions' architecture uses serial feature implementation with parallel read-only investigation and review, responding to conflicting edits and architectural choices. OpenHands' refactoring workflow decomposes separable contributions and reviews them through a shared integration branch. Neither establishes a universal worker count. Parallel tests need no extra reasoning agents, and multiple agents must justify their coordination cost against simpler complete designs.

Accepting current artifacts

Carry identity through handoffs

Provenance records an artifact's origin and production history. A receiving stage needs to identify what it received, what produced it, and which observations describe it. The Supply-chain Levels for Software Artifacts (SLSA) build-provenance specification connects identified outputs to build definitions, inputs, and execution details. That is a useful part of a production handoff, but it does not establish behavioral correctness or release authorization.

A proposed handoff record can group references by the receiving stage's needs. Preserve the actual artifacts rather than copying an entire conversation.
Record groupContents
WorkWork-item ID, specification revision, responsible owner.
Inputs and outputStarting source revision, resulting commit or package, relevant dependency and configuration identities.
Observed checksCheck definitions, execution records, results, and the candidate each result assessed.
Receiving obligationsUnresolved limitations, required next decisions, receiving owner, and supporting operating instructions.

A summary helps someone navigate this record; it cannot replace it. The claim that tests passed should lead to their observed results for the candidate under consideration. Uber's autonomous pull-request presentation attaches completed checks and screenshots so reviewers can inspect work beyond initial generation. That improves visibility without making the table itself proof of correctness.

The factory therefore needs both candidate-specific verification and artifact retention beyond the worker. The next stage should be able to inspect the result after the original agent session has ended. Git history identifies changes; the work record also identifies what remains unfinished.

Make checks govern advancement

An acceptance gate is an enforced decision about advancing a particular candidate under agreed criteria. Verification assesses conformity to specified requirements; validation assesses suitability for intended use in context. Tests, inspection, analysis, and demonstrations can contribute different evidence. Select them in proportion to the change and its risk rather than treating every available check as equally informative.

A test oracle is the basis for deciding whether observed behavior is correct. It might be an expected value, an invariant, or an informed assessment. Oracles are often partial: a formatting test does not establish access control, and passing selected examples does not settle every operating condition. Evals and Benchmarks explains how to match checks to claims. Here the factory's responsibility is to collect the required evidence and prevent advancement when it is insufficient.

For the example export candidate, the required access check can have several meanings.
ObservationMeaningAdvancement
The applicable access check ran and passedSupports the access cases it exercised.May satisfy this criterion, subject to the remaining obligations.
An unauthorized caller received report dataObserved violation of the preserved rule.Block and repair.
The test environment could not startAccess behavior was not established.Block; restore the checking capability.
CSV formatting passedA different property was checked.Access acceptance remains unresolved.

Protect the acceptance machinery from the work it assesses. Changes to tests, thresholds, or workflow rules should be reviewed against the specification, not accepted merely because they turn an indicator green. GitHub branch protections can require designated reviewers, dismiss stale approvals, and require another person's approval of the latest push. Their defaults need inspection: administrator bypass may remain available, and required status checks can accept skipped or neutral results. A factory policy requiring an executed behavioral check must enforce more than that status alone.

Human judgment belongs where the criteria are ambiguous, coverage is inadequate, or a tradeoff needs an accountable decision. An agent can gather evidence and propose a disposition; the owner must understand enough to defend accepting the residual risk. Adding a reviewer persona without defining its scope and authority does not create this responsibility.

Accept the combined candidate

Integration combines contributions and checks their interactions. It creates a new object of assessment: the combined candidate. A semantic conflict is incompatible behavior despite a clean textual merge. The detailed combined-result treatment applies regardless of whether the contributions came from people, successive sessions of one agent, or concurrent workers.

For example, one contribution changes a producer's output field from total to amount; another builds a consumer against a mock that still supplies total. Each isolated test suite can pass, and the files can merge without conflict. The combination fails because the consumer's assumption no longer matches the producer. An interaction check must exercise their actual exchange. Similar mismatches can occur through configuration or deployment order rather than source text.

Passing parts can disagree on the exchanged field

Example

The consumer's mock and the actual producer supply different representations.

In this example, isolated checks pass in their own contexts. The current combined candidate exchanges amount with a consumer expecting total. A clean merge does not assess that interaction.
Read the diagram as text
  • Isolated producer. Contribution A changes the output field from total to amount.
  • Producer check: pass. The isolated check accepts the producer's amount output.
  • Consumer's mock. The test double still supplies total.
  • Consumer check: pass. Contribution B expects total and passes with its mock.
  • Combined: producer. Contribution A combined with B and the current target branch. Actual output contains amount.
  • Combined: consumer. Expects total but receives amount. This incompatible assumption requires an actual interaction check and repair.
  • Isolated producerProducer check: pass: Isolated output: amount.
  • Consumer's mockConsumer check: pass: Mock input: total.
  • Combined: producerCombined: consumer: Actual exchange: amount.

Continuous integration, or CI, is the practice of frequently combining contributors' changes and checking them with automated builds and tests. In their September 2000 account, Martin Fowler and Matthew Foemmel described a ThoughtWorks project doing this many times daily. Reproducible build inputs included scripts, configuration, database definitions, and installation files—not just application code. Frequent integration exposed interactions while changes were recent, making them easier to investigate. A failed build still required repair; repeatedly attempting it did not establish successful integration.

A merge queue is one way to manage current combinations. GitHub's queue checks a candidate containing the pull request, the latest target branch, and preceding queued changes. Its merge-group commit differs from the original pull-request commit; Actions workflows must handle merge_group to report required checks. Failed checks or conflicts can remove work from the queue. Exact acceptance depends on configuration, including whether a passing combined group may contain an individually failing contribution.

Assign integration responsibility even if assembly is automated. That owner must resolve incompatible assumptions and accept the resulting combination, rather than add up earlier approvals. OpenHands' refactoring workflow makes this visible by reviewing contributions into an integration branch before proposing the accumulated change to main.

Revalidate changed inputs

Evidence invalidation means an old result no longer supports current acceptance; its historical record remains. Requirements traceability links requirements, implementation, and checks. Revalidate affected work and approvals; broaden checking when impact is uncertain.

Changed source, dependencies, configuration, or requirements can change what a result supports. A package tested with one dependency version has not thereby been tested with another. An approval of one diff may not apply after another push. GitHub's option to dismiss stale reviews is a narrower concrete instance of this general rule.

For example, approved changes to report columns require renewed report acceptance. A documentation result remains applicable only if its artifact, inputs, and obligations are unchanged.

Requirement revisions need their own approval. They must reach affected workers and checks before acceptance resumes. Otherwise an agent can appear to succeed by changing the stated goal to fit what it produced. Living specification reviews, as described in Kiro's engineering practice, make changed intent and its design consequences visible.

Delivery, recovery, and feedback

Authorize release and confirm its outcome

Release responsibility covers authorizing exposure, checking its outcome, and directing recovery. Deployment installs a version into an environment; release makes functionality available to intended users. Feature flags can separate them. A deployment acknowledgment therefore does not establish user exposure, correct behavior, or the benefit that motivated the change.

Promotion advances an identified candidate through environments or approval stages. Farley's pipeline retained binaries rather than recompiling them at every stage, avoiding accidental compiler or dependency changes between checks. Its release-candidate identifier connected source, binaries, configuration, and deployment scripts. The same discipline connects today's accepted candidate to the actual release; Software Engineering Fundamentals develops that identity boundary.

Authorization must control the deployment path. GitHub environment protection rules can require approval, restrict branches or tags, and withhold environment secrets until approval. Coverage depends on jobs referencing the environment and on the actual credential paths. Administrator bypass is enabled by default unless disabled, and preventing self-review is a separate option. The existence of an environment name is not sufficient enforcement.

Once deployment starts, observe the candidate separately. A canary release exposes a bounded portion of production traffic while the existing version provides a control. Google's canary guidance connects version-specific errors, latency, and resource use to advance-or-stop decisions. Define indicators, sufficient observation, and recovery authority before exposure. Small or unrepresentative traffic samples can miss defects, and shared dependencies can confound the comparison.

Example canary architecture. Authorization binds candidate C and its target; the deployment record identifies an attempted installation. Version-separated observations inform exposure decisions but do not guarantee experimental isolation. Representative traffic and shared dependencies still matter; stopping does not guarantee exact restoration.

Operational readiness concerns the ability to run and support the service: dependencies, monitoring, capacity, emergency response, documentation, and prepared operators. Google's production-readiness review is a prerequisite to a site reliability engineering (SRE) team accepting production responsibility. This is distinct from initial release approval: a service may already be running when another team agrees to operate it. A smaller organization can assign these duties without a separate SRE department. Broader staffing and accountability choices belong in AI Engineering Leadership; the factory still needs a named owner for this release and its recovery.

Route exceptions to the right owner

An exception is work requiring treatment outside its expected path. The appropriate response depends on what remains unresolved. Repeating implementation will not clarify a disputed requirement or restore an unavailable test runner. An audit record should preserve the affected artifacts, failed obligation, observations, known completed effects, and next decision so the recipient can act without reconstructing the entire run.

A production-specific routing policy can assign remedies rather than sending every failure to the last worker.
Unresolved conditionResponsible recipientCondition for continuation
Unclear intended behaviorRequirements ownerAn approved clarification or a bounded investigation replaces the ambiguity.
Observed implementation defectImplementation ownerA repaired candidate satisfies the affected checks and remaining obligations.
Required checking capability unavailableChecking-infrastructure operatorThe capability is restored and the required check actually runs.
Incompatible contributionsIntegration ownerThe assumptions are reconciled and the current combination is assessed.
Deployment outcome unknownRelease ownerThe actual deployed state and completed effects are reconciled before another attempt.

Notification is not accepted responsibility. PagerDuty's incident lifecycle separates triggering, acknowledgment, and resolution: acknowledgment records that a responder has claimed the still-unresolved incident, while lack of acknowledgment permits escalation to continue. A factory needs the same distinction when handing work to a person or another team. Track the exception until someone has accepted it and the blocker has a recorded disposition.

Clarification changes understanding; repair changes a defective artifact; retry repeats an operation under a justified policy; rejection ends the proposed path; takeover transfers execution responsibility. Set retry bounds rather than permitting indefinite repair. For uncertain effects, reconcile first. Compensation performs new corrective actions and may preserve concurrent changes rather than restore an exact past state. It can also fail and require an operator.

Exceptions remain part of the workload while they wait. Their owners need time and usable diagnostics, not just notifications. The broader treatment of exception capacity explains why a low exception count can still consume substantial human effort.

Improve the production arrangement

Repairing an item changes the software under production. Improving the factory changes how future work is admitted, supplied, checked, or delivered. A recurring misunderstanding may need a clearer specification. Repeated integration failures may need a shared interface check. A task class that routinely exceeds available tools may need narrower admission rather than more retries.

Treat operational signals as proposals for investigation, not permission for arbitrary edits. In Agents Building Agents, failure clusters and suggested root causes are reviewed with subject-matter experts before being fixed, deferred, or discarded. A negative user rating can reflect intended behavior or an incorrect diagnosis. Confirmed traces then become regression cases, followed by observation of the change in production.

Preventive work needs an owner and a completion condition. Google's postmortem guidance recommends concrete, prioritized, tracked actions rather than vague instructions to improve. The factory can apply that discipline to a shared check, reusable component, task policy, or deployment safeguard. Resolving the immediate defect and completing the preventive action are separate outcomes.

Apply the same versioning and acceptance boundaries to changes in the factory itself. An agent proposing a weaker gate is proposing a production-policy change, not simply repairing its task. Keep the previous configuration recoverable, review the intended effect, and test the revised arrangement before expanding its use. These improvements can change instructions, tools, or workflow rules without retraining a model.

Regression cases check whether known failures recur; independent assessment asks whether the revised system also improves on other work. Once failures or scores have guided revisions, that evaluation has participated in development—even if individual cases remained hidden. Retain useful failures as regression tests. For a straightforward independent assessment, use fresh cases sampled from the intended workload that have not guided the revisions. Protecting independent assessment explains this separation, and failure-driven change decisions connects it to adoption.

Capacity and automation choices

Control unfinished work

Throughput counts completed items per unit time at a declared boundary. Work in progress counts started but unfinished items; work-item age measures time since an unfinished item started. Here, cycle time means elapsed time from the chosen start to finish, including waiting. Define whether work starts at admission or implementation and whether it finishes at review, deployment, or accepted delivery. Those choices change what the measurements mean.

The limiting stage may be implementation, testing, review, integration, or release. Tasks differ in size, blocked work waits, and rejected candidates revisit stages that have already spent effort on them. Backpressure limits upstream starts when downstream capacity cannot handle the arriving work. Uber's software-factory account identifies CI capacity, feasible experiment volume, and product decisions as continuing constraints after implementation becomes easier.

A queue with repeated work

Consider a deliberately fixed review model. Reviewers can perform six equally sized review attempts per workday. Each day they first accept two repaired items returned from the preceding day. They then review four previously unreviewed items: two pass and two need repair, returning ready the next morning. The initial unfinished population is two repaired items. Compare admitting six new items daily with admitting four; every other assumption stays fixed.

Both policies produce four review acceptances per day: two first-pass acceptances and two after repair. With six new arrivals, unfinished work grows by two items daily. With four, it remains at two. After five days, both have accepted twenty items, but their unfinished populations are twelve and two respectively. These are review outcomes, not claims of production delivery. The extra arrivals create waiting without increasing completion.

More arrivals, unchanged review acceptance

Example

Under identical review and repair assumptions, excess arrivals accumulate without increasing acceptance.

Fixed downstream capacity

Only new-item admission changes. Counts include items awaiting a first review and items returned for the next day's re-review. Repairs are ready by the following morning.

01.3752.754.1255.503.5710.514Elapsed workdays (workdays)Unfinished review items (items)6 new items per day4 new items per day6 new items per day — sampled counts4 new items per day — sampled counts6/day: 12 unfinished4/day: 2 unfinished
  • 1. 6 new items per day
  • 2. 4 new items per day
  • 3. 6 new items per day — sampled counts
  • 4. 4 new items per day — sampled counts
Read coordinates and regions as data

X: 05.5 workdays; Y: 014 items, increasing up. Axes scaled independently; screen angles and distances are not comparable.

6 new items per day (polyline)

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

4 new items per day (polyline)

(0, 2); (1, 2); (2, 2); (3, 2); (4, 2); (5, 2)

6 new items per day — sampled counts (points)

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

4 new items per day — sampled counts (points)

(0, 2); (1, 2); (2, 2); (3, 2); (4, 2); (5, 2)

6/day: 12 unfinished: (4.8, 12.8)

4/day: 2 unfinished: (4.8, 3)

With fixed review and repair assumptions, both policies accept twenty items in five days; unfinished work ends at twelve versus two. Markers show the initial count and subsequent day-end samples; lines connect samples. These are model outcomes at the review boundary, not observed deliveries.

Matching average arrivals to capacity preserves this model's backlog; draining it requires spare capacity. Real work also varies, so the example's fixed rates are not a staffing target. Track age, waiting by stage, review effort, and first-pass acceptance—the fraction of assessed items accepted without return. Small, coherent changes and fewer unnecessary returns can improve the complete path. The underlying capacity and backlog-recovery principle applies to people as well as machines.

Consistent accounting

L=λWL = \lambda W Little's Law relates long-run average unfinished population LL, arrival rate λ\lambda, and average residence time WW, under the required finite-limit conditions. All three must use the same entry and departure boundaries. If rejected or abandoned items depart, they belong in that population too; accepted-delivery throughput is a separate count. The relation does not predict finite waiting time for the overloaded policy in this example.

Measure the complete arrangement

Compare the factory with a credible existing workflow on comparable work. Keep task mix, change size, and completion rules visible, and retain unsuccessful, abandoned, and unfinished items in the accounting. Evals and Benchmarks explains why output volume, labor, elapsed time, quality, and usefulness are separate outcomes. A factory can improve one while worsening another.

A measurement plan should cover the work before and after the agent's execution.
OutcomeObservation boundary
Accepted-delivery timeRequest receipt to the declared accepted-delivery event; report unfinished items separately.
Human effortActive clarification, review, repair, release, and support time—not all elapsed agent time.
ReworkReturned items, repeated stage visits, and the effort each consumes.
Operational qualityRelease failures and later defects over a stated follow-up period.
Product benefitThe user or business outcome that justified the work, rather than generated code volume.

The DevOps Research and Assessment (DORA) delivery metrics help separate delivery speed from instability. Change lead time measures elapsed time from commit to production, and deployment frequency measures how often deployments occur. Failed-deployment recovery time measures how long recovery takes after a failed deployment. Change fail rate measures the proportion of deployments needing immediate intervention; deployment rework rate measures the proportion of unplanned deployments caused by production incidents. Interpret these for an application or service, not as interchangeable team rankings. Commit-to-production time excludes intake, deployment rework excludes much review effort, and none directly measures product value.

METR's February 2026 experiment-design update illustrates the measurement difficulty. Selective participation and withheld tasks changed the observed workload; some tasks remained incomplete; concurrent agent use complicated labor accounting. METR consequently described its central estimate as an unreliable proxy for the real productivity effect. Timing an agent while a developer does other work is not the same as measuring the developer's active labor.

Hao He and colleagues' Cursor longitudinal study, in its January 2026 version, compared 806 repositories with observable adoption against 1,380 matched controls. It estimated transient increases in code-output measures alongside persistent increases in static-analysis warnings and complexity. Adoption was inferred from configuration files, usage intensity was unknown, and causal interpretation depends on observational assumptions. Static warnings are not production incidents. The useful lesson is to measure output and downstream quality separately over time.

Include effort transferred into specification, scenario maintenance, and exception handling before declaring a saving. Detailed cost per accepted outcome belongs in workload economics. Here the decision is whether the complete production arrangement delivers acceptable work more effectively—not whether its fastest stage became faster.

Choose the boundary of unattended work

The justified automation boundary depends on several conditions together: clear intent, bounded changes, compatible contributions, adequate checks, controlled release authority, feasible recovery, and capacity for exceptions. Strong offline checks cannot resolve ambiguous requirements. More reviewers cannot undo an irreversible action. More implementation agents cannot clear a review queue whose effective capacity is already exhausted.

Factory Missions describes clarification and plan approval followed by orchestrated execution that users can monitor and interrupt. Its documentation identifies a scriptable application and dependencies as prerequisites for reliable user-facing verification, and recommends ordinary sessions for straightforward work. This design retains an explicit planning boundary without requiring continuous supervision of every implementation action.

StrongDM's reported design instead removes human code review and emphasizes end-to-end scenarios, often outside the codebase, with model-assisted assessment. Its behavioral replicas of services such as Okta, Jira, and Slack permit controlled testing and failure injection. These replicas emulate service behavior; they are not necessarily learned world models. Their fidelity and the validity of the judges constrain what passing scenarios establish. The account does not demonstrate that this allocation preserves quality or improves complete delivery across other organizations.

The comparison is about where scrutiny occurs, not which design has the stronger autonomy label. Planning, scenario maintenance, acceptance, exceptions, and operating ownership still require work. Someone must be able to explain why the evidence is sufficient and own what reaches production, even if no person reads every line.

Expand unattended execution one supported class of work at a time. Start with a real bottleneck, explicit completion conditions, and an operable exception path. Compare accepted delivery, human effort, waiting, and later quality before expanding the boundary. Treat the factory as a product for its engineering users: retain what helps, revise what transfers work elsewhere, and keep investment and staffing decisions connected to leadership responsibilities.

Open questions

  1. Selective revalidation needs trustworthy dependency information across requirements, source, configuration, and checks. Missing relationships can preserve stale permission; excessive invalidation consumes scarce capacity. Progress would make these relationships inspectable and test whether targeted checking misses consequential changes.

  2. Replacing code inspection with behavioral assessment shifts work into scenario design, judge validation, and environment maintenance. Establishing the useful boundary requires comparable delivery outcomes, including that labor and later defects—not merely successful autonomous runs.

  3. Productivity measurement must handle selective task admission, incomplete work, and people supervising concurrent executions. Progress would compare credible alternatives while preserving task populations, active labor, elapsed delivery time, and follow-up quality as separate observations.

  4. Factory improvement uses the same checks whose limitations it is trying to overcome. Repeated optimization can fit known failures while weakening independent assessment. Progress would combine protected acceptance rules, useful regression cases, and fresh evaluations of revised production policies.

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

30 min

AI Engineer World's Fair 2026 · 2026

Agents Building Agents

Alfonso Graziano

Cited in this entry

Connects live failures to expert triage, trace-derived regression cases, and subsequent production observation.

Watch talk

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.

39 matching talks

TalkSpeakerEventYear
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
Alex GavrilescuAI 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
Robert BrennanAI 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

Transcript reviewed

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
Dex HorthyAI Engineer World's Fair 20262026
Build Systems, Not Code

Transcript reviewed

Angie JonesAI Engineer World's Fair 20262026
Elmer Thomas, Maria BermudezAI Engineer World's Fair 20252025
Harrison ChaseAI Engineer World's Fair 20252025
Filip KozeraAI Engineer World's Fair 20252025
Codex and Subagents

Transcript reviewed

Vaibhav Srivastav, Katia Gil GuzmanAI Engineer Europe 20262026
Sandipan BhaumikAI Engineer Europe 20262026
Tomas ReimersAI Engineer World's Fair 20252025
David CramerAI Engineer World's Fair 20252025
Andrew ThompsonAI Engineer World's Fair 20252025
Scott WuAI Engineer World's Fair 20252025
Benjamin VerbeekAI Engineer Europe 20262026
Keegan McCallumAI Engineer World's Fair 20252025
Allie Howe, Dex Horthy, Geoffrey Huntley, Ian Livingstone, Greg PstruchaAI Engineer World's Fair 20262026
Aparna Dhinkaran, Aparna DhinakaranAI Engineer Summit 20252025
Lou BichardAI Engineer Europe 20262026

References

Coverage and source review
Processed transcripts
44 processed in full · 6 in the curated path
Automated source review
Passed
Metadata candidates
1 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

    A defined workflow specifies work items, start and finish points, intervening states, movement policies, and controls on unfinished work. Work in progress counts started but unfinished items; throughput counts finished items per unit time; work-item age measures elapsed time since starting; cycle time measures start to finish. Kanban calls for selecting new work only when capacity signals permit it, making exceptions to WIP controls explicit, monitoring aging work, and unblocking items. A service-level expectation combines an elapsed-time forecast with a probability.

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

    Replacing human implementation with agents can shift the bottleneck to human review and testing.

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

  4. NASA Systems Engineering Handbook — Product Verification

    Verification evaluates conformity to specified requirements; validation asks whether the product serves the customer's intended use in its environment. Verification inputs include the identified product, supporting documentation, a baselined verification plan, and a requirements baseline with acceptance criteria for each requirement being checked. Methods include tests, analysis, inspection, and demonstration. NASA recommends tailoring the verification approach to project characteristics, resources, and risk.

  5. NASA Systems Engineering Handbook — Product Transition

    Product transition delivers verified and validated outputs either to another integration level or to the intended user. Accompanying documentation can identify the product version, heritage, current state, verification and validation evidence, installation instructions, and operating procedures. Preparation includes the receiving site, support resources, trained personnel, and approved transition procedures. The required package and rigor depend on the product, lifecycle stage, and receiving agreement.

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

  7. Hitachi — History of the Software Business

    Hitachi records that its software factory became independent of the Kanagawa works in 1969 to conduct software development comprehensively. Its account places this organizational change alongside expanding orders for large railway-reservation and banking systems, and records completion of the MARS 104 and 201 reservation systems that year. In 1985, the systems-engineering and user-program departments separated into the Omori Software Works.

  8. Jack Greenfield and Keith Short — Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools

    Greenfield and Short's OOPSLA 2003 paper combines component development, model-driven development, and product lines. It proposes encoding domain concepts in specialized modeling languages and transforming those models into implementations. A software schema describes related specifications needed for a product family; the schema, production processes, and automation tools form a template that configures a development environment. Their contribution connects requirements, design, deployment constraints, and reusable frameworks rather than treating code generation as an isolated step.

  9. The engineer of the future is the person who is able to choose what is worth doing — Addy Osmani

    Harness engineering supplies the execution environment; loop engineering adds repeated checking and memory; a software factory combines these into an agent execution loop that produces evidence.

  10. Devin 2.0 and the Future of SWE

    Backlog automation requires task scoping, repository selection, and a decision about whether to execute or ask a human for clarification or approval.

  11. The Scrum Guide — November 2020

    The Product Backlog records ordered product improvement work. Refinement breaks items into smaller, more precise descriptions; readiness for selection differs from actual selection. Sprint Planning considers capacity, past performance, and the Definition of Done. That definition states the product's required quality conditions. Work failing those conditions returns to the backlog rather than becoming a releasable increment. Multiple teams contributing to one product must share the same Definition of Done, and increments must work together.

  12. Using LLMs to Secure Source Code

    Use a six-step workflow: establish a threat model and sandbox, then loop through discovery, verification, triage, and patching.

  13. Michael Cusumano — System Development Corporation: Defining the Factory Challenge

    Cusumano's case study describes SDC's 1976 factory as standardized procedures, supporting tools, and an organization separating customer-site system design from detailed design, coding, and testing. The effort lapsed in 1978. Interviews identify uneven incoming work, project-manager resistance, insufficient continuing tool investment, and incompatible customer hardware as obstacles. Collecting code in a library did not ensure reuse: components also needed discoverability and suitable application and machine contexts. Procedures and more formal testing survived beyond the factory organization.

  14. NASA Systems Engineering Handbook — Technical Requirements Definition

    Requirements describe inputs, outputs, their relationships, constraints, and interactions with operators, maintainers, and external systems. Functional requirements specify what must happen; performance requirements specify how well it must happen. Agreed stakeholder expectations and operational scenarios inform these requirements. NASA recommends recording each requirement's rationale so its purpose and context survive subsequent development.

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

  16. Cucumber — Gherkin Reference

    Gherkin scenarios express business rules through an initial context, an event, and an expected outcome. Cucumber connects these statements to executable step definitions. The documentation recommends keeping implementation details in those definitions and checking outputs observable by a user or external system, such as a report or message. This provides a concrete format for acceptance examples without making internal implementation choices the requested behavior.

  17. Nikhil Swaminathan and Deepak Singh — Introducing Kiro

    Kiro's July 14, 2025 preview announcement addresses undocumented assumptions between prompts and production software. Its product-review example moves from generated requirements and acceptance criteria to a design based on approved requirements, then dependency-ordered implementation tasks linked back to those requirements. Tasks can be executed individually, with code diffs and execution history available for inspection. The account also describes updating specifications and tasks as developers change the code or requirements.

  18. How to Kill the Code Review

    Preserve coding-session user decisions and convert them into acceptance criteria instead of discarding prompts after opening a pull request.

  19. QuickCheck: Automatic Testing of Haskell Programs

    Property-based testing runs declared invariants over generated cases. QuickCheck supports custom generators and observing the test-input distribution, which matters when random cases rarely reach an edge condition. A coding agent can use such properties as checks independent of a few hand-picked examples, but the properties must represent the intended behavior rather than merely repeat its implementation.

  20. 3 ingredients for building reliable enterprise agents

    Encode mandatory sequencing in deterministic workflow code while retaining agent loops where flexibility is useful.

  21. The engineer of the future is the person who is able to choose what is worth doing — Addy Osmani

    Let agents investigate, implement, test, and report in the inner loop while accountable owners decide, verify, approve, and own production outcomes in the outer loop.

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

    OpenHands separates agent development from a platform that supplies execution capabilities such as writing code, using a command line, and browsing the web. Its architecture supports sandboxed code execution, agent coordination, and benchmark integration. A coding assistant therefore includes more than a model that emits source text: it needs a runtime that turns proposed actions into observable results and an evaluation environment that can test the resulting behavior.

  23. GitHub Docs — Risks and Mitigations for GitHub Copilot Cloud Agent

    GitHub separates its cloud agent's ability to propose changes from authority to accept them. The agent can push only to its working branch and remains subject to branch protections. It cannot mark its draft pull request ready, approve a pull request, or merge it. The person who requested the agent-created pull request cannot supply its required approval. Session logs and commit-to-session links support inspection. By default, workflow execution requires approval by a user with write access, although automatic execution can be configured.

  24. OpenHands — Automating Massive Refactors with Parallel Agents

    Brennan describes decomposing a refactor into reviewable contributions, giving workers branches from a shared integration branch, and reviewing their pull requests into that branch before proposing the combined change to main. Workers incorporate updates as integration proceeds. The described SDK separates decomposition, fixing, verification, and progress tracking, and uses dependency analysis to identify separable work. The account retains a human with project and business context to review and redirect work.

  25. DORA — Working in Small Batches

    DORA recommends decomposing work into independently testable, usable changes and reducing handoff costs so that small batches remain practical. Breaking development into small tasks provides limited feedback benefit if those tasks are regrouped into a large testing or release batch. Dark launching means deploying functionality without exposing it to users; feature toggles can separate deployment from user-visible activation. Feedback includes monitoring, users, quality assurance, and automated tests, not only successful code generation.

  26. Feature-Oriented Domain Analysis (FODA) Feasibility Study

    In November 1990, Kyo Kang, Sholom Cohen, James Hess, William Novak, and Spencer Peterson at Carnegie Mellon's Software Engineering Institute described FODA: studying related systems to represent their common capabilities and differences before developing reusable assets. A domain is a family of applications sharing capabilities and data; a feature is a user-visible characteristic. Mandatory, optional, and alternative features describe planned variation. The report applies context analysis, domain modeling, and architecture modeling to window-management software. Reusable information includes requirements, designs, code, and test data.

  27. Paul Clements and Linda Northrop — A Framework for Software Product Line Practice, Version 2.0 excerpt

    Clements and Northrop's September 1999 account describes a software product line as related systems built around managed common features. Production combines shared architecture and assets, planned variation, and a production plan. Assets include test and integration plans as well as components. Products can supply improvements back to the shared assets; production is not simply a one-way assembly line. Scoping matters: excessive variation strains shared assets, while an overly narrow scope limits future products. Reuse requires investment in architecture, adaptable components, training, and management.

  28. Git Worktree Documentation

    Linked worktrees let one repository have multiple checked-out working trees with their own HEAD and index. This separates concurrent edits to working files, while repository references and configuration can still be shared. Git normally prevents checking out a branch already in another worktree unless forced. Worktrees therefore provide useful workspace separation for parallel coding, but integration must still reconcile commits, resolve conflicts and verify the combined result.

  29. NASA Systems Engineering Handbook — Product Integration

    Integration combines lower-level products and checks that the resulting whole functions properly without adverse emergent behavior. It includes managing interfaces and interactions, rather than assembly alone. NASA calls for configuration documentation, integration sequencing, confirmation of received-product validation, and a prepared integration environment. Its guidance explicitly includes software, service-oriented solutions, requirements, specifications, and plans. Integration sequences should be reconsidered when production or delivery changes undermine earlier assumptions.

  30. The Multi-Agent Architecture That Actually Ships — Luke Alvoeiro, Factory

    For Missions' software-development workloads, serial feature execution with targeted read-only parallelism avoided coordination problems encountered with concurrent workers.

  31. SLSA v1.2 — Build Provenance

    Build provenance records an attestation that an identified build platform produced artifacts using a stated build definition. It separates build inputs from execution-specific details and identifies output artifacts through the statement's subject. Resolved dependencies can record the exact commit obtained from a repository reference. Execution metadata can include invocation identity and start and finish times. External parameters require downstream verification, while dependency completeness remains best effort through Build L3.

  32. The Cure for the Vibe Coding Hangover

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

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

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

    Map the handoffs and prioritize the boundary where bad data would cause the greatest damage, rather than the most technically complex step.

  35. GitHub Docs — About protected branches

    GitHub can require designated reviewers or code owners and dismiss approvals when the reviewed diff changes. It can also require approval of the latest reviewable push by someone other than its author. These options connect acceptance to the changes actually reviewed. Branch protections have bypass considerations: administrators and authorized roles are exempt by default unless restrictions are applied to them. Required status checks accept successful, skipped, or neutral results.

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

    A review agent's explicit exclusions can leave relevant failure classes outside its review scope.

  37. Martin Fowler and Matthew Foemmel — Continuous Integration, original version

    Fowler and Foemmel's September 10, 2000 account describes a ThoughtWorks project using automated, reproducible builds and tests many times daily. Frequent integration aimed to expose interactions between developers' changes while those changes were still recent. The complete build inputs included scripts, configuration, database definitions, and installation files, not just application code. A successful build required compilation, packaging, application startup, and passing tests; repeatedly attempting a broken build was not equivalent to successful integration.

  38. GitHub Docs — Managing a merge queue

    GitHub's merge queue checks a candidate containing the pull request, the latest target branch, and changes ahead of it in the queue. Temporary merge-group branches have a different commit identity from the original pull request. GitHub Actions workflows must handle the merge_group event to report required checks. Failed checks or conflicts can remove work from the queue, with the reason recorded in the pull-request timeline. Build concurrency and check timeouts provide explicit integration controls.

  39. NASA Systems Engineering Handbook — Requirements Management

    Traceability records associations among requirements, system elements, verification activities, and tasks. NASA connects stakeholder expectations and requirements to design documents and test plans, with verification results mapped into the requirements database. Changes require impact assessment across requirements, interfaces, architecture, operations, cost, and schedule before approval. Approved changes must reach affected participants, and actions to update dependent documentation must be tracked. Records retain requirement baselines, compliance status, and the rationale, disposition, and implementation of changes.

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

  41. Dave Farley — The Deployment Pipeline: Extending the Range of Continuous Integration

    Farley's 2007 report extends continuous integration into staged evaluation of release candidates. Fast commit checks provide early feedback while longer acceptance and other checks continue. Developers remain responsible for following later results. The pipeline promotes retained binaries rather than recompiling at each stage, avoiding accidental compiler or dependency changes between validation environments. A release-candidate identifier associates source, binaries, configuration, and deployment scripts. Reconstructing a deleted binary requires running the pipeline again.

  42. GitHub Actions — Deployments and Environments

    GitHub environment protection rules gate workflow jobs that reference the environment. They can require reviewer approval, restrict deployment branches or tags, or consult an external protection service. Environment secrets remain unavailable to the job until required approval occurs. Only one listed reviewer needs to approve; preventing self-review is a separate option. Administrators can bypass protection by default unless bypass is disabled. These mechanisms provide an enforceable deployment decision separate from merging source changes.

  43. The Site Reliability Workbook — Canarying Releases

    A canary exposes a bounded portion of production traffic to a release candidate while the existing version serves as control. Version-separated metrics make candidate regressions visible rather than hiding them inside fleet averages. A useful canary requires limited deployment, an evaluation process, and integration of its result into rollout. Define acceptable behavior for relevant indicators such as errors, latency and resource use, gather representative traffic for sufficient time, and use the result to advance or roll back the candidate. This tests live behavior after deployment begins, beyond offline eligibility checks.

  44. Site Reliability Engineering — The Evolving SRE Engagement Model

    Google describes production readiness review as a prerequisite to an SRE team accepting production responsibility. Reviews examine dependencies, monitoring, emergency response, capacity, change management, and performance using service-specific criteria. Deficiencies lead to negotiated improvement work. Training and documentation prepare the receiving team; onboarding progressively transfers operations, change-management responsibilities, and access rights. Requests for support exceed available SRE capacity, so not every service receives full engagement.

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

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

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

  47. Compensating Transaction pattern

    Compensation performs new, business-specific actions to counter completed steps of an eventually consistent workflow. It differs from transaction rollback: intervening concurrent work must be preserved, the exact original state may be unattainable, and cancellation may incur charges. Record completed steps and the information needed to compensate them. Compensation order need not exactly reverse execution, and some steps can run in parallel. Compensation can itself fail, so persist progress, resume from failure, and make retryable steps idempotent. Where automated recovery is impossible, alert an operator with diagnostic information. For irreversible effects, an application must define an acceptable remedy or escalation rather than claim the action has been undone.

  48. PagerDuty: Incidents

    PagerDuty separates triggering, acknowledging, and resolving an incident. Assignment and notification follow an escalation policy; acknowledgment records that a responder claims ownership and is working on the unresolved issue. Without acknowledgment, escalation continues. An acknowledgment timeout can return the incident to triggered status and resume escalation. Incident timelines record status changes, actions, and notifications. This supplies an operational example in which requesting attention, accepting responsibility, and resolving work are distinct events.

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

  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. Agents Building Agents

    Harness engineering supplies the environment that lets a coding agent change code, validate results, and revise unsuccessful changes under explicit constraints.

  52. How Lovable self-improves every hour

    Separate tasks solvable with the current product from unsupported tasks, then distinguish easy product fixes from substantial engineering work.

  53. Agents Building Agents

    Treat automated failure clusters and root-cause suggestions as proposals requiring expert validation and prioritization.

  54. Agents Building Agents

    Test fixes against collected traces and incorporate discovered failure modes into the Golden dataset and scorers.

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

    Google's postmortem guidance connects incident impact, causes, recovery, and preventive work. It recommends concrete action items with priorities, owners, and tracking records rather than vague requests to improve. Its decommissioning case shows a repeated workflow triggering an unsafe operation after earlier partial completion. Subsequent automation safeguards reduced the impact of a later similar incident. The chapter distinguishes repairing an outage from changing the conditions that permit recurrence.

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

    The Qodo example turns a coding preference into a contextual review workflow with examples, PR feedback, CLI checks, and acceptance tracking.

  57. The Great Loops Debate — Dex Horthy, Geoff Huntley, Ian Livingstone, Greg Pstrucha, moderated by Allie Howe

    Build small loops around actual team workflows and distinguish disposable prototypes from code intended for continued development.

  58. Generalization in Adaptive Data Analysis and Holdout Reuse

    Selecting later analyses using earlier results makes the selection depend on the reused dataset. Aggregate scores can therefore influence selection even when individual test cases remain hidden; ordinary fixed-analysis guarantees no longer follow automatically. Engineering application: after using evaluation failures or scores to revise a coding agent, retain useful failures for regression testing but evaluate the revised configuration on fresh, independently sampled untouched cases for an ordinary holdout claim. Reuse is possible under specialized safeguards: Thresholdout compares training and holdout averages using noisy thresholds, releases controlled answers and stops when its overfitting budget is exhausted.

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

  60. Notes on Little's Law — Karl Sigman

    Little's Law relates the long-run average number of items in a system to arrival rate multiplied by average residence time: L = lambda W. Sigman's sample-path formulation defines residence from entry to departure and states conditions requiring finite limiting arrival rate and average residence time. The chosen system can include waiting and service together or only one region. Consequently, concurrency, arrival rate and latency must refer to matching boundaries; average active execution cannot be substituted for all requests when residence time includes queueing.

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

    METR reports that its later developer-productivity experiment became difficult to interpret because developers selectively declined participation or withheld tasks they preferred doing with AI. Some assigned tasks remained incomplete, and reported output quality differed between conditions. Concurrent agent use complicated time accounting because developers performed other work while agents ran. METR therefore describes the experiment's central estimate as an unreliable proxy for the real productivity effect and proposes changing its study design.

  62. Speed at the Cost of Quality: How Cursor AI Increases Short-Term Velocity and Long-Term Complexity in Open-Source Projects

    Hao He, Courtney Miller, Shyam Agarwal, Christian Kästner, and Bogdan Vasilescu compared 806 repositories with observable Cursor adoption against 1,380 matched controls. Their longitudinal analysis estimated transient increases in code-output measures alongside persistent increases in static-analysis warnings and complexity. Adoption was inferred from committed Cursor configuration files, not measured use by every contributor. The study distinguishes code volume from quality and examines how those outcomes evolve after adoption.

  63. DORA's software delivery performance metrics

    DORA defines change lead time from version-control commit to production deployment, deployment frequency, failed-deployment recovery time, change fail rate, and deployment rework rate. The latter two distinguish deployments requiring immediate intervention from unplanned deployments caused by production incidents. DORA recommends interpreting metrics for an application or service, avoiding disparate comparisons and single-metric targets, and sharing responsibility across development, operations, and release teams. Improvement work should address the most significant delivery constraint.

  64. The engineer of the future is the person who is able to choose what is worth doing — Addy Osmani

    Distrust does not create review capacity; verification must become cheaper, clearer, and harder to skip as generation scales.

  65. Factory Missions

    Factory describes a workflow that clarifies goals and constraints, organizes features into milestones, and enters orchestrated execution after plan approval. Users can monitor progress and intervene. Its documentation says reliable user-facing verification requires a scriptable way to exercise the application and its dependencies. It recommends ordinary sessions for straightforward work and explicitly treats the benefit of parallel rather than sequential agents, accumulated errors, and validation cost as open questions.

  66. Justin McCarthy — Software Factories And The Agentic Moment

    In his February 6, 2026 account, McCarthy describes StrongDM's agent-driven development without human code review. After observing shortcuts against narrow tests, the team used end-to-end scenarios, often outside the codebase, with model-assisted assessment of whether observed trajectories would satisfy users. Its Digital Twin Universe consists of behavioral replicas of external services such as Okta, Jira, and Slack, intended to support controlled, high-volume testing and failure injection without operating against live services.

  67. The Robots Are Coming for Your Job, and That's Okay

    Start with one throughput bottleneck and automate a repeatable, rule-based task using a single-purpose agent.

  68. How Coding Agents Change Software Development Forever - Hailong Zhang

    Guru turns code changes into proposed test updates, runs them, and submits a pull request with a test summary and coverage information for human review.

  69. Automating Large-Scale Refactors with Parallel Agents

    Use a shared integration branch with migration context, accumulate individual agent changes there, and review intermediate outputs as well as the final result.

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

  71. The Multi-Agent Architecture That Actually Ships — Luke Alvoeiro, Factory

    Missions gives each feature worker fresh context and uses specifications and Git commits to carry implementation state forward.

  72. M. D. McIlroy — Mass Produced Software Components

    McIlroy's contribution to the October 1968 NATO software-engineering conference proposed supplying reusable families of software components instead of repeatedly implementing common functions. Family members would offer explicit choices among precision, robustness, generality, and resource consumption. The proposed industrial opportunity concerned producing dependable, interchangeable building blocks, not making additional copies of an already finished program.

  73. Software Factories — Authors' Book Announcement

    The authors identify September 2004 as publication of Software Factories by Jack Greenfield and Keith Short, with contributions from Steve Cook and Stuart Kent. Their account emphasizes domain-specific models as production inputs for transformation and code generation, rather than diagrams used only as documentation.

  74. Jez Humble — Continuous Delivery

    Humble's February 2010 introduction to the Continuous Delivery book presents automation and collaboration as complementary. Developers, testers, and operations personnel participate from the beginning. A deployment pipeline models the path from check-in to release, records which builds entered which environments and their test results, and lets testers and operators deploy selected builds into environments they control. Automation is intended to shorten feedback and leave people more time for architecture, exploratory testing, and release decisions.