Before AI Writes Code, Engineers Must Externalize Knowledge

The Real Work Is Knowledge, Not Typing Code

The Real Work Is Knowledge, Not Typing Code

Have you faced a software organization that still treats coding as the real work and specs as administrative drag?

The debate around Spec-Driven Development (SDD) often starts in the wrong place. People see a tool, a template, or a workflow and ask whether developers will now be forced to write more documents before they can code. That framing misses the point. SDD is not about producing bigger requirements documents. It is about making the knowledge behind software change explicit enough to be reviewed, improved, reused, and handed to AI without pretending the AI can magically infer everything.

The strongest objection sounds practical: "Why automate the fun part and force developers to write docs?" That attitude made sense when typing code was the main visible act of software creation. But AI changes the economics of work. When machines can produce code quickly, the scarce human contribution shifts toward intent, judgment, context, architecture, constraints, and system knowledge.

The deeper misunderstanding is that people reduce SDD to "write a big natural-language spec and let AI figure it out." That is wrong. A business spec alone is not enough. Natural language remains ambiguous. Architecture, technical design, tests, invariants, and developer guides are needed to turn vague intent into reliable change. Without those connected artifacts, a spec becomes a wish, not an engineering system.

This is why developers and executives need a better definition of the work. Writing software was never the point. Delivering reliable value through a system that can keep changing was the point. Code is one output of that process, but the process depends on discovering, structuring, validating, and preserving knowledge.

Punchline: The problem is not that developers dislike documentation; the problem is that they mistake knowledge externalization for documentation.

AI Punishes Teams That Hide Their Knowledge

When developers protect coding as the valuable work, the organization's real constraint, knowledge discovery, remains unmanaged.

That creates a quiet but expensive failure mode. The team still ships features. Pull requests still merge. Tickets still close. But the knowledge needed to understand the system stays trapped in people's heads, scattered across chat threads, buried in old pull requests, or implied by code nobody wants to touch. Six months later, the team slows down. Twelve months later, every meaningful change feels risky.

AI does not fix this problem. It accelerates it. Large language models amplify the knowledge system they are given, whether that system is strong or weak. If the team has clear specs, architecture boundaries, technical design decisions, tests, invariants, and developer guides, AI can work inside a coherent system. If the team has vague requirements, weak architecture, missing decisions, and tribal knowledge, AI produces plausible code that may look right while being misaligned with the system.

This is where executives need to be direct. "More code faster" is not the same as better software engineering. A team can increase output while increasing rework, fragility, onboarding pain, and architectural drift. Developers may feel productive because they are coding faster, but the organization is losing control over the knowledge that makes safe change possible.

The cost compounds over time. New developers need longer to become productive. Senior developers become bottlenecks. AI agents need more correction. Features take longer because every change requires rediscovering what should already be known.

Punchline: AI does not remove the need for engineering knowledge; it punishes teams that refuse to manage it.

Build a Change Operating System Before Scaling AI Coding

You must redefine engineering work as making knowledge explicit before producing code.

The first move is cultural. Executives should stop presenting specs, architecture notes, tests, and developer guides as "documentation." That word carries the wrong meaning. It sounds like paperwork after the real work is done. In AI-assisted software engineering, these artifacts are part of the real work because they carry the knowledge that humans and AI need to make safe changes.

The second move is operational. Spec-Driven Development should become the entry point into a full Change Operating System. That system connects business specs, architecture models, technical design decisions, test scenarios, developer guides, coding standards, review gates, and feedback loops. Each artifact answers a different question: what should happen, why it matters, how the system should change, what must not break, and how future changes should be made.

This does not mean developers stop coding. It means coding becomes one step inside a disciplined knowledge flow. Before code is generated, the team clarifies intent. Before implementation, architecture boundaries are known. Before AI agents modify the system, they receive explicit constraints. Before work is accepted, tests and review gates verify that the change fits the system, not just the immediate ticket.

A practical sequence is simple:

  • Reframe the work: Specs, architecture, tests, and developer guides are engineering work, not administrative overhead.
  • Build the knowledge system: Capture the what, why, how, constraints, invariants, and trade-offs before AI changes code.
  • Let AI operate inside the system: Use AI to generate, modify, test, and explain code only inside explicit human-defined boundaries.

Punchline: Do not ask AI to guess the system; build the system that lets AI act responsibly.

AI Will Scale Discipline or Disorder

You now face a simple choice: move developers from tactical coding to strategic engineering, or let AI make tactical coding faster while the system becomes harder to change.

Act now, and developers still write code, but they no longer treat code as the only valuable output. They leave behind specs, design decisions, tests, architecture context, and developer guides that make the next change easier. Each change improves the system's memory. Each decision becomes easier to review, reuse, and challenge. AI then works with the team's knowledge instead of guessing from fragments.

Do nothing, and the old pattern continues at higher speed. Developers complete tickets, AI generates code, and management sees more activity. But the codebase quietly becomes harder to understand. Architecture drifts. Tests lag behind intent. New developers need more time to become useful. Senior engineers become permanent interpreters of hidden knowledge.

The difference appears over time. Tactical programmers optimize for finishing today's task. Strategic engineers optimize for making tomorrow's task easier. Spec-Driven Development only matters if it pushes the organization toward that second model. Otherwise, it becomes another process label layered on top of the same unmanaged knowledge problem.

Executives should be blunt about the trade-off. This is not about forcing developers to write documents instead of code. It is about refusing to let the organization's most important engineering knowledge remain invisible, unreviewed, and unavailable to AI.

Punchline: Tactical programmers finish tasks; strategic engineers improve the system that makes future tasks easier.

Next Step

Executives should use Spec-Driven Development as the entry point to install a Change Operating System that makes engineering knowledge explicit before AI is allowed to accelerate code change.

Dimitar Bakardzhiev

Getting started