management of the system architecture in large-scale projects
TRANSCRIPT
Management der Systemarchitektur in
Großprojekten
Leipzig, 19.11.2015, Tim Lüecke
Public – Company Confidential – Customer Confidential – Sensitive
Architektur_Management_in_Großprojekten.pptx
Wozu Architektur-Management?
Copyright © Capgemini 2015. All Rights Reserved
2
Quelle: http://geekandpoke.typepad.com/geekandpoke/2010/11/architecture.html
Vermeidung von strukturellen Monolithen
Auflösung von Architekturfehlern und
Fehlentwicklungen
Architektur_Management_in_Großprojekten.pptx
Über mich
Copyright © Capgemini 2015. All Rights Reserved
3
Tim LüeckeSenior Solution ArchitectLübecker Straße 128, HamburgPhone: +49 40 254491 314E-Mail: [email protected]
Architektur_Management_in_Großprojekten.pptx
Über Capgemini
Umsatz nach Branchen*Umsatz nach Geschäftsbereichen*
Telecom, Media& Entertainment
Other ManagedServices
Local Professional
Services
Consulting Services
ApplicationServices
Energy, Utilities& Chemicals
Others
Public Sector
Manufacturing,Automotive &Life Sciences
14%
4%7%19%
16%
23%
4%
58%23%
15%
“Cap Gemini S.A.” ist im CAC 40 gelistet;Paris, ISIN code: FR0000125338
Unsere Marke ist Capgemini, an der Pariser Börse sind wir unter “Cap Gemini S.A.” gelistet.
Financial Services
Copyright © Capgemini 2015. All Rights Reserved
4
17%
Customer Products, Retail, Distribution &
Transportation
Operative Marge :
970 Mio. €
Operativer Gewinn :
853 Mio. €
Jahresgewinn :
580 Mio. € Netto-Barmittel und bargleiche Mittel :
1.22 Mrd. €
Umsatz 2014: 10,57 Mrd. €
* Stand: 1. Halbjahr 2015 * Stand: 1. Halbjahr 2015
Architektur_Management_in_Großprojekten.pptx
Copyright © Capgemini 2015. All Rights Reserved
5
Agenda
Großprojekte und ihre Herausforderungen
Architekturmanagement in Großprojekten
Refactoring in Großprojekten
Zusammenfassung
Architektur_Management_in_Großprojekten.pptx
Copyright © Capgemini 2015. All Rights Reserved
6
Agenda
Großprojekte und ihre Herausforderungen Architekturmanagement in Großprojekten
Refactoring in Großprojekten
Zusammenfassung
Architektur_Management_in_Großprojekten.pptx
Großprojekte zeichnen sich durch eine hohe Komplexität gepaart mit einer hohen Management-Attention aus
Copyright © Capgemini 2015. All Rights Reserved
7
Unterstützung derKernprozesse
Hohe KomplexitätWeltweiter Nutzerkreis(intern/extern)
Großes Team (> 50)
Große Investition
Hoher Druck
Architektur_Management_in_Großprojekten.pptx
Kontext dieses Vortrages sind Individual-Software-Großprojekte in einem iterativen Wasserfallprozess
Copyright © Capgemini 2015. All Rights Reserved
8
Klassisches Vorgehensmodell Individualsoftware Kernprozesse meist schon gegeben
(Vorgängersystem evtl. vorhanden) Ziel der Reise ist bekannt Grobplanung mit möglichst stabilen
Terminplan zur Steuerung der Einführung erforderlich
Diverse Stakeholder ohne klar identifizierbaren Product Owner
Software wird von Grund auf selbst entwickelt
Maßgeschneidert zur bestmöglichen Unterstützung der Kernprozesse
Ermöglicht Differenzierung in den Kernkompetenzen eines Unternehmens
Technische Basis kann potentiell wiederverwendet werden
Architektur_Management_in_Großprojekten.pptx
Großprojekte bringen einige Herausforderungen für die zugrundeliegende Architektur mit sich
DruckKomplexität
Größe
Copyright © Capgemini 2015. All Rights Reserved
9
DiverseMindsets
CRs
FalscheEntscheidungen
VerteiltesWissen
FehlendeQA
Prozesse
Architektur_Management_in_Großprojekten.pptx
Wegen der langen Laufzeit häufen sich Änderungs-Anforderungen, die schnell umgesetzt werden müssen
Copyright © Capgemini 2015. All Rights Reserved
10
Weltweite Anforderungen können nicht alle im Voraus bedacht werden
Anforderung ändern sich nach dem ersten Release(oder auch während)
Änderungen sollen asap eingearbeitet werden (“Emergency CRs”) Führt oft zu „Hacks“ (durch ungenügendes Wissen, Druck, ...)
Time-to-market
Eine Software, die verwendet wird, wird auch verändert Wenn eine Software geändert wird, erhöht sich die Komplexität,
sofern nicht aktiv dagegen gesteuert wird
Gesetz der Software Entropie (Lehman)
Architektur_Management_in_Großprojekten.pptx
Die Verteilung des Wissens gestaltet sich über ein großes Team äußerst schwierig
Copyright © Capgemini 2015. All Rights Reserved
11
Ursache
Beschränkung auf Dokumentation
Team-übergreifende Kommunikation
Übereiltes Ramp-up Erstellung der technischen Basis
parallel zu der Entwicklung „Moving Target“ Zu schneller Team-Aufbau
Mitteilung von Regeln über Mails / Handbüchern / Wiki ungenügend
Fehlende Begründung Entwickler haben andere Sorgen
(„TAGRI“)
z.B. bei Trennung der Teams nach Disziplinen
Knowledge Transfer muss unterschiedliche Perspektiven genügen
Architektur Wissen unterschiedlich verteilt
Kennt man eine Regel nicht, wird sie auch nicht befolgt
„Elfenbein-Turm-Architekturen“
Architektur_Management_in_Großprojekten.pptx
Beispiel
Ohne Akzeptanz wird eine Architektur nicht befolgt
Fehlende Motivation frustriert
Ein großes Team bringt viele unterschiedliche Meinungen mit sich, die oft im Konflikt stehen
Trennung von Zuständigkeiten
Schichten-Architektur
Minimierung von Abhängigkeiten
Copyright © Capgemini 2015. All Rights Reserved
12
“Wenn ich es doch aber brauche, muss ich es halt kennen!”
“Was ist falsch an zyklischen Abhängigkeiten? Das ist fachlich halt so…”
“Es ist doch viel einfacher alles an einer Stelle zu implementieren!”
“Man versteht das doch nicht mehr, wenn es so verteilt ist”
Schichten können in einfachen Fällen künstlich wirken
“Da wird doch kaum etwas gemacht, wieso muss das getrennt werden?!”
“Das ist nicht effizient genug!”
Architektur_Management_in_Großprojekten.pptx
Qualitätssicherung wird gerade am Anfang häufig zugunsten von Ergebnissen vernachlässigt
Copyright © Capgemini 2015. All Rights Reserved
13
Ursache
“Lasst uns erst mal anfangen, wir prüfen das dann alles später”
Automatischer Tool-Support fehlt, oder muss erst noch aufgesetzt werden
Fokus auf Implementierung
Qualitätssicherung wird oft als erstes gestrichen, wenn die Zeit knapp wird
Fehlende Management Awareness
Zeitdruck
Regeln werden verletzt
Regelverletzungen breiten sich schneller aus als man denkt
“You can’t manage what you can’t control, and you can’t control what you don’t measure” (Tom DeMarco)
Architektur_Management_in_Großprojekten.pptx
Falsche Architektur Entscheidungen haben enorme Auswirkungen
Copyright © Capgemini 2015. All Rights Reserved
14
Beispiel
Schichten ohne klare, disjunkte Zuständigkeiten Entwickler wissen nicht wo genau sie was implementieren müssen Führt zu den unterschiedlichsten Lösungsansätzen
Details
Schichten
Komponentenschnitt mit zu vielen Zuständigkeiten Falsche Kopplung zwischen den Komponenten Falscher Schnittstellen-Schnitt mit Hinblick auf Performance
Komponenten
Architektur_Management_in_Großprojekten.pptx
Werden diese Herausforderungen nicht gemeistert, führt dies schnell zu struktureller Erosion
Copyright © Capgemini 2015. All Rights Reserved
15
Strukturelle Erosion [...]
Architektur_Management_in_Großprojekten.pptx
Bei struktureller Erosion verschwindet die Architektur in einem Knäuel von Abhängigkeiten
Copyright © Capgemini 2015. All Rights Reserved
16
Quelle: http://www.hello2morrow.com
Architektur_Management_in_Großprojekten.pptx
Symptom
Opacity / Immobility
Viscosity
Strukturelle Erosion zeichnet sich durch bestimmte Merkmale aus (Robert C. Martin)
Rigidity / Fragility Anpassungen an einer Stelle wirken sich an anderen Stellen aus Regelmäßig fehlschlagende Builds auf Modul-Ebene Paralleles Arbeiten in großen Projekten immens erschwert
Source Code ist schwer zu verstehen: wo findet sich was? Fehlende Trennung von Zuständigkeiten Wiederverwendbare Komponente sind schwer zu identifizieren und
einzuführen
Es ist leichter etwas falsch zu machen als richtig Benutzung von Code, der gegen Regeln verstößt, führt zu neuen
Verstößen
Copyright © Capgemini 2015. All Rights Reserved
17
Erläuterung
“The software starts to rot like a bad piece of meat”s. Agile Software Development, Robert C. Martin, Prentice Hall 2003
Architektur_Management_in_Großprojekten.pptx
Copyright © Capgemini 2015. All Rights Reserved
18
Agenda
Großprojekte und ihre Herausforderungen
Architekturmanagement in Großprojekten
Refactoring in Großprojekten
Zusammenfassung
Architektur_Management_in_Großprojekten.pptx
Großprojekte erfordern ein kontinuierliches Architekturmanagement
Copyright © Capgemini 2015. All Rights Reserved
19
Wissens-transfer
Problem-behebung
Definition der Architektur
Monitoring
Architektur_Management_in_Großprojekten.pptx
Definition der Architektur muss klar, verständlich und nachvollziehbar formuliert werden
Copyright © Capgemini 2015. All Rights Reserved
20
Aspekt
Struktur
Inhalt Angabe klar verständlicher Definitionen der Architekturelemente Definition, Hervorhebung und Motivation (!) von Regeln Entwurfsentscheidungen explizit mit Alternativen festhalten Namenskonvention zur Klassifizierung von Artefakten
Dokumentation über verschiedene Architektur-Perspektiven Technische Architektur als Word Dokument Fachliche Architektur als UML Modell
Zu beachten
Nur ein Startpunkt Architekturen sind nicht in Stein gemeißelt Was nicht funktioniert, muss geändert werden Änderungen sollten mit Bedacht erfolgen und mit dem Management
abgestimmt werden
Architektur_Management_in_Großprojekten.pptx
Ein geordneter Wissenstransfer für die Architektur ist unabdingbar
Copyright © Capgemini 2015. All Rights Reserved
21
Aspekt
Architektur-Schulungen
Veröffentlichung der Architektur
Einfacher Zugang für jeden Entwickler Verknüpfung zu anderen Dokumentationen (z.B.
Entwicklerhandbuch) Bereitstellung eines expliziten Regelkatalogs mit Beispielen
Veröffentlichung alleine nicht ausreichend Schulungen zur Vermittlung des Inhalts vorbereiten Motivation für die Architektur (d.h. die Regeln) hervorheben Raum für Diskussionen lassen – aber gut vorbereitet sein ;-)
Zu beachten
Architektur_Management_in_Großprojekten.pptx
Architektur-Verletzungen müssen frühzeitig und kontinuierlich zumindest erfasst werden
Copyright © Capgemini 2015. All Rights Reserved
22
Aspekt
Tool-Unterstützung
Überprüfung der Regeln Auch der beste Wissenstransfer verhindert nicht alle
Regelverletzungen Regeln können oft nicht durch die Sprache forciert werden Bei komplexen Implementierungen oftmals vernachlässigt
Erfassung und Dokumentation von Regel-Verletzungen Wenn möglich sollte Regelprüfung automatisch erfolgen, z.B. über
Sonargraph Sonarqube
Sollte Teil der Continuous Integration sein
Zu beachten
Code Reviews Falls kein Tool vorhanden, sollte dies Teil von Code Reviews sein
(z.B. über Checkliste) Durchführung von einem erfahrenen Entwickler
Frühzeitig und kontinuierlich Verletzungen verbreiten sich oft rasant Je später erfasst, desto schneller steigen die technischen Schulden
Architektur_Management_in_Großprojekten.pptx
Sonargraph bietet eine einfache Möglichkeit Architekturen zu modellieren und zu kontrollieren
Copyright © Capgemini 2015. All Rights Reserved
23
Architektur Modell Quellcode Unterstützung von zwei Dimensionen:
• Technische Architektur (Schichten)• Anwendungs-Architektur
(Slice = Komponente) Explizite und Implizite Abhängigkeiten Flexiblere Modellierung über DSL in
neuester Version
Zuweisung von Architekturelementen über Namenskonvention (s. Architektur-Definition)
Best Practice:[company].[system].[component].[layer]
Accounting
Bus
ines
sLaye
rs Pre
sent
atio n
Per
sist
enc
e Masterdata Component
s
Booking
Products
Architektur_Management_in_Großprojekten.pptx
Feature
Verletzungen
Tasks
Package-Zyklen
Metriken
Sonargraph bietet Features, die für das Architekturmanagement äußerst nützlich sind
Copyright © Capgemini 2015. All Rights Reserved
24
Details
Abgleich der Quellcode-Abhängigkeiten mit Architekturmodell Identifikation und Auflistung der Abhängigkeitsverletzungen
Tasks für virtuelle Refactorings (Verschiebung, Umbenennung, etc.) Tasks zur Auflösung von Abhängigkeiten Erlaubt die virtuelle Behebung der oben aufgeführten Verletzungen
Identifikation von Zyklen zwischen Packages Vorschläge zum Auflösen von Zyklen
Code Duplizierung ACD / NCCD Komplexitäts-Metriken
Architektur_Management_in_Großprojekten.pptx
Die Behebung der Probleme und die Rückkopplung der Erkenntnisse müssen aktiv gemanagt werden
Copyright © Capgemini 2015. All Rights Reserved
25
Aspekt
Feedback Schleife
Problembehebung Priorität sollte mit Bedacht und nach eingehender Analyse erfolgen Verletzungen breiten sich schnell aus (Viskosität) Finden der Balance zwischen Weiterentwicklung und Behebung der
strukturellen Schulden
Konkrete Verletzungen als Beispiel für Wissenstransfers heranziehen Prüfen der Architektur-Definition mit evtl. Anpassung falls erforderlich
Zu beachten
Architektur_Management_in_Großprojekten.pptx
Copyright © Capgemini 2015. All Rights Reserved
26
Agenda
Großprojekte und ihre Herausforderungen
Architekturmanagement in Großprojekten
Refactoring in Großprojekten Zusammenfassung
Architektur_Management_in_Großprojekten.pptx
Technische Schulden sind in Großprojekten unvermeidlich und müssen in Rahmen von Refactorings aufgelöst werden
Copyright © Capgemini 2015. All Rights Reserved
27
Metapher Abbau von Schulden Formuliert von Ward Cunningham Entstehung von Schulden:
• Unvollständiges Verständnis der Systemanforderungen führt zu „leicht falschem“ Code
• Fachliche Architektur passt z.B. nicht zu den Anforderungen
Auswirkung: • wie bei finanziellen Schulden müssen
Zinsen gezahlt werden• Neue Anforderungen lassen sich
schwerer umsetzen Inzwischen wird auch die Code-Qualität
als Teil der technischen Schulden gesehen(anders als von Cunningham gedacht)
Refactorings zur Korrektur der Architektur Kann fachliche aber auch technische
Architektur betreffen Sinnvolle Bewertung notwendig:
• dort ansetzen, wo es für die Zukunft hilfreich ist
• Planung inkl. Schätzung als Grundlage• Zielbild zur Orientierung
Neue Anforderungen
Schu
lden
abba
u
Architektur_Management_in_Großprojekten.pptx
cmp jMoney
jMoney
Masterdata Accounting
ImporterReporting
Ein typisches Beispiel ist die Auftrennung einer zu groß gewordenen Komponente
Beispiel
Copyright © Capgemini 2015. All Rights Reserved
28
Problem: Größe einer Kernkomponente• Größe wurde vom Design nicht
antizipiert• Neue Zuständigkeiten im Laufe der Zeit
hinzugefügt• Abhängigkeiten in der Komponente
nicht mehr überschaubar Ergebnis: parallele Weiterentwicklung der
Komponente in mehreren Teams nicht möglich
Lösungsansatz:• Auftrennung in kleinere Komponenten
mit klar definierten Zuständigkeiten• Behebung von anderen
Architekturverletzungen „along-the-way“
Architektur_Management_in_Großprojekten.pptx
Die Refactoring Planung sollte methodisch und tool-unterstützt erstellt werden, um Fallstricke zu vermeiden
Copyright © Capgemini 2015. All Rights Reserved
29
Ziel DefinitionPhase:
Cont.: Komponenten Modell
Rein fachlich orientiert
Ohne Abhängigkeiten
Sonargraph Modell
Quell-Komponente beibehalten
Neue Komponenten definieren
Ohne Abhängigkeiten
Virtuelle Verteilung
Packages + Klassen umbenennen
Dadurch: Zuweisung zu neuen Komponenten
Tasks immer mit einem Ticket verknüpfen
Definition Abhängig-keiten
Können empirisch ermittelt werden
Optimierung anhand von Verletzungen
Anschließend fachliche Validierung
Kompo-nenten Trennung
Schichten-verletzungen ignorieren
Refactoring Tasks zu über-geordneten Aufgaben bündeln (JIRA)
Controlling über Sonargraph
Schichten Trennung
Aufgaben bündeln pro Typ und Komponente
Controlling über Sonargraph
Architektur_Management_in_Großprojekten.pptx
Erstellung eines Komponentenmodells als Leitbild
Copyright © Capgemini 2015. All Rights Reserved
30
Definition der Komponenten lediglich über Entitäten und kurze Beschreibung
Keine vorgegebenen Abhängigkeiten
cmp jMoney - Target
Accounting
ImporterMasterdata
Reporting
Architektur_Management_in_Großprojekten.pptx
Abbildung des Komponentenmodells in Sonargraph
Copyright © Capgemini 2015. All Rights Reserved
31
Einschränkung auf Code der Komponente reicht aus
Schichten global definieren für den Fokus auf Komponenten-Abhängigkeiten
Fachliche Komponenten erstellen und Package-Namen vergeben
Package-Namen fixieren (!)
Architektur_Management_in_Großprojekten.pptx
Virtuelle Verteilung der Klassen und Packages auf die Komponenten
Copyright © Capgemini 2015. All Rights Reserved
32
Erstellung von Umbenennung- oder Verschiebungs-Tasks
Können zu Arbeitspaketen pro Komponente gebündelt werden
Verknüpfung zu Ticketsystem ratsam
Architektur_Management_in_Großprojekten.pptx
Definition der fachlichen Abhängigkeiten durch hybride Soll-Ist-Analyse
Copyright © Capgemini 2015. All Rights Reserved
33
Viele Abhängigkeiten schon implizit bekannt
Andere können empirisch ermittelt werden: Abhängigkeiten definieren Anzahl der Architektur-
Verletzungen kontrollieren Iterative Optimierung
Fachliche Validierung
Architektur_Management_in_Großprojekten.pptx
Virtuelle Trennung der fachlichen Komponenten
Copyright © Capgemini 2015. All Rights Reserved
34
Verletzungen intensiv analysieren Bündeln zu Aufgabenpaketen mit gleichem
Lösungsmodell Beispiel: Listener Pattern für Dependency
Inversion Schichtenverletzungen zunächst ignorieren
(alle Schichten als „Unrestricted“ definieren)
Architektur_Management_in_Großprojekten.pptx
Abschließend: Schichtenverletzung ebenfalls betrachten (optional)
Copyright © Capgemini 2015. All Rights Reserved
35
Weitere Architekturverletzungen gleich ins Refactoring mit einbeziehen Test-Synergien nutzen Bleiben sonst lange bestehen
Bündeln nach Typ und Komponente Außerdem noch beachten: Metriken,
Package-Zyklen, Duplikate
Architektur_Management_in_Großprojekten.pptx
Die Durchführung des Refactoring sollte in Phasen erfolgen, um ein paralleles Arbeiten zu ermöglichen
Copyright © Capgemini 2015. All Rights Reserved
36
Package RefactoringPhase:
Cont.: Ausführung der Rename und Move Tasks
Build Unit bleibt unberührt
Ermöglicht paralleles Refactoring und erhöht Stabilität
Komponenten Trennung
Ausführung der Tasks zum Auflösen der unerlaubten Abhängigkeiten
Ein Bearbeiter pro Komponente sinnvoll
Build Unit Refactoring
Build Unit auftrennen Ermöglicht die
Einführung harter Abhängigkeiten, die nicht mehr verletzt werden können
Aufräumen
Ausführung der restlichen Refactoring Tasks
Architektur_Management_in_Großprojekten.pptx
Copyright © Capgemini 2015. All Rights Reserved
37
Agenda
Großprojekte und ihre Herausforderungen
Architekturmanagement in Großprojekten
Refactoring in Großprojekten
Zusammenfassung
Architektur_Management_in_Großprojekten.pptx
Zusammenfassung
Aktives Architekturmanagement ein MUSS zur Wahrung der technischen Qualität
Prozess sollte frühzeitig (am besten am Anfang) aufgesetzt werden
Transparenz über den aktuellen Stand schaffen, um Prioritäten klären zu können
Toolunterstützung wie Sonargraph (wenn möglich) nutzen
Bei Erosion: toolgestütztes Refactoring durch Sonargraph mit methodischer Durchführung
Copyright © Capgemini 2015. All Rights Reserved
38
Über CapgeminiMit mehr als 140.000 Mitarbeitern in über 40 Ländern ist Capgemini einer der weltweit führenden Anbieter von Management- und IT-Beratung, Technologie-Services sowie Outsourcing-Dienstleistungen. Im Jahr 2013 betrug der Umsatz der Capgemini-Gruppe 10,1 Milliarden Euro.
Gemeinsam mit seinen Kunden erstellt Capgemini Geschäfts- wie auch Technologielösungen, die passgenau auf die individuellen Anforderungen zugeschnitten sind. Auf der Grundlage seines weltweiten Liefermodells Rightshore® zeichnet sich Capgemini als multinationale Organisation durch seine besondere Art der Zusammenarbeit aus – die Collaborative Business ExperienceTM.
Rightshore® ist eine eingetragene Marke von Capgemini
Die in der Präsentation enthaltenen Informationen sind Eigentum.Copyright © 2015 Capgemini. Alle Rechte vorbehalten.
www.de.capgemini.com