Lessons in Biology
I recently watched an interview with the CEO of Factory where he explained why he and his cofounder found the idea of a "Software Factory" so compelling:
The game we played was basically, how often could you, just with copy paste, [...] get ChatGPT to do exactly whatever it was that you wanted to be done? So not just the line of code, but [...] a larger chunk of work? [...] And we found that actually, if you gave proper context and properly subdivided the problem, you could do it pretty consistently. And so then making autonomous agents was just a matter of providing the right context and properly subdividing the problem.
In other words, in 2023 AI was already great at the smallest unit of engineering work: line-by-line autocomplete. So if you could reliably break larger tasks down into many of these smaller autocomplete-like steps, then eventually, inevitably, AI could replace the broader set of software engineering responsibilities.
This feels like a useful way to think about AI's near-term potential: that progress is less about a sudden leap in intelligence than an expansion in the amount of responsibility a model can reliably own.
The analogy I landed on was a lesson in basic biology, and I think it generalizes well beyond engineering:
- First, AI needs to master the cell: a small, repeatable building block (eg. autocompleting a line of code). Humans still need to combine these cells into anything more complex.
- As models and harnesses get better, AI can compose cells into tissue (eg. writing a simple function, fixing a bug in code that spans multiple methods/files). Humans still need to guide the AI through more architecture-heavy tasks.
- Next, AI can create complete organs: self-contained pieces of a process or product that accomplish something useful (eg. a new login page). Humans are still needed for ambiguity, edge cases, and quality control.
- If you can reliably create organs, then it's a seemingly small -- but massively tricky -- leap to create organ systems: organs that interact with each other to solve a bigger problem (eg. an end-to-end login flow). At this point, the system is too large for a human to reliably inspect, and the number of possible interactions explodes. Machines need to test and monitor the system, too. Humans still need to tell the AI what to build. This sounds easier than it is. I’ve seen a few AI-native companies operating at this stage, but not many.
- Eventually we'll end up with organisms: fully autonomous products that are built, maintained, and improved using AI.
You can probably extend this analogy into populations, ecosystems, and so on, but that goes a bit beyond the scope of these ramblings.
Software engineering is one of the fields where this process is furthest along, I think for two fundamental reasons:
- Structurally, engineering is digital, modular, and (often) testable by machines.
- Culturally, AI has been built by software engineers who are solving their own problems first.
For domains outside of engineering, that means that looking at how AI is being used today is misleading. The more useful exercise is understanding how its current capabilities can be composed. AI might be great at the cells of a profession without being anywhere close to building its organs.
So the interesting question is not "what work can AI do for me now?" but "what can AI reliably own end to end?" What is the cell? What is the organ? And how far up the hierarchy can the models climb?