SlideShare a Scribd company logo
1 of 41
Download to read offline
www.buschmais.de
ANWENDUNGSMODERNISIERUNG?
PRAGMATISCH, PRAKTISCH, ERFOLGREICH
MIT ARCHITECTURE DECISION RECORDS!
DevDey 2021
20.04.2021
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 im Bereich Software-Qualitätsanalyse
u. a. ITZBund, Sächsische Aufbaubank-Förderbank, ASML, GlobalFoundries, Thyssenkrupp Steel
2
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum
www.buschmais.de
ANWENDUNGSMODERNISIERUNG
Modernisierungsdruck durch ext. und int. Faktoren
Neue Anforderungen
Neue Technologien
Neue Konkurrenten
Kostenoptimierung
Prozessoptimierung
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 4
Kontinuierliche Modernisierung der Architektur notwendig
ABER: Funktionale Weiterentwicklung kann nicht
ausgesetzt werden
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 5
Parallele Modernisierung
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 6
feature
master
architecture
Ein typischer Projektverlauf
Parallele Entwicklung an Features und Architektur
Entwickler arbeiten gegeneinander
Steigender Integrationsaufwand
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 7
Endlose Geschichte
Icons made by Kiranshastry from Flaticon
Anwendungsmodernisierung
= Chance für (Re-)Dokumentation
→ AUCH: Notwendigkeit für klare
Dokumentation und Kommunikation
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 8
www.buschmais.de
AD WAS?
Michael Nygard (2011)
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 10
“Documents that assist the
team itself can have value, but
only if they are kept up to date.”
“Large documents are
never kept up to date.”
“Nobody ever reads
large documents,
either.”
Icons made by Kiranshastry from Flaticon
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 11
Warum?
Blind akzeptieren
oder ändern
ist riskant
Icons made by Kiranshastry from Flaticon
Dokumentation muss:
Entscheidungen explizit festhalten
Kontext der Entscheidung darlegen
Auswirkungen auf Entwicklung aufzeigen
Leichtgewichtig sein
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 12
Architecture Decision Records
Ein Dokument je Entscheidung
✓ Klein
✓ Übersichtlich
✓ Fokussiert
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 13
ADR # - …
Status: …
Kontext: …
Entscheidung: …
Konsequenzen: …
Architecture Decision Records
Version mit Status
✓ Nachvollziehbar
✓ Relevant
✓ Aktuell
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 14
Proposed
Accepted Declined
Superseded
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 15
#4
#4
#4
#4
Versionskontrollsystem
Icons made by Kiranshastry from Flaticon
www.buschmais.de
ADRS ❤ MODERNISIERUNG
www.buschmais.de
ADRS ❤ MODERNISIERUNG
Ein Beispiel
Online-Shop
Produktkatalog
Warenkorb
Nutzerkonten
Bestellabwicklung
…
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 18
Bevorstehende Änderung der DB für den Produktkatalog
(Aufgrund Performanz, Pflege, …)
Relationale DB → Dokumentenbasierte DB
Evaluation und Proof of Concept ist bereits erfolgreich umgesetzt
Shop soll entsprechend vorbereitet werden
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 19
Dokumentenbasierte DB erfordert Aggregate im Modell
Deep Linking zwischen Aggregaten ist verboten
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 20
ProductOption ProductOptionValue
<Aggregate>
Category
<Aggregate>
Product
Herausforderungen
Weiterentwicklung vs. Umsetzung der Architekturentscheidung
Planbarkeit der Umsetzung → Aufwand?
Monitoring der Fortschritte
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 21
www.buschmais.de
ADRS ❤ MODERNISIERUNG
Pragmatisch!
Dokumentation mit AsciiDoc
Leichtgewichtig
Versionierbar
Verschiedene Ausgabeformate
= 001 – …
== Status Proposed
== Kontext
* Migration der DB des
Produktkatalogs
== Entscheidung
* Aggregatbildung
** Keine Deep Links
== Konsequenzen
* Alle Entitäten nur durch 1
Aggregat referenziert
** Existierende Deep Links
auflösen
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 23
Prozess möglichst schmal halten
Wichtig: Jeden Beteiligten informieren
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 24
Proposed Accepted
Icons made by Kiranshastry from Flaticon
Vereinfachung der Arbeit mit ADRs durch
Bereitgestelltes ADR-Template
Thematische Unterordner (Struktur, Persistenz, Logging, …)
Klarer Prozess von der Idee zum finalen ADR
Gute IDE-Integration (AsciiDoc-Plugin)
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 25
www.buschmais.de
ADRS ❤ MODERNISIERUNG
Praktisch!
shopizer
jqassistant
adr
001-No-Deep-Linking.adoc
index.adoc
src
pom.xml
Ablage im Repository
Code-nah
Versioniert
Nachvollziehbar
Integration mit z.B.
Maven (Rendering-Plugins)
jQAssistant ☺
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 27
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 28
Rendering der Dokumente
während des Builds
in verschiedenen Formaten
zur Bereitstellung z.B. als
Maven Site
ADR ist nah am Code, ABER:
Wer prüft die Aktualität und Relevanz der Regeln?
Wer weist den Entwickler auf Regelverletzungen hin?
Wer überprüft Fortschritte und zeigt verbleibende Aufwände?
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 29
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 30
Integration mit jQAssistant ermöglicht
Identifikation von Architekturkonzepten im Code
z. B. Aggregate
Überprüfung von definierten Architekturregeln
z. B. kein Deep Linking zwischen Aggregaten
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 31
Konzepte
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 32
Product
:Type:Java
:ANNOTATED_BY
:Annotation
Aggregate
:Type:Java
:OF_TYPE
= 001 – …
…
== Konsequenzen
[[adr:Aggregates]]
[source,cypher,role=concept]
----
MATCH (t:Type)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(a:Type)
WHERE a.name = „Aggregate“
SET t:Aggregate
RETURN t.fqn
----
Es gibt ein jQAssistant
DDD-Plugin dafür ☺
Category
Regeln
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 33
Product
:Aggregate
Product
Option
:DEPENDS_ON
:Entity
:Aggregate
= 001 – …
…
== Konsequenzen
[[adr:Aggregates]]
[source,cypher,role=constraint,requiresConcept=„java-ddd:*“]
----
MATCH (a:Aggregate)-[:DEPENDS_ON]->(e:Entity)
WITH e, collect(a.fqn) AS referencingAggregates
WHERE size(referencingAggregates) > 1
RETURN e.fqn AS Entity, referencingAggregates
----
:DEPENDS_ON
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 34
Rendering der Ergebnisse
in das entstehende HTML
inklusive Query und Status
(Erfolgreich/Fehlgeschlagen)
auch grafisch (PlantUML)
www.buschmais.de
ADRS ❤ MODERNISIERUNG
Erfolgreich!
Leichte Nachvollziehbarkeit der Entscheidungen
Besonders für neue Entwickler
Leichtgewichtige Dokumentation einfach verteilbar
Manifestation von Wissen
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 36
Definition von Architekturkonzepten und -regeln
Kontinuierliches Monitoring der Fortschritte
Genaue Planung der Umsetzung (Abschätzung)
Automatisierte Absicherung der Umsetzung der Entscheidungen
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 37
Beispiele
https://github.com/buschmais/adr-
starter/tree/master/jqassistant/adr
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 38
www.buschmais.de
DANKE !
www.buschmais.de
NOCH FRAGEN?
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
Tel. +49 351 320923-22
Twitter: @spirnbaum
DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 41

More Related Content

What's hot

Sucess Story von Linux zu Microsoft
Sucess Story von Linux zu MicrosoftSucess Story von Linux zu Microsoft
Sucess Story von Linux zu MicrosoftProTechnology GmbH
 
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenWertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenMichael Moser
 
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die ArchitekturbewertungDer Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die ArchitekturbewertungHendrik Lösch
 
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...Lena Königsberger
 
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als SoftwarearchitektHendrik Lösch
 
Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)
Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)
Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)Praxistage
 
Vom Monolith zum Modulith
Vom Monolith zum ModulithVom Monolith zum Modulith
Vom Monolith zum ModulithHendrik Lösch
 
Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)
Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)
Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)Praxistage
 
Restrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen GroßapplikationRestrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen GroßapplikationHendrik Lösch
 
Voquz IT Solutions Unternehmenspräsention
Voquz IT Solutions UnternehmenspräsentionVoquz IT Solutions Unternehmenspräsention
Voquz IT Solutions UnternehmenspräsentionVoquz Group
 
TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...
TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...
TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...Trivadis
 
Citrix Day 2014: Swisscom Dynamic Workplace Framework
Citrix Day 2014: Swisscom Dynamic Workplace FrameworkCitrix Day 2014: Swisscom Dynamic Workplace Framework
Citrix Day 2014: Swisscom Dynamic Workplace FrameworkDigicomp Academy AG
 
Innovative Datendistribution am Beispiel Maschinenbau
Innovative Datendistribution am Beispiel MaschinenbauInnovative Datendistribution am Beispiel Maschinenbau
Innovative Datendistribution am Beispiel MaschinenbauConnected-Blog
 
Webinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generieren
Webinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generierenWebinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generieren
Webinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generierenKathrin Schmidt
 
Rahmenbedingungen für agile Softwarebeschaffung
Rahmenbedingungen für agile SoftwarebeschaffungRahmenbedingungen für agile Softwarebeschaffung
Rahmenbedingungen für agile SoftwarebeschaffungReto Maduz
 

What's hot (19)

Sucess Story von Linux zu Microsoft
Sucess Story von Linux zu MicrosoftSucess Story von Linux zu Microsoft
Sucess Story von Linux zu Microsoft
 
Wertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-SystemenWertstoff Software - Wissenssicherung in Legacy-Systemen
Wertstoff Software - Wissenssicherung in Legacy-Systemen
 
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die ArchitekturbewertungDer Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
Der Software auf den Zahn gefühlt - Einstieg in die Architekturbewertung
 
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
Welche Prototyping-Methode passt zu meinen Anforderungen? – World Usability D...
 
Lean Collaboration
Lean CollaborationLean Collaboration
Lean Collaboration
 
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
„Wie reden Sie denn mit mir?!?“ – Stakeholder überzeugen als Softwarearchitekt
 
Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)
Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)
Dr. Clemens Wagner-Bruschek, ERP (d-fine Austria)
 
Vom Monolith zum Modulith
Vom Monolith zum ModulithVom Monolith zum Modulith
Vom Monolith zum Modulith
 
A4 Pavone@Lotusday2007
A4 Pavone@Lotusday2007A4 Pavone@Lotusday2007
A4 Pavone@Lotusday2007
 
Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)
Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)
Ing. Peter Klein (ÖBB), Carlo Wunrau (Schiffl Austria)
 
Restrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen GroßapplikationRestrukturierung einer industriellen Großapplikation
Restrukturierung einer industriellen Großapplikation
 
Voquz IT Solutions Unternehmenspräsention
Voquz IT Solutions UnternehmenspräsentionVoquz IT Solutions Unternehmenspräsention
Voquz IT Solutions Unternehmenspräsention
 
TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...
TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...
TechEvent 2019: Customer Case Mission Possible - Deka Bank Fonds - DWH in a n...
 
Profil daniel boogaerts
Profil daniel boogaertsProfil daniel boogaerts
Profil daniel boogaerts
 
Citrix Day 2014: Swisscom Dynamic Workplace Framework
Citrix Day 2014: Swisscom Dynamic Workplace FrameworkCitrix Day 2014: Swisscom Dynamic Workplace Framework
Citrix Day 2014: Swisscom Dynamic Workplace Framework
 
Innovative Datendistribution am Beispiel Maschinenbau
Innovative Datendistribution am Beispiel MaschinenbauInnovative Datendistribution am Beispiel Maschinenbau
Innovative Datendistribution am Beispiel Maschinenbau
 
Modular mit .NET
Modular mit .NETModular mit .NET
Modular mit .NET
 
Webinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generieren
Webinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generierenWebinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generieren
Webinar CPQ: Angebotsprozesse automatisieren, mehr Umsatz generieren
 
Rahmenbedingungen für agile Softwarebeschaffung
Rahmenbedingungen für agile SoftwarebeschaffungRahmenbedingungen für agile Softwarebeschaffung
Rahmenbedingungen für agile Softwarebeschaffung
 

Similar to Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung

Dev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfDev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfCarolinaMatthies
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenCarola Lilienthal
 
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)Praxistage
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightChristinaLerch1
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der PraxisMichael Mirold
 
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üsseBATbern
 
Produktdatenmanagement mit Neo4j - Andreas Weber, semantic pdm
Produktdatenmanagement mit Neo4j - Andreas Weber, semantic pdmProduktdatenmanagement mit Neo4j - Andreas Weber, semantic pdm
Produktdatenmanagement mit Neo4j - Andreas Weber, semantic pdmNeo4j
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...QAware GmbH
 
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS ExcelSolutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excelsolutiontogo
 
Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)
Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)
Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)Marc Bless
 
Shift Left fängt ganz links an
Shift Left fängt ganz links anShift Left fängt ganz links an
Shift Left fängt ganz links anBATbern
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
Mit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senkenMit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senkenDynatrace
 
Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)Pierluigi Pugliese
 
Desktop Virtualisierung mit VMware View 5.0
Desktop Virtualisierung mit VMware View 5.0Desktop Virtualisierung mit VMware View 5.0
Desktop Virtualisierung mit VMware View 5.0inoX-tech GmbH
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean ArchitectureQAware GmbH
 
Agile und Projektmanagement - Kein entweder-oder sondern anders
Agile und Projektmanagement - Kein entweder-oder sondern andersAgile und Projektmanagement - Kein entweder-oder sondern anders
Agile und Projektmanagement - Kein entweder-oder sondern andersSteffen Thols
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beansklickandbau
 
Erfolgsfaktoren der Wikieinführung in KMU
Erfolgsfaktoren der Wikieinführung in KMUErfolgsfaktoren der Wikieinführung in KMU
Erfolgsfaktoren der Wikieinführung in KMUMartin Koser
 

Similar to Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung (20)

Dev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdfDev Day Stephan Pirnbaum.pdf
Dev Day Stephan Pirnbaum.pdf
 
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen SchuldenLanglebige Softwarearchitekturen - Der Umgang mit technischen Schulden
Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden
 
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
Frank Schlotter, Mag. Christoph Domanig (Active Business Consult – Cenit)
 
Softwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha NightSoftwerkskammer Chemnitz Special Pecha Kucha Night
Softwerkskammer Chemnitz Special Pecha Kucha Night
 
Domain-Driven Design in der Praxis
Domain-Driven Design in der PraxisDomain-Driven Design in der Praxis
Domain-Driven Design in der Praxis
 
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
 
Produktdatenmanagement mit Neo4j - Andreas Weber, semantic pdm
Produktdatenmanagement mit Neo4j - Andreas Weber, semantic pdmProduktdatenmanagement mit Neo4j - Andreas Weber, semantic pdm
Produktdatenmanagement mit Neo4j - Andreas Weber, semantic pdm
 
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
Cloud Native Migration: Wie IT-Landschaften ihren Weg auf eine Cloud-Native-P...
 
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS ExcelSolutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
 
Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)
Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)
Agile Methoden in der Medizintechnik - Über die Software hinaus (CONSANIS)
 
Shift Left fängt ganz links an
Shift Left fängt ganz links anShift Left fängt ganz links an
Shift Left fängt ganz links an
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Mit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senkenMit Performance-Modellierung Test- und Betriebskosten senken
Mit Performance-Modellierung Test- und Betriebskosten senken
 
Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)Large-Scale Product Owner @ XPDays Germany (5.10.2023)
Large-Scale Product Owner @ XPDays Germany (5.10.2023)
 
Desktop Virtualisierung mit VMware View 5.0
Desktop Virtualisierung mit VMware View 5.0Desktop Virtualisierung mit VMware View 5.0
Desktop Virtualisierung mit VMware View 5.0
 
Zinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.deZinit.leistungen.webentwicklung.v1.0.de
Zinit.leistungen.webentwicklung.v1.0.de
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Agile und Projektmanagement - Kein entweder-oder sondern anders
Agile und Projektmanagement - Kein entweder-oder sondern andersAgile und Projektmanagement - Kein entweder-oder sondern anders
Agile und Projektmanagement - Kein entweder-oder sondern anders
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans
 
Erfolgsfaktoren der Wikieinführung in KMU
Erfolgsfaktoren der Wikieinführung in KMUErfolgsfaktoren der Wikieinführung in KMU
Erfolgsfaktoren der Wikieinführung in KMU
 

More from DevDay Dresden

The Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin HenneyThe Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin HenneyDevDay Dresden
 
Andreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzenAndreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzenDevDay Dresden
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersDevDay Dresden
 
Dev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging PatternsDev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging PatternsDevDay Dresden
 
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...DevDay Dresden
 
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...DevDay Dresden
 
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...DevDay Dresden
 
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...DevDay Dresden
 
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...DevDay Dresden
 
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101DevDay Dresden
 
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-TeamsDev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-TeamsDevDay Dresden
 
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den RadverkehrDev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den RadverkehrDevDay Dresden
 
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...DevDay Dresden
 
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!DevDay Dresden
 
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“DevDay Dresden
 
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"DevDay Dresden
 
Dev Day 2019: Mike Sperber – Software Design für die Seele
Dev Day 2019: Mike Sperber – Software Design für die SeeleDev Day 2019: Mike Sperber – Software Design für die Seele
Dev Day 2019: Mike Sperber – Software Design für die SeeleDevDay Dresden
 
Dev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AG
Dev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AGDev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AG
Dev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AGDevDay Dresden
 
DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...
DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...
DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...DevDay Dresden
 
DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...
DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...
DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...DevDay Dresden
 

More from DevDay Dresden (20)

The Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin HenneyThe Architecture of Uncertainty - Kevlin Henney
The Architecture of Uncertainty - Kevlin Henney
 
Andreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzenAndreas Roth - GraphQL erfolgreich im Backend einsetzen
Andreas Roth - GraphQL erfolgreich im Backend einsetzen
 
Alexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for DevelopersAlexander Reelsen - Seccomp for Developers
Alexander Reelsen - Seccomp for Developers
 
Dev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging PatternsDev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
Dev Day 2019: Phillip Krenn – Aggregierte Logging Patterns
 
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
Dev Day 2019: Mirko Seifert – Next Level Integration Testing mit Docker und T...
 
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
Dev Day 2019: Nathan Mattes – Kommunikation ist wichtig, scheiße wichtig und ...
 
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
Dev Day 2019: Markus Winand – Die Mutter aller Abfragesprachen: SQL im 21. Ja...
 
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...
 
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
Dev Day 2019: Kathrin Friedrich/Michael Kunze – Design better together - Styl...
 
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
Dev Day 2019: Benjamin Wolf – "Some fixes" - Commit Message 101
 
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-TeamsDev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
Dev Day 2019: Lucas Fiedler – DevOps-Dashboard: Transparenz für DevOps-Teams
 
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den RadverkehrDev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
Dev Day 2019: Ulrich Deiters – Offene Daten und IT-Lösungen für den Radverkehr
 
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
 
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
Dev Day 2019: Martin Schurz - Manual Work Is A Bug!
 
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
Dev Day 2019: Stefan Schleyer: How to build an cloud-based IoT application“
 
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
Dev Day 2019: Mirko Zeibig – "Hallo " <> "Elixir"
 
Dev Day 2019: Mike Sperber – Software Design für die Seele
Dev Day 2019: Mike Sperber – Software Design für die SeeleDev Day 2019: Mike Sperber – Software Design für die Seele
Dev Day 2019: Mike Sperber – Software Design für die Seele
 
Dev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AG
Dev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AGDev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AG
Dev Day 2019: Steve Lohn – 5 Jahre CD-Pipeline @ Deutsche Post AG
 
DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...
DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...
DevDay 2018: Mark Keinhörster - Skalierbare OCR Pipelines mit Python, Tensorf...
 
DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...
DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...
DevDay 2018: Martin Schurz - Aufbau einer Monitoringlösung für moderne Applik...
 

Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung

  • 1. www.buschmais.de ANWENDUNGSMODERNISIERUNG? PRAGMATISCH, PRAKTISCH, ERFOLGREICH MIT ARCHITECTURE DECISION RECORDS! DevDey 2021 20.04.2021 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 im Bereich Software-Qualitätsanalyse u. a. ITZBund, Sächsische Aufbaubank-Förderbank, ASML, GlobalFoundries, Thyssenkrupp Steel 2 DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum
  • 4. Modernisierungsdruck durch ext. und int. Faktoren Neue Anforderungen Neue Technologien Neue Konkurrenten Kostenoptimierung Prozessoptimierung DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 4
  • 5. Kontinuierliche Modernisierung der Architektur notwendig ABER: Funktionale Weiterentwicklung kann nicht ausgesetzt werden DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 5 Parallele Modernisierung
  • 6. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 6 feature master architecture Ein typischer Projektverlauf
  • 7. Parallele Entwicklung an Features und Architektur Entwickler arbeiten gegeneinander Steigender Integrationsaufwand DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 7 Endlose Geschichte Icons made by Kiranshastry from Flaticon
  • 8. Anwendungsmodernisierung = Chance für (Re-)Dokumentation → AUCH: Notwendigkeit für klare Dokumentation und Kommunikation DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 8
  • 10. Michael Nygard (2011) DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 10 “Documents that assist the team itself can have value, but only if they are kept up to date.” “Large documents are never kept up to date.” “Nobody ever reads large documents, either.” Icons made by Kiranshastry from Flaticon
  • 11. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 11 Warum? Blind akzeptieren oder ändern ist riskant Icons made by Kiranshastry from Flaticon
  • 12. Dokumentation muss: Entscheidungen explizit festhalten Kontext der Entscheidung darlegen Auswirkungen auf Entwicklung aufzeigen Leichtgewichtig sein DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 12
  • 13. Architecture Decision Records Ein Dokument je Entscheidung ✓ Klein ✓ Übersichtlich ✓ Fokussiert DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 13 ADR # - … Status: … Kontext: … Entscheidung: … Konsequenzen: …
  • 14. Architecture Decision Records Version mit Status ✓ Nachvollziehbar ✓ Relevant ✓ Aktuell DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 14 Proposed Accepted Declined Superseded
  • 15. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 15 #4 #4 #4 #4 Versionskontrollsystem Icons made by Kiranshastry from Flaticon
  • 18. Online-Shop Produktkatalog Warenkorb Nutzerkonten Bestellabwicklung … DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 18
  • 19. Bevorstehende Änderung der DB für den Produktkatalog (Aufgrund Performanz, Pflege, …) Relationale DB → Dokumentenbasierte DB Evaluation und Proof of Concept ist bereits erfolgreich umgesetzt Shop soll entsprechend vorbereitet werden DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 19
  • 20. Dokumentenbasierte DB erfordert Aggregate im Modell Deep Linking zwischen Aggregaten ist verboten DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 20 ProductOption ProductOptionValue <Aggregate> Category <Aggregate> Product
  • 21. Herausforderungen Weiterentwicklung vs. Umsetzung der Architekturentscheidung Planbarkeit der Umsetzung → Aufwand? Monitoring der Fortschritte DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 21
  • 23. Dokumentation mit AsciiDoc Leichtgewichtig Versionierbar Verschiedene Ausgabeformate = 001 – … == Status Proposed == Kontext * Migration der DB des Produktkatalogs == Entscheidung * Aggregatbildung ** Keine Deep Links == Konsequenzen * Alle Entitäten nur durch 1 Aggregat referenziert ** Existierende Deep Links auflösen DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 23
  • 24. Prozess möglichst schmal halten Wichtig: Jeden Beteiligten informieren DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 24 Proposed Accepted Icons made by Kiranshastry from Flaticon
  • 25. Vereinfachung der Arbeit mit ADRs durch Bereitgestelltes ADR-Template Thematische Unterordner (Struktur, Persistenz, Logging, …) Klarer Prozess von der Idee zum finalen ADR Gute IDE-Integration (AsciiDoc-Plugin) DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 25
  • 27. shopizer jqassistant adr 001-No-Deep-Linking.adoc index.adoc src pom.xml Ablage im Repository Code-nah Versioniert Nachvollziehbar Integration mit z.B. Maven (Rendering-Plugins) jQAssistant ☺ DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 27
  • 28. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 28 Rendering der Dokumente während des Builds in verschiedenen Formaten zur Bereitstellung z.B. als Maven Site
  • 29. ADR ist nah am Code, ABER: Wer prüft die Aktualität und Relevanz der Regeln? Wer weist den Entwickler auf Regelverletzungen hin? Wer überprüft Fortschritte und zeigt verbleibende Aufwände? DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 29
  • 30. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 30
  • 31. Integration mit jQAssistant ermöglicht Identifikation von Architekturkonzepten im Code z. B. Aggregate Überprüfung von definierten Architekturregeln z. B. kein Deep Linking zwischen Aggregaten DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 31
  • 32. Konzepte DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 32 Product :Type:Java :ANNOTATED_BY :Annotation Aggregate :Type:Java :OF_TYPE = 001 – … … == Konsequenzen [[adr:Aggregates]] [source,cypher,role=concept] ---- MATCH (t:Type)-[:ANNOTATED_BY]->()-[:OF_TYPE]->(a:Type) WHERE a.name = „Aggregate“ SET t:Aggregate RETURN t.fqn ---- Es gibt ein jQAssistant DDD-Plugin dafür ☺
  • 33. Category Regeln DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 33 Product :Aggregate Product Option :DEPENDS_ON :Entity :Aggregate = 001 – … … == Konsequenzen [[adr:Aggregates]] [source,cypher,role=constraint,requiresConcept=„java-ddd:*“] ---- MATCH (a:Aggregate)-[:DEPENDS_ON]->(e:Entity) WITH e, collect(a.fqn) AS referencingAggregates WHERE size(referencingAggregates) > 1 RETURN e.fqn AS Entity, referencingAggregates ---- :DEPENDS_ON
  • 34. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 34 Rendering der Ergebnisse in das entstehende HTML inklusive Query und Status (Erfolgreich/Fehlgeschlagen) auch grafisch (PlantUML)
  • 36. Leichte Nachvollziehbarkeit der Entscheidungen Besonders für neue Entwickler Leichtgewichtige Dokumentation einfach verteilbar Manifestation von Wissen DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 36
  • 37. Definition von Architekturkonzepten und -regeln Kontinuierliches Monitoring der Fortschritte Genaue Planung der Umsetzung (Abschätzung) Automatisierte Absicherung der Umsetzung der Entscheidungen DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 37
  • 41. 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 Tel. +49 351 320923-22 Twitter: @spirnbaum DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 41