Gibt es langweilige Innovation?
Fragen Sie mal jemanden auf einer IT-Konferenz, was unter Innovation verstanden wird. Mit großer Sicherheit fällt der Begriff Neue Technologie. IT ist glühend verliebt in Technologien.
Eine Definition
Weil die meisten von uns in Unternehmen arbeiten, die Geld verdienen müssen, hier die ersten zwei Sätze der Definition aus dem Business Dictionary.
The process of translating an idea or invention into a good or service that creates value or for which customers will pay. To be called an innovation, an idea must be replicable at an economical cost and must satisfy a specific need.
Die Betonung liegt auf dem ökonomischen Wert und dem Nutzen. Eine Idee oder eine Erfindung ist die Keimzelle der Innovation. Das hat nicht zwangsläufig etwas mit neuester Technologie zu tun.
Reales Fallbeispiel
Dieses Jahr war ich als Berater in einem Unternehmen, das ein CRM-System einsetzt, dessen Wurzeln gut 20 Jahre alt sind. Es stammt aus einer Zeit, als man es für eine gute Idee hielt, alles in eine relationale Datenbank zu schreiben. Auch den Sourcecode. Das gesamte Tooling zum Design der Formulare sitzt auf der Datenbank.
Als Versionskontrollsysteme Einzug hielten, musste dieser Sourcecode irgendwie in Dateien landen und von Dateien wieder zurück in die Datenbank gelangen. So wurden aus einem Formular ganze 20 Dateien (eine Datei pro Tabelle), die sich untereinander über bizarre Mechanismen referenzierten. Die Implementierung des Upload und Download war ineffizient, nicht transaktional und störungsanfällig.
Von diesen Formularen gibt es rund 1000 Stück in der Datenbank.
Hier war Innovation dringend geboten. Aber zunächst musste ich eine dicke, hässliche Kröte quer schlucken. Uralt-Software lernen, jede Menge gruseligen Legacycode analysieren und Daten hin- und herschaufeln klingt nicht nach fancy Raketenwissenschaft. Wer will schon 20 Jahre alte Steine aufheben und schauen was drunter ist? Igitt. Kann ich nicht irgendwo stattdessen eine neue Programmiersprache und das dazu gehörende Webframework ausprobieren?
Die Lösung ist schnell skizziert. Die Formulare nicht mehr in 20 Dateien zerreißen, sondern in jeweils einem JSON Dokument speichern. Die im Detail tückische Struktur der Formulare in der Datenbank reengineeren, Tabellen-Dumps mit möglichst wenig Boilerplate laden und speichern, eine Composite-Struktur aus 20 Tabellen zusammensetzen, etwas JDBC fine tuning und für gute Testbarkeit sorgen.
Verwendet wurde:
- Java 8
- JDBC
- Simple Flat Mapper als minimaler O/R Mapper
- Jackson als JSON Mapper
- Picocli als Commandline Parser
Dazu kommen umfangreiche Restaurationsarbeiten an Perl-Skripten, eine behutsame, schrittweise Erprobung im Entwicklungsbetrieb mit Rückwärtskompatibilität, und schließlich die finale Migration der 1000 Formulare.
Solides Handwerk also. Nichts Aufregendes nach heutigen Maßstäben.
Langweilig?
Jetzt bitte alle kurz an die eigene Nase fassen.
Technisch betrachtet lockt man damit bestimmt keinen IT-Hipster von seiner Club Mate weg.
Das kann doch jeder, wird sich mancher denken. Wo ist der Heldenfaktor? Bravo! Es soll jeder können! Ich werde dieses Projekt eines Tages verlassen und danach muss jemand damit weitermachen, der keine Zeit und Lust hat, Heldentaten zu bewundern.
Wie steht es mit dem ökonomischen Wert und Nutzen?
Für 60 Entwickler und das CRM-Produkt ist das Tool lebenswichtig. Ein Checkout dauert jetzt maximal 20 Sekunden anstatt 10 Minuten. Der Upload ist transaktional und sicher. Das JSON-Format ermöglicht endlich ein Diff und Merge von einem Formular. Nebenbei wird auch die Deployment-Pipeline drastisch schneller und ebenfalls transaktional, und die Anzahl der Objekte unter Versionskontrolle schrumpft um 70%. Soviel zum Heldenfaktor.
Es ist eine Innovation. Keine, die mit einer Buzzword-Wolke im Lebenslauf und Twitter strahlt. Keine, mit der man große Bewunderung genießt in der Szene. Dem zahlenden Kunden aber ist sie wertvoll und noch sehr lange nützlich.
Genau das zählt.
Der süßeste Balsam auf die Seele eines Softwareentwicklers ist, wenn man ihm sagt, er würde echt geilen Code schreiben. Wir lieben unseren Code und sind stolz darauf. In der ökonomischen Realität spielt das eine untergeordnete Rolle, milde ausgedrückt.
Es schadet nicht, sich gelegentlich daran zu erinnern, dass Dienstleistung etwas mit dienen zu tun hat.
Innovation, die Wert erschafft und nützlich ist, kann scheinbar langweilig sein.