Notes from the factory

Our pair partners are agents now, and they never stop asking

Answering agents’ questions all day is as draining as pair programming was, and agents work around the clock. We don’t have a fix yet. Finding one is our work for 2027.

A factory floor on the water: seven agents, each at its own station (back end, front end, infrastructure, security, research, analytics and QA), and one person at a desk with a short stack beside it, their energy. An agent stops and asks a question; the person answers, the answer runs to it along the floor, and the question goes. Then the questions come faster than the answers, and the stack runs down. Night falls, and the agents keep working and keep asking. By the end, questions wait over half the floor and nothing has stopped.

Running a software factory comes with a problem we did not have when we wrote code by hand. The agents doing the work need answers from a person, all day and every day, and answering them is as draining as pair programming was. I do not have a fix for it yet, so this is a note on where we are.

Flow was the goal

For years, when we talked about how quickly an engineer could move, we talked about flow. The focus was on the individual engineer, and on their ability to think hard about one problem for hours at a time. Protecting that focus was the most advanced way a company knew to streamline its factory.

For engineers it was great. It meant headphones on and the hood of a big sweatshirt pulled up, maybe the lights dimmed and your music playing. Nobody bothered you for hours, and you were deep in building or fixing something that somebody else found valuable. It is a rewarding place to be, and it was one of my favorites. I always wore a hoodie, I always had my headphones on, and I always had my hood up.

Then came pairing

Then companies came to believe, rightly or not, that they could get more out of their factory with pair programming. Two engineers worked together at one computer, with two keyboards and two mice. Hoodies were still allowed, but the hoods came down and the headphones came off, and you talked with another person for four to six hours.

For me, that was one of the most draining parts of being a software engineer. It was the opposite of what many engineers enjoyed about the work. At the end of the day you felt burnt out, overloaded and tired. A lot of engineers are not built to spend hour after hour talking with another person.

Now the pair is an agent

Times have changed again, and our pair partners are agents. While I was writing this, my agent interrupted me to ask if I needed anything. That interruption is the new problem: the thing that drains our energy now, and that takes a lot of effort to manage.

The drain might be context switching. I am not sure that is the whole of it, because this is new. Having agents work on your behalf is exhilarating. We have agents on the back end and on the front end, on infrastructure and on security, on research and analytics, and doing QA, sometimes across several applications at once.

As smart as agents are, they are not really autonomous. They need guardrails. Guidance is not quite the word for the rest: they need decisions, and answers to the questions they have, from someone who can make the call.

The factory answers some of them

The factory already takes some questions off our plate. When an agent asks something it should not have had to ask, we write the answer into the repository as a guide. Then the next agent does not ask it again. Other questions are meant for a person: a change that touches money, data or permissions waits for one on purpose.

The rest arrive whenever an agent gets stuck, at any hour. In the repository behind this site, an agent that is blocked on a person has a skill whose whole job is to reach my phone.

Just as draining

So the days have changed twice. Endless hours of quiet turned into endless hours of conversation with another person, and those turned into endless hours of conversation with a robot. I have to tell you, answering questions for agents all day long is just as draining as talking with another person all day.

The worst part is that it does not stop. Agents work around the clock, seven days a week, and they are always asking us something.

No fix yet

We are still building our factories, and still working out how people will work with them: how they stay productive, how they keep enjoying what they do, and how we make sure each day is not as draining as the one before. Right now, it is.

2027 is the year we work on it

For us, 2027 is the year we reduce the load on the people in the factory, so that we can find some balance. The pendulum is not going to swing all the way back to a whole day on a single problem. But being interrupted every 15 minutes is not sustainable for a person, either.

I think we can streamline the factory further, so that it needs fewer interruptions in the first place. These are the other ideas we have so far:

  • Handoffs, so that a question goes to whichever person can take it and does not always land on the same one.
  • A queue, so that questions wait in one place and a person answers them in a batch instead of one at a time as they arrive.

I am not sure which of these is the answer, or whether it is something else. We will write up what we find. If you run agents and have found a way to keep their questions from running your day, tell us about it.

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