AI code assistants: where they help and where they don't
AI code assistants now sit inside most editors. A candid look at the work they speed up, the work they make worse, and how teams get real value from them.
AI code assistants moved from novelty to default in a few years. They complete lines as you type, answer questions about a codebase and, in agent mode, carry out multi-step changes across files. Most teams now use one. Fewer have decided what they should and should not be used for.
What the assistants do well
Boilerplate and repetition. Mapping one data shape to another, writing a CRUD handler, adding the fifth test case that looks like the first four.
Unfamiliar territory. A first working example of an API you have not used, or the syntax of a language you touch twice a year.
Reading code. Summarising a file, explaining a regular expression, tracing where a value comes from.
First drafts. Tests, documentation and migration scripts that a person then corrects.
In all of these, a developer can tell quickly whether the output is right. That is the common thread.
Where they fall short
- Design decisions. An assistant will happily implement a poor architecture very efficiently.
- Context it cannot see. Business rules, production incidents and the reason a strange line exists.
- Recent or niche libraries. Suggestions may use options that were renamed or never existed.
- Security. Generated code can miss input validation or copy an unsafe pattern. It needs the same review as any other code.
The risk is not that the tool is wrong. It is that the output looks finished, so it gets less scrutiny than a colleague's draft would.
A simple example
You define a list of orders in a Python script. The assistant proposes a loop that sums the totals, then a function that groups them by customer. You accept both with a keypress and save a few minutes. Multiply that by a day and the gain is real.
Now ask the same assistant to decide how refunds should affect those totals. It will produce an answer. Whether that answer matches your accounting rules is something only your team knows.
How teams get value
- Treat generated code as a draft from a fast junior developer: useful, and always reviewed.
- Keep tests and code review in place. They matter more when code is cheap to produce.
- Agree on what may be sent to an external model and what may not.
- Measure outcomes such as lead time and defects, not lines of code written.
The takeaway
AI assistants remove typing, not thinking. Teams that keep ownership of design, review and testing get faster. Teams that hand those over get more code and more bugs. For a concrete use, see our workflow for refactoring with AI assistants.