AI - the double edged sword of developer onboarding

The onboarding phase of a new job is a critical period that sets the foundation for long-term success. It’s a time when junior employees must absorb essential knowledge, build relationships, and develop problem-solving skills that will serve them throughout their careers.

However, with the rise of AI-powered tools offering instant answers and guidance, many newcomers may be tempted to rely too heavily on AI assistance. While AI can undoubtedly be a useful resource, overdependence on it during onboarding can significantly hinder future growth potential. Here are some reasons why.

 

1. Reduces communication, trust and relationships building

Development of software requires collaboration between multiple parties involved in it. Onboarding isn’t just about learning processes; it’s also about building relationships with colleagues, mentors, and managers.

As a junior relying on AI for answers instead of asking coworkers means fewer interactions, which can slow down relationship-building. These interactions are crucial for long term success, future growth and developing a myriad of different types of soft skills that are all needed in a career of the developer, starting with open communication and trust between peers.

 

2. The problem-solving problem and knowledge retention

The ability to solve problems is one of the most valuable skills of every software developer. We are all familiar with the feeling of dread, fear or just insecurity, we all get when facing a never before seen problem, but that feeling is also a growth opportunity, because it forces you to push through it, break down the problem into smaller chunks and tackle those chunks one by one.

Each chunk of a software puzzle requires a software engineer to think, not just about how to solve it, but also how to place it into an existing puzzle that is being built by other developers simultaneously and how it relates to the business needs that software ultimately addresses. This is where a deeper understanding of not just programming concepts but software as a product develops over time.

The term “google it” isn’t something that should be looked down upon even in the age of AI assistance since googling it also requires finding the right resources, learning how to read documentation of software and exploring the community of people that develop, maintain and also provide help in your particular language, framework or industry.

 

3. The dopamine theft

Deeply coupled with the previous point and as someone who is involved in the interviewing process of a potential hire in Agiledrop I always ask one specific question: Why did you decide to dedicate your professional life to software development?

At first glance that might seem like a loaded question and people often, especially junior developers, stumble on that question so I follow up with my personal anecdote of a time when I was struggling on my first personal project while I was still just exploring software development.

Although I don’t remember the specific problem I was solving, I remember that the problem was summed up by an error. The error however was just hiding my deeper lack of knowledge and understanding. So I struggled with it for a couple of days.

On the third day I went out with my friend for a cup of coffee and while discussing something completely unrelated an idea popped into my head. I pondered on it for a couple of minutes then rushed home to try it out and see if I finally cracked the problem I was having.

I still remember the dopamine rush to my brain when I tried my idea and the idea worked. It truly can be summed up by the phrase “better than sex”, because it was at that moment I decided that I will fully commit all my free time to learning and slowly become a software developer.

Oftentimes the candidate follows up my anecdote with their own personal experience of a similar nature and confirms the importance of the sense of accomplishment and professional growth in the life of a software developer.

Quick AI solutions can’t provide that satisfaction since they circumvent all the necessary steps and replace them with trial and error in prompting AI for the right solution while we are never truly convinced if it will ultimately be able to solve our problem at hand.

 

4. You need experience to use AI and a question of security

If I ask an AI model something I know nothing about, how can I be sure the answers it provided are correct or factual? I have to be able to verify its answers, usually by talking to people that know more about the topic than I do.

The same problem exists in using AI as a software development companion.

I asked an AI model to provide an example for a PHP script of a HTML form. Then I asked it to provide a script for saving the form data into a MySQL database. While it did use proper input sanitization when saving to the database it never thought about providing a CSRF token in the form to protect it from a CSRF vulnerability or even mentioned it as a potential issue.

This is just a basic example of a deeper problem of how it can’t answer problems you don’t necessarily know even exist. And not knowing about different types of vulnerabilities is one of the main reasons why they are still out there waiting for someone to exploit them.

As an experienced developer you find out about all different types of vulnerabilities and closing them is part of your day to day thought process, and we write code with these vulnerabilities in mind.

I sincerely doubt AI models will ever start their answers on my simple question with an essay about software vulnerabilities, nor should they be expected to.

 

Conclusion

AI is a tool in a software development toolbox. It has its uses but it also comes with its own problems. Someone who enters into the world of software development, as with any other craft, should start with the fundamentals of problem solving, deeper problem analysis, relationship building, exploration and collaboration with peers.

There is a lot hidden behind the lines of code we write on a daily basis and the codebases are only getting bigger and more complicated with time. Leaning on AI models to solve all our problems is a practice that will inevitably come back to hunt a software developer just starting out exploring their craft.

Experienced developers, team leaders and mentors have the responsibility to provide a knowledge path to our successors… but that is a problem for another day and another blog post.