Generative AI tools write code quickly, but need constant supervision and correction. They can be more harmful than helpful in the hands of junior engineers.
Generative AI has hit the mainstream with software developers. According to a recent GitHub survey, more than one million developers actively use GitHub Copilot. More importantly, these developers increasingly use AI as โa new building block in developing applications.โ In other words, AI is becoming just as important to software development as tools like Visual Studio Code.
There is, however, a catch. Not everyone benefits equally from AI. As Addy Osmani, an engineering leader with Googleโs Chrome team, writes, โAI tools help experienced developers more than beginners.โ Iโve talked about this before (here and here), but Osmani makes this argument so lucidly itโs worth repeating, particularly with so many developers adding AI-powered coding assistants to their development process.
All the kids are into tab completion
RedMonkโs Kate Holterhoff has combed through online forums and in-person interviews to identify the โTop 10 Things Developers Want from their AI Code Assistants in 2024.โ Itโs a great post, filled with useful observations like, โTab completion is the killer feature in AI code assistants.โ Notice, however, that Dr. Holterhoff doesnโt need to talk about whether or not developers want AI coding assistantsโthey do. The question is, how are they using them?
One reason is to increase productivity. As noted in the GitHub report, GitHub Copilot and similar tools lead to more active contributions to code repositories on GitHub. How much more? โWe see higher activity (between 12% to 15% among developers who use GitHub five days a week and 8% to 15% among developers who use GitHub once a week) across open source and public projects.โ Lowering the bar to development appears to be A Very Good Thing.
To a point.
Although generative AI can serve as a shortcut for development, such shortcuts are helping the more experienced engineers while hurting the more junior engineers. As Honeycomb co-founder and CTO Charity Majors suggests, generative AI has done nothing โto aid in the work of managing, understanding, or operating โฆ code. If anything, it has only made the hard jobs harder.โ
Osmani builds on this idea, arguing that senior developers can look like theyโre performing magic when using generative AI tools. (โScaffold[ing] entire features in minutesโ!) But itโs critical to observe carefully what theyโre not doing: โTheyโre not just accepting what the AI suggests.โ He says experienced developers are constantly doing things like refactoring AI-generated code, adding things like edge-case handling the AI tool may have missed, etc. In short, he concludes, โTheyโre applying years of hard-won engineering wisdom to shape and constrain the AIโs output. The AI is accelerating their implementation, but their expertise is what keeps the code maintainable.โ
In short, you canโt simply let the AI tool do the work for you. Not if you want well-constructed, maintainable code.
Treat AI like an intern
As Iโve argued, generative AI tools should be regarded as high-functioning interns, not fully autonomous engineers. Osmani makes the same point but takes it further: โThe reality is that AI is like having a very eager junior developer on your team. They can write code quickly, but they need constant supervision and correction.โ
The very thing that makes an experienced engineer more capable with generative AI has the potential to make less experienced engineers less capable: knowledge. A developer canโt reliably offload work to an AI assistant if she doesnโt first know whether the AI is getting it right. Without that, Osmani notes, developers fall into a pattern of one step forward, two steps back. โYou try to fix a small bug. The AI suggests a change that seems reasonable. This fix breaks something else. You ask AI to fix the new issue. This creates two more problems. Rinse and repeat.โ
AI tools, in other words, can hurt more than help if engineers donโt first learn the debugging and problem-solving skills of good engineers. As Amazon CEO Andy Jassy used to recite repeatedly, โThere is no compression algorithm for experience.โ AI doesnโt change this fact.
To ensure less experienced developers can still benefit from AI, Osmani points to three patterns he has seen successfully used by a range of teams: using AI for โfirst drafts,โ using AI for โconstant conversationsโ for tightly scoped areas of development, and using AI as part of a trust-but-verify process. For developers of all experience levels, this roughly translates into the following approach, according to Osmani:
- Start small. Review all AI-generated code, and use it for strictly defined tasks.
- Stay modular. Limit the blast radius of AI gone wrong.
- Trust your experience. Use AI to accelerate, not replace, your judgment.
These are excellent, actionable suggestions for getting started with AI-driven developmentโand you should get started. Just donโt expect AI to replace you, whether you view that as a positive or negative thing. Never has experience been more important, even as we hope to augment, not replace, that experience with generative AI.


