Developers have a lot to deal with: Debugging, keeping up with new technologies and changing requirements, dealing with security issues, complexity, legacy code and tight timelines — to name a few.
In fact, according to Gitlab, 75% of developers' time is spent on repetitive tasks such as testing, securing and analyzing software. This leaves little time for code generation, their true passion.
“Ask any developer and most will agree that time is the one thing they can never get back,” said Vikram Khandpur, SVP of CPaaS products and developer experience at Vonage.
Could artificial intelligence (AI) be the tool that finally helps them regain those lost hours?
Many say, yes (but there are challenges and concerns to overcome).
“Thanks to AI, a software engineer can now be an artist,” said Joseph Reeve, software engineering manager at Amplitude. “AI eliminates a lot of the boilerplate work and helps developers remain focused on innovating to solve problems.”
AI helping developers be better software engineersTo start, AI can assist developers by automating routine tasks, enhancing coding efficiency and offering predictive insights that streamline the development process, said Bernard Marr, futurist, speaker and author of the forthcoming, “Generative AI in Practice: 100-plus Amazing Ways Generative Artificial Intelligence is Changing Business and Society.”
He pointed out that tools such as AI-assisted coding platforms can suggest code improvements, detect errors in real-time and even write chunks of code, ultimately helping speed up project timelines. Further, AI can analyze vast datasets to provide developers deeper insights into user behavior to optimize performance and experience.
“By leveraging AI, developers can focus on more creative and strategic aspects of their projects, pushing the boundaries of innovation while ensuring a higher standard of quality and reliability in their work,” said Marr.
Reeve pointed out that, when reading code, AI can detect issues “better than or as well as humans,” and said that models are “extremely useful” for testing code.
For example, if a developer is building a feature on top of an existing product, they can test code and quickly get feedback about whether or not their instructions were useful or even bad.
Models also help developers solve the “recurring and persistent” problem of naming, he said. They might name a dataset or clearly specify code instructions, but if no one interacts with it for months and things change, users down the line might not realize that it needs to be adjusted. AI can help mitigate this by providing “instantaneous feedback.”
“AI has given developers leverage to be better software engineers because we don’t have to worry so much about the minute details and can instead lean into the creativity of developing,” said Reeve.
Further, said Khandpur, low-code and no-code AI tools can support less technical employees. This can help give time back to more experienced developers “while also still helping more junior developers learn while they go,” he said.
In addition to all this, though, AI has “forced developers to be better at our jobs,” said Reeve.
Developers must write much clearer code for large language model (LLM) (LLMs) or copilots that is “as descriptive and precise as possible — more so than it needs to be for other processes,” he said.
Generating a code ‘skeleton’Starting from scratch can be a chore for developers; this is an important area for AI.
Notably, “GenAI is very good at creating a skeleton, or framework code,” said Wing To, GM for intelligent DevOps at Digital.ai. “That’s where a lot of mundane tasks can be removed.”
For instance, a developer might ask a model, “please write me code for extracting columns from a paper within Postgres.” The model will then create an outline of the code library a developer might need.
“It’s very good at creating that shell,” said To. But, he conceded, “Will it do exactly what you want? Probably not.”
AI gives developers models and snippets to work with and modify to “save that searching, the starting from scratch part.”
Additionally, he said, developers notoriously dislike code documentation, which provides a set of documents and comments on how code works and how to use it. The same goes for testing code and performing code reviews.
“Developers like to write code, documenting code takes away from writing code,” said To. “They want to create, they want to build.”
But when no one performs code reviews, quality goes down, more rework is required and time is wasted due to failures in production, he said.
The opportunity with AI is models can do first-pass reviews and/or can augment code reviews. This could be particularly helpful with simple, low-risk checks.
Still, To cautioned, “You don’t want code reviews without a human involved.”
With AI implementation, the full system must be sped up (not just development)Still, while there’s much excitement around AI supporting development, the effects must ripple across the rest of the system, To pointed out.
When a developer writes AI-supported code, there is still testing to be done, as well as preproduction staging and other processes.
“Unless the rest of the system is able to move at the pace the developer is moving at, you’re going to get this kind of build-up of potential — but it’s never going to get realized,” said To.
Code review is “already a bottleneck,” he noted, so unless that speeds up, “that code is just stuck.”
People tend to focus most on the “engine part, generating code,” said To, but there’s no ultimate productivity gain if code doesn’t get into production.
“Developer brainpower is not going to be realized, even if they go faster,” said To. When everything isn’t working at the same speed, “either it doesn’t come out or it comes out bad quality. That’s actually worse.”
Challenges around security, usefulness and accuracyAt the same time, AI is still in its early stages, and poses unique challenges.
These include security, accuracy and implementation costs, said Aditya Rohit, CEO at Wreken.
“Enterprises are cautious of using off-the-shelf solutions due to security and compliance concerns,” he said. Furthermore, “although on the surface it looks phenomenal, there are challenges related to accuracy of output coming from AI tools.”
To agreed, saying that enterprises are experimenting with AI tools but are hesitant to put their outputs into production due to concerns around sensitive data leakage, vulnerabilities and IP risks.
“People are creating stuff, but are there sufficient quality checks?”, he posited.
Enterprises must ensure everyone is performing code reviews and that vulnerability scans are taking place, he asserted. Code and peer review and third-party dependency checks are also important, as is building in organizational requirements and guardrails around compliance and governance.
Ultimately, To cautioned: “Don’t just assume that because AI is writing more code that it’s actually innovative or useful code.”
Comments