Heureka! I recently came to the realization that software development is about control flow, not work flow as we thought for decades. And I wrote a theory about it1. In other words, software development is about control and not work. We need to structure control not structure work. This becomes imensely important with the advent of AI.
How much do we want to control AI?
In my experiments with Claude Code, generating Minesweeper 10x from the same requirements.txt, I could see control at work. Some things, those I controlled, stayed the same in these 10 versions. Some things, those I didn’t control, changed. Claude Code generated 10 different UIs for example. Those things were not predictable. The things I controlled, like the game mechanics, were predictable. Claude Code was innovative with the UI. It used (“tried”) buttons and drop downs for the same elements, different in different iterations. And I thought, “I wouldn’t have come up with a dropdown in that place.” Claude Code was innovative where I didn’t control it - where I didn’t control the AI.
Looking back, the same is true with developers. When I was CTO, I’ve told CEOs and product managers for decades that every decision they don’t make, needs to be made by a developer. Writing code forces every decision, there can’t be things undecided. This was the same idea, innovation vs. predictability, but expressed in a different way. I had it for years but didn’t know!
Control is about Innovation vs. Predictability
More control means less innovation and more predictability. More requirements (control) and the AI has less innovative ideas.
We can visualize control as a slider.
Moving it to 1, we get unpredictable innovation. Moving it to 8 we get predictable results, but which aren’t innovative.
Because AI is so much faster (10x Minesweeper in an hour), we now see this happening. With developers working a weekly sprint, we couldn’t see it. And who would have paid developers for doing the same thing 10x? Developers looked predictable but in reality weren't. Mistaken we thought they were predictable, but letting 10 developers implement the same ticket, we would have gotten ten different results. Or a developer write ten times the same code, we get different results. The mechanics are the same.
For our future with AIs, we need to learn what to control and what not to control. Where we let unpredictable innovation happen and were we don’t. How we specifiy control to make the things predictable that need to be predictable.
Introduction to Theory of Control
Theory of Control talks about control flow and is complimentary to the Theory of Constraints that talks about work flow.