Augmented Coding
"Augmented coding means never having to say no to an idea." - Kent Beck
I've been exploring what I call "augmented coding" - the practice of collaborating with AI coding assistants to accelerate software development. Rather than replacing developers, these tools amplify our capabilities in profound ways.
Augmented coding deprecates formerly leveraged skills like language expertise while amplifying vision, strategy, task breakdown, and feedback loops. What are programmers to do? We can afford more experiments and take greater care with modifications to existing systems.
The Magic & The Challenge
One magical aspect of augmented coding is how the AI goes beyond stated requirements to implement what I would have wanted: "Oh, & here's a command line tool for this." "Oh, & I implemented a special purpose testing tool for that."
The challenge? Today's AI assistants lack taste. That giant function? The AI just added another 20 lines to it. The AI assumes its planetary-sized brain can handle any complexity without ever reducing it. It's right until it isn't.
"Don't eat the seed corn" - My coding genie unfortunately doesn't know this farming wisdom.
Features vs Options
In Empirical Software Design, we separate progress into two dimensions:
- Features - New functionality that creates value
- Options - Structural improvements that enable future features
The empirical style is to add the next feature, then improve the structure. This feels like breathing to me - my lungs expand as I take in complexity then relax as I partition that complexity through better design.
AI assistants excel at inhaling (adding features) but struggle with exhaling (refactoring for simplicity). This creates an inhibiting loop where complexity eventually exceeds the AI's capacity to help.
Recent Speaking & Writing
I recently spoke at the O'Reilly "Coding with AI" seminar in May 2025, presenting "Vibe Coding: More Experiments, More Care" - exploring how augmented coding enables more experimentation while requiring greater care in system modifications.
I regularly share insights about augmented coding on my Tidy First newsletter, including:
- Augmented Coding & Design - On the "seed corn" problem and maintaining optionality
- Augmented Coding: Negative Feedback - Learning from failures and limitations
- Regular LinkedIn updates sharing real-world experiences and challenges
I've also been featured on the o11ycast podcast discussing the evolving relationship between developers and AI agents, exploring how these tools are changing software development practices.
Principles for Augmented Development
Through experimentation, I've developed key principles:
- Constrain Context - Only tell the AI what it needs to know for the next step
- Preserve Optionality - Don't let the AI eat your "seed corn" through poor design choices
- Balance Expansion & Contraction - Match feature development with refactoring cycles
- Maintain Human Judgment - Review changes regularly and guide architectural decisions
The future isn't about AI replacing developers - it's about developers learning to dance with these powerful new partners while maintaining the discipline that creates sustainable software.