Artificial intelligence and software engineering: strengths and limits
Jun 22, 2026 · 10 min read · By Tomas Eklund, Staff Engineer
Artificial intelligence and software engineering combine best when AI handles scoped, verifiable tasks and engineers keep authority over judgment and merges. AI is genuinely strong at pattern-heavy work like bug fixes, test coverage, and mechanical refactors, and genuinely weak at open-ended decisions where there is no test to tell right from wrong. The discipline that bridges the two is review-first: the AI does the work, a human reviews every change, and nothing ships unattended.
That framing avoids both the hype and the dismissal. AI is not replacing engineers, and it is not a toy. It is a capable junior collaborator whose work you always check.
What AI does well in software engineering
AI is strongest where the task has a clear specification and a way to verify the result:
- Bug fixes with a reproducing test, where success is unambiguous. See bug fixing.
- Test coverage, where the agent writes tests against existing behavior and you confirm they assert the right things.
- Mechanical refactors, like renames, extractions, and API migrations that touch many files but follow a consistent pattern. See refactoring.
- Boilerplate and scaffolding, where the shape is known and the value is in not typing it by hand. See code generation.
What these share is verifiability. When tests or a clear diff can confirm correctness, the agent can iterate on its own work and you can review quickly.
Where it falls short
AI struggles where there is no objective signal for correctness. Architectural decisions, API design that other teams will depend on, security tradeoffs, and product judgment all require context the model does not have and consequences a test cannot measure. An agent can draft an approach, but the decision has to be a human one.
AI is excellent at answering well-posed questions and unreliable at deciding which questions are worth posing. The second is the engineer's job.
It also has failure modes worth naming: confidently wrong changes that pass a weak test suite, scope creep beyond the described task, and subtle assumptions that look right in the diff but break at the edges. None of these are fatal, because review catches them. They are fatal only if you skip the review.
The review-first discipline
Review-first is not a feature toggle, it is a stance. It means the agent never merges on its own, every change is a pull request on your existing repository, and your CI runs before a human looks. Agentcode is built around this stance deliberately. The agent does the work and runs the tests; you read the plan, scan the diff, and decide.
This discipline is what converts a powerful but fallible tool into a dependable part of the workflow. The power comes from autonomy; the dependability comes from the checkpoint. Remove the checkpoint and you have a liability. Keep it and you have leverage. For a practical procedure, see how to review an AI pull request.
Trust and your code
A second part of the discipline is data. An agent should not train on your code, and Agentcode does not. Your repository is the context for a task, not training material. Combined with working on your existing GitHub or GitLab repo, this means adopting an agent does not change who owns or controls your code. That is a precondition for trust, not a bonus.
How to introduce AI to an engineering org
The mistake is to grant autonomy before establishing trust. The better path is incremental:
- Start with verifiable tasks: bug fixes with reproducing tests, dependency bumps, coverage gaps.
- Review every PR at your normal standard. Treat the agent like a new contributor whose work you check carefully.
- Strengthen the test suite, since coverage is what lets you delegate more confidently.
- Expand scope only as the review history earns it.
This mirrors how you onboard a human engineer, and for the same reason: trust is earned through reviewed work, not granted up front. See how teams structure this under engineering teams.
The honest conclusion
Artificial intelligence in software engineering is neither a replacement nor a gimmick. It is a force multiplier for the verifiable middle of the work, governed by a human checkpoint at the merge. Used with the review-first discipline, it ships more pull requests without lowering the bar. Used without it, it is a fast way to merge mistakes. The difference is entirely in the discipline. For the foundational concept, read what an AI coding agent is, and to compare approaches, see Agentcode vs Devin. Getting-started details are on pricing.