Martin Heymann hat Provisionierung und Abrechnung von zanox optimiert und ist seit fast 10 Jahren Ingenieur bei Ingenious Technologies. Niemand kann so gute Systeme für CPO-Billing bauen, wie er: Sie funktionieren und sind stabil. Er mag die Verantwortung und die Möglichkeit, durch Daten Dinge zu bewirken. In dieser Podcast Folge reden Martin und Tobias Rast über die Schwerfälligkeit von älteren Systemen. Wenn ein System ein bestimmtes Alter hat (z.B. 10 Jahre), hört man von den Entwicklern bei den meisten Anfragen ein “geht nicht” – warum ist das so, und vor allem, wie sieht ein guter Ausweg aus?! Und: Wie wurde daraus bei Ingenious Technologies das Feature Conversion Requests??!

PM18 – Wie findet ihr trotz Software-Legacy zu Produktinnovation, Martin Heymann? – #TechnologieErklärt

In dieser Episode geht es um:

  • Das Projekt der letzten Monate: Conversion Updates (01:20)
  • Der Ausweg aus dem Innovationsverhinderer Legacy (05:40)
  • Kunden und die Innovationskraft eines Systems (09:40)
  • Die Wunschliste (17:30)
  • Das Ergebnis: Conversion Updates (27:15)
  • Wichtige Neuerungen: Conversion Requests (32:45)
  • Partnermarketing für mich ist … (44:40)

Das Projekt der letzten Monate: Conversion Updates

In den letzten Jahren hat sich das Partnermarketing extrem weiterentwickelt, und damit haben sich sowohl die Möglichkeiten als auch die Anforderungen an eine SaaS-Plattform im Partnermarketing verändert. Insbesondere das Thema Conversion ist stark gereift und so wurden der Ingenious Partnermarketing Plattform zahlreiche Funktionen hinzugefügt. So ist über die Zeit ein komplexes und unhandliches Konstrukt entstanden. Als gute Parallele bietet sich hier ein Jenga-Turm als Sinnbild eines über Jahre wachsendes Systems an: aus der Basis werden Steine entfernt und oben drauf gesetzt und zudem werden Steine angebaut, bei denen man nach einiger Zeit gar nicht mehr sicher weiß, wo sie eigentlich herkamen. So wächst das System zwar, aber wird auch instabiler und vor allem weniger pflegeleicht.

Daher war es dringend notwendig, die Prozesskette grundlegend zu überarbeiten.

Auf diesem Weg wurden Conversions wieder komplett zugänglich und jede/r NutzerIn kann vollumfänglich damit arbeiten.

Ein Engineer schafft heute die Grundlage für Probleme, die morgen auftauchen, die er heute aber noch gar nicht kennt, aber dann lösen können will. Also die Voraussetzung schafft, die man in Zukunft mal brauchen könnte.

Martin Heymann
Software Engineer, Ingenious Technologies AG

Der Ausweg aus dem Innovationsverhinderer Legacy

Zurück zum Jenga-Turm: Je weiter das Spiel vorangeschritten ist, umso schwieriger wird es, Steine zu entfernen und anzubauen. Komplett unvorstellbar scheint deshalb zum Beispiel die Idee, den Turm auf eine andere Unterlage zu verschieben, den Turm zu transportieren oder andere schwerwiegende Veränderungen. Ähnliches gilt für ein System: Wenn ein System erst einmal einige Zeit gewachsen ist, sind tiefgreifende Veränderungen schwierig umzusetzen. Man ist nie wieder so frei wie ganz am Anfang, wenn das System einem unbeschriebenen Blatt Papier gleicht und noch nicht viele Kunden mit dem System arbeiten. Das System für längere Zeit anzuhalten, ist im laufenden Kundenprozess aufgrund von Verpflichtungen gegenüber der Kunden nicht möglich.

Deshalb wurde das Feature “Conversion Updates” sozusagen heimlich erschaffen, während die (meisten) Kunden noch nichtsahnend mit dem ursprünglichen Modul gearbeitet haben.

Wichtig für eine grundlegende Veränderung eines bestehenden Systems ist, Abstand zu gewinnen, einen Schritt zurückzutreten und in unserem Fall alle Features im Zusammenhang mit Conversions in der vollen Bandbreite aufzeichnen und in die Einzelteile zerlegen. Mit diesem Überblick wird dann jedes Feature hinterfragt, um dann alle nötigen Features neu und vereinfacht wieder zusammenzubauen und auch neue Funktionen hinzuzufügen. Mit dem Ziel, dem Kunden ein stimmiges Bild zu liefern.

Kunden und die Innovationskraft eines Systems

Auch die Kunden können manchmal die Innovationskraft eines Systems hemmen. Nicht alle reagieren jubelnd auf Veränderung, sondern eher skeptisch und lassen sich nur ungern auf Neuerungen ein. Außerdem können andere kleine Anpassungen des Systems während eines großen Projekts nicht so schnell wie gewohnt umgesetzt werden. Doch langfristig profitieren Kunden enorm von einer solchen umfangreichen Neuerung. Um die Skepsis und Ablehnung so klein wie möglich zu halten, wurden einige Kunden in den Entstehungsprozess der neuen Funktion mit einbezogen und nach ihren konkreten Wünschen, Bedürfnissen sowie Feedback gefragt.

Die Wunschliste

Die Liste aus unseren eigenen Wünschen und die unserer Kunden war zu lang und nicht alle Wünsche konnten erfüllt werden, da sonst die Gefahr besteht, dass das Projekt nie beendet werden kann und die neue Funktion nie gelauncht wird. Im Rahmen einzelner Projektiterationen wurden so viele Wünsche wie möglich erfüllt, während gleichzeitig sichergestellt war, dass das Projekt dennoch umsetzbar bleibt. Einige Wünsche konnten nicht (sofort) erfüllt werden, werden aber in Zukunft angegriffen. 

Jede Anforderung eines jeden Kundens ist nachvollziehbar und berechtigt. Dennoch müssen in einzelnen Projektphasen Abstriche gemacht werden, um die Klarheit und Verständlichkeit der Iteration zu gewährleisten. Bei der Auswahl der Wünsche sollte immer die Nachhaltigkeit der Lösung hinterfragt werden: Ist das ein Quick-Fix oder ist die Lösung auf 5-10 Jahre ausgelegt? Denn es bringt wenig, ein Problem zu lösen oder eine Funktion zu bauen, die in naher Zukunft bereits ein erneutes Update benötigt.

Bei unserem Projekt ist bei der Frage “Was ist (jetzt sofort) am wichtigsten?” die Entscheidung auf die folgenden Kernfunktionen gefallen: Conversions strukturieren und Felder veränderbar machen.

Das Ergebnis: Conversion Updates

Das Feature Conversion Updates wurde nicht mit einem lauten Knall auf einmal released. Stattdessen erfolgten einzelne Releases zwischendurch, bei denen Funktionen sukzessiv ins System integriert wurden.

Das Ergebnis war ein klareres Format für die Kunden, um die Conversion anzuzeigen. Das heutige Format ist zudem kommunikativer und responsiver und enthält ein starkes Set an Validierungen und Vorprüfungen, die es verhindern, dass etwas ungültiges eingespielt wird: in Echtzeit, sprich im Moment des Hochladens bzw. Absetzens, erhält der Nutzer umgehend Feedback, zudem werden Fehleingaben in der Zelle klar benannt.

Wichtige Neuerung: Conversion Requests

Des Weiteren können die bisher passiven Partner nun mitgestalten und können nun über Anfragen (Conversion Requests) kommunizieren und fehlende Conversions beantragen oder fehlerhafte Conversions ausbessern. Diese Anfrage bzw. der Status der Anfrage stellt den Austausch zwischen den Parteien (Partner und Admin) dar. Bei nachträglichem Eintragen einer Conversion bietet das Feature zudem eine automatische Zuordnung der zum Zeitpunkt der Conversion geltenden Provision inkl. Angabe des Modellnamen, sodass die NutzerInnen diese nicht manuell herausfinden müssen.

Außerdem erhalten die NutzerInnen bei der Veränderung einzelner Felder einer bereits bestehende Conversion (z.B. Category Target, Sub IDs, Order Value, Status, Device) eine Vorschau der Auswirkung (sprich angepasste Provision) falls die Anfrage angenommen wird. So wird ein hohes Maß an Transparenz und Nachvollziehbarkeit sowohl für den Advertiser als auch für die Partner sichergestellt. In Zukunft werden Änderungen einer Conversion zudem im Nachhinein in der Historie nachvollziehbar sein.

Partnermarketing für mich ist …

… die Möglichkeit, in einem von mir mitgestalteten Ökosystem verschiedene Parteien zusammenzubringen und sie über die Daten, die ich auch mitgestalten kann, zu Erfolg zu bringen.

Schnitt: Darius Rybacki