đź’Ľ Markus Harrer's Slide Decks Backup

All slides from my talks.

Architektur-Governance - Daumenschrauben für Softwareentwickelnde (Digital Crafts Day 2025)

Date: 2025-04-04

Preview image

Hach, Softwareentwicklung könnte so einfach sein, wenn es keine Regeln gäbe. Alle könnten in der Programmiersprache ihrer Wahl coden, so deployen, wie es der neueste Artikel im Fachmagazin erzählt, und generell tun und lassen, was der eigenen Stimmungslage gerade beliebt.
Doch wie lange könnte dieses scheinbare Paradies gutgehen? Chaos und Frust wären die unvermeidliche Folge, da irgendwann nichts mehr zusammenpasst. Was anfangs als kreative Freiheit erscheint, entwickelt sich schnell zu einer schwer zu bändigenden Hydra aus Bugs, unklaren Zuständigkeiten und zerstreuten Systemkönigreichen.
In diesem Vortrag zeige ich, wie man Vorgaben und Freiheiten bei der Evolution von Softwaresystemen passend ausbalanciert. Wir sehen uns an, wann, wo und wie welche Daumenschrauben gedreht werden sollten, um das richtige MaĂź an Architektur-Governance zu finden, die Softwareentwicklende ohne Schmerzen zum Ziel fĂĽhrt

SpeakerDeck | Download PDF

Evolutionary Software Quality(AmA2025)

Date: 2025-04-03

Preview image

Having the right amount of quality in a software system at the right time can make the difference between the happiness and frustration of users, customers, shareholders, and others. However, software architects often struggle to implement the appropriate level of quality in their systems.
In this talk, I introduce a thinking model that guides software architects in aiming for the right level of software quality at each stage of a system’s evolution. By combining the ISO 25010 quality model with Wardley mapping, quality aspects such as usability, performance, and maintainability are systematically assessed based on their value to various stakeholders at each phase of the system's evolution. This approach helps software architects make quality-driven decisions at the right moments, while also revealing weak spots or signs of over-engineering. Architects can thereby manage suitable, appropriate quality throughout a software system's lifecycle and make improvements as needed.

SpeakerDeck | Download PDF

Evolutionsbasierte Softwarearchitekturentwicklung (OOP 2025)

Date: 2025-02-04

Preview image

Wie wir an der Softwarearchitektur eines Softwaresystems arbeiten, hängt stark von der jeweiligen Situation ab. In diesem Vortrag werfe ich einen Blick auf einen besonders wichtigen Faktor: Softwareevolution.
Denn je nachdem, wie weit ein Softwaresystem evolviert ist, unterscheidet sich damit auch potenziell der Ansatz, wie Softwarearchitekturen erarbeitet werden: Von „No-Architecture“ über „Architekturdiktatur“ und „Multi-Level-Architektur“ hin zu „Architekturspezialisten“ diskutieren wir, wann welcher Ansatz welche Stärken ausspielt und wann es dringend Zeit für einen Wechsel ist.
Wer sich jemals in endlosen Diskussionen über das „Warum?“, „Wie?“ und „Wie viel?“ Softwarearchitektur verloren hat, findet in diesem Vortrag erste Antworten für einen systematischen Ansatz der Softwarearchitekturevolution.

SpeakerDeck | Download PDF

Evolutionsbasierte Softwarearchitekturentwicklung

Date: 2024-12-05

Preview image

Wie wir an der Softwarearchitektur eines Softwaresystems arbeiten, hängt stark von der jeweiligen Situation ab. In diesem Vortrag werfe ich einen Blick auf einen besonders wichtigen Faktor davon: der Softwareevolution. Denn je nachdem, wie weit ein Softwaresystem evolviert ist, unterscheidet sich damit auch potenziell der Ansatz, wie Softwarearchitekturen erarbeitet werden: Von “No-Architecture” über “Architekturdiktatur” und “Multi-Level-Architektur” hin zu “Architekturspezialisten” diskutieren wir, wann welcher Ansatz welche Stärken ausspielt und wann es dringend Zeit für einen Wechsel ist. Wer sich jemals in endlosen Diskussionen über das “Warum?”, “Wie?” und “Wie viel?” Softwarearchitektur verloren hat, findet in diesem Vortrag erste Antworten für einen systematischen Ansatz der Softwarearchitekturentwicklung.

SpeakerDeck | Download PDF

Hands-on-Einstieg in Wardley Maps - Strategielandkarten für komplexe Softwaresysteme

Date: 2024-11-05

Preview image

Dies ist der komplette Foliensatz fĂĽr meine Workshops fĂĽr Wardley Maps, soweit wie es ging unter CC BY-SA 4.0 lizenziert. Viel SpaĂź damit!
Mehr Infos:
https://www.socreatory.com/de/trainings/wardleymaps
In diesem interaktiven Workshop erarbeiten wir uns das Thema Wardley Maps und wie sich diese in der Weiterentwicklung von komplexen Softwaresystemen und Softwarelandschaften pragmatisch einsetzen lassen. Wardley Maps sind evolvierende Strategielandkarten, welche ein kontextspezifisches Situationsbewusstsein für die eigenen Softwaresysteme (und mehr) schaffen. Sie bieten uns einen Ort, um komplexe Sachverhalte zu kommunizieren: Wie hängen Business und Systeme zusammen? Wo bauen wir etwas selbst und was holen wir von extern? Welche Entwicklungspraktiken und Vorgehen setzen wir dafür ein? Mit Wardley Maps erstellen wir für diese Art von Fragen Landkarten, um unsere eigene Situation besser zu verstehen. Und mehr! Mit einer Karte können wir auch planen, wo die Reise hingehen soll. Das Wardley Mapping bietet uns hierfür einen reichen Fundus an Wegweisern zum Navigieren und Tipps zum Umgang mit Altlasten.

SpeakerDeck | Download PDF

Software Analytics with Data Science on Software Data (CraftConf 2024)

Date: 2024-05-31

Preview image

Data Science has demonstrated its value in extracting insights from business data, raising the question: Why not apply these principles to our software systems’ data? In this talk, I’ll introduce you to the world of Software Analytics. We’ll explore how to extract valuable insights from software data by using tools and techniques from data science to get rid of big, systemic problems in our software systems.
You’ll learn how to leverage scientific thinking, manage the analysis process, and apply literate statistical programming to analyze software systems in an understandable way. Or to put it in the words of software developers: We automate the analysis of large software systems using open-source tools like Jupyter Notebook, Python, pandas, jQAssistant, and Neo4j. I’ll also demonstrate through live-coding how we can gain new insights from data sources like Git repositories, performance measurements, or source code.
Join me in this session to acquire your starter kit for uncovering deeply hidden issues and change the way of improving systems with data-driven software analysis!

SpeakerDeck | Download PDF

Evolutionäre Softwarequalität (INNOQ Technology Night Rhein-Main 2024)

Date: 2024-03-26

Preview image

Qualitätsziele helfen uns, Architekturentscheidungen fundierter zu treffen. Die genau richtige Qualität ist jedoch oft subjektiv und ändert sich über die Zeit hinweg. Dies macht das Arbeiten mit und an Qualitätszielen vor allem bei langlebigen Softwaresystemen spannend. In diesem Vortrag stelle ich eine neue Sicht auf Softwarequalität vor, bei der wir Qualität im evolutionären Kontext betrachten. Als Basis verwende ich das ISO 25010 Qualitätsmodell sowie Wardley Mapping, um die passende Qualität nach Wichtigkeit und Evolutionsstufen zu finden.

SpeakerDeck | Download PDF

Software Analytics with Data Science on Software Data

Date: 2024-03-15

Preview image

Data Science has demonstrated its value in extracting insights from business data, raising the question: Why not apply these principles to our software systems’ data? In this talk, I’ll introduce you to the world of Software Analytics. We’ll explore how to extract valuable insights from software data by using tools and techniques from data science to get rid of big, systemic problems in our software systems.
You’ll learn how to leverage scientific thinking, manage the analysis process, and apply literate statistical programming to analyze software systems in an understandable way. Or to put it in the words of software developers: We automate the analysis of large software systems using open-source tools like Jupyter Notebook, Python, pandas, jQAssistant, and Neo4j. I’ll also demonstrate through live-coding how we can gain new insights from data sources like Git repositories, performance measurements, or source code.
Join me in this session to acquire your starter kit for uncovering deeply hidden issues and change the way of improving systems with data-driven software analysis!

SpeakerDeck | Download PDF

Softwaresysteme wie Apfelbäume pflegen (OOP 2024)

Date: 2024-01-31

Preview image

Softwaresysteme sind oft große, verwachsene Strukturen, welche Softwareschaffende nach einiger Zeit wieder in Form bringen müssen. Es ist aber eine Herausforderung, einen Überblick über das wuchernde Konglomerat von Softwarekomponenten und Funktionalitäten zu gewinnen, ganz zu schweigen von der Entwicklung eines klaren Plans für das weitere Vorgehen. Im Vortrag verwende ich Analogien aus der Pflege von Apfelbäumen, um Softwaremodernisierenden zu zeigen, wie sie ihre Softwaresysteme mit einem wertorientierten Ansatz weiterentwickeln können.

SpeakerDeck | Download PDF

Die Rolle „Evolutionist“: Softwarearchitekturarbeit im Bestand

Date: 2024-01-30

Preview image

Ein groĂźer Teil der Softwareentwicklung besteht aus Wartungsarbeit. In Ausbildung und Studium haben wir oft jedoch nur die Neuentwicklung kennengelernt. Ăśberforderung droht, Frust baut sich auf und die Freude an der Softwareentwicklung geht verloren. Das muss nicht sein!
Wir stellen die Rolle „Evolutionist“ vor, welche sich auf die qualitativ angemessene Weiterentwicklung bestehender Systeme fokussiert. Wir blicken auf das notwendige Skill- und Mindset sowie erste Praktiken, um mit großen und langlebigen Softwaresystemen zurechtzukommen.

SpeakerDeck | Download PDF

Wardley Maps für alle, die an Software arbeiten (INNOQ Technology Day 2023)

Date: 2023-11-13

Preview image

Wardley Maps sind eine Technik zur Visualisierung und zum Verständnis der Weiterentwicklung von Systemen, Services und Entwicklungsteams. Sie sind ein nützliches Werkzeug für Softwareentwickelnde, um die wichtigsten Komponenten eines Systems zu identifizieren und zu verstehen, wie sie sich im Laufe der Zeit verändern.
In diesem Vortrag führe ich Euch in die grundlegenden Konzepte von Wardley Maps und den Prozess der Erstellung einer Map für ein Softwaresystem ein. Ich werde auch vorstellen, wie Wardley Maps verwendet werden können, um Möglichkeiten für Innovationen zu identifizieren und wie man sie für die Kommunikation des aktuellen Zustands und der zukünftigen Ausrichtung eines Systems nutzen kann.
Ich gebe Beispiele dafür, wie ich Wardley Maps in realen Softwareentwicklungsprojekten einsetze und wie ich daraus kleine und große strategische Entscheidungen ableite. Obwohl Wardley Maps kein Allheilmittel sind, kann es eine nützliche Technik im Werkzeugkasten von Softwareentwickler:innen sein, um Ideen für die Weiterentwicklung von Softwaresystemen mit anderen – insbesondere der Geschäftsseite – zu besprechen.

SpeakerDeck | Download PDF

Wardley Maps - Das fehlende Puzzlestück zwischen Business und Technik ( JUG Saxony Day 2023)

Date: 2023-09-29

Preview image

Wardley Maps ist eine Methode, um dein Situationsbewusstsein für Softwaresysteme zu verbessern und deine nächsten Schritte bei Umbauarbeiten zu motivieren: Warum sollten wir besser nicht mehr unser liebgewonnenes, selbstgeschriebenes Logging-Framework weiterentwickeln? Warum müssen wir uns nun plötzlich doch um Dokumentation kümmern? Wie schaffen wir es, unseren Marktmitbegleitern einen Schritt voraus zu sein? Mit Wardley Maps werden komplexe Zusammenhänge zwischen Business und Technik visualisiert und nachvollziehbare Lösungen für die Zukunft aufgezeigt.
Der Vortrag bietet dir anhand zahlreicher Beispiele und Erfahrungen aus dem Entwicklungsalltag einen praxisnahen Einstieg in die visuelle Welt des strategischen Denkens mittels Wardley Maps. Abgerundet wird der Vortrag mit zahlreichen Tipps und Tricks für die nächsten, eigenständigen Schritte.

SpeakerDeck | Download PDF

Die Magie hinter der Code-Hotspot-Analyse (Software Architecture Alliance 2023)

Date: 2023-09-27

Preview image

Die Hotspot-Analyse ist eine weit verbreitete Methode zur Untersuchung bestehender Softwaresysteme, mit dem Ziel, Verbesserungsarbeiten am vorhandenen Code gezielt zu priorisieren. Sie ermöglicht die Darstellung der Verbesserungsdringlichkeit und Code-Komplexität für die gesamte Codebasis in einer anschaulichen Visualisierung, aus der sich schnell die wichtigsten Schwerpunkte ableiten lassen sollen.
In diesem Vortrag werfen wir einen Blick hinter die Kulissen dieser Analysemethode. Wir werden die technischen Aspekte der Analyse beleuchten, mögliche Fallstricke aufdecken und die weiteren Potenziale dieser faszinierenden Analysetechnik erkunden. Alle, die schon immer einmal wissen wollten, was hinter den bunten Visualisierungen der Analyse-Tools steckt, finden hier wertvolle Einblicke – auch für ihre ganz eigenen Analyseideen.
Jupyter Notebook:
https://nbviewer.org/github/feststelltaste/code-hotspot-analyse/blob/saa2023/Code-Hotspot-Analyse%20-%20Pr%C3%A4sentation.ipynb

SpeakerDeck | Download PDF

Wardley Maps for Software Developers (WeAreDevelopers World Congress 2023)

Date: 2023-07-27

Preview image

Wardley Maps is a technique for visualizing and understanding the evolution of systems, services, and development teams. It is a valuable tool for software developers to identify the key components of a system and understand how they change over time.
In this talk, I will introduce you to the fundamental concepts of Wardley Maps and the process of creating a map for a software system. I will also discuss how Wardley Maps can be used to identify opportunities for innovation and how to use it for communicating the current state and future direction of your system.
I provide examples of how I use Wardley Maps in real-world software development projects, and how I derive strategic decisions from them. Although Wardley Maps is not a silver bullet, it may be a useful technique in your toolbox where you need a bird’s eye view of your system and discuss ideas for its evolution with others – especially businesspeople.

SpeakerDeck | Download PDF

Das tapfere Schneiderlein – Sieben Schnitte auf einen Streich

Date: 2023-07-03

Preview image

Microservices und Modulithen sind trendige Software-Architekturstile, welche stark von dem Wundermittel der „Modularisierung“ Gebrauch machen. Hierfür muss das zu entwickelnde System einen passenden Schnitt haben. Aber was ist dieser „Schnitt“ überhaupt? Welche Arten von Schnitten gibt es mit welchen Konsequenzen?
In diesem Vortrag stellen wir sieben Schnitt-Heuristiken vor. Wir diskutieren mögliche Einflüsse, welche uns beim Schneiden von Systemen antreiben. Zudem gehen wir auf Vor- und Nachteile sowie Trade-offs verschiedener Varianten ein.

SpeakerDeck | Download PDF

Hands-On-Einstieg in Wardley Maps (SAS2023 MUC)

Date: 2023-03-16

Preview image

In diesem interaktiven Workshop erarbeiten wir uns das Thema Wardley Maps und wie sich diese in der Weiterentwicklung von komplexen Softwaresystemen und Softwarelandschaften pragmatisch einsetzen lassen. Wardley Maps sind evolvierende Strategielandkarten, welche ein kontextspezifisches Situationsbewusstsein für die eigenen Softwaresysteme (und mehr) schaffen. Sie bieten uns einen Ort, um komplexe Sachverhalte zu kommunizieren: Wie hängen Business und Systeme zusammen? Wo bauen wir etwas selbst und was holen wir von extern? Welche Entwicklungspraktiken und Vorgehen setzen wir dafür ein? Mit Wardley Maps erstellen wir für diese Art von Fragen Landkarten, um unsere eigene Situation besser zu verstehen. Und mehr! Mit einer Karte können wir auch planen, wo die Reise hingehen soll. Das Wardley Mapping bietet uns hierfür einen reichen Fundus an Wegweisern zum Navigieren und Tipps zum Umgang mit Hindernissen.

SpeakerDeck | Download PDF

Evolutionäre Softwarequalität (OOP 2023 digital)

Date: 2023-02-09

Preview image

Qualitätsziele helfen uns, Architekturentscheidungen fundierter zu treffen. Die genau richtige Qualität ist jedoch oft subjektiv und ändert sich über die Zeit hinweg. Dies macht das Arbeiten mit und an Qualitätszielen vor allem bei langlebigen Softwaresystemen spannend.
In diesem Vortrag stelle ich eine neue Sicht auf Softwarequalität vor, bei der wir Qualität im evolutionären Kontext betrachten. Als Basis verwende ich das ISO 25010 Qualitätsmodell sowie Wardley Mapping, um die passende Qualität nach Wichtigkeit und Evolutionsstufen zu finden.

SpeakerDeck | Download PDF

Wie löse ich knifflige Probleme in Softwaresystemen? (INNOQ Technology Lunch)

Date: 2023-02-08

Preview image

Langsame Entwicklung? Unter Last ächzende Server? Unglückliche User? Es gibt viel anzupacken in der Softwareentwicklung! Aber wo anfangen?
In diesem Vortrag gebe ich eine Einführung in den systematischen Umgang und der Lösung von vertrackten Situationen in der Softwareentwicklung. Wir sehen uns fundamentale Denkfehler an, die Problemlösende bereits bei der Sammlung und der Formulierung von „Problemen“ oft begehen. Damit gewappnet, suchen wir systematisch nach den echten Knacknüssen. Wir nutzen dazu die „Landkarte der Lösungen“, um zusätzlich Ursachen und Auswirkungen in Beziehung zu setzen. Der neu gewonnen Überblick erlaubt es dann, die uns möglichen Maßnahmen zu finden, die ein Softwaresystem immer mehr ein kleines Stückchen besser machen.

SpeakerDeck | Download PDF

Knifflige Probleme in Softwaresystemen lösen (Software Architecture Alliance 2022)

Date: 2022-10-11

Preview image

Langsame Entwicklung? Unter Last ächzende Server? Unglückliche User? Es gibt viel anzupacken in der Softwareentwicklung! Aber wo anfangen?
In diesem Vortrag gebe ich eine Einführung in den systematischen Umgang und der Lösung von vertrackten Situationen für Softwarearchitekt:innen. Wir sehen uns fundamentale Denkfehler an, die Problemlösende bereits bei der Sammlung und der Formulierung von „Problemen“ oft begehen. Damit gewappnet, suchen wir systematisch nach den echten Knacknüssen. Wir nutzen die „Landkarte der Probleme“, um zusätzlich Ursachen und Auswirkungen in Beziehung zu setzen. Der neu gewonnen Überblick erlaubt es dann, die uns möglichen Maßnahmen zu finden, die ein Softwaresystem immer mehr ein kleines Stückchen besser machen.

SpeakerDeck | Download PDF

Mit Wardley Maps die Softwareevolution in Projekten kommunizieren (SAA2021)

Date: 2021-10-06

Preview image

oftwarearchitekturen entwickeln sich über verschiedene Systeme hinweg weiter. Weiterentwicklung betrifft meistens nicht nur die Technik, sondern auch die (Team/Projekt-) Organisation und deren Fähigkeiten.
In diesem Vortrag stellen wir Wardley Maps - evolvierende Strategielandkarten - vor und wie sich diese in der Weiterentwicklung von komplexen Softwaresystemen pragmatisch einsetzen lassen.
Wardley Maps helfen bei der Entscheidungsfindung sowie der Kommunikation der eingeschlagenen Strategien und den gewählten Lösungsansätzen: Welche Entwicklungspraktiken einsetzen? Auf welche Technologie umstellen? Make or Buy?
Anhand eines Praxisbeispiels entsteht während der Session eine Map, die kritische Entscheidungspunkte im Projekt zeigt, Hindernisse benennt und die Strategie kommuniziert.

SpeakerDeck | Download PDF

Data Science on Software Data (WeAreDevelopers World Congress 2021)

Date: 2021-06-30

Preview image

Data Science gains new insights from business data. As software developers, why don't we use Data Science to analyze our data from our software systems, too?
In this session, I will talk about approaches to mine software data based on the many ideas from the Data Science field. We'll also look at the standard tools used in this area to analyze and communicate software development problems easily. With tools such as computational notebooks, data analysis frameworks, visualization, and machine learning libraries, we make hidden issues visible in a data-driven way.
Attendees will learn how to leverage scientific thinking, manage the analysis process, and apply literate statistical programming to analyze software data in an understandable way.
The main part will be hands-on live coding with Open Source tools like Jupyter notebook, Python, pandas, jQAssistant, and Neo4j. I'll show which new insights we can gain from data sources such as Git repositories, performance measurements, or directly from source code.

SpeakerDeck | Download PDF

Schluss mit Cargo Culting! (JavaLand 2021)

Date: 2021-03-17

Preview image

Hast du letztens in nem Blog ein Framework entdeckt und es gleich am nächsten Tag ins eigene Projekt „zum damit Spielen” eingebaut? Musstest du deine Anwendung schon öfter „skalierbarer”, „performanter” oder „zuverlässiger” machen und zogst dir einen Tech-Stack von den “Big Five” rein, um damit das nächste Amazon, Netflix, WhatEver zu werden?
Wahrscheinlich klang das zu dem Zeitpunkt logisch und nach einer superguten Idee. Aber ein paar Monate später weiß man selbst oft gar nicht mehr, was der eigentliche Grund für den Einsatz war. Man macht es, ohne genau zu wissen, warum: Cargo Cult par excellence!
In diesem Vortrag zeige ich, wie sich Entscheidungen für Technologien, Vorgehen und Praktiken strukturiert auswählen und nachvollziehbar motivieren lassen. Wir sehen uns an, was uns bei der Auswahl (oft unerkannt) antreibt. Dazu fischen wird zuerst die geforderte Qualität für Features aus User Stories und bauen uns ein Netz aus den qualitativen Ansprüchen für den Überblick. Mit einer ordentlichen Portion Architekturtaktiken in den Segeln schippern wir in den sicheren Hafen der fundierten Entscheidungen.

SpeakerDeck | Download PDF

Es kommt drauf an! (JavaLand 2021)

Date: 2021-03-16

Preview image

Unser Job als Entwickler oder Entwicklerin ist schon schwierig: Ständig hören wir von neuen Hypes mit all ihren Vorteilen. Oft haben wir diese direkt in unseren Projekten eingesetzt und wunderten uns dann, dass es an allen Ecken und Enden knarzt. Wenn wir das doch nur schon vorher gewusst hätten! Dabei ist die Frage, ob ein Hype auch zu unserer Art des Entwickelns passt, eigentlich ganz einfach zu beantworten: Es kommt drauf an!
In diesem Vortrag durchleuchten wir das „Es kommt drauf an!“ etwas genauer. Dazu nutzen wir das Denk- und Kommunikationswerkzeug „Wardley Maps“. Wardley Maps sind evolvierende Strategielandkarten, welche ein kontextspezifisches Situationsbewusstsein für die eigenen Softwaresysteme schaffen. Sie bieten uns einen Ort zum Diskutieren: Welches Entwicklungspraktiken wollen wir einsetzen? Welches Vorgehensmodell ist das Richtige? Auf welche Technologie sollen wir umstellen? Was bauen wir selbst und was holen wir uns woanders?
Mit Wardley Maps erstellen wir für diese Art von Fragen Landkarten, um unsere eigene Situation besser verstehen zu können. Somit lernen wir unser eigenes „Es kommt drauf an!“ besser kennen, um in Zukunft weniger oft den letzten Hypes zu verfallen.

SpeakerDeck | Download PDF

Software-Modernisierung mit Wardley Maps (OOP digital 2021)

Date: 2021-02-11

Preview image

Software-Modernisierung ist ein schwieriges Terrain: Bewährte Systeme sollen abgeschaltet, neue Prozesse geschaffen, Mitarbeitende umgeschult und überhaupt alles auf den Kopf gestellt werden. Daher muss eine Modernisierung von den strategischen Zielen nachvollziehbar abgeleitet werden, um möglichst viele mitzunehmen. Hierfür stelle ich in diesem Vortrag evolvierende Strategielandkarten in Form von Wardley Maps vor. Damit lassen sich die eingeschlagenen Wege bei Software-Modernisierungsvorhaben verständlich diskutieren und kommunizieren.

SpeakerDeck | Download PDF

Software Analytics - Softwaresysteme datengetrieben analysieren (OOP 2021)

Date: 2021-02-09

Preview image

In Unternehmen werden Datenanalysen intensiv genutzt, um aus Geschäftsdaten wertvolle Einsichten zu gewinnen. Warum nutzen wir als SoftwarearchitektInnen nicht auch Datenanalysen, um besser Einsichten in unsere Software und deren Entwicklung zu bekommen?
In diesem Workshop stelle ich Vorgehen und Best Practices von Software Analytics sowie zugehörige Werkzeuge (wie Jupyter, pandas, jQAssistant, Neo4j und Co.) vor. Damit gewinnen wir gemeinsam wertvolle Einsichten aus Datenquellen wie Git-Repositories, Performancedaten, Qualitätsberichten oder auch direkt aus dem Programmcode.

SpeakerDeck | Download PDF

Psychology screws it all up!

Date: 2020-12-17

Preview image

Wie unser Gehirn Softwareprojekte zum Scheitern bringen kann, ohne dass wir es merken
Entscheidungen beim Entwurf und der Evolution von Softwarearchitekturen lassen sich nicht immer rational begründen. Zahlen, Daten und Fakten sprechen klar für die eine Lösung, jedoch wird sich zu oft „aus dem Bauch heraus“ für die andere Lösung entschieden. Was treibt uns hier an? Welche unsichtbaren Kräfte wirken hier auf uns ein, ohne dass wir es merken?
In diesem Talk betrachten wir ein spannendes Feld, welches in der Softwarearchitekturarbeit bisher wenig präsent ist: Behavioral Economics. Wir sehen uns an, woher es kommt, dass wir uns in manchen Situationen von unserem eigenen Gehirn austricksen lassen. Wir lernen aber auch, wie wir uns in der täglichen Arbeit als Softwarearchitekt:innen etwas besser davor schützen. Dazu stelle ich Techniken und Workshop-Formate vor, welche einige Denkfallen vermeiden.

SpeakerDeck | Download PDF

Software_Analytics_Workshop_Training_Bite.pdf

Date: 2020-12-09

Preview image

SpeakerDeck | Download PDF

Software-Systeme datengetrieben analysieren (INNOQ Technology Lunch)

Date: 2020-10-21

Preview image

In Unternehmen werden Datenanalysen intensiv genutzt, um aus Geschäftsdaten wertvolle Einsichten zu gewinnen. Warum nutzen wir nicht auch Datenanalysen, um bessere Einsichten in unsere Software und deren Entwicklung zu bekommen?
In diesem Vortrag stelle ich „Software Analytics“ vor, wo Daten rund um die Software-Entwicklung analysiert werden, um eine mehr faktenbasierte Weiterentwicklung von Software-Systemen zu ermöglichen. Wir blicken dazu auch auf das Fundament „Data Science“ und zugehörige Werkzeuge (wie Jupyter, pandas, jQAssistant, Neo4j und Co.) zur Umsetzung. Wir sehen uns zudem an, was wir durch Analysen von Git-Repositories, Performance-Daten oder auch direkt aus dem Programmcode herausfinden können.

SpeakerDeck | Download PDF

Software-Modernisierung mit Wardley Maps (INNOQ Technology Lunch)

Date: 2020-04-22

Preview image

Softwaremodernisierung ist ein schwieriges Terrain: Bewährte Systeme sollen abgeschaltet, Mitarbeitende umgeschult und überhaupt alles auf den Kopf gestellt werden. Daher muss das Vorgehen zur Modernisierung von den strategischen Zielen nachvollziehbar abgeleitet werden, um alle Beteiligten mitzunehmen.
In diesem Tutorial stellt Markus evolvierende Strategielandkarten in Form von Wardley Maps vor. Wardley Maps schaffen ein kontextspezifisches Bewusstsein für die eigene Situation. Sie helfen bei Modernisierungen, die vorhandene IT-Landschaft mit ständigem Blick auf den Kundennutzen zu kartografieren. So entsteht ein Überblick etwa über mögliche Fehlinvestitionen, suboptimale Entwicklungspraktiken oder Know-How-Engpässe auf neutralem Boden. Daraus lassen sich fundierte Erkenntnisse für Make-or-Buy-Entscheidungen, Outsourcing oder der Reorganisationen von Teams ableiten.

SpeakerDeck | Download PDF

Computer, fix' meinen Code (OOP 2020)

Date: 2020-02-06

Preview image

Wie wäre es, wenn wir direkt den Code finden könnten, den wir gerade brauchen? Wie wäre es, wenn uns lästige Fehler im Code automatisch beseitigt werden würden? Wie wäre es, wenn wir überhaupt nicht mehr selbst coden müssten?
“Machine Learning on Code” will uns diese und noch mehr Fragen beantworten. Wir werfen einen Blick auf frei verfügbare Werkzeuge, welche Softwareentwickler*innen in ihrer täglichen Arbeit intelligent assistieren können. Dazu blicken wir auch hinter die Fassade unserer zukünftigen, digitalen Entwicklerkollegen*innen.

SpeakerDeck | Download PDF

Einführung in Software Analytics (rheinJUG)

Date: 2019-11-19

Preview image

In Unternehmen werden Datenanalysen intensiv genutzt, um aus Geschäftsdaten wertvolle Einsichten zu gewinnen. Warum nutzen wir als SoftwareentwicklerInnen Datenanalysen dann nicht auch für unsere eigenen Daten?
In diesem Vortrag stelle ich Vorgehen und Best Practices von Software Analytics vor. Wir sehen uns die dazugehörigen Open-Source-Werkzeuge an, mit denen sich Probleme in der Softwareentwicklung zielgerichtet analysieren und kommunizieren lassen.
Im Praxisteil mit Jupyter, pandas, jQAssistant, Neo4j & Co. erarbeiten wir gemeinsam wertvolle Einsichten aus Datenquellen wie Git-Repositories, Performancedaten, Qualitätsberichten oder auch direkt aus dem Java-Programmcode. Wir suchen nach besonders fehleranfälligem Code, erschließen No-Go-Areas in Altanwendungen und priorisieren Aufräumarbeiten entlang wichtiger Programmteile.

SpeakerDeck | Download PDF

Psychology screws it all up! (SWEC2019)

Date: 2019-11-08

Preview image

Wie unser Gehirn Softwareprojekte zum Scheitern bringen kann, ohne dass wir es merken

SpeakerDeck | Download PDF

Data Science meets Software Data (TAG 2019)

Date: 2019-10-17

Preview image

Data Science ist in aller Munde, wenn es darum geht, aus Geschäftsdaten neue Einsichten zu gewinnen. Warum nutzen wir als SoftwarearchitektInnen Data Science nicht auch für die Analyse unserer eigenen Daten?
In dieser Session stelle ich Vorgehen und Best Practices von Data Scientists vor. Wir sehen uns die dazugehörigen Werkzeuge an, mit denen Probleme in der Softwareentwicklung zielgerichtet analysiert und kommuniziert werden können. Im Live-Coding mit Jupyter, Python, pandas und Co. zeige ich, welche neuen Einsichten sich aus Datenquellen wie Git-Repositorys, Performance-Messungen oder direkt aus dem Programmcode gewinnen lassen.

SpeakerDeck | Download PDF

Data Science meets Software Data (JavaLand 2019)

Date: 2019-03-19

Preview image

Data Science ist in aller Munde, wenn es darum geht, aus Geschäftsdaten neue Einsichten zu gewinnen. Warum nutzen wir als Softwareentwickler Data Science nicht auch für die Analyse unserer eigenen Daten?
In dieser Session stelle ich Vorgehen und Best Practices von Data Scientists vor. Wir sehen uns die dazugehörigen Werkzeuge an, mit denen sich auch Probleme in der Softwareentwicklung zielgerichtet analysieren und kommunizieren lassen.
Im Live-Coding mit Jupyter, Pandas, jQAssistant, Neo4j & Co. zeige ich, welche neuen Einsichten und Lösungsideen sich aus Datenquellen wie Git-Repositories, Call-Graphen, Qualitätsberichten oder auch direkt aus Java-Programmcode gewinnen lassen. Wir suchen nach defektem Code, erschließen No-Go-Areas in Alt-Anwendungen und priorisieren Aufräumarbeiten entlang der tatsächlich genutzten Programmteile.

SpeakerDeck | Download PDF

Gewachsene Systeme kontinuierlich und agil verbessern – praktische Auswege aus der Legacy-Hölle

Date: 2019-03-11

Preview image

Wir leben in einer Zeit, in der so manch altes Softwaresystem nicht mehr einfach durch ein neues ersetzt werden kann. Dennoch begegnen viele Entwickler den wichtigen, sogenannten „Legacy-Systemen“ mit einer gewissen ablehnenden Haltung. In diesem Workshop stellen wir vor, wie Entwickler und Softwarearchitekten mit agilen, systematischen Ansätzen und modernen Werkzeugen ihren (klaren) Kopf behalten können. Wir zeigen, wie gewinnbringende Maßnahmen identifiziert werden können, um Software wirtschaftlich und nachhaltig zu verbessern. Wir stellen Analysetechniken vor, welche uns mit Zahlen-Daten-Fakten Mittel gegen verkrustete Strukturen und überholte Entscheidungen liefern. Zusätzlich demonstrieren wir live, wie Software datenorientiert analysiert und schmerzfrei nachdokumentiert werden kann. Wir identifizieren spielerisch Risiken und Chancen, bewerten unsere Entwicklungsaktivitäten ganz neutral und machen technische Umbauarbeiten für Nicht-Techniker nachvollziehbar.

SpeakerDeck | Download PDF

Mit Werkzeugen von morgen Software von gestern systematisch verbessern

Date: 2019-01-22

Preview image

Wir leben in einer Zeit, in der manches alte Softwaresystem nicht mehr einfach durch ein neues ersetzt werden kann. Ich stelle daher Wege zum positiveren Umgang mit Legacy-Software vor. Mit systematischen Ansätzen (wie aim42 & OORP) und modernen Analysewerkzeugen (u. a. pandas & jQAssistant) zeige ich, wie Entwickler in der täglichen Arbeit ihren klaren Kopf behalten können. In Live-Demos sehen wir uns an, wie wir Software halbautomatisch nachdokumentieren, wertvolle Code-Stellen identifizieren und potenzielle Reengineerings simulieren können

SpeakerDeck | Download PDF

Datenanalysen in der Softwareentwicklung mit Software Analytics (EuregJUG Aachen)

Date: 2018-12-13

Preview image

Gerne möchten wir als Softwareentwickler einmal so richtig schön in unseren Softwaresystemen aufräumen oder zumindest grobe Schnitzer korrigieren. Mit unserem „Nerdy Talk“ kommen wir hier jedoch nicht weiter: Das Management lässt sich nur mit Zahlen, Daten, Fakten von dringenden und oft teuren Verbesserungsarbeiten überzeugen. Zudem sind länger dauernde, rein technische Problemlösungen so gut wie unsichtbar für den Fachbereich, was früh Zweifel an Investitionen aufkommen lassen kann.
Im Vortrag stelle ich Software Analytics vor, mit dessen Vorgehen und Methoden Problemursachen und -lösungen für Nicht-Techniker auf Basis von Daten aus der Softwareentwicklung sichtbar und verständlich dargestellt werden können.
Konkret sehen wir uns das „digitale Notizbuch“ sowie Werkzeuge für die schnelle Durchführung von nachvollziehbaren Datenanalysen an. Hiermit lassen sich ganz individuelle Problemursachen Schritt für Schritt über Hypothesen, Analysen und Visualisierungen explizit ausdrücken sowie Problembehebungen nachweisen. Ich zeige das Zusammenspiel von Open-Source-Analysewerkzeugen (wie Jupyter, Pandas, jQAssistant, Neo4j) zur Untersuchung von Java-Anwendungen und deren Umgebung (Git, Profiler, Logfiles etc.). In Praxisbeispielen arbeiten wir uns zu Problemursachen vor, suchen nach defektem Code, erschließen No-Go-Areas in Anwendungen und priorisieren gewinnbringende Aufräumarbeiten.

SpeakerDeck | Download PDF

Die Best Practices der Data Scientists (WJAX 2018)

Date: 2018-11-04

Preview image

Data Science ist in aller Munde, wenn es darum geht, aus Geschäftsdaten neue Einsichten zu gewinnen. Warum nutzen wir als Softwareentwickler Data Science nicht auch für die Analyse unserer eigenen Daten?
In dieser Session stelle ich Vorgehen und Best Practices von Data Scientists vor. Wir sehen uns die dazugehörigen Werkzeuge an, mit denen sich auch Probleme in der Softwareentwicklung zielgerichtet analysieren und kommunizieren lassen.
Im Live-Coding mit Jupyter, Pandas, jQAssistant, Neo4j und Co. zeige ich, welche neuen Einsichten sich aus Datenquellen wie Git-Repositories, Logfiles, Qualitätsberichten oder auch direkt aus Java-Programmcode gewinnen lassen. Wir suchen nach defektem Code, erschließen No-Go-Areas in Anwendungen und priorisieren Aufräumarbeiten.

SpeakerDeck | Download PDF

Software Analytics (JUG Saxony Day 2018)

Date: 2018-09-28

Preview image

Softwareentwickler haben bei ihren Anwendungssystemen oft das Bauchgefühl, dass irgendetwas komisch läuft. Das Management lässt sich aber nur mit Zahlen-Daten-Fakten von notwendigen Verbesserungsarbeiten überzeugen. In meiner Session stelle ich Software Analytics vor, dessen Vorgehen und Methoden darauf abzielen, Daten aus der Softwareentwicklung so aufzubereiten, dass sie von Entwicklern und Managern zur Entscheidungsfindung herangezogen werden können. Konkret zeige ich, wie sich mit aktuellen Datenanalysewerkzeugen (Jupyter, Pandas, jQAssistant, Neo4j) Auswertungen von Java-Anwendungen in der Praxis schnell und einfach umsetzen lassen. Im Live-Coding sehen wir uns u. a. die Aufdeckung von Wissenslücken im Code sowie die Identifikation wertloser Programmteile an.

SpeakerDeck | Download PDF

Raus aus den Schulden mit Software Analytics (Herbstcampus 2018)

Date: 2018-09-06

Preview image

In meinem Vortrag stelle ich Software Analytics vor, womit sich Daten aus der Softwareentwicklung so aufbereiten lassen, dass sie von Managern zur Entscheidungsfindung herangezogen werden können. Dadurch lassen sich Probleme in Softwaresystemen identifizieren und Restrukturierungsmaßnahmen nach strategischen Gesichtspunkten priorisieren.
Konkret zeige ich eine Werkzeugkette (Jupyter, Pandas, jQAssistant, Neo4j), mit der sich entsprechende Auswertungen von Java-Anwendungen und deren Umgebung (Git, FindBugs, JaCoCo etc.) schnell umsetzen lassen. Im Live-Coding-Teil sehen wir uns die Identifikation von WissenslĂĽcken sowie die Priorisierung des Abbaus von technischen Schulden an.

SpeakerDeck | Download PDF

Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)

Date: 2018-07-11

Preview image

SpeakerDeck | Download PDF

Data Analysis in Software Development with Software Analytics (KeepCurrentMeetup Vienna)

Date: 2018-07-09

Preview image

As developers, we often feel that there might be something wrong with the way we develop software. Unfortunately, a gut feeling alone isn’t enough for the complex, interconnected problems in software systems. We need solid, understandable arguments to gain budgets for improvement projects. And we can help ourselves! Every step in the development or use of software leaves valuable, digital traces. With clever analysis, these data can show us root causes of problems in our software and deliver new insights – understandable and actionable for everybody.
In this meetup, I talk about the analysis of software data using a digital notebook approach. This allows you to express your gut feelings explicitly with the help of hypotheses, explorations and visualizations step by step. I also show the collaboration of open source data analysis tools (Jupyter, Pandas, jQAssistant and Neo4j) to spot problems in Java applications and their environment. We have a look at knowledge loss, worthless code parts any many more real-life analysis – completely automated from raw data up to visualizations for management. Come over and learn how you can do your first data analysis in software development!

SpeakerDeck | Download PDF

Datenanalysen in der Softwareentwicklung mit Software Analytics (MATHEMA Freitag)

Date: 2018-06-22

Preview image

Gerne möchten wir als Softwarearchitekten einmal so richtig schön in unseren Softwaresystemen aufräumen oder zumindest grobe Schnitzer korrigieren. Mit unserem „Nerdy Talk“ kommen wir hier jedoch nicht weiter: Das Management lässt sich nur mit Zahlen, Daten, Fakten von dringenden und oft teuren Verbesserungsarbeiten überzeugen. Zudem sind längerdauernde, rein technische Problemlösungen so gut wie unsichtbar für den Fachbereich, was früh Zweifel an Investitionen aufkommen lassen kann.
Im Vortrag stelle ich Software Analytics vor, mit dessen Vorgehen und Methoden Problemursachen und -lösungen für Nicht-Techniker auf Basis von Daten aus der Softwareentwicklung sichtbar und verständlich dargestellt werden können.
Konkret sehen wir uns das „digitale Notizbuch“ sowie Werkzeuge für die schnelle Durchführung von nachvollziehbaren Datenanalysen an. Hiermit lassen sich ganz individuelle Problemursachen Schritt für Schritt über Hypothesen, Analysen und Visualisierungen explizit ausdrücken sowie Problembehebungen nachweisen. Ich zeige das Zusammenspiel von Open-Source-Analysewerkzeugen (wie Jupyter, Pandas, jQAssistant, Neo4j) zur Untersuchung von Java-Anwendungen und deren Umgebung (Git, Profiler, Logfiles etc.). In Praxisbeispielen arbeiten wir uns zu Problemursachen vor, suchen nach defektem Code, erschließen No-Go-Areas in Anwendungen und priorisieren gewinnbringende Aufräumarbeiten.

SpeakerDeck | Download PDF

Datenanalysen in der Softwareentwicklung mit Software Analytics (AG Open Source, TH Nürnberg)

Date: 2018-05-17

Preview image

Markus Harrer stellt den Bereich "Software Analytics" vor, dessen Vorgehen und Methoden darauf abzielen, Daten aus der Softwareentwicklung so aufzubereiten, dass sie auch von Nicht-Technikern zur Entscheidungsfindung herangezogen werden können.
Markus bringt hierzu einen digitalen Notizbuchansatz sowie Werkzeuge für die schnelle Durchführung von nachvollziehbaren Datenanalysen mit. Damit können ganz individuelle Problemursachen in Softwaresystemen Schritt für Schritt herausgearbeitet und explizit dargestellt werden. Markus zeigt das Zusammenspiel von Open-Source-Analysewerkzeugen (wie Jupyter, Pandas, jQAssistant, Neo4j) zur Untersuchung von Anwendungen und deren Umgebung (Git, Logfiles etc.).
Im Treffen werten wir im Live-Coding-Teil mit Python und Pandas gemeinsam das mittlerweile 13 Jahre alte Linux-Git-Repository aus und suchen mit der Graphdatenbank Neo4j in einer Anwendung nach Code Smells. Auf der Begleitseite unter
https://git.io/vxLQL
gibt es für Interessierte hierzu Anleitungen für zwei Hands-Ons. Wer mitmachen möchte, kann sich damit schon einmal vorbereiten.

SpeakerDeck | Download PDF

Software Analytics für Praktiker (JAX2018)

Date: 2018-04-25

Preview image

Grundlegende Probleme in altgedienten Anwendungen managementgerecht zu kommunizieren, ist eine schwierige Sache. Wir haben jedoch fast alles, was wir dafür brauchen, vor uns liegen: Eine umfangreiche, wertvolle Datenbasis aus Tickets, Commits, Quellcode, Logdateien und vielem mehr. In der Session stelle ich Software Analytics vor, dessen Vorgehen und Methoden darauf abzielen, die Daten aus der Softwareentwicklung so aufzubereiten, dass sie von Managern zur Entscheidungsfindung herangezogen werden können. Ich zeige auch eine Werkzeugkette (Jupyter, Python, pandas, jQAssistant, Neo4j, D3), mit der sich Analysen von Java-Anwendungen und deren Umgebung (Git, FindBugs, JaCoCo, Profiler, Logfiles etc.) in der Praxis einfach umsetzen lassen. Als Beispiele sehen wir uns die Identifikation von wertlosem Code, die Aufdeckung von Wissenslücken und die Optimierung des fachlichen Schnitts einer Anwendung an.

SpeakerDeck | Download PDF

Mit Datenanalysen Probleme in der Entwicklung aufzeigen (JavaLand 2018)

Date: 2018-03-14

Preview image

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.

SpeakerDeck | Download PDF

Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)

Date: 2018-03-07

Preview image

Softwareentwickler haben bei ihren altgedienten Anwendungssystemen oft das Bauchgefühl, dass irgendetwas komisch läuft. Das Management lässt sich aber nur mit Zahlen-Daten-Fakten von dringenden Verbesserungsarbeiten überzeugen.
In diesem Meetup stellt Markus Harrer den Bereich "Software Analytics" vor, dessen Vorgehen und Methoden darauf abzielen, Daten aus der Softwareentwicklung so aufzubereiten, dass sie von Managern zur Entscheidungsfindung herangezogen werden können.
Markus bringt hierzu einen digitalen Notizbuchansatz sowie Werkzeuge für die schnelle Durchführung von nachvollziehbaren Datenanalysen mit. Damit können ganz individuelle Problemursachen in Softwaresystemen Schritt für Schritt herausgearbeitet und explizit dargestellt werden. Markus zeigt das Zusammenspiel von Open-Source-Analysewerkzeugen (wie Jupyter, Pandas, jQAssistant, Neo4j und D3) zur Untersuchung von Java-Anwendungen und deren Umgebung (Git, JaCoCo, Profiler, Logfiles etc.). Im Live-Coding-Teil sehen wir uns einige Auswertungen zu Race-Conditions, Wissenslücken, wertlosen Codeteilen sowie die Optimierung des fachlichen Schnitts einer Anwendung an – von den Rohdaten bis zu den Visualisierungen.

SpeakerDeck | Download PDF

Datenanalysen in der Softwareentwicklung mit Software Analytics (Hackerkegeln)

Date: 2018-02-15

Preview image

Softwareentwickler haben bei ihren altgedienten Anwendungssystemen oft das Bauchgefühl, dass irgendetwas komisch läuft. Das Management lässt sich aber nur mit Zahlen-Daten-Fakten von dringenden Verbesserungsarbeiten überzeugen. Genau dafür stelle ich den Bereich "Software Analytics" vor, dessen Vorgehen und Methoden darauf abzielen, Daten aus der Softwareentwicklung so aufzubereiten, dass sie von Managern zur Entscheidungsfindung herangezogen werden können.
Ich bringe hierzu einen digitalen Notizbuchansatz sowie Werkzeuge für die schnelle Durchführung von nachvollziehbaren Datenanalysen mit. Damit können ganz individuelle Problemursachen in Softwaresystemen Schritt für Schritt herausgearbeitet und explizit dargestellt werden. Ich zeige das Zusammenspiel von Open-Source-Analysewerkzeugen (wie Jupyter, Pandas, jQAssistant, Neo4j und D3) zur Untersuchung von Java-Anwendungen und deren Umgebung (Git, JaCoCo, Profiler, Logfiles etc.). Im Live-Coding-Teil sehen wir uns einige Auswertungen zu Race-Conditions, Wissenslücken, wertlosen Codeteilen sowie die Optimierung des fachlichen Schnitts einer Anwendung an – von den Rohdaten bis zu den Visualisierungen.

SpeakerDeck | Download PDF

Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j (Neo4j Online Meetup)

Date: 2017-11-23

Preview image

Let’s tackle problems in software development in an automated, data-driven and reproducible way!
As developers, we often feel that there might be something wrong with the way we develop software. Unfortunately, a gut feeling alone isn’t sufficient for the complex, interconnected problems in software systems.
We need solid, understandable arguments to gain budgets for improvement projects or to defend us against political decisions. Though, we can help ourselves: Every step in the development or use of software leaves valuable, digital traces. With clever analysis, these data can show us root causes of problems in our software and deliver new insights – understandable for everybody.
If concrete problems and their impact are known, developers and managers can create solutions and take sustainable actions aligned to existing business goals.
In this meetup, I talk about the analysis of software data by using a digital notebook approach. This allows you to express your gut feelings explicitly with the help of hypotheses, explorations and visualizations step by step.
I show the collaboration of open source analysis tools (Jupyter, Pandas, jQAssistant and, of course, Neo4j) to inspect problems in Java applications and their environment. We have a look at performance hotspots, knowledge loss and worthless code parts – completely automated from raw data up to visualizations for management.
Participants learn how they can translate their unsafe gut feelings into solid evidence for obtaining budgets for dedicated improvement projects with the help of data analysis.

SpeakerDeck | Download PDF

Philosophy screws it all up (Pecha Kucha, Java Forum Stuttgart)

Date: 2017-07-06

Preview image

Wie Erkenntnistheorie unsere Softwareentwicklung beeinflusst und wie wir damit umgehen können...
Softwareentwicklungsprojekte scheitern ab und an weder aus technischen, noch fachlichen – ja nicht einmal aus politischen Gründen. Sind anderweitige Gründe im Spiel, versenkt diese Art von Softwareprojektabbrüchen meist auch noch extrem viel Geld. Es ist unheimlich, dass wir diese Fälle nicht wirklich begründen können und daher vor allem nicht herausbekommen, woran es wohl wirklich gelegen hat. Es müssen somit noch andere, grundsätzliche Aspekte eine Rolle spielen, welche nicht sofort offensichtlich sind.
In diesem Pecha-Kucha-Vortrag ergründe ich mit Hilfe der philosophischen Disziplin der Erkenntnistheorie – der Theorie des Wissens – einige der nicht augenscheinlichen, jedoch immer vorhandenen Probleme der Softwareentwicklung. Die vorgestellten „erkenntnistheoretischen Dilemmata“ begegnen uns immer, wenn wir es mit Wissen zu tun haben. Softwareentwicklung ist die Implementierung von Wissen in Code. Daher sind auch wir – ob wir es wollen oder nicht – immer von diesen Dilemmata betroffen.
Es gibt jedoch Hoffnung: Sind diese Grundprobleme erst einmal bekannt, können wir sie nutzen, um unsere eigene Arbeit – unser Vorgehen, unserer eingesetzten Methoden und Praktiken in der Softwareentwicklung – nach objektiven Kriterien zu beurteilen und zu verbessern. Konkret zeige ich, wie sich die normative Wissenschaft der Erkenntnistheorie ganz praktisch als „Messwerkzeug“ verwenden lässt. Dazu stelle ich ihre Einflussnahme auf softwaretechnische Praktiken anhand von Praxisbeispielen vor. Meine Kernziele sind es, die Dilemmata kurz und prägnant darzustellen, handhabbar zu machen und praxisorientierte Lösungsansätze zum Umgang mit ihnen aufzuzeigen.

SpeakerDeck | Download PDF

Architektur und Code im Einklang (JUG Nürnberg)

Date: 2017-06-28

Preview image

Umsetzung von Architekturkonzepten und Designvorgaben mit jQAssistant direkt im Quellcode ĂĽberprĂĽfen
jQAssistant ist ein Werkzeug zur statischen Analyse von Softwareartefakten. Mit jQAssistant ist es möglich, Architektur- und Designkonzepte als einen Satz von Regeln zu definieren. Die Einhaltung dieser Regeln kann anschließend bei jedem Bau einer Software automatisiert überprüft werden. Dadurch kann sichergestellt werden, dass eine vorgegebene Architektur sowie Designvorgaben auch wirklich im Quellcode umgesetzt wurden.
In meinem Vortrag stelle ich die Grundlagen von jQAssistant vor und zeige an einem Beispiel, wie sich mit dem Werkzeug eine sich selbst prüfende Architekturdokumentation erstellen lässt.

SpeakerDeck | Download PDF

Architektur und Code im Einklang (DeveloperCamp 2017)

Date: 2017-05-18

Preview image

Umsetzung von Architekturkonzepten und Designvorgaben mit jQAssistant direkt im Quellcode ĂĽberprĂĽfen
jQAssistant ist ein Werkzeug zur statischen Analyse von Softwareartefakten. Mit jQAssistant ist es möglich, Architektur- und Designkonzepte als einen Satz von Regeln zu definieren. Die Einhaltung dieser Regeln kann anschließend bei jedem Bau einer Software automatisiert überprüft werden. Dadurch kann sichergestellt werden, dass eine vorgegebene Architektur sowie Designvorgaben auch wirklich im Quellcode umgesetzt wurden.
In meinem Vortrag stelle ich die Grundlagen von jQAssistant vor und zeige an einem Beispiel, wie sich mit dem Werkzeug eine sich selbst prüfende Architekturdokumentation erstellen lässt.

SpeakerDeck | Download PDF

Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwicklung (DeveloperCamp2017)

Date: 2017-05-17

Preview image

Jeder Schritt in der Entwicklung oder Verwendung von Software hinterlässt wertvolle, digitale Spuren. Die Auswertung dieser „Softwaredaten“ (wie etwa Laufzeitmessungen, Logdateien oder Commits) lässt unser Bauchgefühl zu Fakten und stichhaltigen Beweisen werden.
Ich zeige, wie sich Fragen aus der Softwareentwicklung datengetrieben, automatisiert und nachvollziehbar beantworten lassen. Dazu demonstriere ich das Zusammenspiel von Open-Source-Analysewerkzeugen (wie jQAssistant, Neo4j, Pandas und Jupyter) zur Auswertung von Daten aus unterschiedlichen Quellen (wie Profiler, Jenkins und Git). Gemeinsam sehen wir uns u. a. an, wie wir Lösungen zur Optimierung der Performance erarbeiten, Build-Breaker identifizieren oder Wissenslücken im Quellcode offenlegen können.

SpeakerDeck | Download PDF

Software Analytics for Pragmatists (DevOps Camp 2017)

Date: 2017-05-13

Preview image

Each step in the development or use of software leaves valuable, digital tracks. The analysis of this "software data" (such as runtime measures, log files or commits) refines our gut feeling to facts with sound evidence.
I'll show how questions that arise in software development can be answered automated, data-driven and reproducible. I demonstrate the interaction of open source analysis tools (such as jQAssistant, Neo4j, Pandas, and Jupyter) for the analysis of data from different sources (such as JProfiler, Jenkins, and Git). Together, we have a look at how we can develop solutions to optimize performance, identify build breaker or make knowledge gaps in our source code visible.

SpeakerDeck | Download PDF

Einsatzmöglichkeiten der automatisierten Analyse von Artefakten und Metadaten aus Softwareprojekten zur Unterstützung der Wartbarkeitsoptimierung langlebiger Softwaresysteme

Date: 2015-05-24

Preview image

Entscheidern in Softwareunternehmen fehlen fĂĽr eine wirtschaftlich sinnvolle Verbesserung der Wartbarkeit oft die geeigneten, handlungsunterstĂĽtzenden Informationen zur Ableitung zielgerichteter MaĂźnahmen. Diese Arbeit versucht, durch die automatisierte Analyse von Softwaredaten (wie Quellcodedateien oder Fehlermeldungen) eine fundierte Entscheidungsgrundlage fĂĽr die Optimierung der Wartbarkeit langlebiger Softwaresysteme zu schaffen.
Dies stellt sich jedoch als äußerst schwierig heraus. Kernprobleme stellen die unzuverlässige Datenbasis und die kontextabhängige Aussagekraft der gewonnenen Ergebnisse dar. Zusätzlich lassen sich aus der technischen Messung der Quellcodewartbarkeit auf Grund der Informationsflut keine wirtschaftlich sinnvollen Maßnahmen direkt ableiten.
Daher wird mit Hilfe der Softwaredatenanalyse der gesamte Quellcode in bewertbare Teilbereiche zusammengefasst, die es Entscheidern erlauben, situationsangemessene Maßnahmen zur Verbesserung der Wartbarkeit abzuleiten. Zudem können durch den eingeschränkten Betrachtungsraum die kontextabhängigen Ergebnisse sowie die zugrundeliegende Datenbasis manuell bewertet werden. Dadurch wird die faktenbasierte Priorisierung von Verbesserungsmaßnahmen unterstützt.

SpeakerDeck | Download PDF

Erkenntnistheoretische Beurteilung von Extreme Programming

Date: 2013-09-17

Preview image

Agile Softwareentwicklungsprojekte scheitern immer wieder aus Gründen, welche weder technisch noch fachlich erklärbar sind. Es müssen also andere Aspekte eine Rolle spielen. Aus der philosophischen Disziplin der Erkenntnistheorie lassen sich menschliche Grundprobleme ableiten, die bei jeder Erstellung von Softwaresystemen auftreten. Diese erkenntnistheoretischen Dilemmata können dazu dienen, verwendete Vorgehen und Methoden in der Softwareentwicklung objektiv nach menschlichen Faktoren zu beurteilen. In dieser Arbeit werden ausgewählte Techniken von Extreme Programming (XP) mit Hilfe der Erkenntnistheorie untersucht. Ziel ist es herauszufinden, welche Dilemmata von XP besonders gut behandelt werden und welche sich gefährlich auf den Projektverlauf auswirken können.
Paper:
https://www.feststelltaste.de/wp-content/uploads/2017/01/Konferenzbeitrag-INFORMATIK-2013-Erkenntnistheoretische-Beurteilung-von-Extreme-Programming.pdf

SpeakerDeck | Download PDF

An interactive form-based mobile software system with a sample application in eldercare (bachelor's thesis 2009)

Date: 2009-02-15

Preview image

SpeakerDeck | Download PDF