Typische Reaktionen ...
Management:
Zu teuer.
Zu viele Fehler.
Zu hohe Aufwände.
Zu lange Time-to-Market.
Techniker:---
Zu hohe technische Schuld.
Zu schlechte Technologie.
Zu wenig Innovation.
Zu wenig Budget.
Zu wenig Zeit.
Probleme in
einfachem
System
suchen (1)
Ursache : Wirkung
iStock_000006201684
Slide 13
Slide 13 text
Probleme in
einfachem
System
suchen (2)
Ursache : Wirkung
https://flic.kr/p/5L7G5q
Slide 14
Slide 14 text
Issue
(Problem)
Improvement
(remedy)
Cost
Risk
Cause
cost of
improvement
improvement
has risks
or consequence
improvements
resolve cause
(root) causes
of issues
cost of
issue
(potential)
cost of risk
risk might result
in issue
solve issue with
improvement(s)
improvement
solves issue(s)
Slide 15
Slide 15 text
Issue
(Problem)
Improvement
(remedy)
Cost
Risk
Cause
cost of
improvement
improvement
has risks
or consequence
improvements
resolve cause
(root) causes
of issues
cost of
issue
(potential)
cost of risk
risk might result
in issue
solve issue with
improvement(s)
improvement
solves issue(s)
Probleme ==
Auslöser für
Verbesserung
Slide 16
Slide 16 text
Komplizierte
Systeme
> Viele Bestandteile mit Abhängigkeiten
(Strukturen)
> Übergreifende Regeln
(Konzepte)
> Mehrere Beteiligte...
Slide 17
Slide 17 text
Kompliziertes System
https://flic.kr/p/7XAjXu
Slide 18
Slide 18 text
Probleme in
kompliziertem
System
suchen (0)
Geschmack,
Preis,
Aussehen,
Lage (des Restaurants)
https://flic.kr/p/6xuSMU
Slide 19
Slide 19 text
Probleme in
kompliziertem
System
suchen (1)
Geschmack,
Temperatur,
Aussehen,
Konsistenz,
Beliebtheit
Slide 20
Slide 20 text
Probleme in
kompliziertem
System
suchen (2)
Anteile an Kohlenhydrat, P
rotein, Fett, Vitamin
Nachweis von Drogen,
Schad- oder Giftstoffen,
oder Radioaktivität
https://flic.kr/p/bDGDMY
Slide 21
Slide 21 text
Probleme in
kompliziertem
System
suchen (3)
Logistik: Transport-
und Lagerung
https://flic.kr/p/pnVsxu
Slide 22
Slide 22 text
Probleme in
kompliziertem
System
suchen (4)
Einkauf, Herstellung,
Verpackung, Vertrieb
https://flic.kr/p/dZfxi5
Slide 23
Slide 23 text
Probleme in
komplizierten
Systeme
> Probleme einzelner Bestandteile
> Probleme bei Abhängigkeiten
> Probleme mit übergreifenden Regeln
> Probleme mit Beteiligten
> Probleme mit Prozessen
Slide 24
Slide 24 text
Verbessern
komplizierter
Systeme
> Verbessern einzelner Bestandteile
> Verbessern der Abhängigkeiten
> Verbessern von übergreifenden Regeln
> Verbessern der Beteiligten
> Verbessern von Prozessen
Slide 25
Slide 25 text
Software
ist komplex
(nicht nur kompliziert)
Slide 26
Slide 26 text
Zwischen
Problemen und Ursachen
bestehen viele
nichtlineare
Wirkungsbeziehungen
Die Mikroskop-Falle
Wenn Sie NUR im Code suchen,
werden Sie NUR DORT Probleme finden...
im Code suchen ist richtig und wichtig,
aber NUR dort suchen kann fatal sein!
Gute Problemsuche...
Kombiniere Breiten- und Tiefensuche
Slide 37
Slide 37 text
Zuerst: Breitensuche...
...
Slide 38
Slide 38 text
Qualitative
Analysis
ATAM
Context
Analysis
Issue Tracker
Analysis
Data
Analysis
Documentation
Analysis
Runtime
Analysis
Stakeholder
Analysis
Stakeholder
Interview
prepares
Requirements
Analysis
foundation for
part of
validates
external
stakeholder
Quantitative
Analysis
finds risks
and non-risks
identify
risk areas
Questionnaire
prepares
gives
overview
Software
Archeology
supported by
measure
at runtime
Static Code
Analysis
measure
code
supports
Legend:
collect
issues
collect
improvement
opportunities
part of
Development
Process
Analysis
part of
find
input for
Infrastructure
Analysis
part of
Instrument
System
provide
better
information
User
Analysis
prepares
prepares
Security
Analysis
part of
part of
Nach: aim42
Abgleich unterschiedlicher
Messungen
Quantitative Analyse
Korrelierte Analyse
Beispiele:
> Fehler pro Komponente
> (Zeit pro Bugfix) pro Komponente
> (Aufwand pro Feature) pro Komponente
Slide 46
Slide 46 text
Kontextanalyse - Beispiel
Risiko bzgl.
Performance-
Anforderung
Slide 47
Slide 47 text
Datenanalyse
1. Struktur
2. Typen
3. Zugriffe
> Read / write
4. Volumen
> auch von Query-Results + Indizes
5. Korrektheit
6. Schutzbedarf
7. Verteilung/Dezentralisierung
8. Duplikation/Redundanz
9. Durchsatz -> Laufzeitanalyse
Struktur / Typen ungeeignet
für das Problem
Wonach ist Persistenz
optimiert, read oder write?
Haben wir besonders
viel?Ist etwas besonders
groß?
Haben wir falsche Daten?
Haben wir sensible
Daten?
Halten wir Daten mehrfach?
Slide 48
Slide 48 text
Beispiel:
Datenanalyse
„Clean“
Code
XML
Configuration
DB
Legend:
COTS
Code
Table-1
Table-2
Table-3
Table-4
Database Relational
Data
Big Bang (aka Cold Turkey)
Client
Code
Flawed
System
User 1
New
System
Client
Code
User
Entwickle ein neues
System parallel zu
Betrieb und Pflege
des alten.
Slide 52
Slide 52 text
Change By Split
Client
Type 1
Flawed
System
Client
Type 2
Kopiere für alle
Client-Typen
1
Client
Type 1
Flawed
System
Client
Type 2
Flawed
System
Client
Type 1
Reduced to
Type 1
Client
Type 2
Reduced to
Type 2
Commons
Reduziere und extrahiere
Gemeinsamkeiten
2
Client
Type 1
Reduced to
Type 1
Client
Type 2
Reduced to
Type 2
New
Commons
Optimiere
Gemeinsamkeiten
3
Slide 53
Slide 53 text
Client
Type 1
Reduced to
Type 1
Client
Type 2
Reduced to
Type 2
New
Commons
Optimiere spezifische
Teilsysteme („Splits“)
New Type 1
System
Client
Type 1
Client
Type 2
New
Commons
New Type 2
System
Change By Split
Slide 54
Slide 54 text
Strangulate Bad Parts
Ersetze einige
schlechte Teile
Ersetze weitere
schlechte Teile
Und noch
mehr...
Client
Code
Flawed
System
User
Client
Code
Flawed
System
User
better
Client
Code
Flawed
System
User
better
Better
System
Client
Code
User
Flawed Parts
Fazit (0)
Kohlenhydrat-,
Protein- und
Fettgehalt prüfen.
Slide 57
Slide 57 text
Fazit (1)
Suchraum verbreitern – bei „code-only“
droht Mikroskopfalle.
Breitensuche in Iterationen
Slide 58
Slide 58 text
Fazit (2)
Sammeln Sie Ideen für Verbesserung,
während Sie Probleme suchen.
Issue
(Problem)
Improvement
(remedy)
solve issue with
improvement(s)
improvement
solves issue(s)
Slide 59
Slide 59 text
Dr. Gernot Starke
[email protected]
http://innoq.com
https://www.flickr.com/photos/foto_db/16000636092