May 23, 2024

Rise of the machines: will developers survive the AI onslaught?

IT Tips & Insights 

AI as a collaborative tool

The advent of AI is sparking discussions about a potential future where developers might be replaced by intelligent algorithms and electronic automations. However, while AI is undeniably a remarkable tool and we’re just scratching the surface of its potential, it’s far from being a contender for the developer’s throne or, dare I say, the incarnation of Shakespeare as a developer. 

Let’s take a walk down memory lane. Printers didn’t wage war on scribes when Gutenberg invented the printing press. Steam engines didn’t conspire to wipe out people during the Industrial Revolution. Calculating machines never initiated hostilities against accountants. Bootstrap didn’t annihilate CSS developers. In the end, these historical advancements were created for the most unnamed reasons but, ultimately, collaborated with their creators: ourselves! 

A multitude of new opportunities arises when we create tools to streamline our routines. AI is the latest addition to this toolbox that humanity has been crafting throughout history. 

In a nutshell, what AI does is learn patterns to make decisions based on a wealth of data, all of which is meticulously predefined by humans. Certainly, it can generate entire and functional pieces of code based on past code stored in its “brain.” However, it’s vital to note that at this stage, AI isn’t creating anything entirely new; it consults its past “memories” to suggest something that aligns with a given request. 

The nuances beyond code generation

Now, consider integrating the AI’s code “brain” with the vast array of code within your system. Think about the design patterns embedded in your code or the business rules that can be modified by a parameter in a configuration file, which behaves differently in production than it does locally. 

Is this possible that an AI can grasp the subtle, intrinsic, and non-explicit requirements your code had to adapt to run your application? 

Some opinions might argue that we can open up the entire source code to AI, allowing it to better understand how things work and propose solutions. However, this presents a slew of legal and economic complications. Would companies be willing to expose their source code to another company (via an AI)? Or would these companies develop their own AI and work offline to avoid sharing the code? In such a case, who would be responsible for developing this new AI? 

Others would say that AI may indeed create a system – bug-free – from scratch, with all content provided by it. They would also argue that sharing it back seems reasonable, doesn’t it? However, considering Agile processes, CI/CD, A/B tests, creativity, innovation, the artistic steps of creating a new color palette, or a fresh way to organize elements on a page, AI wouldn’t think in a new and superior pattern to JSON for transferring data between two microservices because an application has grown so large that we need to optimize data transfer, nor would it simply suggest using ProtoBuf.

A non-developer will never know what to ask AI to create a system, simply because the development ecosystem is vast and intricate. Achieving this level of understanding would necessitate software development becoming part of the elementary school curriculum, making it common knowledge. 

The power of collaboration between developers and AI

AI will undoubtedly revolutionize the way we develop and automate many of our routines, simplifying tests, refactoring some poorly written code, producing better code, and even creating small functions that we can adapt across the board. I have faith in its power to teach us how to be better, to amplify our capabilities, and to save us time on mundane tasks. 

Developers are digital artists, creators of complex systems, architects of technology, and yes, creators of AI. They are not just coders; they grasp human desires and requirements and translate them into code through a collaboration of multidisciplinary teams. We will always need and appreciate chefs, even in a fully automated kitchen, even with a plethora of fast-food options. 

AI lacks critical thinking abilities and ethical considerations. Let’s delve into the classic trolley problem thought experiment: envision yourself as the operator of an automated train, confronted with a moral dilemma. One rail has one person, and the other rail has five. The question arises: which path should the AI-controlled train choose? Further, let’s extend this scenario: what if the one person on the rail is identified as a native, while the AI identifies the five others as immigrants? How should the AI navigate this ethical dimension? Additionally, it’s crucial to reflect on geolocation and its unique aspects. How would these universal automated solutions vary in application across different regions, such as Sweden, Brazil, and India? 

The human element is profoundly embedded in every line of code we produce. As AI increasingly generates more copy-and-paste code, we, as developers, will continue to create novel contributions to the world, aided and inspired by AI. 

Israel Borba

Fullstack Developer


Let’s Talk