Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mit Datenanalysen Probleme in der Entwicklung aufzeigen (JavaLand 2018)

Mit Datenanalysen Probleme in der Entwicklung aufzeigen (JavaLand 2018)

Als Entwickler spüren wir oft, wo in unserer Software der Schuh drückt. Aber ein Bauchgefühl allein reicht leider nicht aus. Es fehlt an soliden, nachvollziehbaren Argumenten, um an Projektbudgets für Verbesserungsmaßnahmen zu kommen. Hier können wir selbst nachhelfen: Jeder Schritt in der Entwicklung oder Verwendung von Software hinterlässt wertvolle, digitale Spuren. Diese Daten können durch geschickte Auswertungen Problemursachen in unserer Software für jeden klar und deutlich aufzeigen. Sind die Probleme und ihre Auswirkungen erst einmal bekannt, können Entwickler und Manager gemeinsam Lösungen mit einem passenden Aufwand-Nutzen-Verhältnis erarbeiten.

In meinem Vortrag stelle ich einen digitalen Notizbuchansatz für Datenanalysen in der Softwareentwicklung vor. Hiermit lässt sich unser Bauchgefühl Schritt für Schritt von Hypothesen über Auswertungen zu Erkenntnissen explizit ausdrücken. Ich zeige das Zusammenspiel von Open-Source-Analysewerkzeugen (wie jQAssistant, Jupyter, Pandas, D3) zur Untersuchung von Java-Anwendungen und deren Umgebung (Git, FindBugs, JaCoCo, Profiler, Logfiles etc.). Wir erzeugen Auswertungen zu Race-Conditions, Performance-Hotspots, Build-Breaker, Wissenslücken und wertlosen Codeteilen - von den Rohdaten bis zu managementtauglichen PowerPoint-Folien komplett automatisiert. Die Teilnehmer des Vortrags nehmen mit, wie sie ein unsicheres Bauchgefühl durch stichfeste Untersuchungen in belastbare Ergebnisse umwandeln können, um Budgets für gezielte Verbesserungsprojekte zu sichern.

Markus Harrer

March 14, 2018
Tweet

More Decks by Markus Harrer

Other Decks in Technology

Transcript

  1. Mit Datenanalysen Probleme in der Entwicklung aufzeigen JavaLand, Brühl 14.03.2018

    Markus Harrer Drucker-freundliche Version @feststelltaste feststelltaste.de [email protected] 1
  2. Agenda - Warum? - WTF? - Wie? - Was? Mit

    Datenanalysen Probleme in der Entwicklung aufzeigen
  3. „Die Definition des Wahnsinns ist, immer dasselbe zu tun und

    ein anderes Ergebnis zu erwarten.“ – Albert Einstein
  4. is the act of transforming into by If you want

    to fix this you have to address that!
  5. Software Analytics – Eine Definition “Software Analytics is analytics on

    software data for managers and software engineers with the aim of empowering software development individuals and teams to gain and share insight from their data to make better decisions.” Menzies / Zimmermann
  6. Häufigkeit Fragen Nutze Standard-Tools für allgemeine Fragen Risiko Software Analytics

    fokussiert sich auf wichtige Fragen Option 1: Verpenne die anderen Fragen einfach
  7. Warum gerade jetzt? • Code verschmilzt mit Fachlichkeit • Data

    Science bringt Datenanalysen zu Entwicklern • Werkzeuge bilden und vernetzen verschiedene Perspektiven Code Probleme Fachlichkeit abstrakt detailliert Probleme können mit fachlichen Konzepten verbunden werden!
  8. The Notebook Komplett automatisiert Kontext dokumentiert Ideen, Daten, Annahmen und

    Vereinfachungen aufgeführt Berechnungen verständlich dargelegt Zusammenfassungen erklärt Context Idea Analysis Conclusion Problem
  9. Python Data Scientist's best friend: Einfache, effektiv, schnelle Programmiersprache Pandas

    Pragmatisches Datenanalyse-Framework: Großartige Datenstrukturen und gute Integration mit Machine Learning Tools D3 JavaScript-Bibliothek für datenorien- tierte Dokumente: Just beautiful! Jupyter Interaktives Notizbuch: Zentrale Stelle für Datenanalysen und Dokumentation STANDARDWERKZEUGE
  10. Funktionsweise 1. Scanne Softwarestrukturen 2. Speichere in Graphdatenbank 3. Analysiere

    und erstelle Verbindungen 4. Füge eigene Konzepte hinzu 5. Finde Antworten TOOLS for context
  11. jQAssistant – Die komplexe Softwarelandschaft als Graph types 16 bugs

    17 codeChurn 5 problems 8 types 5 bugs 29 codeChurn 51 problems 11
  12. jQAssistant – Die komplexe Softwarelandschaft als Graph • Konkurrierendes Schreiben

    auf gemeinsamen Zustand • Rekursive Aufrufe zur Datenbank • Ausschalten von Lazy Loading beim Mapping • Komplexe Berechnungen in JSF-BackingBeans • Performance-Probleme mit Drittbibliotheken • ... Individuelle Analysen von Problemursachen jQAssistant == automatisierte IDE
  13. Bekämpfe Risiken! + mache sie sichtbar und verständlich + erzeuge

    sachliche Diskussionen Treibe Entscheidungen! 10 Priorisiere wertvolle Verbesserungen 20 Zeige, dass es besser wird; GOTO 10 Take Action! + Meistere Herausforderungen gemeinsam + Fange einfach einfach an :-)
  14. Weitere Infos = Literatur = Christian Bird, Tim Menzies, Thomas

    Zimmermann: The Art and Science of Analyzing Software Data Tim Menzies, Laurie Williams, Thomas Zimmermann: Perspectives on Data Science for Software Engineering Wes McKinney: Python for Data Analysis Adam Tornhill: Software X-Ray = Software = Python Data Science Distribution: anaconda.com jQAssistant: github.com/JavaOnAutobahn/spring-petclinic -------------------------------------------------------- Markus Harrer: @feststelltaste | feststelltaste.de