“The Usefulness of AI”
AI slop logo from yourailopbores.me
I know I spend a lot of time talking about the risks around Artificial Intelligence (AI), so for a change of pace I wanted to talk this week about some areas where AI can be extremely useful and actually help us in our day to day life. The things I have found an AI to be most accurate at are summarizing and outlining of content, whether it be a video recording, a written document, a book, an email thread, a website or a section of code. I have found that both ChatGPT and Co-Pilot thrive at extracting details of long documents.
One of my favorite use cases is in summarizing meeting notes. If you happen to be using Microsoft Teams or Google Meetings, you have the option of recording and transcribing your meetings. If you have these meetings recorded you can feed the recordings to Microsoft Co-Pilot or ChatGPT and ask it to summarize the meeting. It provides an outline of the topics discussed in the meeting and a list of actions for the attendees of the meeting. Most of the time it catches all of the main topics of discussion in enough detail that they can be used for official meeting minutes. It is still recommended to double check anything written by an AI.
My other favorite place to utilize the AI is in the analysis of code. I manage a team of firmware engineers. If you don’t know, firmware is the software that permanently lives on your computer. A computer requires some basic level of software within the chips on the computer to tell it how to load your operating system, in most cases Microsoft Windows or MacOS. If you did not have firmware on your computer to describe the hardware and system boot parameters, the computer would be useless. So as you can probably tell, it is very important that the firmware behaves exactly as you expect it to behave, or you can wind up with a useless computer.
It is my job to make sure that the development team has not introduced any new issues when attempting to fix a known issue. Part of this means that I need to analyze their code and determine what it does. I then must compare this to how the code is described, in other words, against the specifications to make sure it does what it is supposed to do. Well as you can imagine a computer is much better at analyzing code written for it to execute than a person ever could be. This makes using an AI for this step of code developing an amazing tool. It is very good at telling me exactly how a certain section of code works and what it is supposed to do. I can then easily compare it to the design and see if what was developed is a match for what is expected. Of course I still have to test the code and make sure it actually works, because while the AI is very good at analyzing code, it is not that great at making sure it is bug free.
I have attempted to use AI to generate code and while it does write code that usually works to accomplish the task, I find that it writes code that fails to follow traditional coding styles and standards; sometimes this results in code that runs faster, or performs better in some manner. It also makes it hard for people to debug the code. You see, some coding standards are in place to make it easier for a person to maintain code, but for an AI, it doesn’t matter if the code is easy to read and maintain, so it bends the rules. To me this makes it not very trustworthy to write code that can be trusted long term. I also believe it is a reason why we will begin to see a lot more software companies failing in the next five years, as AI generated code becomes too costly to maintain. So while AI can be a very useful tool, you need to weigh the risks with the benefits.
In software design and development AI can vastly reduce the time to market for a new product, but it increases the future maintenance costs. When bugs and vulnerabilities are found in the future, the AI is not that good at fixing the issues and human developers must become involved. The AI-generated code is hard to read and it is always harder to fix problems in code you did not write. So you wind up with what we call in the industry extra technical debt. The cost to maintain the system is higher. So you need to know these risks at the entry level of a project.
I hope you have a better understanding of not only the risks but the benefits of AI now. Until next time, stay safe and learn something new, and I hope you will see me online at https://www.techshepherd.org.
Scott Hamilton is an Expert in Emerging Technologies at ATOS and can be reached with questions and comments via email to shamilton@techshepherd.org or through his website at https://www.techshepherd.org.
