Analyse

3/24 Lesedauer: min

KI als Heilmittel gegen den IT-Fachkräftemangel

Die Künstliche Intelligenz revolutioniert die Softwareentwicklung, indem sie Routineaufgaben automatisiert und die Codequalität verbessert. KI-Tools unterstützen Entwickler und Entwicklerinnen beim Erlernen neuer Technologien und erhöhen die Effizienz des Entwicklungsprozesses. Auf diese Weise könnte der Fachkräftemangel idealerweise abgemildert werden. Doch wie sieht die Realität aus?

Bild: Shutterstock / Asso

Künstliche Intelligenz könnte nicht nur eine technologische, sondern auch eine ökonomische Revolution einläuten. Durch die Automatisierung von Routineaufgaben und die Erhöhung der Effizienz in der Softwareerstellung verspricht KI, die Lücke zu schließen, die durch den Mangel an qualifizierten Fachkräften entsteht. Doch diese technologischen Fortschritte kommen nicht ohne ihre eigenen Herausforderungen. Dieser Artikel beleuchtet die transformative Kraft der KI in der Softwareentwicklung und wirft einen Blick auf die daraus resultierenden Chancen und Herausforderungen für die IT-Branche. Er bietet einen umfassenden Überblick über den aktuellen Stand der Technik, diskutiert Einsatzmöglichkeiten der KI in verschiedenen Phasen der Softwareentwicklung und bewertet sowohl die Vorteile als auch die Risiken, die mit dieser Entwicklung verbunden sind.

IT-Fachkräftemangel in Zahlen

Durch die tiefgreifende Digitalisierung von Wirtschaft und Gesellschaft gewinnt die Rolle von IT-Fachkräften eine noch nie dagewesene Bedeutung. Der unverzichtbare Bedarf an IT-Fachwissen spiegelt sich auch in der Beschäftigungsstatistik wider. Seit 2013 verzeichnet die IT-Branche das zweitstärkste Beschäftigungswachstum aller Berufsgruppen, mit einem beeindruckenden Zuwachs von 248.651 Fachkräften. Doch übersteigt das vorhandene und prognostizierte Angebot an IT-Fachkräften immer mehr den stark wachsenden Bedarf. Das zeigt deutlich der Blick auf einige Zahlen:

  • Im Jahr 2023 gab es in Deutschland 149.000 unbesetzte IT-Jobs. Das ist eine Steigerung um 12.000 im Vergleich zum Vorjahr.
  • 70 Prozent der Unternehmen geben an, dass ein Mangel an IT-Fachkräften herrscht.
  • 77 Prozent der Unternehmen befürchten, dass sich diese Situation weiter verschärfen wird.
  • Freie Positionen bleiben durchschnittlich 7,7 Monate unbesetzt

Der demografische Wandel und die unzureichende Anzahl von Hochschulabsolventen, die in die IT-Branche einsteigen, lassen erwarten, dass der Fachkräftemangel weiter zunehmen wird. Diese Entwicklung könnte die Digitalisierung in vielen Bereichen bremsen, da Unternehmen Schwierigkeiten haben werden, offene Stellen mit qualifiziertem Personal zu besetzen. Allerdings gibt es auch Hoffnung, dass die fortschreitende Automatisierung und der Einsatz von KI dazu beitragen könnten, diese Lücke zu schließen. Indem Routineaufgaben automatisiert werden, könnten vorhandene Fachkräfte für komplexere und innovativere Projekte freigesetzt werden, was die Effizienz und Produktivität in der Softwareentwicklung potenziell erhöht.

Die Zahl der offenen IT-Stellen steigt. Der Trend weist eindeutig nach oben (Quelle: Statista).

KI oder das Ende des Programmierens?

Das Handelsblatt titelte am 13. November 2023: „Läutet KI das Ende des Programmierens ein?“ Zitiert wird der Chef des Chipkonzerns Nvidia, Jensen Huang, mit den Worten: „Heute ist jeder ein Programmierer. Sie müssen nur noch dem Computer sagen, was sie wollen, und er setzt es um.“ Das jahrelange Perfektionieren einer Programmiersprache könne schon bald überflüssig werden, prognostiziert Huang weiter. Und einige Zeilen später im Text sagt Matt Welsh: „Es ist das Ende des Programmierens.“ Welsh arbeitete viele Jahre als Entwickler für Google und Apple. In eine ähnliche Richtung geht ein in der FAZ abgedruckter Artikel, in dem es heißt: „Softwareentwickler und Mathematiker weisen das höchste Risiko auf, von generativer KI ersetzt zu werden, während Kraftfahrer und Kosmetiker kaum betroffen sind“.

Diese apokalyptischen Prognosen dürften nach bisherigen Erfahrungen mit technologischen Transformationen zwar übertrieben sein, aber dass die Software-Entwicklung einer massiven Veränderung unterliegen wird, lässt sich kaum bezweifeln. Softwareentwicklung umfasst dabei weit mehr als nur das Schreiben von Quellcode. Sie ist ein komplexer Prozess, der von der Planung und Analyse bis hin zur Wartung reicht. Der Einsatz von KI bietet dabei das Potenzial, viele dieser Phasen zu verändern – im Idealfall zu optimieren und effizienter zu gestalten.

Darüber hinaus erleichtert KI auch das Erlernen neuer Technologien und Programmiersprachen durch die Bereitstellung kontextbezogener Beispiele und Tutorials. Entwickler und Entwicklerinnen können spezifische Fragen stellen und erhalten sofort relevante Antworten und Codebeispiele, was ein effizientes und zielgerichtetes Lernen fördert. Zusammenfassend kann gesagt werden: Der Einfluss von KI im Softwareentwicklungsprozess ist tiefgreifend und vielseitig. Von der Planung bis zur Wartung kann KI die Effizienz steigern, die Fehlerquote senken und die Qualität der entwickelten Software verbessern. Besonders stark ist die KI-Unterstützung in der Phase der Implementierung. KI-gestützte Tools wie GitHub Copilot revolutionieren die Art und Weise, wie Code geschrieben wird. Diese Technologien automatisieren nicht nur das Codieren, sondern verbessern auch die Effizienz und Qualität der Softwareentwicklung erheblich.

Phase des Softwareentwicklungs-prozesses

Mögliche KI-Unterstützung

Planung und Analyse

In der Planungs- und Analysephase kann KI dabei helfen, die Anforderungen der Stakeholder besser zu verstehen und zu verarbeiten. Durch fortschrittliche Analysetechniken können Bedürfnisse und Erwartungen präziser erfasst und in funktionale Spezifikationen umgesetzt werden. KI kann auch zur Risikobewertung und zur Vorhersage von Projektzeitplänen durch das Lernen aus früheren Projektdaten genutzt werden.

Design und Architektur

Im Bereich Design und Architektur ermöglicht KI eine präzisere Modellierung von Softwarearchitekturen. KI-gestützte Tools können verschiedene Designalternativen simulieren und bewerten, um die bestmögliche Lösung vorzuschlagen.

Implementierung

Die Implementierungsphase profitiert am stärksten von KI. Tools wie GitHub Copilot automatisieren die Codeerstellung und bieten intelligente Codevervollständigung, um schneller und mit weniger Fehlern zu programmieren. Diese Systeme lernen aus umfangreichen Code-Repositorien und bieten Vorschläge, die nicht nur syntaktisch, sondern auch kontextuell angepasst sind.

Testing und Qualitätssicherung

KI-Technologien sind in der Lage, komplexe Testfälle zu generieren, die menschliche Tester möglicherweise übersehen würden. Darüber hinaus können sie in Echtzeit Fehler erkennen und Korrekturen vorschlagen. Dies verbessert die Qualität der Software erheblich und reduziert die Zeit für manuelle Tests.

Deployment und Wartung

Beim Deployment können KI-Tools zur Automatisierung der Auslieferungsprozesse eingesetzt werden, indem sie optimale Zeitfenster für Updates vorhersagen und die Kompatibilität neuer Softwareversionen mit bestehenden Systemen sicherstellen. In der Wartungsphase hilft KI, Fehler schnell zu identifizieren und Vorschläge zur Behebung zu machen.

Eine rechtliche Grauzone: das Urheberrecht an Quellcode

Als ein komplexes Thema an der Schnittstelle von Recht, Technologie und kreativer Arbeit erweist sich die Frage des Urheberrechts bei KI-generiertem Quellcode. Mit dem Aufkommen von generativen KI-Tools stellen sich rechtliche Fragen, die bisher in der Gesetzgebung noch nicht eindeutig geklärt sind. Im traditionellen Verständnis des Urheberrechts ist ein Werk dann schützbar, wenn es eine persönliche geistige Schöpfung des Urhebers darstellt. Das setzt Kreativität und eine gewisse Schöpfungshöhe voraus, die in der Regel das Ergebnis menschlichen Denkens und Handelns sind. KI-Systeme jedoch, die auf Algorithmen und maschinellem Lernen basieren, stellen diese Definition vor Herausforderungen. Wenn ein KI-Programm einen Code generiert, ist es nicht ohne Weiteres klar, wer oder was als Urheber gilt, da die „Schöpfung“ nicht direkt aus dem menschlichen Geist entspringt, sondern aus der maschinellen Verarbeitung von Daten und vorgegebenen Mustern.

Einige Juristen argumentieren deshalb, dass KI-generierter Code nicht urheberrechtlich schützbar sein sollte, da keine menschliche Kreativität direkt involviert ist. Andere wiederum plädieren dafür, dass die Entwickler der KI oder die Personen, die den Kreativprozess initiiert und geleitet haben, als Urheber angesehen werden. Diese Perspektive basiert auf der Annahme, dass die menschliche Interaktion mit der KI, sei es durch das Trainieren der Algorithmen oder das Definieren der Ausgangsparameter, als ausreichend für eine Urheberschaft betrachtet werden kann. Selbst wenn KI-Tools hochwertigen Code produzieren, müssen Unternehmen und Entwickler und Entwicklerinnen in jedem Fall sicherstellen, dass dieser Code den geltenden Normen und Sicherheitsstandards entspricht. Das bedeutet, dass eine menschliche Überprüfung und Anpassung fast immer erforderlich sind, um die KI-Arbeit rechtlich und funktional in bestehende Projekte zu integrieren.

In Anbetracht dieser Unsicherheiten muss der Gesetzgeber klare Richtlinien schaffen, die definieren, wie mit dem Urheberrecht von KI-generiertem Quellcode umgegangen werden soll, wer die Rechte an solchem Code besitzt und wie er lizenziert und genutzt werden kann.

Beispiele für mächtige KI-Werkzeuge

Obwohl die KI-Revolution noch am Anfang steht, zeigt sich bereits jetzt der Effekt, dass KI-gestützte Entwickler-Werkzeuge werden immer leistungsfähiger werden, allen voran GitHub Copilot. Diese Tools, die auf umfangreichen Quellcodesammlungen und maschinellem Lernen basieren, verstehen den Kontext hinter dem Code und bieten intelligente Lösungen. Die Fähigkeiten reichen von automatisierter Codevervollständigung bis hin zur Unterstützung verschiedener Programmiersprachen, wodurch die Produktivität von Entwicklern deutlich verbessert wird.

Neben GitHub Copilot gibt es weitere KI-gestützte Werkzeuge wie zum Beispiel:

  • Tabnine: Verwendet maschinelles Lernen, um Code-Vervollständigungen in unterschiedlichen Programmiersprachen und Entwicklungsumgebungen bereitzustellen.
  • SourceAI: Generiert Code auf der Basis von Beschreibungen in natürlicher Sprache. Das Tool unterstützt mehrere Programmiersprachen.
  • CodeWhisperer: Bietet Codevorschläge und basiert auf natürlicher Sprache.
  • Replit: Bietet eine vollständige Online-Entwicklungsumgebung mit KI-Unterstützung, einschließlich Code-Generator, Autovervollständigung und Unterstützung beim Debugging.

Trotz der Fortschritte in der KI-gestützten Softwareentwicklung werfen diese Tools aber auch neue Probleme auf. Herausforderungen sind etwa fehlerhafte oder suboptimale Code-Vorschläge, besonders bei komplexeren Anforderungen. Entwickler müssen die Vorschläge manuell überprüfen und anpassen.

GitHub Copilot in Visual Studio: Schritt 1: Anfrage über Prompt (natürlichsprachlich), Schritt 2: Vorschlag (KI-generiert), Schritt 3: Übernahme in Quellcode-Datei (ggf. mit Anpassungen)

Erkenntnisse aus der Wissenschaft

Die wissenschaftliche Forschung zum Einfluss von KI auf die Softwareentwicklung hat ein breites Spektrum an Erkenntnissen hervorgebracht. Sie reichen von der Automatisierung spezifischer Aufgaben bis hin zu grundlegenden Veränderungen in der Rolle der Softwareingenieure:

Automatisierung und Mikroautomatisierungen: Automatisierungen finden häufig in Form von Mikroautomatisierungen statt, die kleinere, spezifische Aufgaben betreffen. Obwohl diese nützlich sind, erwartetet man nicht, dass KI- und Automatisierungswerkzeuge die grundlegenden Aspekte der Softwareentwicklung kurzfristig erheblich verändern werden.

Integration von KI in Entwicklungsprozesse: KI und Softwareentwicklung sind eng miteinander verwoben, wobei Techniken wie neuronale Netze und evolutionäre Algorithmen zunehmend für spezifische Softwareentwicklungsprobleme eingesetzt werden.

Langfristige Zukunftsvisionen: KI wird nach und nach die Softwareentwicklung verändern, ohne jedoch die Rolle des Softwareingenieurs obsolet zu machen.

Einsatz von GitHub Copilot: Eine spezifische Untersuchung zu GitHub Copilot zeigt, dass diese KI in der Lage ist, effiziente Lösungen für grundlegende Programmierprobleme zu liefern. Allerdings weisen die Ergebnisse auch auf Inkonsistenzen bei der Reproduzierbarkeit und Fehleranfälligkeit bei komplexeren Aufgaben hin. Die Studie hebt hervor, dass KI-generierte Lösungen oft den menschlichen Lösungen ähnlich sind, aber nicht immer zuverlässig.

Diese Erkenntnisse verdeutlichen, dass KI bereits jetzt eine signifikante Rolle in der Softwareentwicklung spielt, insbesondere durch die Automatisierung. Es bleibt jedoch eine Skepsis hinsichtlich ihrer Fähigkeit in naher Zukunft tiefgreifende Veränderungen in den Kernpraktiken zu bewirken. Langfristig könnte KI jedoch, unterstützt durch kontinuierliche Forschung und Entwicklung, die Art und Weise, wie Software entwickelt wird, weiter transformieren und die Effizienz und Effektivität der Prozesse erheblich verbessern. Die Integration von KI in Softwareentwicklungsprozesse erfordert allerdings eine ständige Anpassung und Weiterbildung der Entwickler, um die neuen Technologien optimal zu nutzen.

Fazit & Ausblick: Chancen und Risiken

Die Integration von KI in der Softwareentwicklung birgt sowohl vielversprechende Chancen als auch signifikante Risiken, deren Wirkungsbreite von operativen Abläufen bis hin zu strategischen Überlegungen reicht. Angesichts eines angespannten Arbeitsmarktes, der durch einen eklatanten Mangel an IT-Fachkräften gekennzeichnet ist, könnte KI eine kritische Rolle spielen.

Auf der einen Seite könnte KI durch die Automatisierung von Routineaufgaben und eine mögliche Produktivitätssteigerung von 40 bis 80 Prozent bestehende IT-Teams entlasten und ihnen ermöglichen, sich auf anspruchsvollere Aufgaben zu konzentrieren. Dies wäre insbesondere für kleinere Unternehmen von Vorteil, für die hochentwickelte IT-Lösungen bislang unzugänglich waren.

Die Nutzung von KI in der Softwareentwicklung ist jedoch nicht ohne Risiken. Die Erstellung von Quellcode durch KI-Tools basiert auf dem Lernen aus bestehenden Codefragmenten, was fehleranfällig sein kann. Generierter Code erfordert daher eine zusätzliche Überprüfung, um sicherzustellen, dass er den Projektanforderungen und -standards entspricht. Die Qualitätssicherung kann komplex sein, insbesondere wenn Entwickler auf die Genauigkeit der KI-Outputs angewiesen sind, aber nicht über ausreichend eigene Expertise verfügen, um Fehler zu erkennen. Zusätzlich müssen auch Sicherheits- und Datenschutzbedenken ernst genommen werden. KI-Systeme halten nicht notwendigerweise die erforderlichen Sicherheitsstandards ein, was zu kritischen Schwachstellen in Anwendungen führen kann.

Rechtliche Aspekte, insbesondere das Urheberrecht an KI-generiertem Code, sind ebenfalls noch weitgehend ungeklärt und stellen ein weiteres Problemfeld dar. Zudem könnte der KI-Einsatz theoretisch die Löhne für Entwickler drücken, indem die Technologie Routinearbeiten übernimmt, obwohl der Fachkräftemangel und der steigende Bedarf an qualifizierten Entwicklern diesem Trend entgegenwirken sollte.

Die Frage, ob Softwareentwickler von KI ersetzt werden, beschäftigt sowohl Experten in der Technologiebranche als auch die Entwicklergemeinschaft selbst. Die vorherrschende Meinung ist, dass KI-Tools als Ergänzungen zu menschlichen Entwicklern dienen und nicht als deren Ersatz. Um KI optimal zu nutzen, ist eine spezifische Anpassung der Tools an die Anforderungen der Softwareentwicklung erforderlich. Tools wie GitHub Copilot weisen den Weg zu einer neuen Generation von Entwicklungsunterstützungen.

Diese Werkzeuge können die Produktivität steigern, indem sie repetitive oder standardisierte Aufgaben automatisieren. Zudem ist Softwareentwicklung nicht nur eine technische, sondern auch eine soziale Aktivität, die oft Teamarbeit und direkte Kommunikation erfordert. Die Fähigkeit, im Team zu arbeiten, sich in Unternehmenskulturen einzufügen und kreative Lösungen zu entwickeln, sind menschliche Aspekte, die durch KI schwer zu replizieren sind. Entwicklerteams profitieren von der Vielfalt des Denkens und der Erfahrung, die einzelne Mitglieder in das Projekt einbringen. Das sind Fähigkeiten, die eine KI derzeit nicht vollständig nachahmen kann. Der Fachkräftemangel in der IT im Allgemeinen und in der Softwareentwicklung im Speziellen kann durch KI bestenfalls gelindert werden. Eine KI kann auch heute noch keine IT-Lösungen eigenständig erstellen, das heißt, auch ein fortschrittliches Werkzeug muss durch Experten bedient werden. Zumindest heute noch und in naher Zukunft.

Praxistipps: Entwickeln mit KI

Tipps für ein gutes Prompting

Um mit KI-Tools wie ChatGPT effektiv zu arbeiten, ist es entscheidend, wie Sie Ihre Anfragen formulieren. Das Mittelstand-Digital Zentrum Berlin gibt folgende Tipps dazu:

Präzision: Seien Sie spezifisch in Ihren Anfragen. Anstelle einer allgemeinen Aufforderung präzisieren Sie Ihren Wunsch.

Kontext: Mehr Kontext verbessert die Ergebnisse erheblich.

Iterative Verfeinerung: Beginnen Sie mit einer Grundanforderung und fügen Sie schrittweise Details hinzu, um die Genauigkeit zu erhöhen.

Few-Shot-Prompting: Geben Sie der KI konkrete Beispiele für den gewünschten Stil oder Inhalt, um sie in die richtige Richtung zu lenken.

Role Prompting: Weisen Sie der KI eine spezifische Rolle zu, um eine gewünschte Tonalität zu erreichen.

Chain-of-Thought Prompting: Fordern Sie die KI auf, ihren Denk- oder Lösungsprozess Schritt für Schritt zu erklären. Dies kann bei komplexeren Problemlösungen hilfreich sein, um die Gedankengänge der KI zu verstehen.

Vermeidung von Missverständnissen: KI-Systeme können nicht Gedanken lesen. Stellen Sie sicher, dass Ihre Anweisungen klar und eindeutig sind. Vermeiden Sie vage Anforderungen und seien Sie explizit in Ihren Anfragen.

Feedback geben:  Nutzen Sie die Möglichkeit, auf die Antworten der KI zu reagieren. Wenn eine Antwort nicht Ihren Erwartungen entspricht, spezifizieren Sie, was verbessert werden könnte, um bessere Ergebnisse zu erzielen.

Veikko Krypczyk

Freier Autor

Dr. Veikko Krypczyk ist Professor für Informatik und Wirtschaftsinformatik und Software-Entwickler aus Leidenschaft.