Yes, you should use AI coding assistants—but not like that

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.

Source

Yorum yapın