paint-brush
The Present and Future of A.I. in Software Developmentby@richlittle
563 reads
563 reads

The Present and Future of A.I. in Software Development

by Rich LittleNovember 3rd, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

In talking through problems and possibilities here, I hope I have also illuminated how much more we need to learn about A.I. and how we should question the unvarnished “good” or “bad” that current hype frames it as.
featured image - The Present and Future of A.I. in Software Development
Rich Little HackerNoon profile picture

Artificial intelligence has captured the popular imagination for nearly a century. From the early dreams of British computer pioneer Alan Turing in the 1930s to the frightening voice and power of HAL 9000 in Stanley Kubrick’s sci-fi epic 2001: A Space Odyssey in 1968 to the current hype surrounding Chat-GPT, A.I. has been growing in visibility.


While these images have evolved, the discourse around A.I. has remained remarkably consistent: someday, these computers that we train will take over and render some human work nonexistent.


Worse yet, if we don’t keep it under control, A.I. might make humans expendable.


Popular images are often unrealistic. But underpinning these images is a fear of the unknown. Now that we know a lot more about A.I., and continue to learn more at a rapid pace, it is important to also update our perceptions.


Rather than focus too much on the potential threats of A.I., we should take a more accurate and nuanced view of its current capabilities and limitations in order to move past the fearful discourse and have a more productive and informed conversation.


With over 30 years of experience in the tech industry, as a pioneer in software development kits, I have witnessed many trends come and go. However, I believe that artificial intelligence will remain an essential tool for developers.


With its potential now accessible to more people than ever before, rather than feed into the fearful vision of a soon-to-be apocalyptic future, I want to present a realistic assessment of what the current boom in A.I. means for the present and future of software development, a subject close to my heart and experience.


Put simply, the rapid rise in A.I. will undoubtedly change the future of software development and the way people work in this field. Far from recoiling in horror, I believe developers will harness A.I. to streamline their workload and ultimately program better.


In my estimate, there are three major ways A.I. will continue to influence software development: 1) A.I. will become an even more vital tool in the development process; 2) A.I. will lead to whole new ways to develop software; and 3) A.I. will offer developers new ways to work smarter.

It’s in the Way That You Use It

Like any good craftsperson, software developers have several tools in the proverbial toolbelt. Compilers, assemblers, code editors, debuggers, and many others assist in the development process. A.I. is unique here in that it is simultaneously both a tool and a tool-enhancer.


For example, A.I. has truly enhanced code editing programs by helping to identify repeated error patterns in code. This has dramatically increased the speed at which we find and correct errors.


Instead of banging our heads against the wall and squinting at the screen for hours, A.I. tracks code differences faster than our human eyes can. Moving beyond these frustrating and time-consuming manual processes allows developers to focus on the more meaningful aspects of development.


No doubt that this is a net positive for the work of software development and underscores the enormous potential of this technology to enhance productivity and outcomes.


As a tool itself, A.I.’s ability to automatically generate code on its own is extremely useful for providing examples, best practices, and sample code for unit tests as all of that significantly cuts down on time in development processes and minimizes the potential for human error.


Far from replacing developers as the code currently generated by A.I. is not entirely accurate, its automatic responses and fast learning curve have certainly exceeded developer expectations.


A.I. generating, replicating, testing, and fixing code has the potential to make coding languages even more expansive, detailed, and quick. In this instance, A.I. is not only useful in the need for speed but the need for depth as well.


Too often we only focus on the speed enhancements that A.I. provides, overlooking the rich depths we can plumb with these powerful tools. It should be the goal of all developers to make the best possible software.


In my opinion, this is one of the larger benefits of A.I. as a tool in the development process - improving the quality of our end products and solutions.


If we can replicate or produce thousands of lines of code in seconds, test and detect errors more quickly and accurately, and create more time to focus our attention on the truly innovative and differentiating aspects of development, then we are simultaneously improving our code, development times, and our resulting software.


These are essential goals for any developer, and A.I. only helps to make them more attainable.

Changing Processes, Changing Outcomes

I’m not Nostradamus, but I can clearly see that through our deep engagement with A.I., in the future, we will see new methods for creating software that will revolutionize the software development process.


The automation and speed that A.I. brings to the table will give developers the confidence to try new things and experiment more freely. It provides a jump point from which developers can focus on application workflow, input testing, project management, and project ideation. This will certainly lead to richer and higher end-products.

With the jump start that A.I. provides, developers are able to fast-track their ideas and think of new ways to solve more complex development problems.


For example, we have developed our own patented A.I. engines that fuel a lot of our major technologies such as machine printed and handwritten text extraction (OCR/ICR), automatic form recognition, analysis, and processing, as well as speech recognition and intelligent document viewing, conversion, and editing.


We offer developers the “vision” behind computer vision, providing them with tools and libraries to easily integrate generative A.I. into their own applications.


Using A.I. in our own processes to speed up development and testing times enables us to make our SDKs available to customers more quickly.


All told, the use of A.I. in our workflows and within our toolkits inevitably enables developers to create more dynamic and powerful software solutions.

You Aren’t Going to Lose Your Job, But It Will Change

The fear of the unknown surrounding A.I. often manifests in a “robots will eventually replace me” line of thinking. As mentioned earlier, this fear-driven mindset just isn't accurate within the software development world.


Instead, we are seeing the need, more than ever, for skilled developers, and A.I. presents new possibilities and workflows that will only serve to increase the potential of all software developers.

It’s been a common argument since the Industrial Revolution that more automation of menial tasks will allow workers the freedom to pursue larger or more creative ideas and tasks. It’s almost an equation - “more automation = more freedom of work.”


While this “freedom” gives an unabashedly positive spin to some of the unknown effects A.I. will have on developers, I think we can all agree that it will change the job.


As A.I. will always need to be trained and regulated to some degree, more and more programmers will become specialized in A.I. to accurately train the engines and make the data they collect useful. Tasks such as collecting, labeling, organizing, and cleaning data for A.I. training will make all developers become more practiced in curatorial data functions.


More developers will lean into reliable A.I. powered SDKs and can shoulder a lot of the work and oversight that is required by using A.I.


While I have argued that we need to fear A.I. less, that doesn’t mean that we need to embrace the information and speed it gives us as THE truth. Ethics are a crucial human value system, and the conversation around ethical A.I. shines a light on the potential misuse of it.


Developers will have to continuously gain knowledge and evaluate their A.I. effectiveness, ensure that the A.I. is trained fairly, quickly recognize any problems created by A.I., and swiftly suggest improvements.


Developers need to become the managers of their A.I. and continuously check its work as they are ultimately the people responsible for the output. While generative A.I. is fascinating, “generative” does not mean the same thing as “creative” or “accurate.”


Those are human concerns whose answers are not automatically generated and will always need human intervention.


A.I. has changed our world, and since the rabbit is already out of the hat, we need to figure out what sort of future we want for it. I have pointed to some of the ways it has altered the software development industry.


In talking through problems and possibilities here, I hope I have also illuminated how much more we need to learn about A.I. and how we should question the unvarnished “good” or “bad” that current hype frames it as.


The thing about A.I. is that it will always depend on its developers to point the way forward. Stan Lee’s statement in Spider-Man that “with great power comes great responsibility” is a very appropriate mantra for A.I. developers to follow.