No, That's Not a Software Factory — Ryan Cooke, WorkOS
Key Takeaway
Building an effective software factory requires moving beyond raw code output metrics and embedding product engineering rituals—such as PRD creation and webhook-driven task orchestration—directly into automated workflows using an internal MCP gateway.
Highlights
Measuring software factory success by PR volume or code output disguises whether automated systems actually drive business outcomes.
WorkOS built two distinct systems for its factory: TARS to integrate coding agents into Slack, Linear, and GitHub, and Horizon as the infrastructure orchestration layer.
An internal Model Context Protocol (MCP) gateway connected to Snowflake enables AI agents to query semantic tables on product utilization and customer conversations.
Webhooks from project management tools like Linear allow the agent system to pick up dependent tickets and evaluate missing project scope autonomously.
Engineers at WorkOS kick off entire product engineering workflows from Slack using brief descriptions that trigger AI agents to draft initial specifications and Linear resources.
Timeline
Shift from Output Metrics to Outcome Metrics
Standard software factory setups run AI coding agents inside cloud sandboxes to generate pull requests from prompts. Relying on output metrics creates a false signal of efficiency because thousands of generated pull requests do not necessarily yield finished products. Evaluating a factory based on feature delivery velocity ensures automation investments translate into tangible engineering output.
- High volumes of AI-generated pull requests do not guarantee improved engineering velocity.
- Output metrics like line counts or total pull requests obscure the true efficacy of automated coding setups.
- Software factory success relies on accelerating feature delivery rather than generating raw code volume.
Architecture of the WorkOS Software Factory
Initial tests with Cloudflare sandboxes and model routers yielded productivity identical to developers running AI coding tools locally. Driving exponential velocity gains required embedding actual engineering workflows into the system. WorkOS split its factory into TARS for developer interface integrations and Horizon for infrastructure orchestration, connected through a central Model Context Protocol gateway.
- Basic cloud sandboxes with open-code routers perform no better than local AI coding tools.
- TARS handles developer interactions across Slack, Linear, and GitHub via webhooks.
- Horizon functions as the infrastructure orchestration layer sitting in front of an MCP gateway.
Automating Product Engineering Processes
Instead of relying on human operators to prompt every step, TARS listens to project management webhooks to track progress and pick up dependent tickets automatically. A specialized PM agent ingests brief prompt descriptions to draft comprehensive PRD documents—referred to as Hilltop documents—incorporating market feedback and design references. Human engineers step in to review, cut excess scope, and refine generated tasks rather than creating assets from scratch.
- Webhook triggers allow AI agents to execute dependent Linear tickets sequentially without human intervention.
- A dedicated PM agent generates initial draft PRD documents directly from short project briefs.
- Continuous project re-evaluation helps identify missing scope items as execution proceeds.
Interactive Workflows and Developer Interfaces
Initiating a project requires only a brief Slack message, after which TARS instantiates tracking resources, initial task breakdowns, and decision logs. The structured context created in Linear and Notion feeds seamlessly into various coding environments, including third-party agents like Devin or local instances of Anthropic Claude. Centralized Slack channels ensure security teams and collaborators can weigh in early during automated project initiation.
- Short Slack commands trigger TARS to populate Linear projects, decision logs, and Notion drafts.
- Structured documentation enables third-party agents like Devin or local model harnesses to execute tasks.
- Automated project channels give cross-functional teams like security immediate visibility into new initiatives.
Unlocking Leverage with an Internal MCP Gateway
WorkOS built an MCP gateway, called the context engine, to supply agents with explicit rules on navigating internal tools and data storage. Connecting the server directly to Snowflake data warehouse tables lets agents craft queries covering customer behavior and usage metrics. Beyond coding automation, employees across the organization leverage this MCP server directly within Slack to complete operational and data analysis tasks.
- An internal MCP gateway provides structured context and tool usage instructions to coding agents.
- Connecting Snowflake to the MCP server enables automated querying of semantic product and customer data.
- Non-engineering internal teams use the central MCP gateway to perform direct data analysis from Slack.
Expanding Automation and Infrastructure Control
Automation extends across the software lifecycle to triage incoming Slack bug reports, assist customer support through code analysis, and build out custom sandbox infrastructure. Migrating away from external sandbox-as-a-service providers gives WorkOS full control over session memory and context distribution. Analyzing execution logs allows AI agents to identify missing capabilities, retire obsolete instructions, and continuously refine the factory's codebase.
- TARS handles automated bug triaging, support ticket resolution, and pull request generation.
- Owning sandbox infrastructure provides granular control over session data and workload distribution.
- Session analysis enables automated self-improvement by detecting outdated agent skills and engineering skill gaps.
Description
The standard software factory puts an agent in a sandbox, prompts it and merges the PR. When WorkOS built one, the results were hard to tell apart from engineers running Claude Code on their laptops. Ryan Cooke, an engineer at WorkOS, argues that counting PRs or lines of AI code is the wrong measure. What matters is outcomes: are you actually shipping more to customers? WorkOS's answer is to build its engineering process into the factory itself. TARS, its agent, lives in Slack, Linear and GitHub and uses webhooks to track projects and pick up the next ticket on its own. A PM agent drafts the "Hilltop" product doc and breaks approved work into tickets, which solves the blank-page problem. Horizon, the orchestration layer, sits in front of an internal MCP gateway that connects every tool, including Snowflake. Cooke calls that gateway the single best investment for any team starting a factory. He also covers bug and support triage, why WorkOS is building its own sandboxes and a company-wide memory layer, and how it measures success with defect rates, recovery time and adoption. Related links: WorkOS: https://workos.com Timestamps: 0:00 Intro: the standard software factory 1:17 Output metrics hide what's working 2:37 Measuring outcomes instead 3:12 Why a basic sandbox wasn't enough 4:07 TARS and Horizon 5:22 Webhooks: from code work to product work 6:32 Building the Hilltop doc into the factory 8:07 The PM agent 8:52 Demo: kicking off a project from Slack 10:17 Solving the blank-page problem 11:02 Works with Devin and Claude Code too 11:57 The MCP gateway: a context engine 13:37 Why every factory needs an MCP gateway 14:07 Bugs, support triage and our own sandboxes 15:27 Next: a company-wide memory layer 15:57 How we measure success 17:02 Owning the infrastructure to self-improve 18:02 Wrap-up
