Einführung Produktkatalog für Vertriebsportale

 

Projektbeschreibung

 

Der Kunde wollte seine Time-to-Market, sowie seine Umsetzungseffizienz bei Produkt-Einführungen deutlich verbessern. Hierzu sollte ein zentraler Produktkatalog implementiert werden, der die mangelhafte und redundante Abbildung von Festnetz/DLS Breitband und Mobilfunk Produkten in den Bestandssystemen zur Erfassung von Kunden-Aufträgen ablösen sollte.

Die verfolgte Vision war es zu ermöglichen, ein neues Produktportfolio über alle Auftragskanäle und über alle Marken hinweg einzuführen, ohne die Notwendigkeit von Anpassungen in den diversen Bestandssystemen. Stattdessen sollte eine Anpassung der Konfiguration im neuen Produktkatalog dafür ausreichen. Auch sollte es dem Produktmanagement ermöglicht werden, solche Änderungen im Produktkatalog eines Tages selber durchzu- führen. Gleichzeitig sollte die Provisionierung der Aufträge möglichst nah an “zero-touch” kommen.

Das Diagramm hierunter veranschaulicht die mit genannter Vision verbundene Zielarchitektur:

Architekturvision

Architekturvision

Erläuterung zur Zielarchitektur:

  • Der Produkt-Katalog als zentraler Datenbestand mit den Produkten, mitsamt ihren Eigenschaften sowie die gesamte deklarative Logik zu den Produkten

  • Der Produkt-Designer als UI basierte Anwendung, über die der Produktmanager die Produkte gemäß Marktbedürfnissen definiert

  • Der Produkt-Konfigurator der alle ausführende Produktlogik enthält; die also die Produktlogik situativ ausführt, abhängig von:

    • ob es sich um einen Bestandskunden oder Neukunden handelt

    • um welchen Geschäftsfall es sich handelt (neues Produkt, Produktwechsel oder Produktänderung (Vertragsanpassung))

    • über welchen Kanal der Auftrag kommt

    • ob gerade etwaige Aktionen gelten

    • im Falle von Breitband Produkten: welche Technologien mit welcher Bandbreite (Leitungsdämpfung) an der Adresse verfügbar sind

  • Jeder Vertriebskanal wurde von eigenständigen Systemen (Portalen) unterstützt. Der Produkt-Konfigurator sollte hier überall eingebunden werden und dort die Produkt-Auftragslogik ersetzen. Weil das System für Shops und Vertriebspartner zu sehr veraltet war, um es sinnvoll und effizient in der neuen Architektur weiter zu verwenden, wurde entschieden, sie durch eine komplette Neuentwicklung zu ersetzen und dieses im Rahmen dieses Projektes gleich mit umzusetzen.

  • Im Bereich Billing wurde parallel zu unserem Projekt ebenfalls ein neues System implementiert. Dieses verfolgte ein neues Konzept, ebenfalls mit dem Ziel den Time-to-Market erheblich zu reduzieren. Es basierte darauf, dass hier keine Produkt-Preisinformation mehr gepflegt werden sollte. Der neue Produktkatalog sollte das übernehmen und die Preisinformationen zusammen mit den Vertragsinformationen bei Vertragsabschlüssen ans Billing liefern.

Im Laufe des Projektes kam noch eine weitere Aufgabe auf uns zu:

  • Ein paralleles Projekt war gerade dabei, ein neues Dokumenten-Management Systems einzuführen, welches ebenfalls mit den Front-End Systemen (Portalen) für die verschiedenen Vertriebskanäle integriert werden sollte. In diesem Zusammenhang wurde entschieden, in unserem Projekt zusätzlich einen Dokumenten-Katalog zu implementieren und mit dem Dokumenten-Management System, sowie den Front-End Systemen (Portalen) zu integrieren. Auf ähnliche Art und Weise wie für neue Produkte über den Produkt-Katalog, wurde es über den Dokumenten-Katalog ermöglicht zu definieren, welche Dokumente bei welchem Produktauftrag, von welcher Kundengruppe über welchen Kanal mitgesendet werden. Das betraf AGB‘s, Widerrufbelehrungen, Produktbroschüren usw.

 

Meine Aufgaben

 
  • Innerhalb eines Programms, aufgelegt um die Systemlandschaft des Unternehmens neu zu strukturieren und zu konsolidieren, habe ich das Projekt geplant und nach agiler/hybrider Methodik geleitet.

  • Als der Projekt-Architekt dann das Unternehmen nach knapp einem Jahr verließ, habe ich in großem Umfang gestalterische Aufgaben bezüglich Erstellung von fachlichen und technischen Konzepten mit übernommen.

  • Im Bereich der Business Analyse habe ich tatkräftig unterstützt; von den zirka 200 in 2014 erstellten User Stories, habe ich etwa die Hälfte dazu gesteuert.

  • Mit Unterstützung der Leiterin des oben genannten Programms habe ich viel Aufwand und Energie aufgebracht, um alle Bereiche des Unternehmens von unserer Vision und Ansatz zu überzeugen. Das betraf die Geschäftsführung, das Produktmanagement, den Vertrieb, das Auftragsmanagement, den Kundenservice, den Technikbereich und nicht zuletzt die IT selber.

  • Zum Schluss beinhaltete meine Aufgabe auch die Planung, Organisation und Durchführung des Trainings für die gesamte Vertriebsorganisation mit etwa 1.000 internen und externen Mitarbeitern.

 

 Ergebnisse

 
  • Nach etwa 3 Monaten wurde der Produkt-Katalog mitsamt Produkt-Designer fertiggestellt und für die Abteilung Produkt Management bereitgestellt.

  • Der Produktkatalog wurde mit dem Produkt-Konfigurator integriert, der wiederum mit dem Customer Self Service Portal integriert wurde, um Bestellung von Mobilfunk Produkten für die etwa 600.000 Kunden des Unternehmens unter drei unterschiedlichen Markenauftritten zu ermöglichen.

  • Die Verkaufszahlen über das Customer Self Service Portal vervielfachten sich in den Folgemonaten.

  • Der Time-to-Market für neue Produkteinführungen wurde für das Customer Self Service Portal von mehreren Personentagen/-Wochen auf wenige Stunden reduziert.

  • Nach nur einem weiteren halben Jahr Entwicklungszeit wurde der Pilot-Betrieb des neuen Vertriebsportals für Shops, Vertriebspartner und Call Center aufgenommen.

  • Einige Monate danach wurde die erste Vertriebsregion ausgerollt.

  • Die Einführung in den produktiven Betrieb erfolgte komplett ohne nennenswerte Probleme.

  • Ein Schulungsprogramm für über 1.000 Vertriebsmitarbeiter und externe Partner wurde erstellt und durchgeführt.

  • Das Allerwichtigste:
    Die Rückmeldungen der Benutzer im Vertrieb zum Funktionsumfang und Benutzerfreundlichkeit war überragend und geprägt von großer Begeisterung!

 

Zahlen, Daten, Fakten

 
  • Das Projekt Team umfasste im Kern etwa 15 Personen + 4 Product Owner, die allesamt Leiter unterschiedlicher Bereiche des Vertriebs waren

  • Die Projektlaufzeit war 2,5 Jahre.

  • Leistung in Zahlen:

    • 4.689 LT

    • 515 User Stories

    • 51.493 Lines of Code (LOC)

    • 12 Geschäftsfälle

  • Systemumfeld: Oracle, Java, Tomcat

  • Eingesetzte Tools:

    • MS-Office

    • MS Project

    • Jira

    • Confluence

    • Sonar

    • Gliffy

    • Balsamic

    • FishEye

    • HP ALM/Quality Center

    • HP Service Virtualization

    • SAP

 

Projekt Organisation

 

Das Kernteam des Projektes umfasste folgenden Mitglieder:

  • 1 Projektleiter (übernahm auch Rolle des Scrum Masters)

  • 1 Business Analyst

  • 2 Architekten zu jeweils 50%, die auch mit entwickelten

  • 5 Backend/Enterprise Entwickler

  • 2 Front End Entwickler

  • 1 Testmanager zu etwa 50%

  • 1 funktionaler Tester

  • 2 Test-Automatisierer

  • 2 Repräsentanten aus dem Auftragsmanagement /Testerinnen jeweils zu etwa 50%

Des Weiteren gab es vier Product Owner:

  • Leiterin Customer Self Service

  • Leiter Online Vertrieb

  • Leiter Shop Vertrieb

  • Leiter Vertriebspartner Vertrieb

 Vorgehen, Methoden und Tools

 

Umstände und Rahmenbedingungen

 

Das Projekt betrat in vielerlei Hinsicht Neuland; das Konzept von Katalog-basierter Produktbeauftragung, agiler Entwicklung, projektbasiertem Arbeiten waren allesamt neue Ansätze für die Organisation. Unser Projekt sah sich deshalb mit mehreren Herausforderungen konfrontiert, auf die ich in den folgenden Abschnitten näher eingehe.

Neues Konzept, neue Sprache

Für den Kunden generell bedeutete dieses Projekt die Adoption eines komplett neuen Konzeptes; die der Katologbasierten Auftragsverarbeitung. Das gesamte Unternehmen hatte sich über Jahre an die technischen Gegebenheiten, geprägt von den Einschränkungen der Bestandssysteme, gewöhnt. Somit hat sich eine „IT-technische Realität“ und vor allem Sprache entwickelt die in großen Teilen fernab von der fachlichen Realität war. Auch der Fachbereich hatte diese Sprache über die Jahre angewöhnt. In der Folge wurden Diskussionen über fachliche Anforderungen und auch die Akzeptanz des neuen Konzeptes maßgeblich erschwert. Es musste von daher sehr viel Aufwand für das “Abholen” der gesamten Organisation und vor allem des Produktmanagements investiert werden.

Zwei Geschwindigkeiten

Unser Projekt verfolgte das Ziel, in großen Schritten eine neue Systemwelt zu schaffen. Es war uns allen klar, dass die Herausforderungen gewaltig waren. Es würde auch Probleme geben, die wir bereit sein mussten zu akzeptieren. Wir waren der feste Überzeugung, dass eine hohe Umsetzungsgeschwindigkeit und Risikobereitschaft für das Erreichen unserer Ziele unabdingbar war. Das passte auch gut zur Kultur der Vertriebsabteilungen, unseren primären Stakeholder.

Diese Herangehensweise kollidierte aber mit der - verständlicherweise - mehr auf Problemvermeidung und Prozesskonformität ausgelegter Kultur in der IT-Abteilung, welche feste Releases mit vorab definierten Inhalten plante und eine ausgefeilte Prozedur bei der Umsetzung hatte.

 

Architektur

Es gab zum Projektstart ein umfangreiches monolithisches System welches viele Aufgaben in einem hatte:

  • Kunden Management

  • Vertragsmanagement

  • Auftragsmanagement

  • Produktmanagement

  • Technischer Provisionierung (Einrichten von Konfiguration in den technischen Systeme, im Rahmen des Aufschalten eines neuen Kunden oder Anpassung aufgrund eines Produktwechsels).

Ein groß aufgelegtes Programm hatte das Ziel dieses System in einzelnen fachlichen Bereiche zu zerlegen. Unser Projekt deckte diesbezüglich schwerpunktmäßig den Bereiche Produkt- und Auftragsmanagement ab. Der Architekturkreis des Unternehmens versuchte mithilfe des SID Modells vom TM Forum die zukünftige Systemarchitektur zu modellieren.

 

Überblick Vorgehen

 

Die Entwicklung war komplett auf Scrum eingestellt. Das Projekt war in einem Programm eingebettet, welches klassisch aufgestellt war; mit Projektleiter für die verschiedene Projekte, die eine Zeit- und Budgetplanung erstellten und wöchentlich dazu berichteten. Mit den primären Stakeholdern waren zudem Vereinbarungen zu wichtigen Meilensteinen gemacht worden. Das gesamte Vorgehen kann somit als Hybrid gekennzeichnet werden.

 

Business Analyse

Anfänglich hat unser Business Analyst bei der fachlichen Konzipierung ausführliche EPK Diagramme erstellt, begleitet von Beschreibungen die sich am eTOM Framework vom TMForum orientierten. Es stellte sich heraus, dass diese für Entwickler zu wenig Hilfestellung boten; die Diagramme waren sehr schwer zu lesen und trotz des enormen Umfangs blieben viele wesentliche Fragen aus Entwicklersicht unbeantwortet.

In der Folge haben wir dann die fachliche Konzipierung auf zwei neue Standbeine gebracht.

  1. Den Prinzipien des Domain Driven Design (Eric Evans) folgend haben wir fachliche Modelle erstellt. Für alle Bereiche wurden gemeinsam im Team die fachlichen Datenmodelle konzipierten und - das ist das Entscheidende - diese auch intensiv mit den Fachbereichen besprochen. Diese Modelle wurden mithilfe von UML erstellt, ohne den Anspruch zu verfolgen methodisch 100% korrekt zu sein. Die Zielstellung war lediglich, dass die wesentlichen Fragestellungen in Diskussionen im Team und mit den Fachbereichen beantwortet werden konnten. Dieses mündete in ein sogenanntes TK Domainen Modell, welches eine einheitliche Definition über Systemgrenzen hinweg für Begriffe und Entitäten darstellte. Dies sollte dann später für das Gesamtunternehmen Gültigkeit haben.

  2. Für alle Masken erstellten wir UI-Mockups mithilfe des Balsamic Plugins für Confluence. Zu den Masken beschrieben wir in Confluence dann alle wesentliche Business Logik.

Wir erstellten User Stories, die sich im Wesentlichen an die Masken orientierten. Pro Maske gab es mehreren User Stories, die auf der Confluence Seite zu der jeweiligen Maske verlinkt wurden.

Genannte fachliche Modelle, die Maskenentwürfe sowie die User Stories haben wir mit dem für den Vertrieb zuständigen Manager in einer Product Owner Runde durchgesprochen, was sich als besonders effektiv erwies. Auch die Backlog-Priorisierung wurde hier besprochen.

Hierunter ein Beispiel eines fachlichen Modells, welches ich erstellt habe um das User-Management und die Verwaltung von Vertriebspunkten (eigene Shops und Vertriebspartner) zu gestalten.

Domain Model der Vertriebsorganisation

Domain Model der Vertriebsorganisation

Wir hatten eine interessante Diskussion im Projekt, ob man solch ein Modell denn wohl oder nicht mit dem Fachbereich diskutieren könnte, da es doch sehr technisch ist. Wir haben es gemacht und es hat wunderbar funktioniert.

Wir brauchten einige wenige Runden um uns schlussendlich auf eine finale Version zu verständigten. Die darauffolgende Umsetzung war schnell und reibungslos.

 

Entwicklung

Die Entwicklung orientierte sich an Scrum; es wurde teilweise Pair Programming betrieben, andernfalls gab es peer / code Reviews mit Hilfe von FishEye. Es gab Groomings, Plannings samt Planning-Poker, 2 bzw. 3 wöchigen Sprints und Sprint-Reviews. Es wurde kontinuierlich integriert und ein maximales Maß an Testautomation durch die Entwicklung (Unit-Tests) betrieben. Dieses wurden mit Sonar-Auswertungen überwacht, tabellarischen und grafischen Darstellungen daraus wurden auf einem großen Bildschirm in einer der Entwicklerbüros kontinuierlich angezeigt. Des Weiteren wurde In der Entwicklung CVS, GIT und Jenkins eingesetzt.

Die Modelle, die für alle fachliche Domänen erstellt wurden (siehe oben unter Business Analyse) ermöglichte eine saubere Entwicklung, und führte zu eine Softwarearchitecktur, die sehr anpassungsfähig war. Auch war es relativ leicht, neue Entwickler im Team zu integrieren, weil nach einem einheitlichen Standard entwickelt wurde und in der Software die Fachlichkeit leicht zu erkennen war. Somit konnten sie sich relativ schnell einarbeiten.

Die durchgängig erstellten und im Vorfeld mit den Productowner durchgesprochenen Maskenentwürfe erlaubten eine zügige und effiziente Entwicklung, denn die Fachbereiche hatten die Anwendung bereits „gesehen“ bevor sie fertiggestellt wurde. Große „aha“ Erlebnisse gefolgt von umfangreichen re-factorings konnten so einfach vermieden werden.

 

Test

Im Testteam wurde HP Quality Center für Test- und Defect Management eingesetzt. Über eine Schnittstelle wurde Defects für die Entwicklung in Jira überführt. Aus den Jira Tickets konnte ein Drill Down bis auf die Code Stellen gemacht werden. Darüber hinaus gab es auf Integrationsebene automatisierte Tests, die mit Hilfe von HP Service Virtualisation entwickelt wurden. Diese Tests waren auch sehr hilfreich, um Performance Probleme auf den Grund zu gehen, weil man für einzelne Transaktionen oder Aufrufe aus dem Front-End genau verfolgen konnte, welchen Service und welches System im Middleware bzw. Backend wieviel von der Gesamtdauer in Anspruch nahm.

 

Hybrides Projektmanagement

Wie beschrieben, wurde in der Entwicklung nach Scrum vorgegangen. Daraus ergab sich bekanntlich die Herausforderung, verbindliche Zusagen über wesentliche Meilensteine an die Stakeholder zu machen. Zu denen gehörte das Programm Management, die Geschäftsführung, der Vertrieb und der Kundenservice. Sie brauchten diese Zusagen für die Planung der Vertriebszahlen und für die Personalplanung. Denn beide mussten zur Konzernebene verantwortet werden.

Diesbezüglich bin ich wie folgt vorgegangen:

  • Die Backlogplanung habe ich hin und wieder aus Jira nach Excel exportiert.

  • Weil nur die User Stories für den kommenden Sprint gegroomed und gepokert waren, hatte ich erst mal keinen belastbaren Anhaltspunkt, wann die User Stories die für ein bestimmtes Inkrement/Meilenstein benötigt wurden alle fertig sein würden.

  • In Excel habe ich dann Spalten für verschiedene Umsetzungsbereiche hinzugefügt. Mit den Architekten und Entwicklern wurden dann für diese Bereiche pro User Story SML Komplexitätsbewertungen abgegeben.

  • Mit einem Algorithmus wurde dann der Aufwand pro Entwickler Disziplin berechnet.

  • Die so ermittelten Aufwände wurden gegen die voraussichtlichen Kapazitäten unter Berücksichtigung von Urlaubszeiten usw. gerechnet und ermöglichten dann die Terminaussagen zu den Meilensteinen.

 

 Technischen Konzepte

 

Architektur

Oben beschriebene Versuche des Architekturkreises, mithilfe des SID Modells vom TM Forum die zukünftige Systemarchitektur zu modellieren waren für die Entwickler in unserem Projekt wenig hilfreich, da sie zu abstrakt waren. Um die Lücke zu schließen, habe ich hier mit dem Gliffy Plugin für Confluence und mit Hilfe der Software-Architekten im Projektteam eigene Projekt-bezogene Architekturbilder erstellt.

Diese Bilder halfen uns Architektur-Fragen effektiv im Projekt zu diskutieren und wichtige Entscheidungen richtig zu treffen. Darüber hinaus bot es Hilfestellung für die Entwickler bei der Umsetzung.

Darüber hinaus halfen diese Bilder mir, um daraus eine “Roadmap” abzuleiten.  Natürlich mussten wir uns überlegen, in welchen Schritten wir unsere Zielarchitektur erreichen können. Diese Schritte wurden dann zu Projektinkrementen, die in einer Roadmap mündeten (im Bild unten dargestellt).

Projekt Roadmap

Projekt Roadmap

Zu jedem dieser Inkremente habe ich eine eigene Version des Architekturbildes erstellt, worin farblich zu erkennen war, welche Teile bis dahin fertig waren (grün), welche in Arbeit waren (blau) und welche noch offen waren (gelb und rot).

Dieser Ansatz stellte sich in Stakeholder Meetings als besonders einleuchtend heraus. Denn so konnten alle sehr gut sehen, wie weit wir bereits vorangeschritten waren über welche Stationen (mit welchen Schritten) und auch, dass wir einen realistischen Ansatz verfolgten. Das schaffte Vertrauen.


Im Bild unten ein Beispiel von solch einem Architektur-Inkrement-Bild vom Anfang des Projektes:

Architektur Inkrement

Architektur Inkrement

Produktkatalog basierte Beauftragung

Eine elementare Aufgabe im Bereich der Business Analyse und Architektur bestand in der Gestaltung der Produktkatalog basierten Beauftragung - in erster Linie die Gestaltung des Zusammenspiels von Produktkatalog und Vertriebsportalen und nachgelagert mit den Systemen, die für die Auftragsabwicklung und Einrichtung der technischen Systeme (Provisionierung) zuständig waren.

Das Kernprinzip vom Produktkatalog war die Verwendung von hierarchischen Beziehungen:

  • dieses Element gehört zu diesem Produkt

  • dieses Element besteht aus folgenden Elementen

  • für die Realisierung von diesem kaufmännischen Element werden folgende technische Bestandteile benötigt).

Es gab verschiedene Typen von Produktelementen, wie beispielsweise Produktoptionen (ein bestimmter Router oder ein Installationsservice), Rabatte usw.. Alle Produktelemente hatten verschiedene Eigenschaften, wie eine Beschreibung und einen Preis. Über Kardinalität wurde bestimmt, ob ein Element ein Pflichtelement ist oder optional, sowie ob einfach oder mehrfach Auswahl möglich ist. Die hiermit erstellten Strukturen bildeten sogenannte Produktbäume. Auf einzelnen Elementen innerhalb eines Produktbaums konnten Regeln definiert werden, zu den es ebenfalls verschiedene Typen gab, wie zum Beispiel Wechselregeln. Über diese Strukturen wurde die gesamte deklarative Produktlogik zu Produkten abgebildet und an den Produktkonfigurator zur Verfügung gestellt.

So ein Produktbaum sah zum Beispiel für einen Festnetz-DLS Breitband Produkt in etwa wie folgt aus:

Produktbaum

Produktbaum

Die Erstellung dieser Strukturen - die Produktmodellierung - erfolgte mit dem Produktdesigner; kurz gesagt die UI für den Produktkatalog. Hier entfaltete sich der große Vorteil dieses Ansatzes durch die Konkretisierung der Time-to-Market Verbesserung, die sich das Projekt zum Ziel gesetzt hatte; die Einführung von neuen Produkten oder eine Anpassung im bestehenden Produkt-Portfollio konnte über diese UI erfolgen ohne Systemanpassungen in den Vertriebsportalen!

Allerdings nicht bedingungslos.

Die Beauftragung in den diversen Vertriebsportalen orientierte sich nun an diese Produktbäume, die vom Produkt-Konfigurator angeboten wurden. Dabei wendete der Produktkonfigurator eine Logik bezüglich der Beauftragung an:

  • Kundentyp

  • Verfügbarkeit von Technologien und einhergehende Bandbreiten an der Anschlussadresse

  • Vertriebskanal

  • Etwaige Aktionen

 

Servicekatalog basierte Provisionierung

Um den Time-to-Market Vorteil in seinem vollem Umfang abzuschöpfen, soll auch die Provisionierung katalogbasiert erfolgen, auf einem sogenannten Service-Katalog. Dieser enthält technische Services, für die faktisch-technische Realisierung der kaufmännischen Produkte.

Beispielsweise wird für ein FN/DLS Breitband Produkt eine Leitung benötig, die über verschiedene Technologien bereitgestellt werden kann. Diese technischen Services stehen also in einer Beziehung zu Produktelementen des kaufmännisch definierten Produktbaums, sind aber kein Teil dieses Baums.

Hinter den Services stehen konkrete Provisionierungsservices der Systeme, die bei der Bereitstellung eines neuen oder geänderten Anschlusses eingerichtet/konfiguriert werden müssen.

Das Bild hierunter visualisiert diesen Ansatz.

Produktbaum aus den Produkt-Katalog mit dahinter stehenden Services aus dem Service-Katalog

Produktbaum aus den Produkt-Katalog mit dahinter stehenden Services aus dem Service-Katalog

Es sollte hiermit deutlich werden, dass sich mit solch einem Ansatz nahezu vollständig konfigurativ neue Produkte (Produktportfolis) einführen lassen mit entsprechendem Time-to-Market Vorteil -auch, wenn sich in der Landschaft der technischen Systeme nichts ändert.

 

Vorteile katalogbasierter Beauftragung

Das Legacy System kannte weder reine Produkte noch reine technische Services. Produkte waren nach Technologie aus-multipliziert, es gab also von einem Produkt so viele Instanzen wie es Technologien gab, über die sie realisiert werden konnten. Das scheint erst mal logisch, hat aber einen eklatanten Nachteil: Produkt-Wechselprozesse werden sehr kompliziert.

Anhand eines Beispiels mit zwei Produkten und vier Technologien lässt sich das sehr einfach verdeutlichen. Das folgende Bild visualisiert die Situation, wenn Produkte nach Technologie aus-multipliziert sind.

Produkt-Wechsel-Beziehungen Legacy System

Produkt-Wechsel-Beziehungen Legacy System

Statt 2 gibt es infolge der Aus-Multiplizierung 8 “Produkte” (es sind nicht wirklich Produkte).

  • Im Rahmen der Produkt-Wechsellogik im System müssen schon zwischen diesen Produkten 16 Beziehungen gepflegt werden. Über alle Produkte hinweg - nicht nur die aktuelle, sondern alle Produktgenerationen (also auch inaktive Produkte) - ist das eine große Zahl von Verbindungen.

  • Technische Logik zu einem Technologiewechsel und Business Logik zu einem Produktwechsel sind miteinander vermischt und in Kombination mit der Menge an Wechselbeziehungen sehr umfangreich, sehr schwer durchschaubar und sehr schlecht wartbar.

  • Provisionierungslogik muss auf vielen Produkten, anstatt auf wenigen Technologien anschließen.

Die Folge:

Änderungen, insbesondere Technologieänderungen, haben große Anpassungsaufwände zur Folge. Im Ergebnis hat dieser Ansatz hohe Kosten und einen schlechten Time-to-Market.

Das Bild unten visualisiert die Situation, wenn Produkte und Technologien sauber getrennt sind.

Produkt-Wechselbeziehungen katalogbasierter Beauftragung

Produkt-Wechselbeziehungen katalogbasierter Beauftragung

Die Abbildung von Produkten im System entspricht der kaufmännischen Realität; es gibt lediglich zwei Produkte.

  • Die Technologien stehen zwar in einer Beziehung zu den Produkten, sind aber nicht Bestandteil dessen

  • Im Rahmen der kaufmännischen Produkt-Wechsellogik, muss nur eine einzelnen Beziehung gepflegt werden

  • Diese Beziehung ist derart einfach, dass man somit in den Bereich kommt, wo eine Änderung der Produkt-Wechsellogik über den Produktkatalog ohne Systemanpassung im Prinzip möglich ist

  • Businesslogik bezüglich Technologie Entscheidungen zu der Realisierung von Anschlüssen, sowie zu dessen Provisionierung ist schlanker, weil sie nicht über die Produkte ausmultipliziert ist und somit sehr viel leichter änderbar ist

  • Auch die Provisionierungslogik für einen Technologiewechsel, die mit einem Produktwechsel gegebenenfalls einher gehen kann, ist überschaubar. Denn auch hier gibt es nur wenige Beziehungen.

Dieser vom Projekt verfolgte Ansatz hat ein viel schlankeres System zufolge, welche der kaufmännischen und technischen Realität viel mehr entspricht und somit für die Entwickler sehr verständlich ist. In der Folge gehen Anpassungen wesentlich schneller und sind somit viel kostengünstiger. Außerdem gibt es Produktänderungen, die ohne Anpassungen des Systems gemacht werden können. Dass dies zu einem wesentlich besseren Time-to-Market führt muss nicht mehr erwähnt werden.

 

Technikprüfung

Es musste eine neue Technikprüfung (die Voraussetzungen eines Hausanschlusses, um daraus die maximal erreichbare Bandbreite und mögliche Produkte zu bestimmen) in den Vertriebsportale implementiert werden - analog zu der Technikprüfung im Bestandssystem.

Hierzu habe ich das hierunter abgebildete Ablaufmodell erstellt. Hier wird die Logik abgebildet, über welche Technologie ein Anschluss realisiert werden kann resp. muss. Es ermittelt, welche Technologie bevorzugt wird, wenn es mehrere Möglichkeiten gibt unter Berücksichtigung der Leitungs- Dämpfwerte.

Ablaufdiagramm Technikprüfung

Ablaufdiagramm Technikprüfung

Wie zu erkennen ist, enthält das Ablaufmodell mehrere „Wenn/dann“ Bedingungen und darauf basierend mehrere Schleifen. Einen solches Modell zu konzipieren war eine bewusste Entscheidung, weil dieses dem Paradigma der Programmierung sehr nah kommt und trotzdem für den involvierten Kollegen in den Fachbereichen sehr nachvollziehbar war. Sie konnten so vor der Umsetzung sehr gut verifizieren, ob unser Verständnis und Ansatz richtig waren, bzw. die Regeln korrigieren. 

Die darauffolgende Umsetzung war äußerst effizient:  In nur zwei Wochen hatte der Entwickler die Entwicklung fertig gestellt. Innerhalb eines Releases konnte es fertig getestet und ohne jegliche Probleme in die Produktion eingeführt werden.