DEV Community

Philip Perry
Philip Perry

Posted on

Coding is Messy – Or Why Developers Are Still Indispensable

With all the talk of AI replacing developers, it is easily forgotten that developing software is essentially still a human activity. AI certainly can help speed up the process, but there are so many complexities involved that require human intervention. Talking with the stakeholders is certainly something that a vibe coder can do, but I’m referring to the code itself. While AI might be able to quickly scaffold an initial program, when it comes to making changes, human developers still possess the critical understanding of the requirements, architectural implications, and long-term maintainability to effectively adapt and evolve the codebase.

One skill needed by software developers that is often overlooked is perseverance. This is especially true when it comes to working with libraries or external systems. For example, I’ve recently been trying to get billing to work for an Android app (a small side-project). While the libraries keep getting updated, I found that the maintainers oftentimes forget updating the documentation. Recently I found that the code that I needed to use was on the migration page, but nobody had updated the documentation page itself. Sometimes AI can be good at returning the actual implementation one is looking for, but more often than not, it will return a hallucinated function name. In these cases, vibe coding will lead nowhere…

Another area where human software developers are needed is debugging an issue. In order to be able to reproduce an issue, one needs to painstakingly step through the code, view the logs and examine data at each step. Again, an AI agent can help with these steps, but it requires human guidance as there can be many points of failures, some which might be outside of the codebase itself.

From the nuanced conversations with stakeholders to the messy reality of debugging a tricky issue or wrestling with poorly documented legacy code, AI simply isn't equipped to handle the full spectrum of challenges.

Top comments (2)

Collapse
 
xwero profile image
david duymelinck

Not so long ago I commented on a post that claimed AI can make a prototype in less time than a human can. While it is true, I was reflecting on the decisions that I make when I make prototypes.

Most prototypes are made under time pressure because you want to spend as little money as possible. So the code will not be up to production standards.
But you want the main part to be as ready as possible. How do you write a prompt so that an AI can understand that gray zone. I don't think it will never be possible for an AI to make all those small decisions to come to a result in the same amount of time.

I want to counter your documentation example. I never done it myself, but I think AI can help you with scanning the diff between versions, go through the code to find the places that are affected by the version update, and create a report. It might not be 100% accurate, but it can give you at least directions where to look. No documentation needed.

Collapse
 
dsarkar profile image
Debajit Sarkar

You will notice that developers define problems before writing any code. Artificial Intelligence (AI) is good at recognizing patterns but it cannot determine which business goals, user needs, or which hidden constraints should guide a project's scope and priorities.

Real software craftsmanship depends on creative insights, connections across different fields, and anticipating new edge cases. While AI can combine existing patterns, as of now, it cannot create entirely new ideas or predict unfamiliar situations like a human can.