Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre*...

18
Sanierung von Legacy- Systemen Ein Erfahrungsbericht

Transcript of Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre*...

Page 1: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Sanierung von Legacy-Systemen

Ein Erfahrungsbericht

Page 2: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Quelle: xkcd.com

Page 3: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

MaibornWolff

Woher kommen Legacy Systeme?

Wie gehen wir vor?

Was haben wir gelernt?

Tools

Inhalt

Page 4: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme
Page 5: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

50% aller Anwendungen sind älter als 20 Jahre*

Designentscheidungen

Feature-Overload

Over-Engineering

Integration durch Fremdsysteme

Woher kommen Legacy Systeme?

*Quelle: Marktstudie Software Modernisierung, Bosshard & Partner, 2005

Page 6: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Was ist zu tun?

Over-Engineering

Technik / Architektur

Fa

ch

lich

keit

- Langsam

- Teuer

- Fehleranfällig

- Zeitnah

- Günstig

- Zuverlässig

Wartungshölle Eingeschränkte

Wartbarkeit

Idealer

Wartungskorridor

Ist

SollOh

ne

Ma

ßn

ah

men

Page 7: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Türöffner

Groben Überblick

Legacy Code kategorisieren

Wartungskorridor

Wie gehen wir vor?Audit-Phase (~ 3 Wochen)

Page 8: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Übernahme der Software

Backlog füllen

Erweiterte Kategorisierung

Testabdeckung erhöhen

CI aufsetzten

Erste Aufräumarbeiten

Wie gehen wir vor?Einarbeitung-Phase (~ 3 Monate)

Page 9: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Aufräumen was geht

Alten Code sanieren

Neue Features hinzufügen

Wie gehen wir vor?Einarbeitung-Phase (3 - 6 Monate)

Page 10: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Business as Usual

Wie gehen wir vor?Stabile Phase

Page 11: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Agiles Vorgehen hilft

Der Konkretisierungsgrad nimmt über die Zeit zu

Das Team muss die Fachlichkeit verstehen

Der Kunde muss die Fachlichkeit erklären

Kommunikation ist wichtig

Was haben wir gelernt?Vorgehen

Page 12: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Es wird nicht nur saniert um den Code hübscher zu machen

Es wird saniert um neue Features zu ermöglichen

Der Kunde muss wissen was wichtig ist

Was haben wir gelernt?Fachliche Herangehensweise

Page 13: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Sanierung ist nicht nur Refactoring

Legacy Code muss kategorisiert werden

Continous Integration und Testabdeckung sind wichtig

Fortschritt verständlich visualisieren

Was haben wir gelernt?Technische Herangehensweise

Screenshot: Software Diagnostics

Page 14: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

ToolsJira/Confluence

www.atlassian.com

Page 15: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Toolsbalsamiq

www.balsamiq.com

Page 16: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

ToolsSoftware Landkarten

Screenshot: Software Diagnostics

Page 17: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

ToolsCI-Server/SonarQube

www.sonarqube.org

Page 18: Sanierung von Legacy-Systemen - Entwicklertag · 50% aller Anwendungen sind älter als 20 Jahre* Designentscheidungen Feature-Overload Over-Engineering Integration durch Fremdsysteme

Danke für die Aufmerksamkeit!