The availability and capability of Artificial Intelligence (AI) to write software code and create applications dynamically from raw data has advanced significantly since the explosion of ChatGPT and other AI chatbots in recent months. This phenomenon brings up a lot of questions and challenges, but also opportunities for technology teams that leverage this asset correctly.
Not the least of these concerns is the impact that AI will have on how software is created going forward and its impact on the role of software developers and infrastructure teams. One thing is certain, AI is going to change the way applications are written. It already has. We’ve only gotten a small glimpse of what is yet to come (remember the first Apple iPhone compared to what it can do now?). We’re only at the beginning of the AI chatbot revolution and software developers have every right to be concerned. However, they should also be thinking differently about their roles and contributions to an enterprise now that the AI revolution has kicked into high gear, as well as how they leverage this technology to bring more value to the business.
AI and coding: The good, the bad, and the phenomenal
AI tools are really nothing new. What is new is how the capabilities of generative AI models are rapidly expanding.
For example, Microsoft has announced Microsoft 365 Copilot, which will be embedded in your Word, Excel, PowerPoint, Outlook, and Teams apps to help you write formulas, insert tables, develop slides, insert speaker notes, summarize lengthy discussions, and much more – through the use of natural language prompts, such as you would enter into ChatGPT to write a blog.
In addition, AI tools can be used for coding in various ways, such as code completion, code generation, and code analysis. Code completion tools use AI algorithms to suggest code snippets based on the context of the code being written. Like the AI-driven grammar prompts that augment our writing in emails and Word documents to improve or complete our sentences, code generation tools use AI to generate code based on natural language descriptions of the desired functionality. Code analysis tools use AI to identify potential bugs and suggest improvements to the code. These AI tools can help developers write code more efficiently and accurately. But this is only the beginning.
Take these further advances from Microsoft. In March of 2023, they announced the preview of OpenAI’s GPT-4 in Azure OpenAI Service, making it possible for developers to integrate custom AI-powered experiences directly into their own applications. They’ve since built on that announcement with several new capabilities to apply generative AI to data and to orchestrate AI within systems – what they refer to as “the next big breakthrough in AI.” All this is on top of the “mind-blowing language models” that our mere mortal minds are only starting to fully comprehend.
Why AI tools are good for technology
- AI tools can help automate tasks and create content, such as code generation or bug fixing, which can save time and increase productivity.
- AI tools can help identify patterns and insights in large datasets, which can be useful for data analysis and machine learning (ML) applications.
- AI tools can learn from past experiences and improve over time, which can lead to more accurate and efficient results.
Why we need to be careful about how we use AI tools
- AI tools may not always produce the desired output, and may require human intervention to correct errors or refine the results. (As an example, in January, CNET issued corrections on nearly half the stories they published that were written using an AI tool.)
- AI tools may also be limited by the quality and quantity of data they are trained on, which can affect their accuracy and reliability.
- AI tools may also raise ethical concerns around issues such as bias, privacy, and transparency.
Using workload analytics to redefine the role of the developer
In my last post, I wrote about the emerging field of workload analytics and how it can be used to enable technology roles to scale to support the significant amount of new data and technology coming online every day. Workload analytics combines AI and ML with financial and business data to optimize and manage enterprise workloads. Nowhere is this more important for technology than in considering the role of software developers in an AI-driven coding world. There’s no doubt some coder roles will be lost due to the efficiencies brought on by the technologies of OpenAI (ChatGPT), Google (Bard), Baidu (Ernie), and others. If it’s not the case already, AI will soon be able to write more efficient code in one day than a junior- or even senior-level developer can in a week. But as we become more proficient at using AI tools to produce code, the resulting outputs will need to be held to more stringent protocols and testing. At least in the short term, it’s likely that more code will be rejected, as we’re beginning to see already. It’s going to take some trial and error – which is the very foundation for machine learning – to learn how to code properly at scale.
There’s no doubt AI is going to change the way all software applications are written. While there is a learning curve and some loss of headcount, using AI will actually help solve the problem of inefficient code. And workload analytics will play a role in reassigning some portion of the developer workforce to higher-level tasks that can further add to productivity, innovation, and managing and maintaining code once it’s in production. I’d love to see the day when workload analytics also enables us to go back to old, identify inefficient code and rewrite it so that the Total Cost of Code doesn’t continue to multiply year-over-year due to inefficient code that could have been optimized years ago.
Think of it this way. Once we start to generate code at scale thanks to AI tools, more code will be promoted to production at an increasingly alarming rate. Then, all this code needs to be supported once it’s in production. As the pace of AI increases, existing subject matter experts using data observability tools will not be able to keep pace to solve the issues of tomorrow, as these tools still rely on humans to interpret the data. There won’t be enough people to watch the screens and interpret the information. We are going to need to incorporate workload analytics to identify issues and enable technology teams to support, manage and optimize anomalies. The ongoing generation of new technology, while supporting legacy technology, will require enterprises to optimize their organizational structures, processes, and systems.
A whole new technology ecosystem needs to emerge as we move forward with AI tools for coding and managing technology systems. What will the processes for testing, monitoring, and managing all of the new code that is generated at scale look like? How can we know that all the code we’re deploying into production is truly healthy and efficient – and what will the Total Cost of Code be over the next three years? How do we apply financial metrics to quantify the impact of this code – especially as it runs in tandem with “old” inefficient code that may be costing the company millions due to bad processes?
These questions are a good place to start as developers consider the impact of AI on their roles and how they can leverage it to focus on higher-value tasks.