The whole "You don't need coders when you've got AI" thing is showing just how piss-poor people's opinions are of what software engineers do. 😠
In particular this essay from Benn: The Industrialization of IT. It's a great essay raising valid points.
The part that pisses me off is:
- It showcases just how poorly people think of the software engineering profession. Even software engineers themselves.
- The essay describes an AI near future that's been the standard for years
2 is almost more annoying than 1.
The code is not the goal
Look AI can wrote code. It's not great code, but it works. It's getting better. I use AI to write code all the time.
But you can't use AI to engineer software. We are hilariously far from that.
It's like the compiler revolution in the 60's or 70's.
Programmers (now called software engineers) used to write code and send it to a room full of people to input into a computer (code inputters), then tell the programmer if the code worked. You'll notice we don't have code inputters anymore. We write code directly into a computer and hit Run
.
That Run
button was the "omg AI is taking our jobs" of the 1960's. It took code inputters' jobs.
But the code is not the goal. Working software running in production is the goal. And that shit is hard. Writing code is like 20% or 30% of your value as a software engineer.
You want that to be easier. It's a bottleneck on how fast you can iterate.
The future of software design has been standard for decades
Benn then goes on to imagine a future world where software design is optimized for AI agents doing the work.
Codebases get rearchitected. Rather than being optimized for human understanding, they’re written for machine parallelization. Make them huge and compartmentalized, so that hundreds or thousands of agents can touch them at once. Make them so that changes can happen as independently as possible, where each update has as minimal of a blast radius as possible.9
Yes this is called “domain oriented design” and it’s been the industry standard for almost 20 years. Big ball of mud -> small balls of mud. Every serious software is designed this way. This is the whole motivation behind microservices, service oriented design, hexagonal architectures, and all that stuff I've been talking about.

Coding agents work in parallel.10 In a rough sense, the pace with which people can build software is capped for the same reason that that infamous NCIS scene is dumb—because two people can’t type on the same keyboard at the same time. There’s too much logical overlap for too many minds to work on the same thing at once, and adding people to a project actually slows it down. But if codebases were designed for thousands of mechanical workers rather than one smart one, we can blow the governor off. To go faster, just add more machines.
Yes this is called "stream aligned teams" or whatever your favorite jargon. Team Topologies stuff.
You want teams that can work independently, align with business structure, and own the outcome not the work. Fine, use agents if that helps.
I talked about this in Scaling Fast, lessons from tech startups at C3 Fest last year.
Development tools reorient around helping people manage machines rather than other people. A person writes a ticket, and ten proposals get created automatically. They mix and match the ideas they like; ten possible versions get made' for their review. Approve; reject; splice ideas together. Instead of being tools for collaboration, code review systems get rebuilt to monitor a steady stream of updates.11 Instead of analyzing their team’s progress, engineering leaders become foremen,12 staring at dashboards that make sure the conveyor belt is still on. Task management tools get replaced by statistical process control.
This is how it works at the team lead level and above. You focus on building systems and processes that create the software.
Make life easy for the team, optimize for flow and delivery. Basics that the devops folk have been drumming about since at least 2010 and the lean manufacturing folk have been discussing since the 70's.
The biggest mental shift for a programmer is going from projects that fit in 1 person’s head to projects that nobody understands fully. Your whole approach changes.
— Swizec Teller (@Swizec) April 19, 2023
Are we winning??
I guess if AI is what it takes to finally get people to care about architecture and team structure then mission accomplished?

Cheers,
~Swizec
Continue reading about re: The Industrialization of IT
Semantically similar articles hand-picked by GPT-4
- Yes, AI will "take" your job. No, you won't mind
- Why a coding AI like Github Copilot won't take your job
- What does "solve problems" even mean
- The code is not the goal
- What's more productive, a team or a talented soloist?
Learned something new?
Read more Software Engineering Lessons from Production
I write articles with real insight into the career and skills of a modern software engineer. "Raw and honest from the heart!" as one reader described them. Fueled by lessons learned over 20 years of building production code for side-projects, small businesses, and hyper growth startups. Both successful and not.
Subscribe below 👇
Software Engineering Lessons from Production
Join Swizec's Newsletter and get insightful emails 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️