Tränen lügen nicht – Dashboards schon! - embarc.de · Tränen lügen nicht – Dashboards...

19
08.03.16 1 Tränen lügen nicht – Dashboards schon! HARM GNOYKE, EMBARC JavaLand, Phantasialand Brühl 08.03.2016 0 2 Tränen lügen nicht – Dashboards schon! embarc.de Tränen lügen nicht – Dashboards schon! "Und dann war da noch der Mann, der beim Durchqueren eines im Durchschnitt nur 15 cm tiefen Flusses ertrank." (W. Gates) - Statistiken können einen leicht in die Irre führen. So ist es auch mit den Ergebnissen aus Code-Analysen. Was nützt mir zum Beispiel eine durchschnittlich hohe Testabdeckung, wenn mein kritischstes Modul wegen hoher Komplexität ungetestet bleibt? Dieser Vortrag gibt eine fundierte Einführung in die Welt der quantitativen Analysen. Welche Aspekte einer Java-Software lassen sich überhaupt durch Messen bewerten? Welche Tools gibt es für welchen Zweck? Sowohl freie als auch kommerzielle Lösungen werden dabei beleuchtet. Ich zeige bewährte Prinzipien, die Projektteams weiterhelfen, wenn es um die Vorbereitung und Begleitung konkreter Verbesserungsmaßnahmen geht. Dazu werden insbesondere bekannte Metriken sinnvoll in Zusammenhang gebracht, wie im Beispiel oben zu Testüberdeckung und Komplexität. Das Ergebnis ist ein wirkungsvoller Umgang mit Code-Analysen, ohne den Tools ein tolles System nur vorzugaukeln!

Transcript of Tränen lügen nicht – Dashboards schon! - embarc.de · Tränen lügen nicht – Dashboards...

08.03.16  

1  

Tränen lügen nicht – Dashboards schon!

HARM GNOYKE, EMBARC

JavaLand, Phantasialand Brühl

08.03.2016

0

2 Tränen lügen nicht – Dashboards schon! embarc.de

Tränen lügen nicht – Dashboards schon! "Und dann war da noch der Mann, der beim Durchqueren eines im Durchschnitt nur 15 cm tiefen Flusses ertrank." (W. Gates) - Statistiken können einen leicht in die Irre führen. So ist es auch mit den Ergebnissen aus Code-Analysen. Was nützt mir zum Beispiel eine durchschnittlich hohe Testabdeckung, wenn mein kritischstes Modul wegen hoher Komplexität ungetestet bleibt? Dieser Vortrag gibt eine fundierte Einführung in die Welt der quantitativen Analysen. Welche Aspekte einer Java-Software lassen sich überhaupt durch Messen bewerten? Welche Tools gibt es für welchen Zweck? Sowohl freie als auch kommerzielle Lösungen werden dabei beleuchtet. Ich zeige bewährte Prinzipien, die Projektteams weiterhelfen, wenn es um die Vorbereitung und Begleitung konkreter Verbesserungsmaßnahmen geht. Dazu werden insbesondere bekannte Metriken sinnvoll in Zusammenhang gebracht, wie im Beispiel oben zu Testüberdeckung und Komplexität. Das Ergebnis ist ein wirkungsvoller Umgang mit Code-Analysen, ohne den Tools ein tolles System nur vorzugaukeln!

08.03.16  

2  

3 Tränen lügen nicht – Dashboards schon! embarc.de

Harm Gnoyke

n  Softwareentwickler + -architekt bei embarc in Hamburg n  Vorher Hamburg Süd, sd&m (heute Capgemini)

Schwerpunkte: n  Softwaredesign n  Softwarearchitektur (Bewertung, Methodik) n  Java-Technologien

[email protected]

@HarmGnoyke

xing.to/HarmG

4 Tränen lügen nicht – Dashboards schon! embarc.de

Agenda

1 Quantitative Analyse

2 Dashboards & Metriken

3 Getrieben vom Dashboard

4 Weitere Informationen

08.03.16  

3  

5 Tränen lügen nicht – Dashboards schon! embarc.de

Agenda

1 Quantitative Analyse

2 Dashboards & Metriken

3 Getrieben vom Dashboard

4 Weitere Informationen 1

6 Tränen lügen nicht – Dashboards schon! embarc.de

08.03.16  

4  

7 Tränen lügen nicht – Dashboards schon! embarc.de

Was ist Quantitative Analyse?

“Eine quantitative Analyse ist ein chemisches und/oder physikalisches Verfahren, bei der es um die Beantwortung der Frage geht, wie viel von einem Stoff in einer gegebenen Probe vorhanden ist. Alle Methoden lassen sich einteilen in die ‘klassischen’ und die physikalischen Analysemethoden..”

è https://de.wikipedia.org/wiki/Quantitative_Analyse

8 Tränen lügen nicht – Dashboards schon! embarc.de

?

08.03.16  

5  

9 Tränen lügen nicht – Dashboards schon! embarc.de

...bezogen auf Software?

“Mit quantitativen Analysen vermessen Sie die Artefakte Ihres Software-Systems. Am Häufigsten wird der Source Code betrachtet, weil dieser in unterschiedlichen Kontexten einer vergleichbaren Syntax folgt. Es gibt sowohl statische Analysen, die nur die Artefakte als Eingabe benötigen, als auch dynamische Analysen, die das System zur Laufzeit untersuchen.”

10 Tränen lügen nicht – Dashboards schon! embarc.de

Verschiedene Ansatzpunkte

Strukturanalyse

Best-Practice Check

Zielüberprüfung

!

08.03.16  

6  

11 Tränen lügen nicht – Dashboards schon! embarc.de

Tools en masse

Strukturanalyse

Best-Practice Check

Zielüberprüfung

12 Tränen lügen nicht – Dashboards schon! embarc.de

Die Norm für Software Qualität

08.03.16  

7  

13 Tränen lügen nicht – Dashboards schon! embarc.de

Wo Code-Analysen helfen

14 Tränen lügen nicht – Dashboards schon! embarc.de

Agenda

1 Quantitative Analyse

2 Dashboards & Metriken

3 Getrieben vom Dashboard

4 Weitere Informationen 2

08.03.16  

8  

15 Tränen lügen nicht – Dashboards schon! embarc.de

SonarQube Dashboard

http://docs.sonarqube.org/display/SONARQUBE43/Reporting

16 Tränen lügen nicht – Dashboards schon! embarc.de

Metriken

08.03.16  

9  

17 Tränen lügen nicht – Dashboards schon! embarc.de

Agenda

1 Quantitative Analyse

2 Dashboards & Metriken

3 Getrieben vom Dashboard

4 Weitere Informationen 3

18 Tränen lügen nicht – Dashboards schon! embarc.de

08.03.16  

10  

19 Tränen lügen nicht – Dashboards schon! embarc.de

20 Tränen lügen nicht – Dashboards schon! embarc.de

Metrik verbessern: Größe / LOC

Was wir häufig sehen n  Klassen kleiner schneiden n  Methoden kleiner schneiden n  Paketzuordnung verändern

Ergebnis: *Helper, *HelperHelper, etc.

Auf was wir prinzipiell achten n  Single Responsibility Principle (OOD) n  Gibt es viele Bugs/Probleme in dem Bereich? n  Sind noch andere Metriken „schlecht“?

Andere Metriken zusätzlich betrachten

08.03.16  

11  

21 Tränen lügen nicht – Dashboards schon! embarc.de

22 Tränen lügen nicht – Dashboards schon! embarc.de

Metrik verbessern: Testabdeckung

Was wir häufig sehen n  Unit Tests als extra Task starten

n  Einzelne Aufräumtage n  Aufräumphase

Ergebnis: Motivationsloch, Aufwandsloch

Auf was wir prinzipiell achten n  Unit Tests „auf dem Weg“ schreiben n  Bestimmte Module zuerst betrachten n  Komplexität reduzieren à Refactorings

Abhängigkeiten können uns behindern

08.03.16  

12  

23 Tränen lügen nicht – Dashboards schon! embarc.de

24 Tränen lügen nicht – Dashboards schon! embarc.de

Metrik verbessern: Abhängigkeiten

Was wir häufig sehen n  Code verschieben n  Dependency Inversion Principle (OOD)

Ergebnis: Das funktioniert gut!

Auf was wir prinzipiell achten n  Die Art und Weise der Abhängigkeit n  Fachlichkeit hinterfragen

n  Auf Aufruf verzichten n  Redundante Daten nutzen

Trotzdem noch seltsam viele Bugs...

08.03.16  

13  

25 Tränen lügen nicht – Dashboards schon! embarc.de

26 Tränen lügen nicht – Dashboards schon! embarc.de

Metrik verbessern: Duplikate

Was wir häufig sehen n  Abstraktionen schaffen

n  Methoden und Klassen n  Lesbarkeit des Codes überprüfen

Ergebnis: Auf 0 kommen wir nicht

Auf was wir prinzipiell achten n  Duplikate bei manchen FW/Libs erforderlich n  Generierten Code ausschließen n  Gewisses Level akzeptieren

08.03.16  

14  

27 Tränen lügen nicht – Dashboards schon! embarc.de

28 Tränen lügen nicht – Dashboards schon! embarc.de

Software verbessern: Viele Wege

Weitere Maßnahmen n  Ziele für die Software definieren/überprüfen n  Monitoring in Produktion nutzen n  Prozesse in Richtung CD verbessern

à Schnelles, sinnvolles Feedback Code Qualität != Software Qualität n  Für die Erreichung aller Ziele ist Quantitative

Analyse alleine nicht ausreichend n  Metriken sind nur Indikatoren n  Code Reviews sind zusätzlich nötig

08.03.16  

15  

29 Tränen lügen nicht – Dashboards schon! embarc.de

Abgeleitete Prinzipien Betrachte nur wenige Metriken n  Start mit den 3-5 wichtigsten Metriken + Schwellwerten Passe Zielwerte auf Deinen Kontext an n  Mit Zielen für die Software abgleichen Metrik-Verbesserung nicht als einzige Motivation n  Ausgehen von kritischen Modulen Zeige Trends neben absoluten Werten n  Reagieren auf signifikante Veränderungen Mache Dashboards sichtbar für alle n  Fördert Diskussion über die Ziele

30 Tränen lügen nicht – Dashboards schon! embarc.de

Agenda

1 Quantitative Analyse

2 Dashboards & Metriken

3 Getrieben vom Dashboard

4 Weitere Informationen 4

08.03.16  

16  

31 Tränen lügen nicht – Dashboards schon! embarc.de

Metriken – nicht nur im Code...

Steuerung n  Earned Value n  Velocity n  Cycle Time n  Running Tested Features Verbesserung n  Version Control History n  Static Code Analysis Metrics n  Niko Niko Calendar

32 Tränen lügen nicht – Dashboards schon! embarc.de

Business Value Metrics

„Conversion Rate“ Anzahl zahlender Kunden / Besucher

Messungen zur Laufzeit

Code „erzeugt“ Business Value

08.03.16  

17  

33 Tränen lügen nicht – Dashboards schon! embarc.de

Dashboards – Wie Du sie willst

(Fast) beliebige Quellen anbindbar n  Gemeinsame Darstellung von Software- und Business Value-Metriken Beispiele für Tools n  Geckoboard ($), Klipfolio ($), Grafana (frei)

http://grafana.org/

34 Tränen lügen nicht – Dashboards schon! embarc.de

Bewertung abgerundet

Umsetzung (Lauffähiger Code, laufendes System)

Best Practices (Vorgaben, Muster, Stile, Vorgehen ...)

Quantitative Analyse

(Metriken)

Quantitative Analyse

Architekturbewertung

Architekturrelevante Anforderungen

Architektur / Entwurf (Entscheidungen, Modelle, Konzepte, ...)

08.03.16  

18  

35 Tränen lügen nicht – Dashboards schon! embarc.de

Spicken erlaubt!

è  http://architektur-spicker.de

Unsere Architektur-Spicker beleuchten die konzeptionelle Seite der Softwareentwicklung.

Spicker #2: „Quantitative Analyse“ •  Bei welchen Qualitäts-

merkmalen helfen quantitative Analysen weiter?

•  Welche Tools und Metriken sind verbreitet und wie helfen sie Ihnen?

•  Wie gehen Sie sinnvoll mit Ergebnissen um?

PDF, 6 Seiten Kostenloser Download.

ç

Vielen Dank. Ich freue mich auf Eure Fragen!

[email protected]

xing.to/HarmG

@HarmGnoyke

DOWNLOAD FOLIEN: http://www.embarc.de/blog/

08.03.16  

19  

37 Tränen lügen nicht – Dashboards schon! embarc.de

Wir teilen unser Wissen gerne mit Ihnen... und auch bei Ihnen!

Sie haben eine Community of Practice und suchen inhaltliche Anregungen oder Abgleich? Sie planen ein Team-Event und wollen es neben der sozialen Komponente auch fachlich ausrichten?

LASSEN SIE UNS NEUE THEMEN AUFZEIGEN UND IMPULSE SETZEN!

è  http://www.embarc.de/leistungen/impulsvortraege/