sogehtsoftware.de
MIGRATIONSSTRATEGIEN
Der Sprecher
Hendrik Lösch
Senior Consultant & Coach
Hendrik.Loesch@saxsys.de
@HerrLoesch
Hendrik-Loesch.de
ANPASSBARKEIT VS. BUSSINESS VALUE
Innere Qualität /
Anpassbarkeit
Business Value
Start der
Entwicklung
Featureentwicklung mit
geringem Qualitätsanspruch
Featureentwicklung
unter hohem Zeitdruck
Entfernen fehlerhafter
Bestandteile
Umfassende
Restrukturierung inkl.
neuer Features
Einsatz der
Pfadfinderregel
Entwicklung
Weiter-
entwicklung
Weiter-
entwicklung
Weiter-
entwicklung
Stabilisierung
Optimierung
Sanierung
Stabilisierung
Stabilisierung
Optimierung
t in Jahren
Basierend auf Tom Gilb, Evolutionary Delivery vs Waterfall Model, ACM Software Engineering Notes, Juli 1985
Initial
Development Phase Out Close DownEvolution
changes patches
Servicing
Quelle: Software Evolution, Tom Mens, Serge Demeyer
t
Servicing
Wertsteigernde
Investitionen
Werterhaltende
Investitionen
100%
0
Initial Entwicklung Evolution
› Restrukturierung
› Anpassung der Struktur ohne Verhaltensänderung
› Migration
› Übertragung vorhandener Funktionalität auf neue technische Basis
› Sanierung
› Versetzen des Systems in seinen ursprünglich geplanten Zustand
DEFINITIONEN
UNGEPLANTES VORGEHEN
Softwaresystem
Softwaresystem
Die Einen sehen was und sagen nix.
Die Anderen sehen was und machen nix.
Die Nächsten machen nix und sehen deshalb nix.
Die Letzten explodieren.
Fehlerkosten
Prozessfortschritt
Automatisierte Tests
Manuelle Tests
Abnahme durch Fachbereich
Produktiveinsatz Fachbereich
Auswirkungen auf Endkunden
Entwicklungsintern
Extern
Vertrauen
AufwandFeedback
sogehtsoftware.de
BIG BANG
(COLD TURKEY)
Theorie
BIG BANG
Alt
Neu
Kick-Off Neues Produkt Mögliche Ablösung
altes Produkt
Funktionsumfang
t
Praxis
BIG BANG
Alt
Neu
Kick-Off Neues Produkt Mögliche Ablösung
altes Produkt
Funktionsumfang
t
BIG BANG
17
sogehtsoftware.de
CONTEXT MAP
BEISPIELSZENARIO
ConsultR
Gesamtanwendung
SCHICHTENTRENNUNG
Datenhaltung
Darstellung
Vermittlung
Geschäftslogik
Sales Consulting Invoicing
CONTEXT MAP
Sales Invoiceing
Consulting
CONTEXT MAP
Sales
S
Invoiceing
G
C – Core Domain
S – Support Domain
G – Generic Domain
Consulting
C
ACL
​G
​SG
S
G
G
S
G
C
S
C
G
C – Core Domain
S – Support Domain
G – Generic Domain
CONTEXT MAP
Sales
Module UI
Logic Data
Interfaces
Invoicing
ModuleUI
LogicData
Interfaces
Rahmen-
applikation
Invoicing benötigt
Daten von Sales
Initialisiert
Invoicing
Initialisiert
Sales
Invoicing Sales
CONTEXT MAP
sogehtsoftware.de
CHANGE BY EXTRACTION
BEISPIELSZENARIO
ConsultR
CHANGE BY EXTRACTION
Rechnungslegung Auftragseingang
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
3rd
Party
Anbind
ung
Applikationsinfrastruktur
CHANGE BY EXTRACTION
Zeiterfassung
Projekt-
verwaltung
Auftragseingang
3rd Party
Anbindung
Rechnungslegung
CHANGE BY EXTRACTION
Rechnungslegung Auftragseingang
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
3rd
Party
Anbind
ung
ConsultR Light
sogehtsoftware.de
CHANGE BY SPLITT
Vorgehen
CHANGE BY SPLITT
Rechnungslegung Auftragseingang
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
3rd
Party
Anbind
ung
Vorgehen
CHANGE BY SPLITT
Rechnungslegung Auftragseingang
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
3rd
Party
Anbind
ung
Rechnungslegung Auftragseingang
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
3rd
Party
Anbind
ung
ConsultR
Controlling
ConsultR Light
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
3rd
Party
Anbind
ung
Rechnungslegung Auftragseingang
Applikationsinfrastruktur
3rd
Party
Anbind
ung
Vorgehen
CHANGE BY SPLITT
ConsultR
Controlling
ConsultR Light
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
Rechnungslegung Auftragseingang
Applikationsinfrastruktur
Vorgehen – realistischer Zustand
CHANGE BY SPLITT
Projekt-
verwaltung
Zeiterfassung
3rd
Party
Anbind
ung
Rechnungslegung
Auftragseingang
Applikationsinfrastruktur
3rd
Party
Anbind
ung
CHANGE BY SPLITT + EXTRACT
ConsultR Light
ConsultR
Controlling
sogehtsoftware.de
ISOLATED CORE DOMAINS
ISOLATE CORE DOMAINS
Applikationsinfrastruktur
Zeiterfassung
Projekt-
verwaltung
Auftragseingang
3rd Party
Anbindung
Rechnungslegung
ISOLATE CORE DOMAINS
Applikationsinfrastruktur
Zeiterfassung
Projekt-
verwaltung
Auftragseingang
3rd Party
Anbindung
Rechnungslegung
ConsultR
sogehtsoftware.de
DOWN SIZING
DOWNSIZING
Rechnungslegung Auftragseingang
Projekt-
verwaltungApplikationsinfrastruktur
Zeiterfassung
3rd
Party
Anbind
ung
DOWNSIZING
Auftrags-
eingang
Projekt-
verwaltung
Rechnungs-
legung
Zeiterfassung
sogehtsoftware.de
CHICKEN LITTLE & TRICKLE
MIGRATION
CHICKEN LITTLE
Analyse des
Bestandssystems
Zerlegung der
Systemstruktur
Design der
Zielschnittstellen
Design des
Zielsystems
Design der
Zieldatenbank
Aufbau
notwendiger
Gateways
Migration der
Legacy
Datenbanken
Migration der
Legacy
Applikationen
Migration der
Legacy
Schnittstellen
Abschalten des
Altsystems
CHICKEN LITTLE
CONTEXT MAP
Sales
S
Invoiceing
G
C – Core Domain
S – Support Domain
G – Generic Domain
Consulting
C
ACL
Schritt 1 – Abhängigkeiten analysieren
CHICKEN LITTE
Invoice
Service
Von Nach Wie
SalesAgreementManager InvoiceCalculationPresenter Direktaufruf
SalesDetailPresenter InvoiceCalculationSheetPresenter Direktaufruf
ConsultingDetail Invoice Dto & InvoiceCalculationManager GetById
Schritt 2 – Schnittstelle extrahieren
CHICKEN LITTE
Invoice
Service
Von Nach Wie
SalesAgreementManager InvoiceCalculationPresenter Direktaufruf
SalesDetailPresenter InvoiceCalculationSheetPresenter Direktaufruf
ConsultingDetail Invoice Dto & InvoiceCalculationManager GetById
IInvoice
Service
Schritt 3 – Aufrufer auf Schnittstellen anpassen
CHICKEN LITTE
Invoice
Service
Von Nach Wie Ersetzen durch
SalesAgreementManager InvoiceCalculationPresenter Direktaufruf ShowInvoiceSheet
SalesDetailPresenter InvoiceCalculationSheetPresenter Direktaufruf ShowInvoiceSheet
ConsultingDetail Invoice Dto & InvoiceCalculationManager GetById entfernen
IInvoice
Service
Schritt 3 – Schnittstelle ändern
CHICKEN LITTE
Invoice
Service
IInvoice
Service
Von Nach
SalesAgreementManager ShowInvoiceSheet
SalesDetailPresenter ShowInvoiceSheet
Schritt 4 – Migration der Funktionalität
CHICKEN LITTE
Invoice
Service 2.0
IInvoice
Service
Von Nach
SalesAgreementManager ShowInvoiceSheet
SalesDetailPresenter ShowInvoiceSheet
sogehtsoftware.de
ZUSAMMENFASSUNG
1. Analyse, Analyse, Analyse
2. Planung, Planung, Planung
3. Dokumentation, Dokumentation, Dokumentation
4. Migration
ZUSAMMENFASSUNG
Der Sprecher
Hendrik Lösch
Senior Consultant & Coach
Hendrik.Loesch@saxsys.de
@HerrLoesch
Hendrik-Loesch.de

Weitere ähnliche Inhalte

PDF
IBM Services innovativ und erfolgreich
PPTX
Business Consulting Präsentation
PDF
20101207 uni leipzig_oraclebpm_suite.slideshare
PDF
[DE] EIM Enterprise Information Management Update 2013 | PROJECT CONSULT | Ul...
PDF
"Erfolgreiche Strategien zur Migration veralteter Software" Präsentation vom ...
PDF
Effimag präsentation05
PDF
ITservices24 Präsentation 2013
IBM Services innovativ und erfolgreich
Business Consulting Präsentation
20101207 uni leipzig_oraclebpm_suite.slideshare
[DE] EIM Enterprise Information Management Update 2013 | PROJECT CONSULT | Ul...
"Erfolgreiche Strategien zur Migration veralteter Software" Präsentation vom ...
Effimag präsentation05
ITservices24 Präsentation 2013

Ähnlich wie Migrationsstrategien (20)

PDF
20110223 agiles bpm
PDF
Miss es oder vergiss es! Messen und rappotieren von Service-Management-Prozessen
PDF
Xp days vortrag_karriere_im_agilen_umfeld
PPTX
KK IT.SYSTEMS SHAREPOINT ECM EXPERTS
PDF
Systematika Business Intelligence Specialists
PDF
Pc-studio GmbH: IT-Komplettdienstleister für Ihr Unternehmen
PPTX
IRF Solutions - Data Focus for Financial Systems
PDF
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
PDF
Von der Businessstrategie zum Service-Portfolio
PDF
Keynote SAP Cloud @ Bitkom CeBIT2013 - DEUTSCH
PDF
Clemens engler, IBM: smarte is vs auf dem weg in die cloud
PPTX
CRM Vortrag - BVMW IT Frühstück 2011
PPTX
Strategien für Corporate Data Management
PDF
Sucess Story von Linux zu Microsoft
PDF
Vorgehensweisen bei der Content-Migration im Rahmen eines Relaunch-Projektes ...
 
PDF
Risikomanagement GPM Karlsruhe 20100128 Handout
PDF
Modellieren von Geschäftsprozessabhängigkeiten
PPTX
[EN] Enterprise Information Management | Keynote Dr. Ulrich Kampffmeyer | Ope...
PDF
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012
20110223 agiles bpm
Miss es oder vergiss es! Messen und rappotieren von Service-Management-Prozessen
Xp days vortrag_karriere_im_agilen_umfeld
KK IT.SYSTEMS SHAREPOINT ECM EXPERTS
Systematika Business Intelligence Specialists
Pc-studio GmbH: IT-Komplettdienstleister für Ihr Unternehmen
IRF Solutions - Data Focus for Financial Systems
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Von der Businessstrategie zum Service-Portfolio
Keynote SAP Cloud @ Bitkom CeBIT2013 - DEUTSCH
Clemens engler, IBM: smarte is vs auf dem weg in die cloud
CRM Vortrag - BVMW IT Frühstück 2011
Strategien für Corporate Data Management
Sucess Story von Linux zu Microsoft
Vorgehensweisen bei der Content-Migration im Rahmen eines Relaunch-Projektes ...
 
Risikomanagement GPM Karlsruhe 20100128 Handout
Modellieren von Geschäftsprozessabhängigkeiten
[EN] Enterprise Information Management | Keynote Dr. Ulrich Kampffmeyer | Ope...
IBM SmartCloud Provisioning Workshop, 25. Oktober 2012
Anzeige

Mehr von Hendrik Lösch (20)

PPTX
Why (most) softwareprojects fail silently
PPTX
We (don't) need a software architect!?!
PPTX
Restrukturierung einer industriellen Großapplikation
PDF
Vom Monolith zum Modulith
PPTX
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
PDF
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
PPTX
Software ist was du draus machst!
PPTX
Modular mit .NET
PPTX
.NET zu .NET Core
PPTX
Workshop Vue js
PPTX
Einstieg in das Vueniverse
PPTX
Survivalkit für Codehausmeister
PPTX
Confessions of a Codehausmeister
PPTX
Hey, wie geht es dir?
PPTX
WPF Dos n Don'ts - der WPF Rundumschlag
PPTX
Clean mit visual studio
PPTX
Advanced Refactoring Patterns
PPTX
Codesmells
PPTX
Advanced Refactoring Patterns - Dev Day 2018
PPTX
Der Healthcheck für Softwareprojekte
Why (most) softwareprojects fail silently
We (don't) need a software architect!?!
Restrukturierung einer industriellen Großapplikation
Vom Monolith zum Modulith
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
Software ist was du draus machst!
Modular mit .NET
.NET zu .NET Core
Workshop Vue js
Einstieg in das Vueniverse
Survivalkit für Codehausmeister
Confessions of a Codehausmeister
Hey, wie geht es dir?
WPF Dos n Don'ts - der WPF Rundumschlag
Clean mit visual studio
Advanced Refactoring Patterns
Codesmells
Advanced Refactoring Patterns - Dev Day 2018
Der Healthcheck für Softwareprojekte
Anzeige

Migrationsstrategien

Hinweis der Redaktion

  • #4: Man beachte auch, dass die Pfeile immer kürzer werden.
  • #10: Verringerung des Ressourcenbedarfs. Optimierung des Quellcodes durch vereinheitlichte Konzepte. Ablösen alter Frameworks durch neue.
  • #11: Das Softwaresystem war ein Monolith. Wir haben Teile des Monolithen verändert. Damit wurden unsere Änderungen Teil des Monoliths und wir übernahmen die Verantwortung für alle Fehler die darin enthalten sind.
  • #12: Das Softwaresystem war ein Monolith. Wir haben Teile des Monolithen verändert. Damit wurden unsere Änderungen Teil des Monoliths und wir übernahmen die Verantwortung für alle Fehler die darin enthalten sind.
  • #16: Skype kann nicht mehr verwendet werden wenn auf Teams umgestellt wird. Den Nutzern fallen reihenweise fehlende oder geänderte Features auf: Verwendung mehrerer Chatfenster zeitgleich? -> Geht nicht mehr Auswahl des aktuellen Sprechers? -> Teams teilt die Darstellung auf, man kann aber nicht konfigurieren wie.
  • #17: Zeitgleiche Pflege mehrerer Systeme. Investitionen in das Altsystem gehen nach Migration komplett verloren. Geringe Akzeptanz des neuen Systems wenn Funktionalität eingeschränkt gegenüber Altsystem. Neuer Code bedeutet auch neue Fehler.
  • #18: Skype kann nicht mehr verwendet werden wenn auf Teams umgestellt wird. Den Nutzern fallen reihenweise fehlende oder geänderte Features auf: Verwendung mehrerer Chatfenster zeitgleich? -> Geht nicht mehr Auswahl des aktuellen Sprechers? -> Teams teilt die Darstellung auf, man kann aber nur eingeschränkt konfigurieren wie.
  • #19: Es gibt keine Bugs oder Fehler, es gilt nur die Frage ob ein Verhalten akzeptabel ist oder nicht.
  • #25: Farben – Fachlichkeit Vierecke – Teams Schwarze Pfeile – Upstream Beziehung Rote Pfeile – Schlecht gewählte Upstream Beziehungen Orangene Pfeile – Partnerschaftliche Beziehungen Legt man die Verantwortlichkeiten der Teams darüber, merkt man, wo Abhängigkeiten zwischen den Teams bestehen. Hier ist es insbesondere schwierig, weil Partnerschaftliche Beziehungen zwischen Modulen bestehen die bei unterschiedlichen Teams liegen. Außerdem liegen Module der gleichen Fachlichkeit bei unterschiedlichen Teams.
  • #26: Grüne Pfeile -> bewusste Abhängigkeitsumkehr. Die Quellcodemenge die zu betreuen ist, ist fast noch die gleiche. Team 1 hat etwas mehr zu tun.
  • #27: Farben – Fachlichkeit Vierecke – Teams Schwarze Pfeile – Upstream Beziehung Rote Pfeile – Schlecht gewählte Upstream Beziehungen Orangene Pfeile – Partnerschaftliche Beziehungen Legt man die Verantwortlichkeiten der Teams darüber, merkt man, wo Abhängigkeiten zwischen den Teams bestehen. Hier ist es insbesondere schwierig, weil Partnerschaftliche Beziehungen zwischen Modulen bestehen die bei unterschiedlichen Teams liegen. Außerdem liegen Module der gleichen Fachlichkeit bei unterschiedlichen Teams.
  • #28: Grüne Pfeile -> bewusste Abhängigkeitsumkehr. Die Quellcodemenge die zu betreuen ist, ist fast noch die gleiche. Team 1 hat etwas mehr zu tun.
  • #29: Klare fachliche Trennung einzelner Module. Fachliche wie technische Bestandteile können leicht ausgetauscht oder verändert werden. Gerichtete und damit nachvollziehbare Abhängigkeiten. Änderungen wirken sich nur auf einen definierten Teilbereich aus und sind frei von Nebeneffekten. Kommunikation nur über abstrakte Schnittstellen. Es ist leicht automatisierte Tests zu verfassen und Bestandteile unabhängig voneinander zu betrachten. Zusammensetzung der Anwendung durch entsprechende Modulaggregatoren und eine Rahmenapplikation. Definierte Schlüsselpunkte weisen hohe Komplexität auf, alle anderen eher geringe. Einheitliches Vorgehen bei der Umsetzung neuer Funktionalität. Geringer Einarbeitungsaufwand.
  • #37: Anwendung wird geklont. Ab der Stelle wo sie geklont wurde, laufen sie bewusst auseinander und kümmern sich nicht mehr umeinander.
  • #38: Der Code wird aufgespalten Man entfernt die anderen Bestandteile komplett.
  • #39: Es wird nur das entfernt was definitiv nicht gebraucht wird. Alles andere bleibt drin, selbst wenn es ggf. nicht benötigt wird.
  • #40: Die gemeinsamen Bestandteile werden wieder zusammen geführt und den anderen Teilen zur Verfügung gestellt.
  • #42: Die gemeinsamen Bestandteile werden wieder zusammen geführt und den anderen Teilen zur Verfügung gestellt.
  • #43: Die gemeinsamen Bestandteile werden wieder zusammen geführt und den anderen Teilen zur Verfügung gestellt.
  • #46: Das System wird in viele, völlig eigenständige Systeme (Self-Contained Services zerlegt).