I don't want to work in a factory

Software factories are all the rage right now. And it makes sense! It's never been easier to build software, so why not build the software that builds the software?

A Software factory is an internal system of 1 or more AI coding agents that autonomously picks up tasks, iterates on those tasks until satisfactory, and then merges the work into the codebase. They solve the problem many software companies hit as their product scales:

"How do I maintain a high standard of quality in my product while also increasing my product surface area?"

(More snarkily, I also think companies are trying to solve this problem):

"This AI thing is cool. How can I catch the hype cycle and more followers by going all-in on it?"

To be fair, I think lots of folks are trying it out, seeing an initial relief in workload pressure, and upon doing the math realizing that it could scale up quickly and (fairly) effortlessly. And that's great for them! But it doesn't match my view of reality, nor does it match what I feel building great software requires.

Factories are huge and consistent

In the real world, factories have massive surface area, and they excel at cranking out specific products in volume. When I think of a well-run factory, the headline is consistency. Input is consistent, Output is consistent, product is consistent. When a product design changes, it requires months of updating sourcing, tooling and processes to ensure the right quality bar is maintained.

That sounds SO BORING and is not at all what I signed up for as a software developer.

Software factories are scaling the wrong thing at the wrong level.

At Aarden, we're empowering land owners and developers to make the right land use decision about any parcel in the United States. We're doing this by developing a novel toolset that combines geospatial capabilities with AI-driven research support. We're adjusting product surface area and solving new challenges in our codebase every week. Over the past 14 months, AI has empowered us to move faster, at a higher quality level, on more things. Thus far, we've done this by approaching each challenge as a human-initiated one, with deep AI tooling to solve the middle and humans to review and bring it back in at the end.

The concept of a software factory takes the human initiative away from the challenge and moves us back to passive consumers of some other entity's problem solving. That may work for some teams where the challenge is more straightforward, but for Aarden it would hurt us where it really matters: flexibility.

Factory is the wrong word. I want to work in a multiverse.

I want to design a system that is flexible and powerful, where I can spin up a team of a few or many agents, each team with their own branch of reality, each agent with their own set of expertise, and have the team collaborate on a task until it's truly ready for me to review and test out. I want the teams to be infinitely scalable, and I want them to be able to work with anyone at my company who has an idea.

That sounds nothing like a factory. That sounds like a fleet of human-centric, multiverse-powered deployment nodes, each with a tiger team of development robots.

Maybe that's why the term 'software factory' has so much caché right now! It's easy, maps to something we all know, and lines up with the idea of ai being the next revolution. Whichever way you slice it, the thing I need is not a factory. It's something else entirely.