AI Agents: Savior or Killer of Junior Devs?
Speculating How Artificial Intelligence Will Shape Our Industry
The rise of Artificial Intelligence (AI) has been a topic of much discussion amongst my classmates on the path to landing their first junior developer role, with some viewing the recent progress as a boon to our productivity as juniors and others viewing it as a potential threat to our fledgling careers. Many of the benefits of using AI Agents are immediately obvious from the first time you use one yourself, but the negatives might not be as straightforward. In this blog post, we will explore the implications of the rise of AI, weighing the potential benefits against the potential risks. Is artificial intelligence's role in our future utopian or dystopian? Let's take a deep dive into the pros and cons so you can make your own decision on the matter.
What is an Agent?
If you're confused by what people mean when they refer to "agents" in Artificial Intelligence, you're not alone -- I was also confused at first by the term. Your mind may jump to a James Bond character powered by AI, but the concept of an agent is much more simple.
In the broadest scope, any AI system is composed of an agent and its environment. According to this article on GeeksforGeeks, an agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators.
One of the most popular AI agents right now, ChatGPT, is an AI-driven chatbot that is accessed through a browser. The text input by the user acts as a "sensor" for ChatGPT, providing it with information about what the user is asking or stating. The model then processes this input and displays text as its output, which acts as the "actuator".
Benefits for Junior Developers
I would describe myself as a "glass half full" kind of person, so to kick off our discussion on the impact of AI Agents, let's take a look at some of the positive ways the advancement of artificial intelligence might help us as junior developers.
One of the methods that I use almost every day to troubleshoot problems in my code is the "rubber duck" debugging technique. For anyone unfamiliar, this simple technique requires you to explain the bug or issue you've encountered in simple terms to a rubber duck. Typically, going through this process coerces your brain to concoct new possible solutions to your problem. However, it doesn't always work.
Now imagine that your rubber duck can speak back to you. No, it's not just going to quack! When you take the time to write out your problem to an AI chatbot like ChatGPT, it will respond to your question and suggest possible solutions. ChatGPT is so advanced you can even copy and paste snippets of your code to get more accurate suggestions on how to fix the problem.
As someone that is constantly learning new facets of software engineering, I can attest that it often takes a lot of time to find the right resource for the topic you want to learn about. With the rise of AI agents that have AI models trained on massive amounts of technical knowledge, as junior developers, we now have access to a one-on-one tutor on a 24/7 basis.
The advantage of learning new topics with an agent like ChatGPT is that you can personalize the experience specifically for you. Some of the ways you might utilize the flexibility of an AI Agent include the ability to learn at your own pace and the freedom to ask questions about the topics you care most about.
Easier to Build New Things
Last but certainly not least, an agent like ChatGPT can rapidly generate boilerplate starter code for virtually any type of development project that you can dream of. The ability to instantly create customized starter code means that junior developers can kickstart a new project in less time than ever before. In general, writing boilerplate code can be incredibly time intensive and takes away precious time that could be better spent exploring other avenues early in a project lifecycle, like reading documentation or understanding code architecture.
Negatives for Junior Developers
Now that we've covered several key benefits that Agent AI agents can provide to junior developers, it's not hard to deduce that if a powerful AI tool like ChatGPT can rapidly generate code, it might pose several serious threats to junior developers' roles worldwide. Let's now take a look at some of the negatives that the rise of AI Agents can bring to our industry.
Perhaps the most obvious implication of the rise of AI Agents being able to produce code is that these tools could entirely replace the core job responsibilities that have traditionally been delegated to the junior developers on an engineering team. For example, an AI agent like ChatGPT can generate code, debug software, and even provide feedback on user interfaces. While this can be beneficial in terms of time and cost savings for companies, it could result in reduced demand for junior developers in the long term. As AI continues to advance, it will become increasingly important for developers to also focus on skills that cannot be easily replicated by machines, such as creativity and critical thinking.
Overreliance on Technology
Relying too heavily on AI-powered tools to complete programming tasks could lead new junior developers in the field to never learn key skills needed for long-term success. For example, if a developer relies too heavily on tools like ChatGPT to complete their coding tasks, they may not develop the critical thinking skills that are necessary to solve more complex problems. In addition, if new developers rely solely on AI-generated starter code without understanding how it works, they may not be able to effectively maintain or improve the code in the future. This can lead to tech debt and decreased code quality.
Garbage In, Garbage Out
The responses generated by an AI agent are only as good as the quality of the prompts that are provided to it. This means that if the input to an AI-powered technology is flawed or incomplete, the output will conversely also be flawed or incomplete. Junior developers are relatively inexperienced in the field of software engineering, so they might use an agent like ChatGPT to generate a code snippet with a poorly written or incomplete prompt. Thus, the output generated by ChatGPT may not be what the developer or company was hoping for. This process could lead to lots of time wasted on the job, as the developer would need to spend extra time refining prompts or trying many different approaches to get the desired output.
How will this play out?
In conclusion, the rise of AI agents can be both a savior and a killer of junior developers. On the one hand, they can help by acting as a debugging partner, providing accessible education, and enabling faster code generation. On the other hand, AI agents could displace jobs, lead to an overreliance on technology, and produce lower-quality code. As AI continues to advance, developers and software engineers should take time to develop skills that cannot be easily replicated by machines, such as creativity and critical thinking. It is also essential for junior developers to strike a balance between using AI agents as tools for increased productivity and actively advancing their technical skills.