AI Navigator #7: Does AI herald the end of the software developer species?

0
23
AI Navigator #7: Does AI herald the end of the software developer species?


Welcome to the seventh edition of the DOAG KI community’s AI Navigator column!

Advertisement





Lars Rovekamp, ​​founder of the IT consulting and development company Open Knowledge GmbH, thoroughly analyzes and evaluates new software and technology trends as part of his work as “CIO New Technologies”, focusing on areas such as machine learning. And cloud computing. A particular focus of his work is incorporating ML-based processes and applications into companies’ existing IT landscape. Together with his clients, he analyzes the possibilities – and limitations – of expanding and optimizing business processes based on ML-based approaches and, with the support of his team, implements these until they reach production. Don’t get ready for it. Lars is the author of numerous expert articles and books.

Since the launch of ChatGPIT and the GenAI hype that started with it, the victories of AI have been unstoppable – even in software development. In line with the motto of “eat your own dogfood”, there are now countless AI-supported assistants in the field of software design and development that aim to relieve the daily work of developers or at least make it significantly easier: from tools for Getting started Simple code completion and intelligent systems for code documentation and analysis, including an explanatory function through more or less well-functioning all-round, worry-free packages based on a colloquial description of the problem space as a whole Creates software applications.

Many people are already predicting the end of software developer careers. This matches Nvidia CEO Jensen Huang’s statement earlier this year: “We should stop saying that kids should learn to code!”. So do we software developers have to worry about our future again? I mean yes and no.

It’s truly amazing how well AI tools supporting the software development lifecycle work now. It doesn’t matter whether it’s all-purpose weapons from big players like Microsoft CoPilot and Amazon Q, or tools from specialist providers like Greetings And appmap navAll offers can save a lot of time when developing software with human-like intelligence. And that’s not all: You also serve as a patient partner, an experienced colleague, and a valuable tipster. A huge advantage in times of skilled labor shortage.

Thanks to AI support, teams can also try multiple solution approaches in parallel to compare based on given criteria and decide which version best suits their context. Sounds good, and it is.

The above quote by Jensen Huang was not chosen by chance. Because in the same interview, Jensen also says that programming languages ​​will be human languages ​​in the future – in the form of natural language signals. And this is where the crux of the matter lies.

Only when humans are able to formulate a technical problem with all its restrictions in appropriate colloquial language can AI generate a meaningful application from it. In addition to purely technical aspects, the prompt must also take into account software architectural and technical constraints.

And it is precisely this ability, i.e. embedding the real world into a domain model tailored to a problem space, that has always separated good developers from less good developers. A correctly created domain model only needs to be implemented, i.e. put into code. A task that adds little value is something development teams today often outsource and are happy to leave to AI in the future.

Skeptics may now correctly say that our experiences with outsourcing programming tasks in recent years have been quite poor. So how do I think AI will do this exact job better in the future?

In classic outsourcing, the client formally describes a problem and desired solution approach. Then he throws it over the fence and waits for the outsourcing partner to throw the finished solution back over the fence. In this model of cooperation a dialogue between those involved for the purpose of iterative optimization is only possible to a limited extent and is generally not desirable due to the additional costs associated with it.

On the contrary, it means that both the initial description of the problem and the desired solution must be correct the first time. In nearly fifty years of software development, we have learned that this requirement is almost impossible.

The situation is different when using AI: with its help and appropriate human expertise, developers can enter into the conversation and develop and improve solutions step by step. Furthermore, with the support of AI, they can quickly and efficiently try multiple solution approaches in parallel and weigh them against each other.

But the essential factor in this interaction is and will remain people. On the one hand, it must initially have the ability to describe the problem space in a way that the AI ​​can understand. On the other hand, it must control the communication and thus the specific actions of the AI.

Now Devin and so called logic model Approaches that think and weigh things a little more deeply before suggesting a solution and thus take this kind of control into their own hands. However, a closer look behind the curtain reveals that approaches essentially simply follow a well-crafted storyboard or use a predefined list of tools – working through a software developer’s to-do list. Like doing.

The job description of a software developer will definitely change due to the increasing use of AI. Syntactic skills in programming as well as pure API and framework knowledge fade into the background and become obsolete sooner or later. However, the ability to design a meaningful domain model from which AI can automatically generate code, including an appropriate architecture, is becoming more important due to the increasing complexity of technical requirements.

And this is a good thing. The real strength of a developer lies not in memorizing APIs and their parameters, but in the ability to transform the real world into an appropriate domain model based on the technical problem in order to solve the problem in the best possible way using binary . Zero. How appropriate the 1 and 0 values ​​ultimately turn out to be from the domain model is irrelevant. If this were not the case, we would still be programming in assembler today, and not in computer-independent high-level languages.

Anyone who wants a quick introduction to the wonderful world of AI-supported tools to support the software development lifecycle, including assessing your skills, should Take a look at SWE-Bench Throw.


(rme)

LEAVE A REPLY

Please enter your comment!
Please enter your name here