AI will not replace programmersAI will not replace programmers

Lately, my timeline has been flooded with questions such as, “Will AI replace programmers in 2024?” or “Will AI take away my job?” These apprehensions arose particularly after a US-based company Cognition Lab introduced Devin, the world’s first AI software engineer. Well, the answer is No. AI will not replace programmers anytime soon. Not in 2024. Let’s delve into 3 main reasons why AI will not replace programmers anytime soon.

Introduction

A few weeks ago, at the World Government Summit in Dubai, Jensen Huang, CEO of NVIDIA, hinted that coding might not remain a viable career path for young individuals. Many initially doubted this claim believing AI isn’t advanced enough yet. However, introducing Devin, the first AI Software Engineer, has sparked concerns within software development communities.

According to Jensen Huang:

“It is our job to create computing technology such that nobody has to program. And that the programming language is human, everybody in the world is now a programmer. This is the miracle of artificial intelligence.”

I do concur with Huang’s statement, but simultaneously, I strongly believe there are three key reasons why AI will not replace programmers in the near future.

First Reason: User Requirements

Requirements

The first and foremost reason is comprehending ever-changing complex users’ requirements. Let’s assume if we want AI to complete a software development project. We have to specify the precise requirements, but users often aren’t certain about what they want. So, for AI to take the project into production users should be very clear in their mind what they want, which is next to impossible. It’s not because users don’t know what they want, but rather because the only constant in the software development life cycle is the changing requirement. This change occurs due to various factors.

Second Reason: Domain Knowledge and Testing

Domain Knowledge
Domain Knowledge

The second reason why AI will not replace programmers is when you develop software you develop it for a specific domain. You may write software for banking, health care, e-commerce, space science, etc. The AI must be continuously trained on the domain for which it wants to write code. Any outdated or limited knowledge or any assumption could result in catastrophic failures. Project leads gained years of experience before they become SMEs, saying AI would take their job away is a very lame statement.

Cognition Lab claims that Devin AI handles all potential test cases and edge cases. Does this imply that we no longer require software testing or even an entire quality assurance department? I don’t think so. Because Devin AI only knows about the program it has written which might be just a small part of a larger software system. While the program might operate smoothly on its own, integrating it with another program could lead to catastrophic failure, risking the entire software system. Integration testing is the most critical task of SDLC.

Third Reason: Communications

Communication
Communication

A third and most important reason AI won’t eat your job is that software engineering is not just about understanding the requirements and writing the code. It is more about communication. Communication with users about what they want. Communication with the machine what needs to be done. And then communicate with users on what is done. In between all, a lot of communications with different partners like the business analyst team, quality assurance team, applications support team, and senior management.

Most of these communications must be in human-understandable language, not in machine language. Can AI do that? Can AI explain to users what he has developed in human understandable language? Can AI collaborate with QA to understand integration issues? Can AI understand the deployment complexity of integrated code and communicate with APS? I don’t think so. In the distant future, this could become a reality, but machines would need to surpass human intelligence for it to happen.

Threats and Opportunities

I understand that with the rise of AI, certain jobs that don’t demand much intelligence could be in jeopardy, and rightfully so. Why should we, as software engineers, spend time on unproductive tasks? Let’s delegate tasks that machines can handle. Look at our backlog of tasks, often sidelined due to time, bandwidth, or budget constraints. These tasks could be swiftly accomplished by AI. As AI handles these tasks, we could focus on more engaging work. Perhaps we could revamp our project’s architecture, enhance our UI, or document our knowledge for others’ benefit.

I firmly believe AI will replace jobs for those unwilling to adapt, learn, or step out of their comfort zone.
Here, I agree with the NVIDIA CEO’s assertion that we should prioritize domain expertise. While programming can be automated, machines cannot handle human psychology, evolving needs, or effective communication and collaboration with various stakeholders and teams.

I strongly believe it’s time for humans to leverage machines to their advantage before machines do it for them.

Final Thoughts

In conclusion, despite the buzz surrounding AI’s capabilities, especially with the introduction of Devin, the first AI software engineer by Cognition Lab, AI will not replace programmers anytime soon, not even in 2024 and there are reasons for this. Firstly, understanding the ever-changing user requirements poses a challenge, as users often struggle to articulate their needs clearly. Secondly, software development is domain-specific, requiring continuous training and expertise, which AI may lack. Lastly, effective communication, a vital aspect of software engineering, involves human interaction and understanding, a skill beyond AI’s current capabilities. While AI may streamline certain tasks, it’s up to us to harness its potential while retaining our unique human skills and adaptability.

References:

Images by https://www.freepik.com/

By AK

Leave a Reply

Your email address will not be published. Required fields are marked *