Ein Beitrag von Sebastian Patzelt.

„Wer nicht mit der Zeit geht, muss mit der Zeit gehen“. Eine altbekannte Phrase für alle, die mit Zukunftstechnologien arbeiten. Doch wie geht man als Organisation, als Team strukturell und methodisch statt aktionistisch „mit der Zeit“? In einem internen Entwickler-Workshop sind wir dieser Frage auf den Grund gegangen und haben versucht, dieser Worthülse echtes Leben einzuhauchen. Herausgekommen sind spannende Anwendungen, von denen wir euch eine heute vorstellen möchten.

Ob auf Branchen-Websites oder einschlägigen Entwicklerkonferenzen: Überall stolpert man über Buzzwords und Technologien, die selten über ein „Hallo Welt“-Beispiel hinausgehen. Warum also nicht selbst Anwendungsbeispiele schaffen? Das entspricht unserem Anspruch als CAMAO, unser Verständnis für Technologie stetig über die Grenzen des heute Gebräuchlichen hinaus zu erweitern. Und das nicht als Selbstzweck, sondern um diesen Wissensvorsprung in die Arbeit für unsere Kunden miteinfließen zu lassen.

Themenfindung im Buzzword-Dschungel

In einem kleinen Team von sieben Entwicklern aus Backend- und Frontend-Spezialisten nahmen wir uns zuerst genügend Zeit für Recherche und praktische Übungen, um aus teils gefährlichem Halbwissen fundierte Erkenntnisse zu generieren. Ob Serverless Cloud, Künstliche Intelligenz, Micro Frontends/Webcomponents, Ivy oder Progressive Web Apps (PWA): Die Auswahl an Themen war unerschöpflich. Also konzentrierten wir uns darauf, ein Projekt zu umreißen, das möglichst viele Wünsche und Neigungen berücksichtigt, um im nächsten Schritt User Stories abzuleiten.

Wunschkind: Sprachassistenz

Das Ergebnis war die Vision eines Sprachassistenten: CAMI. CAMI sollte im Gegensatz zu Alexa oder Siri nicht proprietär gebunden sein, sondern als web-basierte Unterstützung überzeugen. Konkret wollten wir eine Assistance Platform aufbauen, die einen beim Verlassen des Fahrstuhls persönlich begrüßt, auf anstehende Termine hinweist und uns über relevante Neuigkeiten des Tages informiert. Das alles natürlich in der Muttersprache des Nutzers. Der in viele Richtungen abzweigende Wissensdurst der unterschiedlichen CAMAOs lässt sich mit einer so komplexen Anwendung ebenfalls stillen. Etappenziel geschafft.

Der Weg zur Multiplattform-Applikation

Das Projekt sollte als Angular 8 Applikation aufgesetzt werden. Die Applikation wollten wir sowohl nativ für iOS und Android als auch im Web als Docker Container bereitstellen. IVY, der neue Angular Compiler (in Angular 8 noch als Preview und in Angular 9 standardmäßig integriert), sollte hier experimentell eingesetzt werden. Aufgebaut wurde das Projekt in dem Strategic Design Muster von nx.dev. Dann ging es auch schon an die Aufgabenverteilung: Deployment (der Prozess von der Entwicklung bis zur Bereitstellung der nutzbaren Applikation), Authentifizierung und die Gesichts- und Spracherkennung mussten bewältigt werden.

Viele, viele bunte Backend Functions

Als langjähriger, erfahrener Microsoft Partner sind unsere Wolken azurblau: Das klassische Backend, wie es der Autor und die Backend-Spezialisten seines Teams kennen, haben wir in kleinsten Funktionseinheiten mittels Azure Functions ausgelagert und in der Cloud betrieben. Es entstand eine Begrüßungsfunktion, die mittels Azure Cognitive Services auch Übersetzungen durchführt; eine Datenbankablagefunktion, für die Persistenz von Benutzer- und Konfigurationsdaten sowie eine Funktion, die die Daten aus der Azure Cosmos DB wieder liest und zur Verfügung stellt.

Neue Dev-Ops-Wege mit bekannten Stolpersteinen

Auch dieser Beitrag kommt nicht ganz ohne DevOps aus: Was in aller Munde war und ist, wurde bei uns einfach betrieben, ohne einen Hype daraus zu machen. Bereits am zweiten Tag war es uns möglich, den Open Source Code aus Github automatisiert zu bauen und zu deployen. Ein kleiner Wermutstropfen hierbei war das „neue“ Pipeline-Konfigurationsskript von Azure DevOps. Für normale Builds ganz okay; entwickelt man aber für mehrere Plattformen und nutzt verschiedene Technologien, wird das ganze schnell unübersichtlich. Aber auch dieses Riff wurde souverän umschifft.

Doch alles nur Phrasen?

Wie man an den gefetteten Schlagwörtern in diesem Beitrag merkt, wurden ziemlich viele Technologiefelder bearbeitet und näher untersucht. Das Ergebnis kann sich sehen lassen. Wir haben als Team super zusammengearbeitet und innerhalb einer Woche eine Lösung entiwckeln können, die unserer Vision sehr nahekommt. CAMI könnt ihr euch selbst anschauen. Bedenkt jedoch, dass es der Stand nach exakt fünf Wochentagen Arbeit war. Der Code ist nicht lauffähig und ich rate von dem Versuch ab, ihn lauffähig zu kriegen. Nichtsdestotrotz vermittelt er ein sehr gutes Bild davon, was wir erreichen wollten. Genug geschwafelt: Hier geht’s zum CAMI Repository auf GitHub.

Dieser Workshop hat mir wieder einmal gezeigt, dass Technologie nicht nur unser Beruf ist, sondern jeder auch seine ganz persönliche Leidenschaft miteinbringt. Ihr könnt fest davon ausgehen, in Zukunft noch oft von unseren Abenteuern im Umgang von Mensch und Maschine zu hören.Im Gegenzug seid ihr natürlich herzlich dazu eingeladen, euch mit Fragen, Anregungen oder Ideen unter hello@camao.one an uns zu wenden. Bleibt nur noch eins zu tun:

„CAMI – Sende diesen Text zum Lektor!“