Related: What Is MCP? The Model Context Protocol, Explained for Business
AI coding tools have gone from novelty to normal in about two years. The useful question is no longer whether they work. It is where they help, where they cost you, and what has to change in how a team works.
Where they genuinely help
- Boilerplate. Form handling, CRUD endpoints, config files, mapping one data shape to another. Work that is tedious rather than difficult. This is the clearest win.
- Tests. Generating cases for existing code, especially the edge cases a tired developer skips. Often the single biggest quality improvement teams get from these tools.
- Unfamiliar languages and syntax. Writing a shell script once a quarter. A regular expression. A build config in a format you never remember. Removes a lot of documentation searching.
- Explaining code you did not write. Genuinely good at summarising an unfamiliar function or codebase area. Useful when inheriting a project.
- First drafts of documentation. Not final copy, but a structured starting point beats a blank page.
Where they cost more than they save
- Architecture. They produce plausible structure without understanding your constraints, your team or your roadmap. Decisions with long consequences need a person who holds the context.
- Code that must be exactly right. Payment arithmetic, permission checks, anything where a subtle error is expensive. Review cost here can exceed writing cost.
- Debugging unusual problems. Good on common errors. Weak on the strange ones, where it tends to suggest confident fixes for the wrong cause and send you down a false trail.
- Anything depending on private context. Your internal conventions, undocumented business rules, why that module is structured oddly. It cannot know, so it invents something reasonable and wrong.
- Very new libraries. Training data lags. Expect APIs that do not exist, presented with total confidence.
The main hazard is confident wrongness
A junior developer who is unsure says so. These tools produce wrong answers in exactly the same tone as right ones.
Specific things to watch:
- Invented functions. Methods that sound correct and do not exist. Usually caught immediately, occasionally not.
- Outdated patterns. Approaches that were correct several years ago and are now discouraged or insecure.
- Missing error handling. Generated code tends to assume the happy path.
- Security defaults. String concatenation into queries, permissive CORS, weak token handling. Not always, but often enough that security sensitive code needs a careful read.
- Subtly wrong logic. The dangerous one. Code that runs, passes a quick look, and is wrong at a boundary. An off by one, an inverted condition, a missing case.
The work moves, it does not vanish
This is the shift teams underestimate. Less time writing code. More time reading it.
Reading code critically is harder than writing it, and less satisfying. A developer who accepts suggestions without properly reading them is not faster. They are deferring the cost to whoever hits the bug.
What helps:
- Treat generated code as a pull request from a stranger. Competent, fast, no knowledge of your system, no stake in it being right.
- Keep changes small. Two hundred lines generated at once will not get a real review. Twenty will.
- Never accept what you cannot explain. If you could not defend it in review, do not commit it.
- Raise the bar on tests, not lower it. More code moving faster needs more verification, not less.
Check the data terms before you paste client code
An overlooked point with real contractual weight.
- Find out whether your provider trains on your inputs. Business and enterprise tiers usually do not. Free tiers sometimes do.
- Check retention. How long is the code kept and who can see it.
- Read your client contracts. Many now say something about AI tools, and some prohibit sending code to third party services entirely.
- If you are under an NDA, pasting the code into a tool that retains it may breach it. That is a real risk, not a theoretical one.
Decide this as a policy once, and write it down, rather than leaving each developer to guess.
Does it replace developers?
Not so far, and the reason is structural. Writing code was never the bottleneck. The bottleneck is deciding what to build, understanding the domain, and judging trade offs against constraints that are rarely written down.
What is changing is the value of different skills. Typing speed matters less. Reading code critically, system design, and knowing what to ask for matter more.
The practical effect on our own work is fewer hours on scaffolding and more on the parts that need judgement. That is a good trade for clients, because the hours they pay for go into the decisions that actually affect the result.
If you want to talk about how we build and what that means for your project, get in touch.
Comments