A Perspective: Effects of AI on Current Developers

Mahesh Annamalai
3 min readJan 4, 2024

Significantly, AI plays a vital role for current developers, including me. The question here is: Is it good for us? Yeah, it depends on how we are using it. I can assure you that AI will be helpful only if it is used in the right way. More specifically, I need to talk about AI-generated code, which has become both a boon and a challenge to the tech industry. I want to share my perspective on it. Let’s dive deeper…

Transition from developer to debugger:

One notable consequence of the widespread use of AI-generated code is few developers copying and pasting these snippets into their projects. Initially, it seems to be time-saving; actually, it is not from my perspective. (Your comments are appreciated.) The AI-generated code may not always align perfectly with your requirements (it may cause some errors, or the algorithm it generates may be slow). In this scenario, as developers make a transition in their roles, they find themselves taking on the responsibilities of a debugger to solve the intricacies caused by the AI-generated code.

Indeed, debugging code often proves to be a more challenging task than its initial creation. Contrary to popular belief, debugging is not a straightforward endeavor. When it comes to debugging AI-generated code, it necessitates a profound comprehension not only of the project’s specifications but also of the technical stacks employed in the development process.

Hence, there may be a chance that this transition will extend the overall time taken to complete the project compared to building it from scratch.

An Example: Comparison of AI-Generated Code vs. Human Written Code

I have taken a medium-level LeetCode problem and asked the popular AI model ChatGPT-3.5 to solve it, and it gave me a solution. Fortunately, the solution works well for all test cases. But the problem with the code is efficiency. The runtime of the AI-generated code is 1 ms (which beats only 9.11% of users with Java).

Attempting to enhance the runtime speed by debugging and modifying the logic generated by AI proved to be a time-intensive task. Consequently, I took matters into my own hands and crafted an algorithm to outperform the existing solution, presenting a more efficient alternative. Also, I arrived at a better solution with a runtime of 0 ms (which beats 100.00% of users with Java).

Note: I have used a small example to explain the point, but it’s actually a lot tougher in real-world projects to go with AI-generated code, especially after undergoing extensive debugging to address any complexities that may arise in the generated code.

Then, what’s the right way to use AI?

  1. Use AI-powered IDE plugins or tools that provide intelligent code suggestions and autocompletions based on context.
  2. Integrate AI into automated testing processes to identify test scenarios, generate test cases, and predict potential areas of failure.
  3. Use AI to assist in writing and updating documentation, ensuring it is clear, concise, and follows best practices.
  4. Use AI to understand and learn a new programming language, framework, or tool relevant to your project. (Even for this, I prefer to go with the owner’s official documentation.)
  5. Request feedback from AI on your code to identify potential improvements and best practices.

etc…

Bottomline:

In summary, integrating AI into development processes may offer developers opportunities to boost productivity and code quality. However, it’s crucial to use AI responsibly, understanding its role as a supportive tool rather than a replacement for core skills. The synergy between human expertise and AI capabilities holds the key to innovation and efficiency in software development.

“Nurturing AI as a collaborative ally, not as a replacement”

--

--