Notes from the factory

A software factory isn’t something you install

Agile got sold back to us as a ticketing tool. The software factory is heading the same way, but a factory is how your company builds software, not an application you buy.

Plants on islands along a shore, each shaped by what it makes. A long, thin plant runs hundreds of small parts down one fast belt past a row of agents. A square plant under a crane builds one very large thing, a layer at a time. A plant shaped as a loop sends the work round past the checks until it passes. A shop for one has a person at a bench making one thing by hand. The biggest island is the factory for anything: a hub of every kind of building, lines off every side ending in the air, and blades that swing out like a Swiss Army knife. What comes out of it is the outline of a thing, never finished. Pulled back, every plant is a different shape. If factories were all the same, we’d have one product.

We have been here before, lots of times, and this time is no different. When the industry starts to settle on a way of working, the people who build software tools take the name of that way of working and put it on their product. The term “software factory” is going through that now.

The best example I know is agile. I spent years as an agile consultant, and most of that work was trying to pull agile apart from Atlassian and Jira. Clients had bought the tool and believed they had bought the method. The Agile Manifesto puts “individuals and interactions over processes and tools” first, and the industry still managed to turn agile into a tool.

The race to build one factory for everything

Right now there is an arms race among people who love building software. Each of them is trying to build the Swiss Army knife of software factories: one factory that can be used to build anything.

The problem is the same one factories have in the real world. Not all factories are the same. If factories were cookie cutter, we would only have one product. The whole point of a factory is that it is designed to streamline building one solution or one product, the one you are trying to build.

A software factory is no different. It is your business process, tuned, orchestrated, instrumented and streamlined to the point where it starts to look like a factory. You cannot download that, because it is shaped like your business.

Agile was a software factory too

Going back to agile, it was the same thing. Agile was an attempt to build a software factory with the tools we had at the time.

Every step along the way was an attempt to build an assembly line: waterfall, the brief stop in Extreme Programming, then agile methods with Scrum or Kanban, however you wanted to implement them. Each one tried to streamline how an idea becomes working software. None of them was a product, even when someone sold a product with its name on it.

Every company is a software factory

One idea that took hold in the late 2000s was that every company is a software company. That is where we are today. Every company builds software, so every company already has a factory, whether or not anyone calls it one.

A software factory is not an application. It is your factory: the place you build software, and the path an idea takes from ideation to implementation. That path covers who writes the request, who decides what gets built, how the change is checked, how it reaches production, and what you learn when it breaks. Your company already does all of that, well or badly.

What agents change

What is new is the tools. With agents we can level up how code moves through that system, the same way the move from waterfall to agile methods tried to level it up with the tools of its day.

That means the work starts with your factory, not someone else’s. Look at how work moves through your company today, where it waits and where it breaks, and build the agents, checks and automation around that path. Tools you buy fit into that path; they do not replace it.

We know a lot about assembly lines

We are in Michigan, and we know a lot about assembly lines. No two plants are the same, because each line is built for what it makes. Your software factory should be built the same way: for the software your company makes, and for how your company makes it.

If you want help mapping yours, talk to us.

Tell us what should exist.

Bring us something you want built, or something painful you want gone. Talk to our agent now, or email us and an engineer answers.

A voice call with our AI agent.

Email us