Use of AI has increased both the amount of code delivered and the amount of code that needs reworking. Donβt use more AI than you can handle.
If youβre exhausted by the constantly changing AI landscape, youβre not alone. In a thoughtful post, Microsoft Research brainiac Victor Dibia captures the βparticular kind of fatigue that comes from trying to match the unprecedented pace of AI advancement.β However, if youβre a developer, you no longer have the option to sit out generative AIβs impact on software development. Yes, your mileage may vary depending on whether youβre a more experienced developer or a less seasoned one, but weβve reached a point where you simply must be using AI to assist you in your work.
But how? Applied AI engineer Sankalp Shubham details the evolution of AI-driven coding assistants, with excellent advice on how to use them effectively. Shubham likens coding assistance to a car: Features like autocomplete give you maximum control but move slowly (first gear), while more ambitious features like agentic mode βtrade granular control for more speed and automation.β The irony is that more experienced developers tend to (rightly) play it safe in βfirst gear,β while less experienced developers give AI more control in order to go fast, breaking things in the process.
More assistance, more problems
This is such a critical point. AI is a must for software developers, but not because it removes work. Rather, it changes how developers should work. For those who just entrust their coding to a machine, well, the results are dire. Santiago Valdarrama calls it the βwhack-a-model AI workflow:
1. Ask a model to generate some code.
2. The code has a bug.
3. Ask the model to fix the bug.
4. You now have two different bugs.
5. Ask the model to fix the bugs.
6. Thereβs a third bug now.β
As he summarizes, βThis is the sad reality for those who canβt understand the code their AI model generated.β
AI, in short, helps with software development, but it doesnβt replace software developers. Without the intelligence applied by people, itβs prone to all sorts of mistakes that wonβt get caught, which creates all sorts of issues. As Honeycomb CTO Charity Majors puts it, 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.β
Use AI wrong and things get worse, not better. Stanford researcher Yegor Denisov-Blanch notes that his team has found that AI increases both the amount of code delivered and the amount of code that needs reworking, which means that βactual βuseful delivered codeβ doesnβt always increaseβ with AI. In short, βsome people manage to be less productive with AI.β So how do you ensure you get more done with coding assistants, not less?
Driving slowly gives greater control
As Shubham reminds us with his car analogy, βThe lower the gear in a car, the more control you have over the engine, but you go with less speed.β As applied to coding, βIf you feel in control, go to a higher gear. If you are overwhelmed or stuck, go to a lower gear.β Thatβs the secret. Itβs always personal to the developer in question and requires a level of self-awareness, but thatβs the key. As Shubham says, βAI-assisted coding is all about grokking when you need to gain more granular control and when you need to let go of control to move faster,β recognizing that βhigher-level gears leave more room for errors and trust issues.β
More senior engineers seem to understand this, entrusting AI tools cautiously (i.e., using them to get more done while in βlower gearsβ like auto-complete). The problem is that junior engineers and non-engineers trust AI tools way more than they should. To some extent, we can blame years of marketing by low-code and no-code platforms that promise to turn everyone into a developer without any (or much) software knowledge. This has always been a false hope.
Hereβs the solution: If you want to use AI coding assistants, donβt use them as an excuse not to learn to code. The robots arenβt going to do it for you. The engineers who will get the most out of AI assistants are those who know software best. Theyβll know when to give control to the coding assistant and how to constrain that assistance (perhaps to narrow the scope of the problem they allow it to work on). Less-experienced engineers run the risk of moving fast but then getting stuck or not recognizing the bugs that the AI has created.
The TL;DR? AI canβt replace good programming, because it really doesnβt do good programming. It can still be very helpful, but its helpfulness correlates strongly with the relative expertise of the developer using it.


