Die Herausforderung

5000 Gerätetypen aufgeteilt auf 10 Marken, 5000 Funktionen aus 6 Fachbereichen, 30 Sprachen - potenziell 750.000.000 Inhalte. Eine Herausforderung der modernen Konsumgüterhersteller ist es, die Produktpalette immer mehr zu erweitern und gleichzeitig auf die Geräte zugeschnittene Inhalte bereitzustellen.

Unser Kunde ist ein global agierender Konsumgüterhersteller, der unter seinem Dach verschiedenste Marken und Produkte aus einem breiten Spektrum an Fachbereichen vereint. Durch die zunehmende Individualisierung und Internationalisierung wird es immer komplexer, ein Content Management System zu finden, das den Ansprüchen gerecht wird. Es muss die enorme Anzahl an Inhalten stemmen und den Editoren gleichzeitig in einer sinnvollen Art und Weise bereitstellen können, unter Anderem über eine Integration mit einer Übersetzungsagentur verfügen, Daten aus anderen Systemen importieren und wiederum Schnittstellen zur Integration anbieten. Die Authentifizierung sollte über die firmeneigene Userverwaltung erfolgen und außerdem ein Berechtigungskonzept vorweisen.

In diesem Projekt ging es speziell um Texte für Gerätefunktionen, also generische Dinge wie “An”, “Aus”, “Firmware-Update verfügbar”, oder auch spezifische Funktionen wie “Gerätefunktion X für Marke Y” oder “Gerätefunktion A für Geräte mit der Voraussetzung B”. Diese werden benötigt, um die Steuerung der Geräte aus einer Smartphone-App zu ermöglichen und dem Kunden den gleichen Text anzuzeigen, welcher auch am Gerät selbst angezeigt wird.

Feature Assets

Die Lösung

Nachdem das Vorgängersystem, ein stark modifiziertes Open Source CMS (Drupal), wie die meisten Softwarelösungen eine lange Entwicklungsgeschichte hinter sich hatte, wurden sowohl Erweiterungen als auch der Betrieb immer aufwändiger. Deshalb erstellten wir ein neues Konzept, bei dem die Flexibilität im Vordergrund steht. Dort, wo es ursprünglich nur vier verschiedene Unterscheidungskriterien gab, sollten in Zukunft regelmäßig mit wenig Aufwand neue Kriterien hinzugefügt werden können, welche Geräte mit identischen Texten beschreiben. Zudem sollte das neue System moderner und leistungsfähiger werden.

Zu diesem Zweck wurde eine Webapplikation entwickelt, die die Technologien React (Client), NodeJS (Server) und PostgreSQL (Datenbank) nutzt. Um eventuelle Concurrency Issues zu verhindern, wurde eine Redis als Processing Queue eingesetzt, die die Prozesse strukturiert und in der richtigen Reihenfolge zur Ausführung bringt. Automatisierte Tests sichern die Qualität und erleichtern die Weiterentwicklung, da sie sofort aufzeigen, wenn ein neues Feature eine alte Funktionalität beschädigt. Der Auslieferungsprozess wurde im neuen System deutlich verschlankt. So ist es mittlerweile möglich, aktuelle Daten zeitnahe anzufordern.

Ein weiterer Vorteil des neuen Konzepts ist, dass es den Editoren bereits im Web Interface ermöglicht zu sehen, welcher Inhalt bei einem Gerät zu erwarten ist und gegebenenfalls darauf zu reagieren. Texte können über ein hausinternes Übersetzungssystem sowohl eigenständig, als auch mit Hilfe eines externen Dienstes in alle unterstützten Sprachen übersetzt werden. User werden über das bestehende Active Directory authentifiziert und die Applikation mittels Cloud Foundry in der AWS betrieben, was sie weltweit verfügbar macht.

👀
Du findest das Thema interessant? Lies hier, wie wir einen in der AWS Cloud gehosteten Backend Service entwickelt haben: Ein Gateway "to rule them all"

Das Projekt

Die Scandio war in diesem Projekt mit einem Team aus Developern, Scrum Master und Product Owner für Konzeption, Entwicklung und Testing verantwortlich. Begleitet wurde das Team von einem verantwortlichen Product Owner beim Kunden, der dem Team vollstes Vertrauen entgegenbrachte und ihm annähernd freie Hand gewährte. Das Projekt wurde als fast-lane Projekt neben einem agilen Framework gestartet, um die Kapazitäten zu schonen.

Innerhalb von 10 Monaten wurde das Altsystem abgelöst, eine neue API eingeführt und automatisierte Unit, Integrations und end-to-end Tests eingeführt. Die Performance der Suche wurde verbessert und den Editoren wurde ermöglicht, Daten bereits in den Suchresultaten zu bearbeiten.

Das neue System läuft in der Infrastruktur des gesamten Ökosystems, verwendet den selben Tech-Stack und konnte somit wie geplant erfolgreich zurück in die Hände der Entwickler des Ökosystems übergeben werden.