Logo of Huseyin Ozyilmaz

Post

The AI Revolution in Software Development: Opportunities, Risks, and What's Next

A software engineer coding inside a space rocket ready to be launched

Software continues to be a key driving force behind business innovation and economic growth. It is poised to evolve dramatically, with key trends transforming the technology landscape, with artificial intelligence (AI) at the epicentre of this transformation. From automating mundane coding tasks to predicting system failures before they occur, AI is set to elevate software development to new heights. As AI-powered tools begin to integrate themselves into every aspect of software development, from coding and design to testing, the boundaries between developers and machines are rapidly blurring. However, like any ground-breaking technology, AI also comes with its own set of challenges and risks.

The Intensifying Role of Software Engineers

The role of a software engineer has become more challenging than ever before. With a rapid increase in the complexity and the constant emergence of new technologies, libraries, frameworks and tools, software engineers face a tough environment to navigate. Business and customer expectations are changing, and rapidly so. There is a constant demand to deliver robust, secure, and feature-rich customer experiences at a faster pace and reduced cost. These expectations further intensify the challenges.

Risks of Generative AI in Software Development

Most organisations are currently struggling to keep up with the pace of developments in the generative AI (GenAI) space. They are deeply concerned about the leakage of their intellectual property and accidentally infringing the intellectual property rights of their hard-earned clients and customers.

There are other risks using Generative AI (GenAI) in development:

  • Accuracy: Today's Large Language Models (LLMs) still require carefully crafted prompts and re-prompting to generate expected output. The quality of the outputs varies, and they still need close examination before being accepted.
  • Trust: Automation bias is the tendency for humans to trust recommendations from automated systems even in the presence of contradictory information from other sources. GenAI tools still have high error rates and occasionally creates vulnerable code. Automation bias makes identifying and correcting those errors harder for software developers.
  • Cognitive bias: You can get the GenAI tool to assist you in getting your approach to work. However, this can reinforce your bias that your approach is correct. A good pair programmer will always challenge and wrestle you if they think your approach is wrong.
  • Loss of skills: Delegating simple tasks to AI tools can result in skills never being learned or atrophying through lack of use, much like being unable to navigate without using a GPS.
  • Outdated models: The model you might be using could have been trained several years ago and may not work with the latest versions of languages and frameworks you are currently using.
  • Bad actors: The breakneck speed at which development teams are adopting LLMs has outpaced the establishment of comprehensive security protocols, leaving many applications vulnerable to high-risk issues. Malicious actors are actively exploring generative AI's capabilities and limitations to facilitate novel cyberattacks and compromise software supply chains. One notable example is AI package hallucination, where attackers can create fake dependencies to inject malware into software development pipelines.

Managing Risks

While there are several risks associated with using Generative AI in development, these risks and threats can be managed if software engineers develop a good understanding of the benefits and limitations of GenAI tools. Recently, I asked ChatGPT to generate a Python function for a specific task. It provided me with a working code, but it missed a couple of edge cases, resulting in an initial code with a bug. I then asked the same model to review the code it had previously generated to see if it could improve upon its initial attempt. In its second response, it successfully identified the bug and offered corrections. This approach is reminiscent of multi-agent frameworks, where tasks are broken into multiple actions and assigned to specific agents, each instructed to play a particular role to improve overall results. This also opens possibilities for cross-model collaboration, where tasks are assigned based on the strengths and training backgrounds of individual models.

Generational Perceptions of Generative AI Tools

I notice that young developers and tech-savvy citizen developers are more excited and feel empowered by the GenAI and Large Language Models (LLM) such as ChatGPT and Llama compared to senior developers who are more sceptical and occupied by the limitations of those models, such as their hallucinations and mediocre math skills. However, every other month, we see new set of LLMs improving their capabilities compared to their previous versions. In the hand of experienced developers those models have potential to significantly augment some of the software development practices.

AI-Augmented Development Tools

The market for AI-augmented software development tools is experiencing rapid expansion. We will see AI capabilities deeply integrated into common tools we use daily in the software development. As language models get smaller and trained with better quality data, local models running on developer machines will offer similar experiences to their online counterparts while mitigating IP theft risks.

Productivity Gains and Quality Improvements

The question on everyone's mind is how much of a productivity gain we should expect from GenAI tools? Every day, new articles and videos in social media claiming 10x and higher productivity gains using GenAI. The truth is that it is too early to understand the full impact. Writing new code is only a small portion of what developers do. They spend more time understanding the requirements, reading existing code and debugging. They also spend time in testing, documenting, integrating, learning, peer reviewing and collaborating.

Where I see the biggest impact GenAI tools could bring today is to improve the quality of the work, reducing or preventing technical debt and improve the developer experience. This allows developers to spend more time on tasks they enjoy and less time on mundane tasks. This, in return, can result in a higher quality product, less rework, improved productivity, or cost savings depending on how and when the tools are applied.

Stay Ahead

Having a growth mindset, adaptability, and embracing continuous learning have never been this crucial to stay relevant under the current pace of change and leverage technology to up our games. It is truly an exciting time.

Return to all posts