Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

"KI-Assistenten & No-Code/Low-Code- Plattformen"

Der Fachkräftemangel in der Softwareentwicklung ist deutlich spürbar. Eine Alternative zu mehr Fachkräften stellt die höhere Effizienz der Softwareentwicklung dar, also mehr Output der Einzelnen. Neben vielen Meetings verbringen Softwareentwickler oft ihre Zeit mit der wiederholten Entwicklung von Bootstrap-Code, Transformationen, Datenbankzugriffen usw. Können Low-Code/No-Code-Plattformen oder KI-Code-Assistenten Fachkräfte in ihrem Arbeitsalltag entlasten? In diesem Artikel werden die Werkzeuge genauer betrachtet. Wo bringen sie einen Mehrwert, wo liegen ihre Grenzen und bieten sie wirklich die Möglichkeit, die Produktivität der Fachkräften zu erhöhen?

  • 16.12.2022
  • Lesezeit: 14 Minuten
  • 42 Views

Zur Behebung des Fachkräftemangels in der Softwareentwicklung werden oft Maßnahmen wie die Ausbildung von Fachkräften im Inland oder die Rekrutierung von Fachkräften aus dem Ausland diskutiert. Dieser Artikel beleuchtet einen anderen Weg und soll einen alternativen Denkanstoß zur Diskussion rund um den Fachkräftemangel in der IT geben, denn es gibt Ansätze, wie die vorhandenen Entwickler schneller ans Ziel kommen können. Nicht wenige Fachkräfte sind heutzutage mit stupiden Aufgaben betraut, wie zum Beispiel der Programmierung von Microservices, die Datensätze aus einer Datenbank liefern. Dazu Web-Oberflächen, die Objekte auflisten und Details anzeigen. Dabei ist es eine Weisheit in der Softwareentwicklung, das Rad nicht neu zu erfinden.
Anstatt das Clean-Code-Prinzip „Don’t repeat yourself“ zu beherzigen [For09], werden aber in vielen Projekten sehr ähnliche Module wieder und wieder entwickelt. Die Abstraktionen in Form von Frameworks und Bibliotheken werden immer breiter und deren Varianten zahlreicher. Es bleibt die Frage, ob die eingesetzten Frameworks den Softwarestack wirklich abstrakter oder nur anders gestalten. Oft ist eher Letzteres der Fall, sonst würden die Entwickler ja nicht immer wieder sehr ähnlichen Code erneut schreiben. Wenn nun also viele Fachkräfte mit stupiden Aufgaben betraut sind, stellt sich die Frage nach den Alternativen. Welche Abstraktionsschichten sind möglich? Bereits seit einiger Zeit gibt es sogenannte Low-Code- und No-Code-Plattformen. Diese versprechen eine schnelle Applikationsentwicklung oder Integration von Anwendungen. Es ist durchaus ein Trend zur Nutzung dieser Plattformen zu erkennen. Daneben gibt es innovative Werkzeuge zur Generierung von Sourcecode. Diese drei Ansätze werden im Folgenden betrachtet.

No-Code = No Work?

Hinter der Bezeichnung No-Code steckt das Konzept eines Applikations-Baukastens. Damit können Personen ohne Programmierkenntnisse Anwendungen erstellen und beispielsweise über eine grafische Oberfläche Datenmodelle und Business-Prozesse konfigurieren. No-Code-Plattformen sind zumeist webbasiert und werden daher zur Erzeugung von Browseranwendungen genutzt. Einfache Datenhaltungsprobleme (z. B. Inventar, Liste der Aufträge, Kundenzugänge) lassen sich mit No-Code-Plattformen leicht lösen. Über Dialoge lassen sich Datenstrukturen und Dialoge erstellen. In Fachabteilungen wird dazu oft auf die Tabellenkalkulation Excel zurückgegriffen. „Excel-Anwendungen“ sind als kurzlebige Lösung denkbar, jedoch entstehen daraus nicht selten Fachanwendungen, deren Skalierung, Backupstrategie oder Datenschutzbewertung komplett fehlt. Es entsteht eine Schatten-IT. In diesen Situationen ist eine unternehmensweit eingesetzte No-Code-Plattform die deutlich bessere Alternative, da die Anwendungen über die Betriebs- und Backupstrategien der Plattform abgesichert sind. Indem die Anwendungen in der Plattform bekannt sind, können sie entsprechend auf Sicherheit und Datenschutz evaluiert werden. Für die Entwicklung der Anwendung innerhalb der No-Code-Plattform reichen dieselben Fähigkeiten wie bei der Variante Tabellenkalkulation. Für erweiterte Funktionen wie die Ansteuerung von APIs anderer Services ist dann doch ein wenig Verständnis für Web-Schnittstellen und Datenformate beim Anwender nötig. Insgesamt lassen sich so Anwendungen bis zu einem gewissen Komplexitätsgrad erzeugen. Danach benötigt die Anwendung dann doch ein Lösungskonzept (u. a. mit der Betrachtung von Datenmodellierung, Datenschutz und Sicherheit, Qualitätssicherung), für das Kenntnisse der Anwendungsentwicklung notwendig sind.

Low-Code und Citizen Developers

Eng verwandt mit No-Code- sind Low-Code-Plattformen. Diese bieten zusätzlich zum Baukastensystem noch Erweiterungsmöglichkeiten, zum Beispiel über Datenbank-, HTML- oder JavaScript-Code. Low-Code wird schon länger in Integrationsplattformen (z. B. Enterprise Service Bus) angewendet und auch für (Web-) Anwendungen existieren Low-Code-Lösungen wie Oracle Application Express [APEX] (siehe Abbildung 1) oder Mendix [Mendix] bereits seit Anfang der 2000er. Neben den einfachen Aufgaben, wie Datensätze anlegen, anzeigen und verändern, besteht hier die Möglichkeit zur Individualisierung. Braucht die Zeiterfassung beispielsweise eine mehrstufige Freigabefunktion oder ein selektives Berichtswesen, kann dies für den Anwender eingerichtet werden. So sollten die Anwendungen recht einfach erweiterbar sein und sich an die Bedürfnisse des Unternehmens anpassen lassen. Der wenige notwendige Code wird durch Anwender der Plattform entwickelt. Diese werden auch als Citizen Developer bezeichnet, können aber letztendlich beliebige Mitarbeiter im Unternehmen sein. Das Beispiel der „COVID-19 Therapeutic App“ [Baer20] zeigt, dass Anwendungen bei Bedarf schnell erstellt werden können. Die App wurde zur langfristigen Behandlung von COVID-19-Patienten in der Corona-Pandemie entwickelt. Erstellt wurde sie in einer rekordverdächtigen Zeit von gut zwei Wochen durch ein interdisziplinäres Team von Anwendungsentwicklern, Cloud-Fachkräften und Sicherheitsexperten sowie Spezialisten aus dem Gesundheitswesen. Das bestätigt die Aussage, dass ab einem gewissen Komplexitätsgrad einer Anwendung konzeptionelle Arbeit erforderlich ist, deren Expertise nicht bei Citizen Developers allein vorausgesetzt werden kann. Probleme mit Low-Code- und No-Code-Plattformen können entstehen, wenn technologische Neuerungen vom Anbieter nicht mitgegangen werden. Fehlt beispielsweise die Umsetzung von Smartphone-fähigen Anwendungen, schwindet die Akzeptanz bei Smartphone-Anwendern im Unternehmen oder mobile Use Cases sind gar nicht umsetzbar. Letztendlich befindet man sich im Korsett der Plattform. Wenn das Unternehmen dieses verlassen möchte, kommt ein Wechsel der Plattform aufgrund der eingerichteten Funktionen meist einer Neuentwicklung gleich, wenn sich überhaupt eine andere Plattform findet, die allen gewachsenen Anforderungen gerecht wird. Ist dies der Fall, ist zumindest der Bedarf so hoch, dass eine individuelle Lösung in Betracht gezogen werden kann.

Abb. 1: Beispielabbildung von der Webseite https://apex.oracle.com/de/platform/low-code/

Low-Code im Realeinsatz

So nützlich die Werkzeuge auch sind, bleiben sie nicht ohne Herausforderungen. Betriebs- und Wartungsaufgaben entstehen bei eigenem Hosting. Lizenzkosten und Anwenderschulungen für die Werkzeuge sind finanzielle Aspekte. All diese Aufwände sollten in einer Gesamtkostenbetrachtung (Total Cost of Ownership, TCO) eingerechnet werden. Zudem sollte die Abhängigkeit vom Plattformanbieter in Relation zur Kritikalität der Geschäftsanwendungen analysiert werden. Das Harvard Business Review [HBR] beschreibt auch die Citizen Developers als ein Risiko. Diese Entwickler tendieren dazu, schlecht skalierende oder fehlerbehaftete Anwendungen zu entwickeln und diese dann der IT über den Zaun zu werfen. Wenn sie das Unternehmen verlassen, gibt es keine Mitarbeiter, die das System gut genug kennen, um es zu warten oder weiterzuentwickeln. Ein Vorschlag des HBR ist ein hybrider Ansatz, der das Rapid Prototyping durch die Citizen Developers und die Finalisierung und Betreuung durch ein Entwicklungsteam aus der IT vorsieht. Aus Sicht der IT-Strategie ist dies ein möglicher Ansatz. Softwareentwickler lehnen solche Tools allerdings tendenziell ab – meist mit der Begründung, dass diese zu sehr einschränken und nicht für Profis gemacht sind. Es ist sicherlich auch eine Frage der Ehre, denn Low-Code-Anwendungen zu betreuen, mag keine dauerhafte Herausforderung sein und langweilt einige Softwareentwickler eher, als dass es sie fordert und motiviert. Ein Erfolgsfaktor bei der Entwicklung scheint also die frühzeitige und geförderte Zusammenarbeit zwischen Fachabteilung und IT zu sein. Letztendlich fällt durch die Plattformen eine gewisse Menge an Grundarbeit weg. Somit sind No-Code/Low-Code-Plattformen ob der Herausforderungen und Risiken dennoch ein Weg, mit weniger Fachkräften zum Ziel zu gelangen.

KI-unterstützte Programmierung

Wesentlich interessanter für Softwareentwickler sollte der jüngste Trend von Werkzeugen zur automatisierten Quellcodegenerierung sein, Assistenten mit künstlicher Intelligenz (KI). Solche sogenannten KI-Code-Generatoren bieten einen anderen Ansatz der Entwicklung. Ausgehend von natürlichsprachlicher Anforderungsbeschreibung generiert die KI Quellcodebestandteile (siehe Abbildung 2). Bekannte Vertreter dieser KI-Modelle sind die von OpenAI entwickelten GPT-3 [Wiki] und sein Nachfahre Codex [GPT-3Demo]. Demos von OpenAI Codex zeigen Eingabemöglichkeiten, wie zum Beispiel mithilfe eines Chats, über die beschrieben wird, wie das gewünschte User-Interface aussehen soll. Diese Demos erstellen aber kein vollwertiges Softwareprojekt, lediglich einige CSS-Klassen oder Codebestandteile. Jedoch gibt es Integrationen dieser KI-Modelle in Entwicklungswerkzeugen (IDEs). So existieren beispielsweise Plug-ins für die populäre IDE Visual Studio Code, die aber noch in den Kinderschuhen stecken. Microsoft hat nach der Sicherung von Exklusivrechten GPT-3 bereits in eigene Produkte integriert. Zum einen in die Low-Code-Plattform Power Apps [Lan21], zum anderen bei der Konzerntochter Github, im Produkt Github Copilot [CoP]. IDEs unterstützen üblicherweise die Textergänzung, beispielsweise von Variablen- oder Funktionsnamen. Die KI-Modelle wiederum ergänzen Codezeilen oder komplette Funktionsblöcke auf Basis des Funktionsnamens. Tabnine ist ein weiterer Vertreter der KI-Code-Generatoren. Das Produkt ist schon länger auf dem Markt und verwendet soweit bekannt noch den Vorgänger von GPT-3, GPT-2 [Bha19]. Tabnine erlaubt der KI in entsprechenden kommerziellen Versionen auch das Erlernen eigener Code-Stile von einer privaten Codebasis. Somit kann die KI ihre Vorschläge an die Entwicklungsstandards im Unternehmen anpassen. Einen anderen Ansatz der KI-gestützten Code-Generierung verfolgt die Google-Tochter Deepmind mit Alpha Code [AlphaC]. Das KI-Modell ist darauf trainiert, Beschreibungen von Coding Challenges zu verstehen und dazu eine Lösung zu programmieren. Dadurch wäre die Generierung von Code für eine fachliche Anforderung denkbar. Der Schreibstil einer Anforderung würde dann eher einer Mathematikaufgabe gleichen, aber Geschäftslogik und Ausnahmebehandlungen könnten in solcher Form beschrieben werden. Das Test-Driven Development (TDD) könnte dann auch so stattfinden, dass ein Entwickler oder Product Owner (PO) die Tests in halbformaler Sprache beschreibt und die KI den passenden Code generiert. So ist auch die Qualitätssicherung inhärent. Soweit bekannt, liegt der Fokus von Alpha Code jedoch auf Algorithmen, während GUIs oder UI-Elemente nicht generiert werden können. Laut Deepmind erreicht Alpha Code in Real-World Coding Challenges einen Rang unter den besten 54 Prozent, was angesichts des Forschungs- und Entwicklungsstadiums auch in Ordnung ist. Ob es für den Ersatz einer Fachkraft ausreicht, ist aber fraglich. Während KI-Code-Generatoren also noch in den Kinderschuhen stecken, sind KI-Code-Assistenten dagegen bereits anwendbar (eine Liste an Coding-Assistants ist hier zu finden: [AICA]) und können Entwickler unterstützen [Pou21], schneller Code zu erzeugen. Ganze Funktionen und wiederholte Elemente (z. B. Action Listener oder Getter/Setter-Methoden) können schnell erzeugt werden. Entwickler können sich stärker auf Design und knifflige Algorithmen konzentrieren. Jüngst hat Google auf seinem KI-Blog Erfahrungen zu einer eigens entwickelten AI Code Completion publiziert [Tab22]. Nach internen Tests hat die KI zu einer Verkürzung einer Entwicklungsiteration von 6 Prozent geführt, wobei schlussendlich nur 3 Prozent des Quellcodes durch die KI erzeugt wurde. Das ersetzt noch keinen Entwickler. In Zeiten des Fachkräftemangels wäre es wünschenswert, wenn der PO alle Anforderungen so in einen Chat schreibt, dass ein lauffähiges und qualitatives Produkt dabei herauskommt. Mit den derzeitigen Mitteln ist dies allerdings noch nicht möglich, wie auch ein Beitrag im MIT Technology Review [ZaLi21] feststellt. Auch dieses Vorgehen erfordert ein Lösungskonzept und setzt Kenntnisse einer Fachkraft voraus.

Abb. 2: In der IDE generiert die KI anhand der Funktionssignatur den blau hinterlegten Quellcode (Abbildung von der Github Copilot Webseite https://github.com/features/copilot)

Der Mehrwert für das eigene Business entscheidet

Um eine Softwarelösung für eine Aufgabe im Unternehmen zu entwickeln, gibt es eine breite Palette an Lösungen, und für viele Bereiche gibt es bereits Software diverser Anbieter. Der SaaS-Markt ist riesengroß und natürlich bedeutet eine SaaS-Subscription auch einen Cash-Out, aber ist es für Unternehmen wirklich sinnvoll, selbst zu entwickeln? Falls eine individuelle Lösung angestrebt wird, weil keine SaaS (Privacy, Kosten) oder kein Feature-Fit passen, sollten sich Unternehmen gut überlegen, eigene Software zu entwickeln. Ist die Software für einen elementaren Teil der Wertschöpfung relevant, sind die Auswahl und der Grad der Abhängigkeit zu einem Anbieter entscheidend. Sie bestimmen das Maß der Handlungsfähigkeit bei der Ausgestaltung der Lösung. No-Code/Low-Code-Plattformen erlauben zumindest das Rapid Prototyping einer Lösung und die Evaluierung des Mehrwerts einer Anwendung. Diese Alternative ist auf jeden Fall dazu geeignet, um wild gewachsene Excel- oder Access-Lösungen abzulösen. Dabei sollten die Abhängigkeit zu einem Anbieter, der Know-how-Transfer zwischen der IT und den Citizen Developers sowie die Total Cost of Ownership betrachtet werden. Zudem sollte auch erwähnt werden, dass die genannten Potenziale diesen Plattformen schon vor vier Jahren zugeschrieben wurden [Wei18]. Durchgesetzt haben sich diese bisher nicht. KI-basierte Entwicklungswerkzeuge existieren bereits und unterstützen Citizen Developers wie Softwareentwickler dabei, Anwendungen zu erstellen. Es wäre nicht verwunderlich, wenn diese Funktionen ausgebaut werden und zu einer höheren Effizienz als heute gelangen. Die Definition von besseren Datenmodellen, eine präventive Fehlerbehandlung oder Sicherheitsbetrachtungen sind erreichbare Fähigkeiten für ML-Modelle.

No-Code, Low-Code und KI: ein Fazit

Entstehen im Unternehmen Anwendungen durch Mitarbeiter, sind No-Code/ Low-Code-Plattformen womöglich die bessere Basis als Excel-Lösungen. Damit lassen sich ordentliche Anwendungen erstellen – ganz ohne oder zumindest nur mit wenigen Fachkräften zur Pflege und Qualitätssicherung. KI-Code-Generatoren unterstützen bei der Erzeugung von Code-Anteilen, was bei Entwicklern eine höhere Akzeptanz hat und sich qualitativ weiterentwickeln und durchsetzen wird. Es ist noch nicht ausreichend untersucht, wie stark diese Werkzeuge die Effizienz erhöhen. Den akuten Fachkräftemangel behebt die KI jedoch nicht. Bei allen beschriebenen Ansätzen wird eines klar: Die Erstellung von Quellcode mag durch die Werkzeuge teilweise entfallen oder schneller erfolgen. Die Notwendigkeit, ein ausreichendes Lösungskonzept für Anwendungen zu erstellen, verbleibt – und damit der hohe Bedarf an Fachkräften.

Weitere Informationen

[AICA]
https://sourceforge.net/software/ai-coding-assistants/

[AlphaC] The AlphaCode team, 22.2.2022,
https://www.deepmind.com/blog/competitive-programming-with-alphacode

[APEX]
https://apex.oracle.com/de/

[Baer20] T. Baer, zdnet, 10.4.2020, siehe:
https://www.zdnet.com/article/launching-oracles-covid-19-therapeutic-app-the-back-story/

[Bha19] Bhagyashree R, 23.7.2019,
https://hub.packtpub.com/introducing-deep-tabnine-a-language-agnostic-autocompleter-based-on-openais-gpt-2/

[CoP]
https://github.com/features/copilot/

[For09] N. Ford, Produktiv programmieren, O‘Reilly, 2009

[GPT-3Demo]
https://gpt3demo.com/apps/openai-codex

[HBR]
https://hbr.org/2021/06/when-low-code-no-code-development-works-and-when-it-doesnt

[Lan21]
J. Langston, 25.5.2021,
https://blogs.microsoft.com/ai/from-conversation-to-code-microsoft-introduces-its-first-product-features-powered-by-gpt-3/

[Mendix]
https://www.mendix.com/de/

[Pou21] D. Poulopoulos, 6.4.2021,
https://towardsdatascience.com/write-high-quality-code-with-an-ai-assistant-8ec3096fcbac

[Tab22] M. Tabachnyk, 26.7.2022, siehe:
https://ai.googleblog.com/2022/07/ml-enhanced-code-completion-improves.html

[Wei18] T. R. Weiss, 20.4.2018,
https://www.itprotoday.com/mobile-apps/no-code-low-code-development-platforms-help-organizations-meet-growing-app-demand

[Wiki] Quelle:
https://en.wikipedia.org/wiki/GPT-3 24.09.2022, zuletzt abgerufen 29.09.2022

[ZaLi21] Min Zhang, Junatao Li, MIT Technology Review, 2021, siehe:
https://www.sciencedirect.com/science/article/pii/S2667325821002193

. . .
Vorheriger Artikel
Wider die SPA-Fixierung
Nächster Artikel
Cloud Security

Author Image
Zu Inhalten
Patrick Steinert ist Head of Technology Consulting bei der tarent solutions GmbH. Er entwickelt seit mehr als zehn Jahren neue Produkte mit innovativen Technologien im Web und IoT-Umfeld. Für die tarent berät er Unternehmen bei der Nutzung von Technologien und bei der Entwicklung von Produkten im Unternehmenseinsatz. Patrick Steinert hält regelmäßig Vorträge zu Technologiethemen an Universitäten und auf Konferenzen.

Artikel teilen

Nächster Artikel
Cloud Security