SlideShare ist ein Scribd-Unternehmen logo
www.buschmais.de
www.buschmais.de
SOFTWARE ARCHITEKTUREN GEZIELT
ANALYSIEREN, DOKUMENTIEREN UND
VERBESSERN MIT SOFTWARE ANALYTICS
Dev Day
24.05.2022
Stephan Pirnbaum @spirnbaum
Wer wir sind
Dresdner IT-Beratungsunternehmen, gegründet im Jahre 2008
Unsere Schwerpunkte
Architekturberatung und Entwicklung moderner Geschäftsanwendungen
Software-Qualitätsanalysen und -Sicherung
Köpfe hinter jQAssistant: Entwicklung, Trainings, Workshops
Unsere Kunden
Kleine Auswahl: ITZBund, Sächsische Aufbaubank-Förderbank, ASML, GlobalFoundries, Thyssenkrupp
Steel, Deutsche Telekom, COOP Schweiz
2
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 3
WARUM?
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 4
UM DIE PROBLEME ZU LÖSEN,
MÜSSEN WIR DIE URSACHEN VERSTEHEN!
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 5
ES WAR EINMAL…
EIN GREENFIELD-PROJEKT
Chancen
Geringe fachliche Komplexität
Kleine Source Code Basis
Leichte Änderbarkeit des Codes
Risiken
Geringe Erfahrung mit Use Cases
Unbekannte Anforderungen
Notwendige Architekturdefinition
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 6
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 7
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 8
DAS WUCHS SEHR SCHNELL…
UND WURDE ZUM BROWNFIELD-PROJEKT
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 9
http://www.quickmeme.com/p/3vpkh8
Funktionelles Wachstum
Organisatorisches Wachstum
Technisches Wachstum
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 10
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 11
Langsames, qualitatives Wachstum
➢ Geringere Architekturerosion
Schnelles, quantitatives Wachstum
➢ Stärkere Architekturerosion
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 12
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 13
MIT DER ZEIT WURDE ES NICHT BESSER
Innovationszwang durch externe Faktoren
Neue Konkurrenten
Steigende Kundenanforderungen
Andere Geschäftsmodelle
Kann unser System folgen?
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 14
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 15
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 16
https://imgflip.com/i/3db8rk
Dokumentierte Architektur (Wiki, PowerPoint, …)
<>
Gefühlte Architektur (Entwickler)
<>
Reale Architektur (Code)
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 17
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 18
JEDOCH GIBT ES EINEN AUSWEG
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 19
Aktives Management und Abbau technischer Schulden
Unter Berücksichtigung der kurz-, mittel- und langfristigen Ziele
Als fester Bestandteil der Projektplanung
Gezielt bei kritischen Bereichen
Mit gleichzeitiger Re-Dokumentation
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 20
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 21
https://imgflip.com/i/23eyxo
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 22
Icons made by Kiranshastry from Flaticon
WICHTIG
Proper Preparation Prevents Poor Performance
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 23
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 24
https://builder.cheezburger.com/Builder/RenderPreview/65f84df1-bae0-4cb8-9602-5205a7caf98d
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
Data Analytics für Software Systeme
Extraktion und Zusammenführung von Informationen aus
Source Code
Statischen und dynamischen Eigenschaften
Entwicklungshistorien
Schlussfolgern von neuen Informationen zum Aufbau von Wissen
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 26
Dokumentation von Erkenntnissen
Unterstützung von Planung und Refaktorisierung
Referenz für (neue) Entwickler
Kommunikationsgrundlage für Entwickler und Entscheider
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 27
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 28
https://www.kino.de/serie/hoer-mal-wer-da-haemmert-1999/news/hoer-mal-wer-da-haemmert-tim-allen-bringt-neue-folgen-ins-gespraech/
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 29
Scan der
Anwendung
Mapping auf
Graphstruktur
Persistierung
der Strukturen
Abfrage von
Strukturen
Analyse
Dokumentation
von Ergebnissen
Relationship
… MIT JQASSISTANT UND NEO4J
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 30
:Package
:CONTAINS
:Type:Java
Node Node
Relationship
… MIT JQASSISTANT UND NEO4J
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 31
:Package
:CONTAINS
:Type:Java
name: service name: ProductService
Property Property
Node Node
… MIT JQASSISTANT UND NEO4J
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 32
MATCH (p:Package)-[:CONTAINS]->(t:Type:Java)
WHERE p.name = “service“ AND t.name = “ProductService“
RETURN p, t
:Package
:CONTAINS
:Type:Java
name: service name: ProductService
… MIT JUPYTER
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 33
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 34
https://makeameme.org/meme/possibilities-are-endless-59fa8f
1. Welche Frage möchte ich beantworten?
2. Mit welchen Daten kann ich diese ausreichend beantworten?
3. Welche Annahmen vereinfachen die Analyse?
4. Für wen und wie müssen die Daten aufbereitet werden?
5. Wie kann die Analyse umgesetzt werden?
➢ Beantwortung vor der eigentlichen Analyse
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 35
6. Was sind die wichtigsten Ergebnisse der Analyse?
7. Was sind die nächsten Schritte?
➢ Beantwortung nach der Analyse
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 36
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 37
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
Ein Beispiel
Open Source e-Commerce System „shopizer“
Warenkorb
Katalog
Suche
Bestellung
…
Fork: https://github.com/StephanPirnbaum/shopizer/tree/2.12.0-jQA
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 39
Szenario (Organisatorisch)
Shop soll stark anwachsen (Funktionsumfang, Nutzerbasis)
z.B. Verkauf digitaler Produkte
Onboarding zahlreicher neuer Entwickler
mitsamt der Strukturierung in fachlich fokussierte Teams
Vorbereitung soll eingeplant und umgesetzt werden
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 40
Ziel
Identifikation von Wissensträgern
Abbau und aktives Management von technischen Schulden
Refaktorisierung der Strukturen hin zu fachlichen Schnitten
Erstellung von Dokumentation
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 41
Problem
Verteiltes und fehlendes Wissen über Anwendungsstruktur
Architektur- und Designentscheidungen nicht nachvollziehbar
Unbekanntes Nichtwissen („Überraschungen“)
Zeitrestriktionen
…
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 42
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
Vorbereitung der Anwendung
<plugin>
<groupId>com.buschmais.jqassistant</groupId>
<artifactId>jqassistant-maven-plugin</artifactId>
<version>1.9.1</version>
<executions><execution>
<goals>
<goal>scan</goal>
<goal>analyze</goal>
</goals>
</execution></executions>
<.../>
</plugin>
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 44
mvn clean install -DskipTests
mvn jqassistant:server
→ localhost:7474
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 45
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 46
https://www.memecreator.org/meme/lets-get-to-work81
Mögliche Fragestellungen
1. In welche fachlichen Komponenten strukturiert sich die Anwendung und wie hängen
diese voneinander ab?
2. Welcher Entwickler ist der Experte für bestimmte Domänen?
3. Welche Code-Teile werden im Vergleich besonders häufig geändert?
4. Welche Module sind besonders instabil/änderungskritisch?
5. Eure eigene Frage? ;)
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 47
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
In welche fachlichen Komponenten strukturiert sich die Anwendung
und wie hängen diese voneinander ab?
Analyse der fachlichen Strukturierung
➢ Definition und Dokumentation einer fachlichen Strukturierung
➢ Separierung von Source Code nach fachlicher Zugehörigkeit
➢ Fokussierung der Entwickler auf kleinere, kohäsive Anwendungsteile
➢ Planung und Umsetzung konkreter Refaktorisierungsschritte
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 49
Analyse der fachlichen Strukturierung
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 50
Order
Service
:Type
Product
:Type
:DEPENDS_ON
Analyse der fachlichen Strukturierung
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 51
Order
:BoundedContext
Order
Service
:CONTAINS
:Type
Product
:Type
:DEPENDS_ON
Catalog
:BoundedContext
:DEPENDS_ON
:CONTAINS
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
Welcher Entwickler ist der Experte für bestimmte Domänen?
Analyse der Code-Ownership
➢ Definition von fachlichen und technischen Ansprechpartnern
➢ Dokumentation des vorhandenen Wissens
➢ Aufbau von Wissen in unbekannten Bereichen
➢ Verstehen und dokumentieren, ggf. Neuimplementierung
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 53
Analyse der Code-Ownership
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 54
:Commit
:CONTAINS_CHANGE
:Change
:File
:MODIFIES
:Author
:COMITTED
:BoundedContext :Type
:HAS_SOURCE
:CONTAINS
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
Welche Code-Teile werden im Vergleich besonders häufig geändert?
Analyse von häufig geändertem Code
Identifikation von wartungsintensiven Hot Spots
Auffinden von fehleranfälligem Code
Aufdecken von Technischen Schulden
Finden von schlecht abgegrenzten Verantwortlichkeiten
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 56
Analyse der Code-Ownership
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 57
:Commit
:CONTAINS_CHANGE
:Change
:File
:MODIFIES
:Type
:HAS_SOURCE
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
Welche Module sind besonders instabil/änderungskritisch?
Analyse von änderungskritischem Code
Identifikation von Code, welcher bei Änderung zahlreiche Änderungen in
abhängigem Code erfordert
Zeigt fehlende Abstraktheit von Klassen/Packages/Modulen
Deutet auf Instabilen Code hin, also Code, welcher häufig aufgrund anderer
Änderungen geändert werden muss
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 59
Analyse von änderungskritischem Code
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 60
:BoundedContext
:CONTAINS
:Type (:Interface)
:DEPENDS_ON
(abstract: true)
www.buschmais.de
www.buschmais.de
SOFTWARE ANALYTICS
Eure eigene Frage? ;)
LIVE DEMO
https://github.com/buschmais/software-analytics-starter
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 62
www.buschmais.de
www.buschmais.de
VIELEN DANK!
BUSCHMAIS GbR
Leipziger Straße 93
01127 Dresden
Tel. +49 351 3209230
info@buschmais.com
www.buschmais.de
KONTAKT
Stephan Pirnbaum
stephan.pirnbaum@buschmais.com
+49 351 320923-22
@spirnbaum
stephan-pirnbaum
64
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum
BUSCHMAIS GbR
Leipziger Straße 93
01127 Dresden
Tel. +49 351 3209230
info@buschmais.com
www.buschmais.de
BUSCHMAIS ist ein Dresdner IT-Beratungsunternehmen,
gegründet im Jahre 2008. Unsere Schwerpunkte liegen
in der Architekturberatung und der Entwicklung
moderner Geschäftsanwendungen.
Gemeinsam mit unseren Kunden analysieren, planen
und optimieren wir IT-gestützte Prozesse und
unterstützen sie bei der Umsetzung neuer
Anforderungen. Dabei arbeiten wir branchenunabhängig
und technologiefokussiert in effizienten Teams.
65
Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum

Weitere ähnliche Inhalte

Ähnlich wie Dev Day Stephan Pirnbaum.pdf

Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
QAware GmbH
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
QAware GmbH
 
Voquz IT Solutions Unternehmenspräsention
Voquz IT Solutions UnternehmenspräsentionVoquz IT Solutions Unternehmenspräsention
Voquz IT Solutions Unternehmenspräsention
Voquz Group
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und Knacknüsse
BATbern
 
The new job of qa was ein quality engineer zukünftig können muss
The new job of qa   was ein quality engineer zukünftig können mussThe new job of qa   was ein quality engineer zukünftig können muss
The new job of qa was ein quality engineer zukünftig können muss
raezz
 
Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?
HOOD Group
 
spm Feierabendworkshop im September
spm Feierabendworkshop im Septemberspm Feierabendworkshop im September
spm Feierabendworkshop im September
Netcetera
 
Synaptic Network GmbH - Firmenprofil
Synaptic Network GmbH - FirmenprofilSynaptic Network GmbH - Firmenprofil
Synaptic Network GmbH - Firmenprofil
Synaptic Network GmbH
 
Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?
Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?
Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?
pragmatic solutions gmbh
 
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenWertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Michael Moser
 
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
Dynatrace
 
SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn...
 SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn... SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn...
SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn...
IBsolution GmbH
 
Agile BI in der Praxis - Agiles Testen
Agile BI in der Praxis - Agiles TestenAgile BI in der Praxis - Agiles Testen
Agile BI in der Praxis - Agiles Testen
OPITZ CONSULTING Deutschland
 
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Michael Maretzke
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
Peter Gfader
 
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay Dresden
 
Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!
Jan Dittberner
 
CON•ECT Business Academy Katalog 2018/19
CON•ECT Business Academy Katalog 2018/19CON•ECT Business Academy Katalog 2018/19
CON•ECT Business Academy Katalog 2018/19
CON.ECT Eventmanagement
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
ChristinaLerch1
 
SEO und Projektmanagement, Vortrag SEOKomm 2014
SEO und Projektmanagement, Vortrag SEOKomm 2014SEO und Projektmanagement, Vortrag SEOKomm 2014
SEO und Projektmanagement, Vortrag SEOKomm 2014
gudulafeichtinger
 

Ähnlich wie Dev Day Stephan Pirnbaum.pdf (20)

Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-GroßprojekteAgil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
Agil zum Ziel: Erfolgsfaktoren für agile IT-Großprojekte
 
Voquz IT Solutions Unternehmenspräsention
Voquz IT Solutions UnternehmenspräsentionVoquz IT Solutions Unternehmenspräsention
Voquz IT Solutions Unternehmenspräsention
 
BATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und KnacknüsseBATbern52 SBB zu Data Products und Knacknüsse
BATbern52 SBB zu Data Products und Knacknüsse
 
The new job of qa was ein quality engineer zukünftig können muss
The new job of qa   was ein quality engineer zukünftig können mussThe new job of qa   was ein quality engineer zukünftig können muss
The new job of qa was ein quality engineer zukünftig können muss
 
Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?Agilität im Systems Engineering – geht das?
Agilität im Systems Engineering – geht das?
 
spm Feierabendworkshop im September
spm Feierabendworkshop im Septemberspm Feierabendworkshop im September
spm Feierabendworkshop im September
 
Synaptic Network GmbH - Firmenprofil
Synaptic Network GmbH - FirmenprofilSynaptic Network GmbH - Firmenprofil
Synaptic Network GmbH - Firmenprofil
 
Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?
Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?
Agil erfolgreich skaliert! Was kommt nach dem Best of Swiss Web Award?
 
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenWertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-Systemen
 
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
Endress + Hauser: Echtzeit Performance Monitoring erfolgreich umgesetzt
 
SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn...
 SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn... SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn...
SAP Cloud Identity Access Governance vs. SAP GRC, Access Control - Ein techn...
 
Agile BI in der Praxis - Agiles Testen
Agile BI in der Praxis - Agiles TestenAgile BI in der Praxis - Agiles Testen
Agile BI in der Praxis - Agiles Testen
 
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
 
Innovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous DeliveryInnovation durch Scrum und Continuous Delivery
Innovation durch Scrum und Continuous Delivery
 
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
DevDay 2016 - Jan Dittberner - Continous Delivery - Aber sicher?!
 
Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!
 
CON•ECT Business Academy Katalog 2018/19
CON•ECT Business Academy Katalog 2018/19CON•ECT Business Academy Katalog 2018/19
CON•ECT Business Academy Katalog 2018/19
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
SEO und Projektmanagement, Vortrag SEOKomm 2014
SEO und Projektmanagement, Vortrag SEOKomm 2014SEO und Projektmanagement, Vortrag SEOKomm 2014
SEO und Projektmanagement, Vortrag SEOKomm 2014
 

Mehr von CarolinaMatthies

Dev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdfDev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdf
CarolinaMatthies
 
Dev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdfDev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdf
CarolinaMatthies
 
Dev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfDev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdf
CarolinaMatthies
 
Dev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdfDev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdf
CarolinaMatthies
 
DevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdfDevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdf
CarolinaMatthies
 
DevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdfDevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdf
CarolinaMatthies
 
Vom Umgang mit Fehlern
Vom Umgang mit FehlernVom Umgang mit Fehlern
Vom Umgang mit Fehlern
CarolinaMatthies
 
Dev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdfDev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdf
CarolinaMatthies
 
Dev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdfDev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdf
CarolinaMatthies
 

Mehr von CarolinaMatthies (9)

Dev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdfDev-Day-Keynote-Folien Leena Simon.pdf
Dev-Day-Keynote-Folien Leena Simon.pdf
 
Dev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdfDev Day Philipp Krenn.pdf
Dev Day Philipp Krenn.pdf
 
Dev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfDev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdf
 
Dev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdfDev Day Andreas Roth.pdf
Dev Day Andreas Roth.pdf
 
DevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdfDevDay_Mirko Seifert.pdf
DevDay_Mirko Seifert.pdf
 
DevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdfDevDay_Christian Mauth.pdf
DevDay_Christian Mauth.pdf
 
Vom Umgang mit Fehlern
Vom Umgang mit FehlernVom Umgang mit Fehlern
Vom Umgang mit Fehlern
 
Dev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdfDev Day Maksim Gudow.pdf
Dev Day Maksim Gudow.pdf
 
Dev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdfDev Day Jiří Kraml.pdf
Dev Day Jiří Kraml.pdf
 

Dev Day Stephan Pirnbaum.pdf

  • 1. www.buschmais.de www.buschmais.de SOFTWARE ARCHITEKTUREN GEZIELT ANALYSIEREN, DOKUMENTIEREN UND VERBESSERN MIT SOFTWARE ANALYTICS Dev Day 24.05.2022 Stephan Pirnbaum @spirnbaum
  • 2. Wer wir sind Dresdner IT-Beratungsunternehmen, gegründet im Jahre 2008 Unsere Schwerpunkte Architekturberatung und Entwicklung moderner Geschäftsanwendungen Software-Qualitätsanalysen und -Sicherung Köpfe hinter jQAssistant: Entwicklung, Trainings, Workshops Unsere Kunden Kleine Auswahl: ITZBund, Sächsische Aufbaubank-Förderbank, ASML, GlobalFoundries, Thyssenkrupp Steel, Deutsche Telekom, COOP Schweiz 2 Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum
  • 3. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 3 WARUM?
  • 4. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 4 UM DIE PROBLEME ZU LÖSEN, MÜSSEN WIR DIE URSACHEN VERSTEHEN!
  • 5. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 5 ES WAR EINMAL… EIN GREENFIELD-PROJEKT
  • 6. Chancen Geringe fachliche Komplexität Kleine Source Code Basis Leichte Änderbarkeit des Codes Risiken Geringe Erfahrung mit Use Cases Unbekannte Anforderungen Notwendige Architekturdefinition Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 6
  • 7. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 7
  • 8. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 8 DAS WUCHS SEHR SCHNELL… UND WURDE ZUM BROWNFIELD-PROJEKT
  • 9. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 9 http://www.quickmeme.com/p/3vpkh8
  • 10. Funktionelles Wachstum Organisatorisches Wachstum Technisches Wachstum Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 10
  • 11. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 11 Langsames, qualitatives Wachstum ➢ Geringere Architekturerosion Schnelles, quantitatives Wachstum ➢ Stärkere Architekturerosion
  • 12. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 12
  • 13. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 13 MIT DER ZEIT WURDE ES NICHT BESSER
  • 14. Innovationszwang durch externe Faktoren Neue Konkurrenten Steigende Kundenanforderungen Andere Geschäftsmodelle Kann unser System folgen? Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 14
  • 15. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 15
  • 16. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 16 https://imgflip.com/i/3db8rk
  • 17. Dokumentierte Architektur (Wiki, PowerPoint, …) <> Gefühlte Architektur (Entwickler) <> Reale Architektur (Code) Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 17
  • 18. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 18 JEDOCH GIBT ES EINEN AUSWEG
  • 19. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 19
  • 20. Aktives Management und Abbau technischer Schulden Unter Berücksichtigung der kurz-, mittel- und langfristigen Ziele Als fester Bestandteil der Projektplanung Gezielt bei kritischen Bereichen Mit gleichzeitiger Re-Dokumentation Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 20
  • 21. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 21 https://imgflip.com/i/23eyxo
  • 22. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 22 Icons made by Kiranshastry from Flaticon
  • 23. WICHTIG Proper Preparation Prevents Poor Performance Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 23
  • 24. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 24 https://builder.cheezburger.com/Builder/RenderPreview/65f84df1-bae0-4cb8-9602-5205a7caf98d
  • 26. Data Analytics für Software Systeme Extraktion und Zusammenführung von Informationen aus Source Code Statischen und dynamischen Eigenschaften Entwicklungshistorien Schlussfolgern von neuen Informationen zum Aufbau von Wissen Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 26
  • 27. Dokumentation von Erkenntnissen Unterstützung von Planung und Refaktorisierung Referenz für (neue) Entwickler Kommunikationsgrundlage für Entwickler und Entscheider Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 27
  • 28. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 28 https://www.kino.de/serie/hoer-mal-wer-da-haemmert-1999/news/hoer-mal-wer-da-haemmert-tim-allen-bringt-neue-folgen-ins-gespraech/
  • 29. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 29 Scan der Anwendung Mapping auf Graphstruktur Persistierung der Strukturen Abfrage von Strukturen Analyse Dokumentation von Ergebnissen
  • 30. Relationship … MIT JQASSISTANT UND NEO4J Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 30 :Package :CONTAINS :Type:Java Node Node
  • 31. Relationship … MIT JQASSISTANT UND NEO4J Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 31 :Package :CONTAINS :Type:Java name: service name: ProductService Property Property Node Node
  • 32. … MIT JQASSISTANT UND NEO4J Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 32 MATCH (p:Package)-[:CONTAINS]->(t:Type:Java) WHERE p.name = “service“ AND t.name = “ProductService“ RETURN p, t :Package :CONTAINS :Type:Java name: service name: ProductService
  • 33. … MIT JUPYTER Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 33
  • 34. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 34 https://makeameme.org/meme/possibilities-are-endless-59fa8f
  • 35. 1. Welche Frage möchte ich beantworten? 2. Mit welchen Daten kann ich diese ausreichend beantworten? 3. Welche Annahmen vereinfachen die Analyse? 4. Für wen und wie müssen die Daten aufbereitet werden? 5. Wie kann die Analyse umgesetzt werden? ➢ Beantwortung vor der eigentlichen Analyse Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 35
  • 36. 6. Was sind die wichtigsten Ergebnisse der Analyse? 7. Was sind die nächsten Schritte? ➢ Beantwortung nach der Analyse Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 36
  • 37. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 37
  • 39. Open Source e-Commerce System „shopizer“ Warenkorb Katalog Suche Bestellung … Fork: https://github.com/StephanPirnbaum/shopizer/tree/2.12.0-jQA Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 39
  • 40. Szenario (Organisatorisch) Shop soll stark anwachsen (Funktionsumfang, Nutzerbasis) z.B. Verkauf digitaler Produkte Onboarding zahlreicher neuer Entwickler mitsamt der Strukturierung in fachlich fokussierte Teams Vorbereitung soll eingeplant und umgesetzt werden Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 40
  • 41. Ziel Identifikation von Wissensträgern Abbau und aktives Management von technischen Schulden Refaktorisierung der Strukturen hin zu fachlichen Schnitten Erstellung von Dokumentation Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 41
  • 42. Problem Verteiltes und fehlendes Wissen über Anwendungsstruktur Architektur- und Designentscheidungen nicht nachvollziehbar Unbekanntes Nichtwissen („Überraschungen“) Zeitrestriktionen … Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 42
  • 45. mvn clean install -DskipTests mvn jqassistant:server → localhost:7474 Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 45
  • 46. Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 46 https://www.memecreator.org/meme/lets-get-to-work81
  • 47. Mögliche Fragestellungen 1. In welche fachlichen Komponenten strukturiert sich die Anwendung und wie hängen diese voneinander ab? 2. Welcher Entwickler ist der Experte für bestimmte Domänen? 3. Welche Code-Teile werden im Vergleich besonders häufig geändert? 4. Welche Module sind besonders instabil/änderungskritisch? 5. Eure eigene Frage? ;) Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 47
  • 48. www.buschmais.de www.buschmais.de SOFTWARE ANALYTICS In welche fachlichen Komponenten strukturiert sich die Anwendung und wie hängen diese voneinander ab?
  • 49. Analyse der fachlichen Strukturierung ➢ Definition und Dokumentation einer fachlichen Strukturierung ➢ Separierung von Source Code nach fachlicher Zugehörigkeit ➢ Fokussierung der Entwickler auf kleinere, kohäsive Anwendungsteile ➢ Planung und Umsetzung konkreter Refaktorisierungsschritte Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 49
  • 50. Analyse der fachlichen Strukturierung Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 50 Order Service :Type Product :Type :DEPENDS_ON
  • 51. Analyse der fachlichen Strukturierung Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 51 Order :BoundedContext Order Service :CONTAINS :Type Product :Type :DEPENDS_ON Catalog :BoundedContext :DEPENDS_ON :CONTAINS
  • 53. Analyse der Code-Ownership ➢ Definition von fachlichen und technischen Ansprechpartnern ➢ Dokumentation des vorhandenen Wissens ➢ Aufbau von Wissen in unbekannten Bereichen ➢ Verstehen und dokumentieren, ggf. Neuimplementierung Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 53
  • 54. Analyse der Code-Ownership Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 54 :Commit :CONTAINS_CHANGE :Change :File :MODIFIES :Author :COMITTED :BoundedContext :Type :HAS_SOURCE :CONTAINS
  • 55. www.buschmais.de www.buschmais.de SOFTWARE ANALYTICS Welche Code-Teile werden im Vergleich besonders häufig geändert?
  • 56. Analyse von häufig geändertem Code Identifikation von wartungsintensiven Hot Spots Auffinden von fehleranfälligem Code Aufdecken von Technischen Schulden Finden von schlecht abgegrenzten Verantwortlichkeiten Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 56
  • 57. Analyse der Code-Ownership Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 57 :Commit :CONTAINS_CHANGE :Change :File :MODIFIES :Type :HAS_SOURCE
  • 58. www.buschmais.de www.buschmais.de SOFTWARE ANALYTICS Welche Module sind besonders instabil/änderungskritisch?
  • 59. Analyse von änderungskritischem Code Identifikation von Code, welcher bei Änderung zahlreiche Änderungen in abhängigem Code erfordert Zeigt fehlende Abstraktheit von Klassen/Packages/Modulen Deutet auf Instabilen Code hin, also Code, welcher häufig aufgrund anderer Änderungen geändert werden muss Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 59
  • 60. Analyse von änderungskritischem Code Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 60 :BoundedContext :CONTAINS :Type (:Interface) :DEPENDS_ON (abstract: true)
  • 62. LIVE DEMO https://github.com/buschmais/software-analytics-starter Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum 62
  • 64. BUSCHMAIS GbR Leipziger Straße 93 01127 Dresden Tel. +49 351 3209230 info@buschmais.com www.buschmais.de KONTAKT Stephan Pirnbaum stephan.pirnbaum@buschmais.com +49 351 320923-22 @spirnbaum stephan-pirnbaum 64 Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum
  • 65. BUSCHMAIS GbR Leipziger Straße 93 01127 Dresden Tel. +49 351 3209230 info@buschmais.com www.buschmais.de BUSCHMAIS ist ein Dresdner IT-Beratungsunternehmen, gegründet im Jahre 2008. Unsere Schwerpunkte liegen in der Architekturberatung und der Entwicklung moderner Geschäftsanwendungen. Gemeinsam mit unseren Kunden analysieren, planen und optimieren wir IT-gestützte Prozesse und unterstützen sie bei der Umsetzung neuer Anforderungen. Dabei arbeiten wir branchenunabhängig und technologiefokussiert in effizienten Teams. 65 Dev Day 2022 - Einführung in Software Analytics - Stephan Pirnbaum