Engineering Note
AI Learned Code, but Software Learns in Operation
AI can absorb enormous written knowledge, but usable software improves through running instances, operational feedback, and production reality.
AI is absorbing an enormous amount of knowledge that humans have accumulated over time.
Papers, documentation, source code, tutorials, Q&A threads, design discussions, incident reviews, books, blog posts, API references, and commit history all become part of the material AI can learn from. Some of that material is basic syntax and common patterns. Some of it is deep frontier knowledge. AI can now explain, generate, modify, and compare code using more written material than any one person could read in a lifetime.
This post continues from Even When AI Writes the Code, Software Still Needs Revision. If an AI-generated result is a draft, where does the feedback that keeps improving that draft come from? The answer here is operation.
This change is especially visible in coding.
It is hard for a human to keep up with every language change, every framework release, every library convention, every error-message pattern, and every public-code idiom. In some areas, it is already unrealistic for people to match the speed and breadth of AI-assisted code generation.
But one distinction matters.
AI has learned mostly from recorded knowledge: text, code, images, logs, documents, and other represented material. In the world of coding models, that knowledge usually enters as characters and tokens.
That is a little like learning dance from a book.
You can read a lot about the history of dance, the names of movements, foot sequence, weight transfer, and what makes a stage performance work. Golf is similar. A book and a set of images can describe swing path, wrist angle, weight shift, and clubface direction with impressive precision.
But someone who learns dance from a book does not immediately perform well on stage. Someone who understands a golf swing in theory does not automatically hit good shots on the course.
The learning changes when the body meets the floor, balance shifts, rhythm breaks, the ball sits at a strange angle, wind moves, and pressure enters the moment.
Software is similar.
The point is not that AI knows nothing about operations. AI can be a strong tool for reading operational signals and forming hypotheses. The point is that the evidence that changes software quality comes from the running system.
Software Does Not Exist Only as Code
We often think of software as code.
repository
-> source code
-> build
-> artifact
That path matters. But from an operational point of view, software does not exist as files in a repository. Real software exists as running instances.
running process
-> configuration
-> data
-> network
-> storage
-> user behavior
-> dependency state
-> alerts and incidents
The same code can become very different software depending on configuration, data shape, traffic pattern, external dependencies, and operating environment.
An API that worked locally can become slow in production. A timeout that looked reasonable in tests can be too short for the real network. A screen that felt natural with demo data can become awkward with hundreds of thousands of rows. Logic that looked clean on the happy path can change character when retries, duplicate requests, partial failures, permission changes, and schema migrations enter the scene.
Reading code alone cannot reveal all of this.
Even if AI can read and write code extremely well, directly experiencing every situation that running software enters is a different problem. Operations are hard to observe from the outside until they are written down, and even good documentation rarely preserves the full context of the field.
Operation Is Where Software Meets Reality
During development, we define the problem.
when this input arrives
validate it this way
store this data
return this response
During operation, reality redefines the problem.
a user clicks the same button twice
batch jobs and API traffic push on the same database index
one customer's data is unusually large
an external API returns 200 OK with an empty body
the disk is not full, but inodes run out first
there are many logs, but the field that explains the incident is missing
These situations are not always in the design document. They can be missing from tests. They may not appear during code review.
But they appear in operation.
That is why operation is not an appendix to development. It is where software meets reality. Operation is the feedback system that tells us whether our assumptions held, which paths users actually take, which failures repeat, and which features make operators uncomfortable.
A product may spend one or two years in major development. It may then run for five years, ten years, or longer. The real quality of that software is often determined more by what happens after the first release than by the first release itself.
Software does not survive because the first structure was perfect. It survives because teams take operational feedback, revise the code, add observability, discover boundary conditions, adjust data models, and improve deployment behavior.
What AI Struggles With Lives Below the Surface of Experience
AI can read public incident reviews. It can summarize a well-written postmortem. It can infer likely causes from familiar patterns. If you paste logs, it can narrow down suspicious areas quickly.
That is genuinely useful.
But much operational experience is never fully converted into text.
- why a team is afraid of a particular setting
- why an alert is ignored every night
- why a feature fails mainly for one customer
- why a database migration is risky this quarter
- why there are many logs but little useful evidence
- whether an incident is a technical problem or a boundary problem between teams
These things live in the gaps between code and documentation. They live in organizational memory, operator instinct, user habits, data skew, old infrastructure compromises, and deployment history.
This does not mean AI is helpless. AI can help ask questions that expose those gaps. But the evidence needed to answer them lives inside the running system.
Good AI-assisted development is therefore not about letting AI replace operations. It is about using AI to read operational signals better, form hypotheses faster, and review changes more safely.
Operational Feedback Changes the Software
Operational feedback is not just “fixing bugs.” Good operational feedback changes software structure.
For example:
a slow API repeats
-> add an index
-> change the query shape
-> revise pagination policy
-> remove unnecessary eager loading from the UI
incident diagnosis is hard
-> add correlation IDs
-> structure log fields
-> adjust metric labels
-> write a runbook
a routine operation makes people nervous
-> add dry-run
-> separate permissions and approval
-> create a rollback path
-> remove dangerous defaults
These are code changes. But the starting point is operation, not code.
Operational feedback asks software questions like these:
Can you hold up under real data?
Can people understand you when you fail?
Are repeated operations safe?
Can operators narrow down the cause of a problem?
Do you become easier to run as you age?
Software improves by answering those questions.
What Developers Need to Watch in the AI Era
As AI becomes better at writing code, the developer’s role moves away from the amount of code typed.
The work that matters more is:
- reading real operational signals
- connecting user behavior to system behavior
- turning logs and metrics back into code changes
- converting failures into reproducible tests
- solving repeated operator pain through product structure
- distinguishing “it works” from “it can be operated for a long time”
AI can be a partner in this process. It can summarize logs, list hypotheses, draft tests, propose refactoring paths, and prepare release notes.
But people still need to judge which signal matters, which change is safe, and what the running system is really telling the team.
This operational angle is also central to Konduo. Konduo connects infrastructure status, metric and log evidence, alert response, access control, and operating history into one operations platform. If we want to see software as a running system rather than only as code, status, evidence, and response need to stay in the same operating flow.
Software Learns in Operation
AI has learned code. It has learned it quickly and broadly.
But software does not exist only as code. Software runs, fails, slows down, recovers, meets users and operators, and keeps changing.
Just as a dancer who learned from a book needs a stage, and a golfer who learned from diagrams needs a course, software built from code needs operation.
Operation is not merely management after development is done. Operation is how software learns again in reality.
If the previous post framed revision as the work of improving a first draft, operational feedback is the material that keeps that revision going for years.
That may become even more important in the AI era. Code can be produced faster. But good long-running software is still made through operational feedback.
Further Reading
- Even When AI Writes the Code, Software Still Needs Revision - why AI-generated results should be treated as drafts that need repeated revision.
- JVM Metrics Alone Cannot Explain a Container - why code-level signals alone cannot explain a running system.
- The Kafka Broker Slowed Down, but Kafka Was Not the Cause - an operational example where the important signal lived below the application layer.