Future of Software in Age of Agents
agents are for work; software is for the rest of being human.
Last week, I spent two days building a simple app that lets you talk to an audiobook after listening to a section. Yet today, I can get nearly the same experience by simply talking to a remote agent over voice chat. That makes me wonder: if more and more of what we want can be created on demand by increasingly capable personal agents, what is software still for?
What should we turn into products, interfaces, and apps, and what should we simply delegate to our agents? What value does software still provide when an experience can be conjured up with a sentence?
How will software adapt, and what role will it continue to serve as a business? And on a more personal level, why do we still love making software—perhaps even more than before?
In this essay, I set out to explore these questions.
The past and present of software#
Software is becoming on demand. The only blocker is being able to describe precisely what you want, down to the details. This still takes a lot of time and effort, even when you know what you want. Today, much of a software engineer's job is asking agents to do things, or building agents.
Bret Victor, in Magic Ink (2006), divided software into three broad types:
- Information software serves the human urge to learn. It’s the interface between learner and knowledge. It often helps you make “informed decisions.”
- Manipulation software serves the human urge to create. It’s the interface between creator and the artifact.
- Communication software is used to construct and manipulate an internal model that is shared with others. It is treated as the combination of manipulation software and information software.
Do we still need software?#
Can you create animations and edit music just by talking to AI agents? Sure, but you won't be able to fine-tune the details, make precise creative adjustments, or develop the nuance that comes from hands-on control. So what's the better way, if you want to stay in control? You want to point at the exact moment, frame, or audio layer you want to change, describe the adjustment in natural language, offer a few quick examples, and let the AI handle the execution while you make the final creative decisions. So yes, software is still needed when the user needs fine control over the process and result.
When do we need software?#
Once agents can reliably handle the fine details, humans will often move to a higher level of abstraction. But where does that stop?
In software production, humans often stop knowing what they want or run out of good ideas to pursue, so they go back to spending more time doing product research or thinking about what to build. This suggests that humans often become the blocker. In what other cases do humans become a blocker?
I think these are the major cases:
- Capability: when the human can’t comprehend the information, articulate tacit taste, or verify the result.
- Capacity: when the human is capable but stretched too thin, e.g. not enough time or attention to review the output.
- Information: when the human doesn't know enough to decide well, e.g. missing context, biased judgment, or not knowing their own values and priorities.
- Legitimacy: when the human lacks the right to decide or must answer for the outcome, e.g. not having enough authority, needing to be accountable for the result, or regulation requiring a human in the loop.
- Psychology: when the human could proceed but won't or isn't ready, e.g. not trusting the AI's output, being stuck choosing between too many options, holding on to old ways of working, or deliberately choosing to do the work themselves.
- Social: when other humans are the constraint, e.g. stakeholders who aren't aligned, counterparties who want to deal with a person, or users who can't absorb change as fast as it's produced.
This is where a raw LLM stops being useful, and where software comes into play. Software expands the channels we can communicate through. It can store and surface the examples and references you've collected, so you don't have to describe your taste from scratch every time. It lets you point instead of explain: click the exact frame, drag the curve, nudge a slider until it feels right, hum into a timeline. It turns your intent into something visible, so you can react to it, and reacting is often easier than articulating.
In other words, software is no longer just a tool for execution. As AI takes over the doing, software shifts from helping us make things to helping us express, inspect, and judge them.
Early software was built around the limits of machines, and humans had to adapt to it: learn the commands, follow the menus, think the way the computer thinks. Now that AI can handle most of the execution, software is increasingly built around the limits of humans.
It warps around our inefficiencies and deficits and helps us work around them. It helps us remember more, by keeping our references, past decisions, and context at hand. It helps us express more, by letting us point, sketch, and show examples instead of finding the perfect words. It helps us see more, by turning large outputs into timelines, diffs, diagrams, and previews we can actually take in. It helps us decide more easily, by laying options side by side. And it helps us ask for help more easily, from AI and from each other. In this sense, software is becoming a prosthetic for the human in the loop: the better it compensates for our limits, the less of a blocker we become.
Put simply, as actions and lower-level decisions are outsourced to agents, what's left for humans is the quality and quantity of higher-level decisions. Software is now designed around our human deficits, like limited memory, attention, and forms of expression, so that these decisions come more easily and turn out better.
When don’t we need software?#
Go back to the audiobook example. The work involved downloading and importing the ebook, splitting it into sections, writing summaries, turning them into audio, and presenting them to the user at the right time.
Most of this is work that doesn’t require human supervision, nor does it produce results that are difficult for humans to digest. I might appreciate a simple interface that lets me skim the book and choose which chapter to listen to, and I’d also appreciate a nice summary of my discussions with the AI. But other than that, there’s very little I need to do myself. The agent can handle the entire task in the background, and I can simply consume the result without much friction.
Maybe that's the simplest boundary: agents are for the parts of the work where I've stopped caring how it's done; software is for the parts where I still care.
The limit case: will we stop needing software?#
One current trend is that agents are getting better at producing dynamic artifacts that help you express and understand more, e.g. the embedded HTML in ChatGPT and Claude's chat interfaces, or MCP integrations that also offer UI and selectors. In other words, agents themselves are starting to work around human limits.
Imagine a world where a super smart on-device agent can produce 1,000,000 tokens per second. It knows everything you know and everything you've done on your device; it listens to every conversation you've had; it can infer how you think, what you know and don't know, and give you the right hints and references whenever you need them. In that case, I believe software would only be used for consumption, since no more manipulation would be needed. When you open a 3D modeling app, the agent already knows what you want to build and builds it to your liking instantly.
Will that ever be possible? Maybe, once we can understand the human brain with very high fidelity. But until then, software is still needed to help humans express and see ideas, find references, and manipulate artifacts with a precision we can't put into words. This means there are business opportunities in every industry, since every sufficiently complex problem domain needs its own tailored interfaces between AI agents and humans.
Why do we still love and want to build software?#
I sometimes think some of my software ideas are pointless now. They're so easy to build that anyone could make them. I'm not going to make money from them, and they don't compound in any financial or professional way. But I still love creating them and see a lot of value in them, especially games, simulations, and product ideas, even if they seem trivial or "throwaway." So why is that?
Because many ideas can take the shape of software, and some only become real once they can move. It's one thing to see your ideas and thoughts move. It's another to realize that many ideas can only be developed after you've seen them and played with them. As Bret Victor puts it in Inventing on Principle (2012):
Ideas are very important to me. And the thing about ideas is that ideas start small. Ideas start out tiny, weak and fragile. In order to develop and mature, ideas need an environment where the creator can nurture them. Kind of take care of them, feed them, and shape their growth.
This applies to games, simulations, animations, designs, and even startup/product ideas. Building them out and playing with them is the only way to feel, and thus understand them. To understand this more deeply, you have to watch Inventing on Principle - Bret Victor.
Iterating on ideas is one thing; seeing an idea you conceived play out also brings the creator immense joy. I don’t think I can put it better than Frederick P. Brooks Jr. did in The Mythical Man-Month (1975):
Why is programming fun? What delights may its practitioner expect as his reward?
First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. […]
Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and find it helpful. […]
Finally there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. […]
Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.
— Frederick P. Brooks Jr., The Mythical Man-Month (1975)
Software was always for humans, and now it’s more for humans than ever. Humans are made for creative work and for making decisions, not for repetitive or boring tasks.
Everyone deserves the chance to exercise their personal agency: to create, to make art, to make music, to do whatever they find fun, and to share those experiences with others.
Humans are born to learn and to solve new problems. What defines us is the desire to grow and to experience. With software as the cockpit, we can reach a higher level and see spaces we couldn’t see before. Children have more games to play, and they can create new games of their own. A teacher can turn tomorrow’s lesson into an interactive simulation her students can play with, instead of a slide they forget. The lines between engineers, designers, and product managers are blurring, and everyone can see more and gain a wider view. All of this comes from software connecting the raw intelligence of agents to our lives.
Are there fewer things worth building now? No. There is far more software we can build than at any time before. What has changed is how we decide what’s worth building: some ideas were more valuable in the past, and some are more valuable now.
In other words, agents are for work; software is for the rest of being human.
Latest posts
Some AI future hot takes
Scoring the AI predictions I made this year, and what I think happens next.
關於信念
信念來源於經驗,也來自於在不確定中賭一把的勇氣。
AmpCode is cool
There are infinite work to be done and undone
近期隨想
“The world is no longer intelligence-constrained; it’s passion-constrained.”
亞洲問題
大不了多「失敗」幾次就有更多 track record 了 XD
Get new posts by email, or via RSS.