Beyond the Doom and Gloom
Just read Tim O'Reilly's brilliant article on AI's impact on programming, and what resonated most wasn't another prediction about job displacement, but rather his clear-eyed view of transformation.
O'Reilly doesn't see this as the death of development careers but rather a fundamental shift in how we work. This perspective feels both more realistic and more actionable than the binary "AI will replace us all" versus "AI changes nothing" debates we often see.
The reality, as O'Reilly frames it, is far more nuanced and interesting.
Engineering Wisdom in the Age of AI
My favorite insight from the article: "When you watch a senior engineer work with AI tools... They're applying years of hard-won engineering wisdom to shape and constrain the AI's output."
This observation perfectly captures what I've seen in practice. The developers who are most effective with AI tools aren't the ones who blindly accept whatever the AI generates. They're the ones who know how to frame problems, recognize good solutions, spot potential issues, and guide the AI toward better outcomes.
Years of debugging obscure edge cases, understanding system architecture, and grappling with the consequences of technical decisions—this experience doesn't become obsolete. Instead, it becomes the lens through which we evaluate and refine AI-generated solutions.
What Actually Requires Thinking
But perhaps the most profound insight from O'Reilly's piece is this gem: "I don't think AI introduces a new kind of thinking. It reveals what actually requires thinking."
This reframing is powerful. Instead of asking "What can AI do?" we should be asking "What requires uniquely human cognitive abilities?"
AI excels at pattern recognition, code generation from clear specifications, and handling well-defined problems. But it struggles with:
- Understanding ambiguous or incomplete requirements
- Making strategic technical decisions with long-term implications
- Balancing competing priorities and constraints
- Debugging complex system interactions
- Communicating technical concepts to non-technical stakeholders
- Designing solutions that account for organizational context
These aren't new skills—they're the skills that have always separated junior developers from senior ones, good engineers from great ones. AI just makes this distinction more visible.
We're Still at the Beginning
As O'Reilly notes, we're still in the early days—"we're not even at the locomotive stage of AI yet." This historical analogy is particularly apt.
Early automobiles were literally called "horseless carriages" because people could only understand them in terms of what came before. Similarly, many of our current AI tools are essentially "programmer-assisted coding" rather than fundamentally new ways of building software.
We're still figuring out the equivalent of paved roads, traffic lights, and highway systems for the AI era. The infrastructure, patterns, and best practices are still being invented.
The Transformation is Already Underway
But the transformation of our craft is already underway, and it's happening faster than many anticipated.
I've watched development teams dramatically accelerate their prototyping cycles using AI-assisted coding. I've seen complex data transformations written in minutes rather than hours. I've witnessed AI help developers work in languages they're not fluent in, expanding their ability to contribute across different parts of a system.
At the same time, I've seen the limitations become clear. AI-generated code often lacks the subtle considerations that come from experience. It can create technical debt in ways that aren't immediately obvious. It sometimes solves the wrong problem entirely.
Adapting Our Practice
So how do we adapt our practice as developers in this new landscape?
Develop better problem definition skills: If AI is going to generate solutions, we need to get better at defining problems clearly and completely.
Focus on system thinking: Understanding how components interact, where bottlenecks emerge, and how changes propagate through complex systems becomes even more valuable.
Cultivate judgment: The ability to quickly evaluate whether a solution is good, maintainable, and appropriate for the context is increasingly important.
Embrace the collaborative model: Rather than seeing AI as a replacement, learn to work with it as a highly capable but sometimes misguided colleague.
The Craft Evolves
Every significant technological shift in software development has changed what we spend our time on without eliminating the need for skilled practitioners.
High-level languages didn't eliminate programming—they made it more accessible and shifted focus from memory management to algorithm design. Visual development tools didn't replace developers—they enabled rapid prototyping and shifted emphasis to business logic.
AI represents another such shift. It's automating the mechanical aspects of coding while highlighting the importance of strategic thinking, problem-solving, and human judgment.
As O'Reilly suggests, this isn't the end of development careers—it's the evolution of what it means to be a developer. And for those who embrace this evolution, the future looks remarkably bright.
The question isn't whether AI will change our field. It's whether we'll thoughtfully shape that change or simply react to it.