Series: AI-Assisted Engineering · Part 1 of 10
- A Year of AI Coding Assistants: What I've Learned Rolling Them Out in 2024
- Model Context Protocol Explained for Engineering Leaders
- From Autocomplete to Agents: How Agentic Coding Changed Our Workflow in 2025
- AI Adoption Strategy for Engineering Teams: How to Do It Without Losing Quality
- AI Editor Wars (Cursor vs Claude Code vs Kiro): An Honest CTO's Comparison
- Spec-First AI Development in Practice: Kiro, Plan Modes and Spec Kit Compared
- Deploying an LLM Gateway with LiteLLM: Virtual Keys, Budgets and Routing Claude Code Through It
- Claude Fable 5.1 vs GPT-5.6: My Take as a CTO Who Still Ships Code
- AI Coding Accuracy and Spec-Driven Development: What Works at Startup, Scaleup and Enterprise
- Running an LLM Gateway in Your Business: Keeping Context and Code In-House (and How It Differs from Bedrock)
Contents
From Autocomplete to Conversation
At the start of 2024, "AI coding assistant" mostly meant GitHub Copilot's inline suggestions: grey text appearing as you typed, accepted with a tab. Useful for boilerplate, test scaffolding and remembering the argument order of an API you use twice a year. Copilot Chat had become generally available at the end of 2023, but for most engineers the tool was still autocomplete.
By December the landscape looks quite different. Three things changed over the year.
The models got much better at code. Claude 3.5 Sonnet, released in June and upgraded in October, was a noticeable step up in reasoning about existing code rather than just producing plausible new code. GPT-4o arrived in May. At GitHub Universe in October, GitHub announced that Copilot would offer a choice of models, including Claude 3.5 Sonnet and OpenAI's o1 models, which says a lot about where the competition now sits.
The editor became the product. Cursor, a fork of VS Code built around AI, went from niche to widely discussed. Its Composer feature lets you describe a change and have it applied across several files, with a diff to review. Codeium launched its Windsurf editor in November with a similar multi-file ambition, and GitHub previewed Copilot Edits.
Chat became part of the workflow. Engineers now routinely paste a stack trace, a schema or a failing test into a chat assistant and have a conversation about it. For understanding unfamiliar code, that's often more valuable than generation.
What It Actually Changed for Engineers
In my experience, the benefit isn't evenly spread. The biggest gains are in:
- Unfamiliar territory: a TypeScript engineer writing a bit of Terraform, or anyone reading a legacy PHP module for the first time. The assistant shortens the "how does this even work" phase.
- Tests and scaffolding: generating test cases, fixtures and mappers, which people were under-writing anyway.
- Mechanical refactors: renames, migration from one library to another, repetitive changes across files.
The gains are smallest, and sometimes negative, on subtle domain logic. Subscription billing edge cases, proration and anything involving time zones are exactly where a confident but wrong suggestion is most dangerous, because it looks right.
How to Roll It Out
The mistake I see is either banning assistants (engineers use them anyway, on personal accounts, with no controls) or buying licences for everyone with no guidance. A middle path works better.
- Start with a policy, not a tool. Decide which code and data may be sent to which providers. Use business tiers with contractual commitments that your code isn't used for training, and turn on the organisation-level settings that enforce this.
- Run a time-boxed pilot. Four to six weeks, a volunteer group across seniority levels and at least two different tools. Collect qualitative feedback weekly.
- Pick a default, allow exceptions. Supporting one approved tool is simpler for procurement and security. Allow a second where there's a clear case.
- Share practices, not just licences. Short internal demos of what actually works on your codebase spread faster than any vendor training.
| Option (late 2024) | Strengths | Watch out for |
|---|---|---|
| GitHub Copilot Business | Easy procurement, admin controls, works in existing editors, model choice arriving | Multi-file editing still maturing |
| Cursor | Strong multi-file editing (Composer), codebase-aware chat, fast iteration | Separate editor to standardise on; check privacy mode and business terms |
| Chat assistants (Claude, ChatGPT) with team plans | Excellent for explanation, design discussion and debugging | Copy-paste workflow; easy to leak sensitive data without a policy |
Guardrails I'd Insist On
- No secrets or customer data in prompts. Obvious, but write it down. Environment files and production data dumps are the common leaks.
- Content exclusions for sensitive code. Payment integration and authentication code may warrant exclusion from assistant context.
- Licence and provenance. Enable duplicate-detection or public-code filters where the tool offers them.
- The author owns the code. "The AI wrote it" is never an explanation in a review or a postmortem.
Code Review Expectations
AI assistants shift work from writing code to reviewing it, so review standards matter more, not less. The expectations I set:
- The author must be able to explain every line in their pull request. If you can't, you don't submit it.
- Pull requests stay small. Assistants make it easy to produce a 1,500-line change in an afternoon; reviewers can't meaningfully review that.
- Tests are reviewed as carefully as implementation. Generated tests often assert what the code does rather than what it should do.
- Reviewers look specifically for plausible-but-wrong patterns: invented API parameters, outdated library usage, missing error handling, subtly wrong date arithmetic.
Measuring Impact Without Vanity Metrics
Vendors report acceptance rates and "percentage of code written by AI". Neither tells you whether your team delivers better software. A high acceptance rate can simply mean engineers accept suggestions and then rewrite them.
There are warning signs in independent research too. GitClear's analysis earlier this year suggested rising code churn and copy-pasted code as assistant usage grew. The 2024 DORA report, published in October, found that while most respondents reported productivity benefits from AI, increased AI adoption was associated with slightly lower software delivery throughput and stability. That doesn't mean the tools are harmful; it means individual speed doesn't automatically translate into team outcomes.
What I'd measure instead:
| Signal | Why |
|---|---|
| Lead time for changes and deployment frequency | Are we shipping faster end to end, not just typing faster? |
| Change failure rate and rework | Is quality holding up? |
| Pull request size and review time | Are we creating a review bottleneck? |
| Developer survey on satisfaction and friction | Do engineers find it genuinely helpful, and where? |
Compare pilot and non-pilot groups over the same period, look at trends rather than single numbers, and never use any of it to assess individuals.
What's Next
The direction of travel is clear: assistants that take on larger multi-step tasks and draw on more context than the file you have open. Anthropic announced the Model Context Protocol just last week, an open standard for connecting assistants to tools and data sources. It's far too early to know whether it will be widely adopted, but the problem it addresses, getting the right context to the model safely, is the right one to be thinking about.
The Takeaway
AI coding assistants are now a normal part of engineering work, and the question is how to adopt them well rather than whether to. Set a data policy first, pilot with real engineers, raise the bar on code review and measure delivery outcomes rather than acceptance rates. The teams that benefit most will be the ones that treat the assistant as a fast junior collaborator whose work still needs checking.
