We keep talking about AI as a "coding assistant." I think that framing is already becoming outdated.
A recent paper, Agentic Software: How AI Agents Are Restructuring the Software Paradigm by Zhenfeng Cao, makes a much bigger argument: AI agents may fundamentally change what we mean by software.
For about 50 years, the basic software engineering model was:
Humans write code → code contains the logic → machines execute it.
Agentic software flips that model entirely. Instead:
Humans define intent → agents reason → agents generate/use code → systems execute → outcomes are evaluated.
The code is no longer necessarily the product. It can become an ephemeral tool used by the agent to accomplish a goal.
That points to an interesting evolution in software delivery:
- Licensed software: You received the software and managed much of the surrounding infrastructure.
- SaaS: The vendor took over infrastructure and operational complexity.
- Agent-as-a-Service (AaaS): The system increasingly takes on part of the decision-making and execution complexity itself.
And that changes software engineering at a much deeper level than AI writing code faster.
The Core Object of Engineering is Shifting:
- From the code itself → To the autonomous system around it.
- From explicitly encoding every rule → To designing how models reason and act.
- From writing every instruction → To defining intent, constraints, evaluation, and outcomes.
- From code author → To system architect and outcome auditor.
This creates a very different engineering discipline.
The hard problem may no longer be:
"How do I write the code?"
It is becoming:
"How do I design a system that can reason, act, recover from failure, and remain trustworthy?"
Architecture, observability, evaluation, security, human oversight, and system design may matter even more, not less, as the amount of code humans write directly continues to decline.
If AI-generated code becomes a mere implementation detail, what becomes the most valuable skill for a software engineer?
Read the original discussion and share your thoughts on LinkedIn
Top comments (1)
If code becomes ephemeral, the thing that has to become durable is the evaluation. Right now the codebase is what carries an organisation's accumulated knowledge about edge cases - every strange conditional is a bug someone hit in 2021. Throw the code away between runs and that history evaporates unless it was captured as tests, invariants or acceptance criteria that outlive any particular generation. The AaaS framing also moves the hard problem rather than removing it: with SaaS you could at least reproduce a bug, whereas a system that reasons its way to a different implementation each time needs recorded decisions, not just recorded outputs, or nobody can explain why last Tuesday's run behaved differently.