Zum Inhalt springen
Dieser Artikel wurde mittels KI aus dem Japanischen übersetzt
Auf Japanisch lesen
Dieser Artikel ist gemeinfrei (CC0). Fühlen Sie sich frei, ihn uneingeschränkt zu nutzen. CC0 1.0 Universal

Der Omnidirektionale Ingenieur im Zeitalter der Liquidware

Es ist bekannt, dass generative KI Bilder erzeugen kann, indem sie fotorealistische Bilder, Illustrationen und Gemälde allein durch Befolgung von Anweisungen erstellt.

In der Geschäftswelt konzentriert sich die Aufmerksamkeit unterdessen auf die Fähigkeit generativer KI, Programme zu generieren.

Chat-basierte KI wird durch grundlegende große Sprachmodelle realisiert, wodurch sie hochgradig in der Lage ist, sich in verschiedenen Sprachen zu unterhalten und zwischen ihnen zu übersetzen.

Programmiersprachen, die zur Erstellung von Programmen verwendet werden, sind ebenfalls eine Art Sprache. Menschliche Programmierer übersetzen in gewisser Weise mündlich erhaltene Softwareanforderungen in Programmiersprachen.

Aus diesem Grund ist konversationelle generative KI, die große Sprachmodelle verwendet, auch im Programmieren hochbegabt.

Des Weiteren ist Programmieren eine Art intellektueller Arbeit, bei der die Korrektheit des Outputs oft automatisch und sofort überprüft werden kann. Dies liegt daran, dass das Ausführen des erstellten Programms eine automatische Bestimmung ermöglicht, ob die gewünschten Ergebnisse erzielt werden.

Tatsächlich erstellen menschliche Programmierer oft gleichzeitig mit dem Hauptprogramm Testprogramme, um zu überprüfen, ob das Hauptprogramm wie beabsichtigt funktioniert, und dessen Verhalten während des Entwicklungsfortschritts zu kontrollieren.

Generative KI kann auch während des Testens mit dem Programmieren fortfahren, was einen Mechanismus ermöglicht, bei dem, wenn ein Mensch präzise Anweisungen gibt, die KI das Programm automatisch iterieren und vervollständigen kann, bis es die Tests besteht.

Natürlich gibt es aufgrund der Einschränkungen der Programmierfähigkeit generativer KI und der Mehrdeutigkeit menschlicher Anweisungen viele Fälle, in denen Tests auch nach mehreren Iterationen nicht bestanden werden können. Auch können Tests unzureichend oder fehlerhaft sein, was oft zu Fehlern oder Problemen im fertigen Programm führt.

Wenn jedoch die Fähigkeiten generativer KI sich verbessern, menschliche Ingenieure ihre Anweisungsmethoden verfeinern und das Programmierwissen generativer KI durch Internetsuchen erweitert wird, nimmt der Umfang, in dem geeignete Programme automatisch generiert werden können, Tag für Tag zu.

Darüber hinaus konzentrieren sich Top-Unternehmen, die generative KI-Forschung und -Entwicklung betreiben, angesichts der Aufmerksamkeit der Geschäftswelt auch auf die Verbesserung der Programmierfähigkeiten generativer KI.

Unter diesen Umständen wird erwartet, dass die Ausweitung der Bereiche und des Umfangs, in denen automatische Programmierung generativer KI anvertraut werden kann, sich beschleunigen wird.

Es gibt viele Fälle, in denen Personen, die noch nie zuvor Programme entwickelt haben, eine grundlegende Entwicklungsumgebung basierend auf Internetinformationen eingerichtet haben und dann generative KI die Programmierung übernehmen ließen, wodurch Programme in einer kollaborativen Anstrengung fertiggestellt wurden.

Ich selbst nutze als Programmierer generative KI für die Programmierung. Sobald ich den Dreh raus habe, kann ich Software fertigstellen, ohne das Programm überhaupt bearbeiten zu müssen, einfach indem ich Programme in Dateien kopiere oder sie gemäß den Anweisungen der generativen KI ausschneide und einfüge.

Natürlich gibt es viele Fälle, in denen ich auf Schwierigkeiten stoße. Diese sind meist darauf zurückzuführen, dass mein Computer oder meine Programmierentwicklungstools leicht abweichende Einstellungen von den typischen Konfigurationen haben, oder dass freie Softwarekomponenten neuer sind als das, was die generative KI gelernt hat, was zu einer Wissenslücke führt, oder manchmal ist der von mir angefragte Inhalt etwas ungewöhnlich.

In den meisten Fällen, wenn keine solchen geringfügigen Unterschiede oder besonderen Umstände vorliegen und ich anweise, eine sehr allgemeine Softwarefunktion zu erstellen, werden geeignete Programme generiert.

Auf dem Weg ins Zeitalter der Liquidware

Als Softwareentwickler kann ich die von mir entwickelte Software veröffentlichen. Und die Software, die wir Ingenieure veröffentlichen, wird von verschiedenen Benutzern genutzt.

Die Zukunft, in der jeder diese Softwareentwicklung mit generativer KI durchführen kann, ist eine Erweiterung der bisherigen Diskussion.

Dies ist jedoch nicht nur eine Änderung auf der Seite der Softwareentwicklung. Eine signifikante Änderung wird auch auf der Benutzerseite stattfinden.

Generative KI verbal anzuweisen, Funktionen automatisch zu Software hinzuzufügen oder zu ändern, kann nicht nur in der Entwicklungsphase vor der Softwarefreigabe erfolgen, sondern auch während des Gebrauchs. Darüber hinaus kann dies von den Softwarebenutzern selbst durchgeführt werden.

Softwareentwickler müssen lediglich die zulässigen und unveränderlichen Bereiche definieren und die Software mit einer generativen KI-gestützten Anpassungsfunktion freigeben.

Dies würde es Benutzern ermöglichen, generative KI aufzufordern, kleinere Usability-Probleme oder Bildschirmdesign-Präferenzen zu ändern.

Darüber hinaus wäre es möglich, nützliche Funktionen aus anderen Apps hinzuzufügen, eine Kombination mehrerer Operationen mit einem einzigen Klick auszuführen oder häufig aufgerufene Bildschirme auf einem einzigen Display anzuzeigen.

Aus der Perspektive des Softwareentwicklers bietet die Ermöglichung solcher Benutzeranpassungen erhebliche Vorteile. Es entfällt die Notwendigkeit, Funktionen basierend auf Benutzeranfragen hinzuzufügen, und in Anbetracht dessen, dass dies die Softwarepopularität durch Vermeidung von negativem Feedback und Unzufriedenheit bezüglich der Benutzerfreundlichkeit steigern könnte, ist es ein großer Gewinn.

Wenn Benutzer Bildschirme und Funktionen auf diese Weise frei ändern können, weicht das Konzept erheblich von dem ab, was wir traditionell als "Software" bezeichneten.

Es wäre angebracht, es "Liquidware" zu nennen, um zu kennzeichnen, dass es noch flüssiger und anpassungsfähiger ist als Software (die im Vergleich zu Hardware flexibel ist) und dass es sich perfekt an den Benutzer anpasst.

In der Vergangenheit wurden Funktionen ausschließlich durch Hardware realisiert, aber dann entstand austauschbare Software, die es ermöglichte, Funktionen durch eine Kombination aus Hardware + Software zu realisieren.

Von dort aus können wir uns vorstellen, dass Liquidware entsteht, die sich auf Teile bezieht, die von generativer KI modifiziert werden können. Somit würden die Gesamtfunktionen durch Hardware + Software (vom Entwickler bereitgestellt) + Liquidware (Benutzermodifikationen) realisiert.

In diesem Zeitalter der Liquidware werden die Ideen zur benutzerseitigen Modifikation explodieren.

Eine bahnbrechende Modifikationsidee, die von einem Benutzer erfunden wurde, könnte in sozialen Medien zu einem heißen Thema werden und andere dazu bringen, verschiedene Liquidware nachzuahmen und zu modifizieren.

Auch Liquidware, die verschiedene Arten von Software integrieren und verwalten kann, wird zwangsläufig entstehen. Dies würde es Benutzern ermöglichen, Zeitleisten von mehreren verschiedenen SNS-Plattformen in einer einzigen App anzuzeigen oder Suchergebnisse von zahlreichen Plattformen zu integrieren.

Auf diese Weise wird in einer Welt, in der Liquidware weit verbreitet ist, eine Vielzahl von Geräten, einschließlich PCs und Smartphones, Funktionen bereitstellen, die perfekt zum Leben und den Aktivitäten jedes Einzelnen passen.

Ein aktuelles Phänomen

Was für Softwareentwickler wie mich wichtig ist: Liquidware ist kein futuristisches Konzept oder etwas, das noch mehrere Jahre entfernt ist.

Das liegt daran, dass sehr einfache Liquidware bereits realisierbar ist.

Nehmen wir zum Beispiel an, ich bin ein Ingenieur, der eine Webanwendung für die E-Commerce-Website meines Unternehmens entwickelt.

Solche Webanwendungen verfügen typischerweise über Datenbanken, Verkaufsverwaltungssysteme und Produktversandsysteme auf Servern, die vom Unternehmen verwaltet oder von vertraglich gebundenen Cloud-Diensten bereitgestellt werden. Wenn ein Benutzer einen Kauf tätigt, verknüpfen sich diese Systeme, um Zahlungen einzuziehen und Produkte zu versenden.

Die Kernsysteme und Datenbanken für diese Operationen können nicht willkürlich geändert werden.

Wenn jedoch das Design der E-Commerce-Website, die Benutzer sehen, zur Bequemlichkeit jedes Benutzers geändert wird, verursacht dies in der Regel wenig Probleme. Natürlich ist es ein Problem, wenn die Änderungen eines Benutzers den Bildschirm eines anderen Benutzers beeinflussen, aber individuelle, benutzerspezifische Anpassungen sind in Ordnung.

Verschiedene Änderungen sind denkbar: Text vergrößern, den Hintergrund auf einen dunklen Ton ändern, häufig gedrückte Tasten an Positionen verschieben, die mit der linken Hand leicht erreichbar sind, Elemente auf einer Listenansicht nach Preis sortieren oder die Details zweier Produkte nebeneinander anzeigen.

Technisch gesehen können diese Änderungen durch die Modifikation von Konfigurationsdateien und Programmen wie HTML, CSS und JavaScript erreicht werden, die den Bildschirm im Browser anzeigen.

In Bezug auf die Sicherheit laufen diese Dateien ursprünglich im Webbrowser, sodass sie von Ingenieuren, die mit Webanwendungen vertraut sind, geändert werden können. Daher verwalten sie nur Funktionen und Daten, deren Änderung sicher ist.

So könnte man serverseitig in der E-Commerce-Web-App diese Dateien für jeden angemeldeten Benutzer separat speichern, einen Bildschirm für die Konversation mit einer Chat-KI hinzufügen und einen Mechanismus schaffen, um die HTML-, CSS- und JavaScript-Dateien dieses Benutzers auf dem Server gemäß seinen Anfragen zu ändern.

Wenn Sie diesen Text zusammen mit den Konfigurationsinformationen und dem Quellcode einer bestehenden E-Commerce-Web-App einer generativen KI zur Verfügung stellen, wird diese wahrscheinlich die Schritte und die notwendigen Programme zur Ergänzung solcher Funktionalitäten bereitstellen.

Auf diese Weise ist Liquidware bereits ein aktuelles Thema; es wäre nicht überraschend, wenn es ein fortlaufendes Phänomen wäre.

Omnidirektionaler Ingenieur

Auch wenn der Anwendungsbereich der KI-gestützten automatischen Programmierung wächst und das Zeitalter der Liquidware bereits begonnen hat, kann Softwareentwicklung noch nicht ausschließlich von generativer KI durchgeführt werden.

Es ist jedoch sicher, dass der Anteil der Programmierung in der Softwareentwicklung erheblich abnehmen wird.

Darüber hinaus sind für eine reibungslose Softwareentwicklung umfassende Kenntnisse und ingenieurtechnische Fähigkeiten erforderlich, nicht nur in der allgemeinen Programmierung, sondern auch in den Bereichen Cloud-Infrastruktur, Netzwerke, Sicherheit, Plattformen, Entwicklungsframeworks und Datenbanken – das gesamte System von oben nach unten abdeckend.

Mitarbeiter mit solchen Kenntnissen und Fähigkeiten werden als Full-Stack-Ingenieure bezeichnet.

Bisher haben einige wenige Full-Stack-Ingenieure das Gesamtdesign übernommen, während die restlichen Ingenieure sich entweder ausschließlich auf die Programmierung konzentrierten oder sich auf spezifische, nicht-programmierbezogene Bereiche innerhalb des System-Stacks spezialisierten und so die Aufgaben teilten.

Da generative KI jedoch den Programmieranteil übernimmt, werden die Softwareentwicklungskosten erheblich gesenkt, was zur Planung verschiedener neuer Softwareentwicklungen führen wird.

Folglich werden für jedes Entwicklungsprojekt nur sehr wenige Ingenieure benötigt, die lediglich Code schreiben können; stattdessen wird eine große Anzahl von Full-Stack-Ingenieuren erforderlich sein.

In dieser Situation wird es zudem nicht ausreichen, lediglich über Full-Stack-Kenntnisse und -Fähigkeiten zu verfügen. Dies liegt daran, dass verschiedene Softwareentwicklungsprojekte unterschiedliche Arten von Software erfordern werden, was bedeutet, dass die Entwicklung nicht immer innerhalb desselben System-Stacks angefragt wird. Auch die Nachfrage nach Verbundsystemen, die mehrere System-Stacks erfordern, wird zwangsläufig steigen.

Zum Beispiel unterscheidet sich der System-Stack für eine Webanwendung von dem für Geschäfts- oder Kernsysteme. Daher kann ein Full-Stack-Web-App-Ingenieur nicht mit einem Kernsystem-Entwicklungsprojekt betraut werden.

Des Weiteren haben Web-Apps, Smartphone-Apps und PC-Anwendungen unterschiedliche System-Stacks. In der Welt der eingebetteten Software, wie dem IoT, ändert sich der System-Stack vollständig je nach dem Gerät, in das sie eingebettet ist.

Sollte sich jedoch der Schwerpunkt der Programmierung verringern und die Gesamtkosten der Softwareentwicklung sinken, so sollte die Entwicklung von Verbundsystemen, die Software mit unterschiedlichen System-Stacks kombinieren, zunehmen.

Obwohl dies die Zusammenstellung mehrerer separater Full-Stack-Ingenieure für die Entwicklung erfordert, werden Ingenieure, die das Gesamtbild überblicken und grundlegende Entwürfe erstellen können, eine entscheidende Position einnehmen.

Dies bedeutet, dass Ingenieure mit umfassenden Kenntnissen und Fähigkeiten über zahlreiche System-Stacks hinweg, die die Grenzen einzelner System-Stacks überschreiten, gefragt sein werden.

Solche Ingenieure werden wahrscheinlich als omnidirektionale Ingenieure bezeichnet werden.

Und so wie die Nachfrage nach Ingenieuren, die nur programmieren können, aufgrund generativer KI sinken wird, wird schließlich eine Ära kommen, in der auch die Nachfrage nach Full-Stack-Ingenieuren, die auf einen einzigen System-Stack beschränkt sind, abnimmt.

Wer in dieser Ära als IT-Ingenieur aktiv bleiben möchte, muss sofort damit beginnen, ein omnidirektionaler Ingenieur zu werden.

Die Rolle des Omnidirektionalen Ingenieurs

Die zu entwickelnden Programmiersprachen, Plattformen und Frameworks sind vielfältig.

Das bedeutet jedoch nicht, dass man sie alle lernen muss. Dies liegt daran, dass der omnidirektionale Ingenieur auch Unterstützung von generativer KI erhalten kann.

Wenn man es generativer KI überlässt, können selbst Programmiersprachen, Plattformen oder Frameworks, die man persönlich noch nie verwendet hat, einfach durch mündliche Anweisungen generiert werden.

Natürlich besteht das Risiko, Fehler oder Sicherheitslücken einzuschleusen oder technische Schulden anzuhäufen, die zukünftige Änderungen erschweren könnten.

Um diese Risiken zu identifizieren und zu mindern, ist Wissen über die spezifische Sprache oder Bibliothek erforderlich. Dieses Wissen kann jedoch auch von generativer KI bezogen werden. Der omnidirektionale Ingenieur muss lediglich in der Lage sein, die Verfahren und Mechanismen zur Erkennung und Vermeidung dieser Probleme oder zu deren nachträglicher Behebung gründlich zu konstruieren.

Diese Verfahren und Mechanismen ändern sich nicht wesentlich mit Unterschieden im System-Stack. Wenn man die Verfahren und Mechanismen zur Unterdrückung der Einführung von Fehlern und Sicherheitslücken sowie zur Sicherstellung zukünftiger Erweiterbarkeit während der Entwicklung formalisieren kann, dann kann der Rest generativer KI oder Ingenieuren mit Fachkenntnissen in diesen speziellen Bereichen anvertraut werden.

Der omnidirektionale Ingenieur muss nicht über detailliertes Wissen oder langjährige Erfahrung mit jedem einzelnen System-Stack verfügen.

Darüber hinaus ist eine der Hauptaufgaben eines omnidirektionalen Ingenieurs die Gestaltung, wie Funktionen verteilt werden und wie sie innerhalb komplexer Software, die kollaborativ über mehrere, unterschiedliche System-Stacks hinweg arbeitet, zusammenwirken.

Zusätzlich wird die Überlegung, wie die gesamte Software entwickelt und verwaltet werden sollte, ebenfalls zu einer wichtigen Rolle für den omnidirektionalen Ingenieur.

Omnidirektionale Software

Betrachten wir, welche Art von Softwareentwicklung einen omnidirektionalen Ingenieur erfordert.

Zuvor habe ich das Beispiel der Entwicklung einer E-Commerce-Webanwendung genannt.

Unter der Leitung eines verantwortlichen Managers, der von der Unternehmensleitung den Auftrag erhalten hat, diese E-Commerce-Webanwendung zu überarbeiten, könnte das Planungsteam die folgenden Anforderungen stellen:

Umwandlung in eine Benutzergemeinschaftsplattform. Das bedeutet nicht nur eine E-Commerce-spezifische App oder Website, sondern die Bereitstellung einer Plattform, auf der Produktbenutzer miteinander über die Produkte selbst und deren Nutzung interagieren können. Ziel ist die Kundenbindung, der Mundpropaganda-Effekt, die Inhaltsanreicherung durch Benutzerbeiträge und die Integration von Produktentwicklungs-Feedback (sowohl positive als auch negative) in die neue Produktplanung und das Marketing.

Omni-Geräte-Kompatibilität. Dies ermöglicht den Zugriff auf die Benutzergemeinschaft und Produktinformationen nicht nur über Web-Apps, sondern auch über Smartphone-Apps, Sprachassistenten, tragbare Geräte, Smart-Home-Geräte und alle anderen Geräte.

Omni-Plattform-Kompatibilität. Dies umfasst nicht nur die eigene Benutzergemeinschaftsplattform des Unternehmens, sondern beispielsweise auch Produktlisten und den Austausch von Bewertungen auf allgemeinen E-Commerce-Websites, die Integration mit sozialen Medien sowie die funktionale und informationelle Verknüpfung mit verschiedenen KI-Tools.

Auffrischung des Geschäftssystems. Während eine vorübergehende Verknüpfung mit bestehenden Verkaufsmanagement- und Produktlieferungssystemen erfolgt, werden diese Systeme ebenfalls aufgefrischt. Nach der Auffrischung sind die Aggregation von Verkaufsdaten in Echtzeit, die Nachfrageprognose und die Integration mit Bestandsverwaltungssystemen vorgesehen. Da die schrittweise Integration mit regional verteilten Bestandsverwaltungssystemen und Produktversanddiensten von Lieferunternehmen voranschreitet, müssen sich die Informationssysteme ebenfalls entsprechend schrittweise integrieren.

Liquidware-Kompatibilität. Selbstverständlich werden alle Benutzeroberflächen mit Liquidware kompatibel sein. Darüber hinaus werden auch alle internen Benutzeroberflächen, wie die zur Informationsaggregation und zum Feedback für Produktentwicklung und -planung, für Systembetriebsabteilungen und für Managementberichte, in Liquidware umgewandelt.

Würde ein Entwicklungsplan für solch komplexe Software vorgestellt, würde ein traditionelles Softwareentwicklungsteam ihn wahrscheinlich nicht sofort annehmen. Oder sie würden im Laufe der Verfeinerung der Systemanforderungen logisch den Bedarf an enormen Entwicklungskosten und -zeiten aufzeigen und auf eine erhebliche Reduzierung der Spezifikationen drängen.

Was aber, wenn generative KI den Großteil der Programmierung automatisieren könnte und mehr als die Hälfte der vorgestellten System-Stacks einem Teammitglied vertraut wären, und das Team bereits Erfahrung darin hätte, neue System-Stacks, Plattformen und Frameworks mithilfe generativer KI erfolgreich von Grund auf einzuführen? Und was wäre, wenn Sie als omnidirektionaler Ingenieur diesen Weg bereits eingeschlagen hätten und beabsichtigten, ihn fortzusetzen?

Aus dieser Perspektive sollte es sich als ein sehr attraktives Projekt erweisen. Sie würden mit einem Planungsteam zusammenarbeiten, das unter der Leitung der Planungsführung ehrgeizige Vorschläge unterbreitet, und einem Entwicklungsteam mit dem Potenzial, sich zu einem omnidirektionalen Softwareentwicklungsteam zu entwickeln.

Es gibt auch die Gewissheit bestehender Systeme. Es ist auch ein Projekt, das agile Entwicklungsprozesse ermöglicht, bei denen wirkungsvolle Funktionen schnell erstellt werden können und das System inkrementell mit Feedback von Early-Adopter-Benutzern wachsen kann.

Dies berücksichtigt, sollte die Entwicklung dieser omnidirektionalen Software ein attraktives Projekt darstellen.

Zum Abschluss

Dank der automatischen Programmierung durch generative KI werden Liquidware und die Entwicklung omnidirektionaler Software bereits zu aktuellen Realitäten.

In einer solchen Situation müssen IT-Ingenieure zunehmend über den Full-Stack hinausgehen und das Ziel verfolgen, omnidirektionale Ingenieure zu werden.

Darüber hinaus wird sich ihr Aufgabenbereich auf das omnidirektionale Wirtschaftsingenieurwesen ausdehnen, das organisatorische Aktivitäten durch die Verbindung von Kunden, internen Mitarbeitern und KI über den Umfang von IT-Systemen hinaus umfassend gestaltet, sowie auf das omnidirektionale Gemeinschaftsingenieurwesen.

Und noch darüber hinaus, so glaube ich, wird ein Feld namens omnidirektionale Sozialtechnik entstehen, das darauf abzielt, die Gesellschaft umfassend zu verbessern.