{"slug": "yes-code-review-is-still-necessary", "title": "Yes, Code Review is Still Necessary", "summary": "Code review remains necessary even when using agentic AI development tools, according to a developer who caught three issues in AI-generated code this week, including duplicated HTML templates, an overcompensating fix for a misconfigured environment variable, and unnecessary database existence checks. The developer concluded that while LLMs can generate logically sound code, engineers must review for structural issues and system-wide context that the model lacks.", "body_md": "As I’ve outlined in previous posts, I’ve been experimenting with how far I can get agentic AI development working. This week I ran into a few scenarios that caused me to rethink the process completely.\n\n## Three things I caught this week\n\n**The first** happened when I checked in on a fairly simple change to a header bar on a web page. What I noticed was that the agent had set up a separate HTML template for every single page, rather than having one base template that the pages inherit from.\n\nIn the normal case you have a header navigation bar defined once and referenced by all the other pages, because you want the markup to stay the same and you only want to change it in one place. Here, the agent had copied it into every page instead of refactoring it out. This is something most engineers learn while they’re still juniors: don’t repeat yourself. When you come across a situation like this, take the time to change the structure so there’s one source of truth.\n\n**The second** was a bug caused by an environment variable being set incorrectly. It turned out I had copy and pasted the value wrong and left a trailing comma attached to it. The agent was smart enough to recognise this. However, it then introduced a change that stripped all commas from environment variables to compensate.\n\nThat’s a change I didn’t approve. I think it’s a good thing that the environment variable failed loudly, so that I noticed it and fixed the actual problem. The alternative is that the value is silently wrong and the code quietly papers over it.\n\n**The third** came from my development environment not being set up correctly. I was running against a new database and the system failed. The agent compensated by introducing checks to see whether tables existed in the database, with a separate paths to return an empty list if it didn’t. This was repeated in multiple places.\n\nThis is another case of overcompensating. The real issue was that the developer (me) hadn’t run their migrations. The fix is to run them, and you want that failure to happen. You don’t want a new developer joining and thinking everything is set up correctly when it isn’t. On top of that, those existence checks were being added to production code, so every time that code path runs it makes an extra call to the database to ask whether the table is there. That’s a wasted query to cover for a one-time local setup mistake.\n\n## What I’ve settled on\n\nThese three scenarios made me rethink how I’m using agents, and I’ve landed on the view that yes, code review is still necessary.\n\nDon’t get me wrong, agents and LLMs are an incredibly useful and powerful way to generate code and get something working quickly. But that doesn’t remove the need for review. Maybe the review doesn’t need to be as thorough as it was in the past. I’ve learned that I can generally trust a model to generate logically sound, correct code. So a lot of the review shifts towards structure, and towards the things that sit outside the context the model was given.\n\nThe LLM is focused on the one task in front of it. As an engineer, you’re responsible for the entire system. That’s where code review comes in, and where you catch things early rather than letting them persist and contribute to a slowly degrading codebase.\n\nThis is something that I think is easy to fool yourself about when you’re vibe coding. You can feel like everything is working and you’re making great progress, when under the hood things aren’t set up in the best way. Those decisions turn into issues later. In the first case, the duplicated templates mean token usage slowly grows over time as more copies get added and every change has to touch all of them. It’s better to catch it early. Just like anything else in software engineering, the earlier you catch it, the cheaper and easier it is to fix.\n\nI know that with LLMs writing code so quickly, engineers are drowning in more code to review than ever before. It’s still necessary. Again, it doesn’t need to be as thorough as reviewing a person’s code. But reading everything the agent writes, skimming it, asking “is there anything here that doesn’t look right?” and then taking the time to go back and verify it, is going to be a necessity going forward.\n\n**AI Disclaimer**: This article is original content produced 100% by me (a human). This post was composed by me dictating my thoughts to an LLM and asked it to produce a cleaned up version of it. I reviewed and edited the output to make sure it matched my original thoughts.", "url": "https://wpnews.pro/news/yes-code-review-is-still-necessary", "canonical_source": "https://mattmccormick.ca/yes-code-review-is-still-necessary/", "published_at": "2026-08-15 01:06:21+00:00", "updated_at": "2026-08-15 01:12:25.950984+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-agents", "developer-tools"], "entities": [], "alternates": {"html": "https://wpnews.pro/news/yes-code-review-is-still-necessary", "markdown": "https://wpnews.pro/news/yes-code-review-is-still-necessary.md", "text": "https://wpnews.pro/news/yes-code-review-is-still-necessary.txt", "jsonld": "https://wpnews.pro/news/yes-code-review-is-still-necessary.jsonld"}}