At its re:Invent conference, AWS announced on Tuesday a series of updates to Q Developer, its coding assistant platform that competes with the likes of GitHub Copilot. The focus here is on going beyond code completion and helping developers with a wider range of routine tasks involved in the end-to-end software life cycle.
The service, which you may remember under its previous name of “CodeWhisperer,” is part of AWS’s overall Amazon Q generative AI platform, which also includes Q Business (and which is also getting a slew of updates today).
“What developers need is they want to actually have Q be the buddy to solve some of the undifferentiated heavy lifting so that they can actually have more freedom to innovate,” Swaminathan ‘Swami’ Sivasubramanian, AWS’ VP of AI and Data, told me. “So that’s why having an assistant — or buddy — that helps them do things faster, more streamlined, is such an important thing, and that’s why we’re focused on it in a big way.”
Managing the end-to-end software life cycle
Sivasubramanian told me that he believes what differentiates Q Developer from competing platforms is its focus on the entire software development life cycle. So far that meant helping developers troubleshoot issues and perform multistep tasks to fix them (or build entirely new apps), as well as scan the code for security vulnerabilities.
At re:Invent, the company is taking this a step further. Q can now, for example, automatically generate unit tests. But what’s maybe even more important is that it can now do the one thing that many developers hate the most: write and maintain the documentation for that code. To complete this cycle, Q can now generate a first code review when developers check in their code.
“In Amazon, we have this rule that no code ever gets checked in without a code review,” Sivasubramanian said. “So if you don’t do a code review, then you cannot check in code. But not many enterprises actually have either enough senior engineers to review or the senior engineer says: ‘I can’t deal with so many reviews. Can somebody first review it before we do so?’ Q will streamline the code review process by being the first line of reviewer and takes care of automatically checking code quality, security vulnerabilities, and so forth.”
Then, once the code is in production, a new operations agent for Q can now automatically pull in data from AWS CloudWatch, the company’s monitoring service, and immediately start investigating when an alarm goes off. “It utilizes the [knowledge it has about an] organization’s AWS resources and then it sifts through hundreds of data points across various resources sitting in CloudWatch. Then, after analyzing it, Q comes up with potential hypothesis for the root cause and then it guides the users through how to fix it,” Sivasubramanian explained.
All you wanted for Christmas was help with your Cobol and .NET migrations, right?
For those enterprises with older codebases, transitioning to the cloud often involves rewriting a lot of their existing code. One of the earliest differentiating features of Amazon Q Developer was its agent for code transformation. At the time, the focus of this agent was on modernizing older Java apps. Today, the team is expanding this by also helping developers update their older .NET-based applications from Windows to Linux.
And while this may at first seem like a curiosity, AWS is also launching an agent for modernizing COBOL mainframe applications. A lot of large enterprises still rely on this old code, after all, which few developers know to work with today. These are very complex migrations, Sivasubramanian stressed, and so the goal here is not to simply translate the existing code 1:1.
“Our goal is not to actually just like fully COBOL project in, code out,” he said. “The reality is, these projects are inherently extremely complex. You need to have a human in the loop to leverage it, but I’ve heard customers say, ‘Hey, this takes multiple years and customers have explicitly told us this is a game changer and would significantly drop that timeline.”
Sivasubramanian noted that while there is less COBOL code to train models to automate the code migration, the team was able to leverage AWS’ overall experience in modernizing mainframe applications, as well as more traditional methods for code translation.
“Taking code from one language to another one arguably is the easy part,” he said. “But the harder part is: how do you know you got it right? And how do you even know what the code does? And then the challenge in these [codebases] is they are usually poorly documented and dependencies are not well understood. So what we have built is really extremely innovative, and [the system] also understands, at a project level, what are the objectives of each of the module, and then plans out and creates a migration planning timeline to actually generate the code, and then generate the test — and bringing humans in the loop to see how you validate it.”