AI in Software Development:
Tool, Not Replacement
During my studies around the turn of the millennium, I briefly focused on AI. I can no longer recall the specifics of what I learned back then. The only thing I remember is that it definitely had little to do with today’s topics surrounding AI. In fact, I lost interest in the subject for a long time afterward and only regained it in the last 5-6 years.
From an outsider’s perspective, the possibilities of AI are fascinating. Perhaps even a little intimidating, considering what machines are capable of. Others, however, remain entirely unimpressed. Objectively speaking, AI is a remarkable thing. It just needs to be put into the right context.
AI exists in many facets, but it is the relatively recent advancements that have caused such a massive impact. Generative AI is on everyone’s lips and is supposedly taking away our jobs. At least, that’s what one might think if they listen closely. And this opinion seems to be increasingly shared.
AI is now indispensable. And it’s not inherently a bad thing. However, at the current stage, it is simply a tool that can be used (in addition to others). Like any tool, the user should understand their craft. Otherwise, they risk becoming puppets of the technology.
There are areas where AI can already replace workers today. Or at least where AI only needs to be supervised. In software development, however, I don’t see this trend. What is clear is that I haven’t wanted to write code without assistance for many years now. IDEs have been making our lives easier for a long time. We no longer need to memorize every syntax. Generative AI can certainly take this a step further.
On one hand, you get interactive manuals, and on the other, tailored solutions. However, the larger the problem you describe, the vaguer the output becomes. If you focus on specific areas, though, the results can be impressive. For example, if you want to rewrite a block of code or ask for suggestions on additional tests to create.
In all these supportive tasks, I see significant added value. This doesn’t make us obsolete but rather makes us “merely” more productive. In fact, it demands even more detailed knowledge, as controlling (the AI) requires more attention than crafting a solution yourself. We already know that reviews—understanding someone else’s code—can be a major challenge for some.
Even the best AI—as of today—needs to be fed. Ultimately, the (loud) majority will prevail. To be provocative: From now on, we’ll write everything in Rust and run it on Kubernetes in the cloud. 😉 But jokes aside, the parameters are so diverse that, if you rely on AI, you’ll end up with cookie-cutter solutions.
In reality, such solutions will often be better than what any junior developer could create. But they won’t evolve further. And they’ll still be far from an excellent solution.
Lately, I keep stumbling across comparisons suggesting that generative AI is the logical conclusion of progress (as a complete replacement for developers). This statement is only possible if you don’t consider the entire context. What the software development process looks like. What it means to create an efficient solution. And even if I only have to write a fraction of the code myself in the future: Without assessing the problem to be solved and without a tailored approach, all solutions will look the same. Because that’s how it was done yesterday for the AI, so that’s how we’ll do it tomorrow.
Further Reading: