Summaries > Technology > Software > Software factories are missing this...
https://www.youtube.com/watch?v=XUEfIxkdT2Q
TLDR Software factories are measurable, code-defined workflows that use agents to take work from idea to launch and improve through recorded runs, benchmarks, and testing. Their success depends on defining meaningful business outcomes, starting with proven workflows, keeping humans involved in high-risk decisions, and building a culture of shared ownership and psychological safety—rather than automating everything at once.
Treat a software factory as a measurable workflow that takes work from an idea or issue through implementation, review, testing, release, and monitoring. Make its agents, tools, permissions, runtime, and models explicit in code so the team can inspect and change them. Start with the workflow your team actually uses rather than designing an idealized system from scratch. This creates a clear baseline and makes later improvements testable.
Define what “yield” means for your product before judging whether the factory is improving. Measures can range from pull requests and cycle time to features shipped, customer outcomes, or business impact; choose metrics that match your product’s maturity and goals. Teams with limited users or data may not yet be able to measure customer impact reliably, while mature products can track outcomes and regressions more directly. Pair delivery metrics with human judgment, since shipping more code does not necessarily mean creating more value.
Start by recording agent-assisted work in a cloud-based workflow, even if developers still interact with agents directly. A shared process creates visibility into task progress, costs, decisions, and human involvement, and can make collaboration easier through tools such as Slack. Once the workflow is understood, automate repeatable steps gradually. Avoid trying to remove humans or redesign the entire development process before the team knows which parts work well.
Store traces of coding-agent runs so the team can investigate failures, unnecessary tests, repeated work, dead ends, cost, and the amount of human steering required. Turn representative completed tasks into benchmarks, then compare models or factory configurations against the same tasks. For reliable comparisons, replay each task from a clean starting state and ensure the agent cannot see future commits or completed pull requests. Use online evaluations and statistically meaningful tests to validate whether a change actually improves performance.
Use a balanced set of measures rather than relying on a single productivity metric. DORA metrics, work volume, cycle time, cost per engineer or workflow stage, automation levels, and human interactions per pull request can reveal different strengths and bottlenecks. Track friction too, such as time spent figuring out test commands or repeatedly correcting an agent. Review these measures regularly and improve the system against a clear definition of “better.”
Let low-risk changes move quickly while requiring explicit human approval for changes that could affect security, databases, dependencies, persisted state, or user data. Encode ownership and approval rules so the required review is consistent and auditable. Small, focused pull requests are easier to evaluate and can help keep risky work separate from routine changes. Better specifications and automated checks can reduce review effort, while screenshots or recordings can help verify user-facing behavior.
A shared factory changes how engineers work, so adoption requires more than installing tools. Make work visible early to catch misalignment before a large, difficult-to-merge pull request is complete, but create a culture where people feel safe sharing unfinished work and learning publicly. Pairing can help engineers learn agent workflows together and stay focused. Avoid running so many agents in parallel that coordination costs and quality problems outweigh the speed gains.
Use specifications to clarify important goals and reduce costly rework, but do not overplan details that are cheap to change. A practical cycle is to build a prototype, learn from it, revise the specification, and then implement a cleaner version. Software factories also depend on product and engineering teams sharing ownership of outcomes and decision-making. Aligning those teams helps ensure the factory solves real organizational and customer needs rather than merely automating code production.
A software factory is a cloud-based, measurable agentic workflow that takes work from an idea or issue through triage, optional specification, implementation, code review, QA, CI/CD, launch, and monitoring. Its workflow, agents, skills, tools, runtime, and models should be explicitly defined so teams can measure and improve how work gets done.
Rather than treating development as a fixed sequence of human-run steps, a software factory makes the workflow shared, cloud-based, observable, and increasingly automated. Teams can record agent runs, evaluate results, test changes to the factory, and improve the process over time.
Many organizations lack clearly defined workflows, measurable customer outcomes, and a shared way to evaluate engineering productivity. They may also attempt to automate too much too soon or build a system before confirming that it solves a real need. Adoption is another challenge because moving from private local workflows to a shared factory changes how engineers work.
Start by bringing existing work—even interactive, prompt-driven work—into a shared, tracked cloud workflow. Define and measure the process, then automate parts of it gradually. Another viable path is to automate proven workflows used by strong engineers. Both approaches recommend avoiding a full redesign or complete automation before the workflow and its value are understood.
Yield should reflect useful outcomes, but the right definition varies by business. Possible measures include features shipped, customer or business outcomes, DORA metrics, work volume, cycle time, cost, degree of automation, human interactions or steering per PR, and time wasted using the system. More meaningful outcome measures require judgment and can be difficult to attribute.
The need depends more on product maturity and constraints than on team size. A pre-product-market-fit team may not have enough users or data to measure improvements, while a mature product can track outcomes and regressions. Regulated businesses may have an earlier need for safeguards such as review, compliance, and auditing.
Recording every agent run lets teams evaluate patterns such as redundant tests, dead ends, verbosity, relearning, cost, and the amount of human guidance required. Teams can compare models and configurations using evidence rather than impressions, then use agents to inspect failed runs and propose changes to the factory definition.
Teams can turn completed tasks into benchmarks and run controlled A/B tests. Evaluations must prevent a model from seeing future commits or completed pull requests and must reproduce a clean, consistent starting environment. With these safeguards, results can be compared statistically across models or configurations.
Adoption requires making shared, public workflows useful and psychologically safe. Engineers may need to shift from continuous local work to responding intermittently to remote agents, with work visible to teammates. Public progress can improve alignment and collaboration, but leaders should support experimentation, pairing, and shared learning rather than making visibility feel like surveillance.
Humans should focus review on high-risk changes, especially those involving persisted or serialized state, databases, dependencies, security, or user data. Programmable ownership policies can require explicit approval for affected files while allowing low-risk changes to move faster. Small, focused PRs and stronger specifications can also reduce review burden.
Plan enough to reduce expected rework by weighing how likely requirements are to change against how costly a change would be. Avoid overplanning low-cost details. A useful iterative loop is to build a prototype, revise the specification based on what was learned, and then rebuild with cleaner code and architecture.
Engineering and product need aligned ownership of customer outcomes, along with the willingness to share decisions and work openly. Teams that protect separate domains or lack psychological safety may struggle to use a shared factory effectively, regardless of the technology.