Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Loading in …3
×
1 of 41

Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung

0

Share

Download to read offline

Vortrag auf dem Dev Day 2021: Anwendungsmodernisierung? Pragmatisch, Praktisch, Erfolgreich mit Architecture Decision Records!

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung

  1. 1. www.buschmais.de ANWENDUNGSMODERNISIERUNG? PRAGMATISCH, PRAKTISCH, ERFOLGREICH MIT ARCHITECTURE DECISION RECORDS! DevDey 2021 20.04.2021 Stephan Pirnbaum @spirnbaum
  2. 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
  3. 3. www.buschmais.de ANWENDUNGSMODERNISIERUNG
  4. 4. Modernisierungsdruck durch ext. und int. Faktoren Neue Anforderungen Neue Technologien Neue Konkurrenten Kostenoptimierung Prozessoptimierung DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 4
  5. 5. Kontinuierliche Modernisierung der Architektur notwendig ABER: Funktionale Weiterentwicklung kann nicht ausgesetzt werden DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 5 Parallele Modernisierung
  6. 6. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 6 feature master architecture Ein typischer Projektverlauf
  7. 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. 8. Anwendungsmodernisierung = Chance für (Re-)Dokumentation → AUCH: Notwendigkeit für klare Dokumentation und Kommunikation DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 8
  9. 9. www.buschmais.de AD WAS?
  10. 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. 11. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 11 Warum? Blind akzeptieren oder ändern ist riskant Icons made by Kiranshastry from Flaticon
  12. 12. Dokumentation muss: Entscheidungen explizit festhalten Kontext der Entscheidung darlegen Auswirkungen auf Entwicklung aufzeigen Leichtgewichtig sein DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 12
  13. 13. Architecture Decision Records Ein Dokument je Entscheidung ✓ Klein ✓ Übersichtlich ✓ Fokussiert DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 13 ADR # - … Status: … Kontext: … Entscheidung: … Konsequenzen: …
  14. 14. Architecture Decision Records Version mit Status ✓ Nachvollziehbar ✓ Relevant ✓ Aktuell DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 14 Proposed Accepted Declined Superseded
  15. 15. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 15 #4 #4 #4 #4 Versionskontrollsystem Icons made by Kiranshastry from Flaticon
  16. 16. www.buschmais.de ADRS ❤ MODERNISIERUNG
  17. 17. www.buschmais.de ADRS ❤ MODERNISIERUNG Ein Beispiel
  18. 18. Online-Shop Produktkatalog Warenkorb Nutzerkonten Bestellabwicklung … DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 18
  19. 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. 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. 21. Herausforderungen Weiterentwicklung vs. Umsetzung der Architekturentscheidung Planbarkeit der Umsetzung → Aufwand? Monitoring der Fortschritte DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 21
  22. 22. www.buschmais.de ADRS ❤ MODERNISIERUNG Pragmatisch!
  23. 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. 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. 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
  26. 26. www.buschmais.de ADRS ❤ MODERNISIERUNG Praktisch!
  27. 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. 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. 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. 30. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 30
  31. 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. 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. 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. 34. DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 34 Rendering der Ergebnisse in das entstehende HTML inklusive Query und Status (Erfolgreich/Fehlgeschlagen) auch grafisch (PlantUML)
  35. 35. www.buschmais.de ADRS ❤ MODERNISIERUNG Erfolgreich!
  36. 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. 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
  38. 38. Beispiele https://github.com/buschmais/adr- starter/tree/master/jqassistant/adr DevDay 2021 - Vortrag "Anwendungsmodernisierung" - Stephan Pirnbaum 38
  39. 39. www.buschmais.de DANKE !
  40. 40. www.buschmais.de NOCH FRAGEN?
  41. 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

×