A recent LinkedIn post claimed agentic AI coding will turn software development into a lost art like blacksmithing. Here is why that argument completely misses how technical abstractions actually work.
I was scrolling through LinkedIn the other morning when I stumbled across a post from a high-profile CTO sounding the alarm. The premise was familiar: if developers start relying on agentic AI coding assistants to write, test, and refactor code, we will soon reach a point where nobody actually understands how software works. In their eyes, software development is rapidly heading down the same path as blacksmithing, destined to become a forgotten art form lost to history.
It is a dramatic hot take, and it makes for great doom-scrolling engagement. But fundamentally, the argument is completely wrong.
Just because the vast majority of people no longer know how to hand-forge iron or smell raw steel does not mean humanity stopped utilising metal. In fact, we use more steel today than at any point in human history. The skill did not die; it moved up the abstraction ladder.
From Spinning Jennies to Modern Software
To understand why this panic is misplaced, you only have to look back at the Industrial Revolution. A couple of centuries ago, almost every household had a spinning jenny or a handloom. Creating thread and weaving fabric was a basic, widespread skill required for everyday life. If you wanted clothes, somebody nearby had to spend manual labour spinning raw fibres into yarn.
Today, almost nobody knows how to operate a spinning jenny. Does that mean we stopped wearing clothes? Have fashion designers, textile engineers, and tailors vanished? Of course not. By automating the raw, repetitive task of thread creation, we enabled an explosion in textile variety, garment quality, and creative tailoring. We stopped spending hours producing a single yard of plain thread so we could focus on creating complex garments.
Software engineering follows the exact same evolutionary path. We do not write raw machine code or toggle front-panel switches anymore. We rarely touch assembly language unless we are working on deep embedded systems. When compilers and high-level languages like C, Java, and Python emerged, purists warned that developers would forget how memory management works. Yet, those abstractions created the modern web, cloud computing, and the digital economy.
Moving Up the Abstraction Ladder
Agentic coding is not the end of programming; it is simply the next abstraction layer. Instead of spending three hours writing repetitive CRUD endpoints or wrestling with boilerplate configuration, developers can orchestrate autonomous agents to handle the initial implementation.
However, orchestrating agents still requires high-level system design, domain knowledge, and architectural vision. If you give an AI agent a vague, poorly conceived instruction, you get functional garbage. As I discussed when looking at The Word for AI's Worst Output Is Slop, code that technically runs but is structurally flawed is a silent killer. Developers are not being replaced; our focus is shifting from line-by-line syntax construction to system architecture and verification.
Consider how we interface with modern agentic workflows. Instead of manually writing tedious glue code, we construct pipeline orchestrators and specification layers. Here is an example in TypeScript showing how a modern developer directs an autonomous agentic flow rather than writing manual boilerplate:
import { AgentOrchestrator, TaskSpecification } from '@developer-tools/agents';
interface SystemModule {
name: string;
requirements: string[];
}
async function buildModuleWithAgent(moduleSpec: SystemModule): Promise {
const orchestrator = new AgentOrchestrator({
model: 'gpt-4o',
strictValidation: true,
});
const task: TaskSpecification = {
context: `Build a resilient, production-ready implementation for ${moduleSpec.name}`,
rules: [
'Follow strict TypeScript patterns',
'Include unit tests with minimum 90% coverage',
'Ensure no shared state between requests',
],
payload: moduleSpec.requirements,
};
console.log(`[Architecture] Dispatching agent for task: ${moduleSpec.name}`);
const result = await orchestrator.executeTask(task);
if (!result.testsPassed) {
throw new Error(`[Verification Failed] Agent output failed build checks: ${result.logs}`);
}
console.log(`[Success] Module ${moduleSpec.name} built and verified.`);
}
Notice what is happening here. The developer is still defining the architectural constraints, the verification rules, and the boundaries. The agent handles the implementation grind, but the human remains the architect and evaluator.
The Future Belongs to System Architects
The fear that agentic tools will turn us into passive observers who cannot code is unfounded. When I built tools like Escaping the Context Drift Trap: Introducing The Foundry, the objective was precisely to eliminate drift and keep high-level intent aligned with implementation. That requires more architectural discipline, not less.
We are moving away from being raw syntax typists and towards being system orchestrators. In my plea for Beyond the API Key: My Plea for Deeper AI Integration, I pointed out that true value comes when AI is woven deep into workflows, allowing humans to solve bigger, more complex problems.
So, to the CTO worrying that coding will end up like blacksmithing: relax. Blacksmithing did not disappear because iron became obsolete; it evolved into modern metallurgy and industrial manufacturing. We stopped hammering hot iron by hand so we could build skyscraper frameworks, jet engines, and medical instruments.
Agentic coding will not eliminate programmers. It will finally free us from spinning our own thread so we can start building castles.
