Code Quality in the Age of AI: Why Great Code Isn't Enough
Learn more about Code Quality here → https://ibm.biz/~ypVg7mn8p AI can generate clean, working code in seconds. But software quality was never just about writing code. Meenakshi Kodati explores how AI is changing software engineering, why engineering judgme
Transcript
00:00Have you noticed that software engineering conversations have changed over the last couple of years? A few years ago, we debated tabs versus spaces, object-oriented versus functional programming, or which framework was going to dominate the next decade.
00:14Today, the conversation is very different. We are asking questions like, should AI write this code? Can I trust this pull request? Or do I need to code this myself anymore? The pace of software development has changed more in the last two years than it has in the previous 20.
00:33Today, almost every professional developer has access to AI tools that can generate hundreds of lines of codes in seconds. Features that once took days can be prototyped in an afternoon. Boilerplate has almost disappeared. And documentation can be generated automatically.
00:50Unit tests can be suggested with a single prompt. While organizations are trying to fully grasp how these advancements affect the future of software engineering, latest engineering research and developer conversations across the industry surfaced something really interesting.
01:07Nobody is really worried about AI writing code. What they're really worried about is what happens after. Because writing code was never the hardest or the most painful part of software engineer. The hardest part has always been building the right solution for a business problem and ensuring that the software delivers the intended business outcomes.
01:44After all, the value of AI isn't measured by how much code it generates. It's measured by whether that software creates meaningful outcomes for the people and organizations using it. For a second, let's take a step back and think about how we used to define code quality.
02:01If I had asked this question a few years ago, most developers would have answered with things like readability, maintainability, reliability, and efficiency. And so on. We would have endless conversations about modularity and naming conventions about code smells and adherence to design principles.
02:24Now, have those become obsolete in the age of AI? Absolutely not. Those things still matter. Good code should still be easy to understand, easy to test, and easy to maintain. But what did change today is where the evaluation of quality. Has shifted.
02:45Think about it. A well-written code is not hard to achieve today. The most important question has become whether this is the right solution in the first place. And that is a big shift that we are noticing today. And it's much harder question to answer.
03:10Give AI a well-defined problem and it will often produce clean working code in seconds. What AI doesn't nearly do as well is evaluate competing architectural approaches. It does not understand long term. Business context or anticipate operational complexities as well as a human would do or even recognize when the simplest solution is not the best solution.
03:36In other words, implementation quality. Is becoming easier, whereas decision quality. Is becoming harder, or the differentiator. And that right there is one of the biggest shifts happening in software engineering today. This doesn't mean human expertise is becoming less important.
03:59In many ways, it's becoming more important. AI can accelerate implementation, but developers remain accountable for trade-offs, for governance, for security, for reliability, and for maintainability of the code. The role of the engineer is shifting up the stack.
04:21From primarily writing code to ensuring that the right decisions are being made around that code. Let's understand with an example. Imagine your product team asks you to build a notification feature. An AI coding assistant would probably generate an API endpoint.
04:47It would then come up with a database schema, create a queue consumer, and a front-end integration almost instantly. And from a coding standpoint, that's quite impressive. But if this were given to an experienced engineer, they'd think about it in a completely different angle.
05:05They would have questions like, should this be event-driven? Should the notifications be synchronous or asynchronous? What happens if the downstream service is unavailable? How will the retries work? How will this affect latency? What happens when we scale from 10,000 users?
05:22To 10 million users. They would also have some business-related questions, like is this solving the right problem for the customer? Are we optimizing for speed, cost, reliability, or user experience? And how will we measure whether this feature is actually successful?
05:48And that right there is the difference between code-related question and code-engineering decisions. These decisions determine software quality far more than whether a variable name follows your team's style guide. And this brings us to an important shift that we are noticing today.
06:02For years, we have reviewed software one file at a time. Someone opens a pull request. They review the files that are changed, maybe leave some comments, and then approve and merge. But modern software doesn't exist inside individual files anymore.
06:31Every change affects APIs, infrastructure, event streams, data contracts, cloud resources, monitoring, security, policies, and dozens of downstream services. In one is likely to ripple through the entire distributed system. That's why quality increasingly has to be evaluated at a system level.
07:00Now, what that means is, instead of asking, is this function correct, we are asking what impact will this change have across the entire platform. AI can generate code, but it is the engineers who still need to understand the systems. Now, let's talk about another key topic that has become incredibly important in an AI-assisted world, testing.
07:28For decades, testing has been considered as a best practice. Today, it's becoming the primary proof of quality. If AI writes a feature, how do we know it's correct? The code looks elegant, the pull request might be large, and the comments are probably very well written.
07:55But the code can be marked as correct only after its behavior has been validated. Comprehensive unit tests, integration tests, contract tests, security validation, performance testing, runtime monitoring, and observability are crucial to ensuring a high quality code.
08:20We're moving from trusting code because humans wrote it, to trusting software because we've validated its behavior. That's a subtle but profound change, and the confidence comes from evidence through testing and not from reliable authorship.
08:34This also changes how engineering organizations think about standards. In the past, standards are often in the form of a document, a wiki page explaining naming conventions, a security checklist, a coding standards document that everyone promised they would read, and so on were the definition of standards.
09:00So they were in the format of a documents. But as we all know, most of these documents became outdated almost immediately. In an AI-assisted workflow, standards simply cannot exist in a document. They need to exist in the development process itself.
09:25Security requirements should be enforced automatically. Architectural guardrails should be encoded into templates and tooling. Testing expectations should be part of every pull request. Static analysis should run continuously. Policies should be executable and not just aspirational.
09:43These automated guardraills do more than improve consistency. They help organizations scale AI adoption safely. By ensuring security, compliance, and that engineering standards are enforced consistently across teams. Governance becomes part of the workflow rather than an afterthought.
10:02The goal here isn't to remind developers to follow standards, but to make the correct path the easiest path for them to adhere to. When expectations are encoded directly into workflows, AI becomes far more effective because it operates within the defined boundaries rather than relying on implicit tribal knowledge.
10:28Perhaps the biggest misconception about code quality is that it is something that we would do right before a release. We talk about doing a final code review, like getting a QA sign-off, comparing against a release checklist and push the code to production.
10:48So it serves more or it used to serve more as checkpoint. That model made sense when software shipped a few times a year. Today's teams deploy continuously and AI accelerates that pace even further. Quality can no longer be a checkpoint but has to become a continuous practice.
11:19Every commit should trigger a validation. Every pull request should run automated tests. Every deployment should produce observable signals. And every production system should generate feedback that helps engineers improve the next iteration.
11:38Quality, therefore, is in the last step in software delivery. It is woven through the entire cycle, right from planning. All the way through deployment. And even operations. So where does that leave software engineers? Some people worry that AI will replace programmers.
11:57I don't think that's the right question. The more interesting question is, what becomes more valuable as AI becomes better? And the answer to that is... Judgement. The engineers who thrive over the next decade won't necessarily be the fastest coders.
12:27They'll be the people who ask better questions, who understand systems instead of isolated components, and who can recognize trade-offs before writing code. They will be the ones who design resilient architectures and the ones know when to trust AI.
12:45Versus when to challenge AI. AI is rapidly becoming exceptional at generating solutions. Our responsibility is deciding whether those are the right solutions. And maybe that's the most exciting part of all. Software engineering was never really about writing code.
13:02It was always about solving problems. And AI hasn't changed that mission. It simply raised the bar on how thoughtfully we solve them. So perhaps the future of code quality isn't about writing cleaner code. It's about making better engineering decisions, about delivering better business outcomes, and ensuring that the technology solves the problems it was meant to solve.
13:37In the age of AI, that may become the most valuable skill any developer can possess.