Coding agents are still not very good at designing systems and working on complex software systems.
So software factories will not suddenly make coding autonomous - or make building large systems fully autonomous. At least not now.
I think software factories should be thought of as a team of agents that sits with your software development team.
In some cases, agents can take over almost everything and you may not need to do much. For example - writing code, fixing errors, writing test cases, running tests, etc.
But in more complex cases, agents will pull together all the available context and come back with their best effort. You will still need to nudge them, steer them, and sometimes make the final call.
You can have an Architect Agent assisting you, maybe backed by skills that encode how you think systems should be designed. It can understand the context, analyze trade-offs, and propose the architecture.
But you may still have to take the call.
One simple example - if you are a startup, you may deliberately not want to solve every scalability or architecture problem today. An agent may design for the "ideal" system, while you know some of those problems do not need to be solved yet.
That judgment still matters.
This is also how I think a software factory should fundamentally be designed.
You have a team of agents. Each agent has a clear responsibility, and agents are talking to each other, sharing context, and working together towards the larger goal.
Today, some of those responsibilities may still need human assistance.
An Architect Agent may own architecture, but a human may still need to steer it or take the final call.
The important part is that the responsibility belongs to the agent, while humans assist and steer wherever needed.
We are not going to become autonomous all of a sudden. It will be a journey.
I like the idea of thinking about this as an autonomy slider, as proposed by
@karpathy.
Today, the slider may be high for some responsibilities and low for others.
As models get better, context management gets better, and the infrastructure around agents improves, that slider can keep moving towards more autonomy.
So for now, a software factory should be thought of as autonomous for some parts of software development, and human-steered for others.
Fundamentally, a software factory is a meta-harness where
- agents have clear responsibilities,
- agents have access to the right context needed to perform their responsibilities,
- agents can communicate and work with each other,
agents work autonomously where they are capable,
- work can be gated where human judgment is needed,
an accountable owner can nudge and steer agents at any point,
- agents can verify their own changes,
- agents can learn and get better over time,
- everything runs on top of a robust governance layer.
The architecture should not assume humans will always be required at every step.
The idea is to build the software factory in a way that lets you keep moving the autonomy slider as agents get better.
This is what I am building
prinevo.ai