Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß

Die Seite wird erstellt Vicky Lauer
 
WEITER LESEN
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Experts in agile software engineering

         Architekturarbeit in Scrum-Teams

         In kleinen Schritten zum großen Ganzen

         Frankfurt, den 03.03.2021
         Andreas Reuß                                               Thorben Hehmann
         andreas.reuss@andrena.de                                   thorben.hehmann@andrena.de
© 2021 andrena objects ag
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
2020

            Jeff Sutherland & Ken Schwaber            Stefan Toth
             https://www.scrumguides.org/    https://www.swamuster.de/

© 2021 andrena objects ag
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Architektur im Scrum Guide?

         Architektur wird nicht (mehr) explizit erwähnt

         Scrum Team ist
         • cross functional
         • Selbstorganisiert
         • Verantwortet alle produktbezogenen Aktivitäten

         Architektur ist Teamaufgabe

© 2021 andrena objects ag
                                     Scrum Guide, S. 5
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Wie viel Architektur braucht/verträgt man?

                                       Architektur             Komplexität

                                     Entscheidungen              Fachlich

                                       Prinzipien               Technisch

                                     Dokumentation           Organisatorisch

                            Starre                                             Chaos

© 2021 andrena objects ag
                                        Orientiert sich grob an VS, S. 15f
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Identifikation von Architekturbedarf
           Anforderungen managen

© 2019 andrena objects ag
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Architekturentwurf vor der Implementierung?

                 Scrum hat
                 • Kein „Sprint 0“
                 • Keine Architektur vorab
                 • Softwareinkrement jeden Sprint
                 • Als Ziel Flexibilität

                                                    Architektur erhält die Änderbarkeit

© 2021 andrena objects ag
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Scrum angewandt auf Softwarearchitektur

                            • Identifiziere Architekturbedarf
                               • Funktionale Anforderungen
                               • Nichtfunktionale Anforderungen
                               • Qualitätsanforderungen

                            • Schaffe Transparenz
                              • Über Anforderungen
                              • Über Erfüllung

                            • Hole Feedback ein
                              • Automatisiert
                              • Von Stakeholdern

© 2021 andrena objects ag
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Woher kommen die Anforderungen?

                            • Von Stakeholdern
                               • Kunden
                               • Betrieb
                               • Marketing
                               • Entwickler

                            • Aus dem Refinement

                            • Aus manuellen/explorativen Tests

© 2021 andrena objects ag
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Refinement

         • Backlog Items
            • Präzisieren
            • Schätzen
            • Ordnen
         • Freiheit bei wann und wie

         • Items für den nächsten Sprint müssen refined sein
            = Können im nächsten Sprint erledigt werden („done“)

          ➢Dies umfasst auch die mindestens nötige Architekturarbeit

© 2021 andrena objects ag
Architekturarbeit in Scrum-Teams - In kleinen Schritten zum großen Ganzen Frankfurt, den 03.03.2021 Andreas Reuß
Wer ist verantwortlich für Qualitätsanforderungen?

                              Funktionale
                                                Product Owner
                             Anforderungen

                            Nichtfunktionale
                                                Product Owner
                            Anforderungen

                              Inhalte des
                                                Product Owner
                            Product Backlog

                            Priorisierung des
                                                Product Owner
                            Product Backlog

© 2021 andrena objects ag
Vorgehen

                  Wer ist Architekt?      Iterative Architektur   Methodik unabhängig

                            Nur so viel      Antizipativer          Architektur ist
                             wie nötig           Blick            kein Selbstzweck

© 2021 andrena objects ag
Wie erkennt man, welche Themen Architektur brauchen?

                            ☑Ist die Entscheidung später nur schwer zu ändern?
                            ☑Ist die Umsetzung der Entscheidung eher teuer?
                            ☑Werden sehr hohe, qualitative Anforderungen gestellt?
                            ☑Lassen sich Anforderungen nur schwer in
                             Bestehendes abbilden?
                            ☑Ist die eigene Erfahrung im Lösungsspektrum schwach?

                        • Vertraut eurer Intuition!
                        • Seid neugierig, kritisch und hartnäckig!

© 2021 andrena objects ag
                                                  VS, S. 73
Beispiel
         Kapselung von Frameworks: Dependency Injection

         Kapselung in Angular
         • Komponenten kümmern sich nur um Nutzerinteraktion
         • Datenverarbeitung in normalem TypeScript Code
         • Injizierbare Services bilden Verknüpfung

          Kapselung in Java
          • In vielen Projekten Spring als Lösung
          • Einfachere Austauschbarkeit
          • Höhere Komplexität und Verwaltungsaufwand

© 2021 andrena objects ag
Zusammenarbeit PO und Entwickler

         PO entscheidet über das „Was“
         Entwickler entscheidet über das „Wie“

         Code Qualität (interne Qualität)
         • Entscheiden die Entwickler

         Verhalten des Produkts (externe Qualität)
         • Entscheidet PO mit Unterstützung der Entwickler

© 2021 andrena objects ag
Hilfeleistungen der Entwickler für den PO

         Ermöglichen fachliche Bewertung qualitativer Anforderungen
         • Nutzen von Architekturentscheidung für das Produkt
         • Erläutere Alternativen
         • Einschätzen der nötigen Aufwände
         • Zielkonflikte zwischen konkurrierenden Qualitäten aufzeigen

         ➢ Ermöglichen dem PO dadurch informiert zu priorisieren

© 2021 andrena objects ag
Architekturentscheidung im Agilen Prozess

                                             Überlastete
                                            Event-Queue

        Automatisierter e2e-Test                                 Entwickler wollen
          für Wertpapierkauf                                    Queue austauschen

                            Backlog Item
                            mit Schätzung      Hoher Aufwand = Kosten
© 2021 andrena objects ag
Szenarien als Hilfsmittel der fachlichen Bewertung

         Quelle                         „Ein Nutzer
         Stimulus                       kauft ein Wertpapier.
         Gegenstand, Artefakt           In der Depotübersicht
         Umgebung                       seines Accounts

         Antwort                        sieht er alle von ihm gekauften Wertpapiere
         Antwortmaß                     nach weniger als 200 ms.“

                                Geschwindigkeit, Vollständigkeit

© 2021 andrena objects ag
                            „Szenarien als Architekturanforderungen“, VS, S. 43ff
Abstrakte Nachrichten
         • Interfaces liegen in unabhängigen Paketen
                     Publisher           Message               Consumer
                     send(Message)       type                  receiveMessages()
                                         id
                                         body

         • Implementierungen in weiteren Paketen
                                                                  Consumer 1

                       Publisher       Nachrichtenkanal
                                           Queue                  Consumer 2

                                                                  Consumer 3
                     kennt Message,   implementiert Message,      kennt Message,
                     Publisher        Publisher, Consumer         Consumer

© 2021 andrena objects ag
Wer entscheidet, wie die Umsetzung aussieht?

                            Entwickler                PO
                            • Implementierung         • Verantwortet die Qualität
                              des Produkts              des Produkts
                            • (Architektur-)          • Enabler für Qualitäts-
                              Entscheidungen            maßnahmen

                                      Anpassbarkeit > Perfektion

© 2021 andrena objects ag
Transparenz schaffen

© 2021 andrena objects ag
Transparenz in Scrum

         Product Backlog

         Sprint Backlog

         Sprint Review mit einem done Inkrement
         ➢ Definition of Done

© 2021 andrena objects ag
Definition of Done

         Formale Beschreibung der notwendigen Qualitätsmaßnahmen

         Transparenz durch geteiltes Verständnis über verrichtete Arbeit

         Arbeit trägt erst zum Inkrement bei, wenn sie die DoD erfüllt
         • done = auslieferbar

© 2021 andrena objects ag
                                  Scrum Guide, S. 12
Definition of Done als Architekturwerkzeug

         Sollte Folgendes exponieren:
           • Wichtigste Regeln für interne Qualität
           • Wichtigste Ansprüche an externe Qualitäten
           • Wichtigste Architekturleitlinien

         Gefahren
           Zu umfangreich > Wächst stetig > Schwer handhabbar > Wenig beachtet

         ➢ Das Wichtigste an der DoD ist, dass sie eingehalten wird

© 2021 andrena objects ag
Automatisierte Builds und CI/CD

         Gebautes Produkt steht Stakeholdern zur Verfügung

         Automatisiere Tests und Dokumentation zur Einhaltung der DoD

© 2021 andrena objects ag
Dokumentation

         Was soll ich wie dokumentieren?

         Und wie viel?

         ➢ Welche Anforderungen stellen Regulatoren?

         ➢ Was bezweckt die Dokumentation?

© 2021 andrena objects ag
Feedback Einholen

© 2021 andrena objects ag
Sprint Review mit „done“ Inkrement

                            Review ist ein Arbeitstreffen, kein Statusreport

                            Ziele/Zielkonflikte transparent machen

                            Fokus auf Wert im nächsten Sprint

© 2021 andrena objects ag
                                 Scrum Guide, S. 9
Automatisierte Tests im automatisierten Build

                            • Wert eines Features
                              • Versuche Qualitäten zu quantifizieren
                              • Automatisierte Tests sichern Qualitäten

                            • Tests demonstrieren erreichen der
                              geforderten Qualitäten

                            • Tests sollten Teil der automatisierten
                              Build-Pipeline sein

                ➢ Architekturthemen nicht (nur) im Code

© 2021 andrena objects ag
Coding Guidelines im automatisierten Build prüfen
         • Entwickler definieren (und reviewen)
           • Wichtige Metriken
           • Namenskonventionen
           • Bevorzugte Designpatterns

         • Automatisiere alle Prüfungen, bei denen das möglich ist
         • Automatisiere so früh wie möglich
           • Maximiert den Nutzen der Automatisierung

         • Coding Guidelines werden automatisch
           im Build geprüft

© 2021 andrena objects ag
Komplexes Umfeld
           Großes Produkt
           Viele Teams

© 2021 andrena objects ag
Skaliert Scrum?

         SG von 2017: Tausende von Leuten

         Als Klammer
         • Ein gemeinsamer Product Owner
         • Definition of Done

© 2021 andrena objects ag
                                Scrum Guide, S. 12
DoD für mehrere Teams

         Teams definieren sich gegenseitig die DoD
         Alle Teams halten sich daran

         Organisation schreibt DoD vor
         ➢ Mindeststandard für alle Teams

© 2021 andrena objects ag
(Organisatorische) Flexibilität

         The Scrum Team inspects how the last Sprint went with regards
         to individuals, interactions, processes, tools, and their Definition
         of Done.

         Sprint Retrospektive als Motor der Verbesserung
         ➢ Chaos und Ordnung halten sich die Waage
         ➢ Gleichgewicht muss immer wieder neu hergestellt werden

© 2021 andrena objects ag
                                      Scrum Guide, S. 10
Mehr Teams           Mehr Chaos

         Jedes Team bringt noch mehr ungeplante Überraschungen

         Skalieren mit Maß
         • Manchmal liefern weniger Teams mehr Output
         • Nicht zu schnell skalieren

         Überblick behalten
         • 1 integriertes Produkt mit genau 1 PO

© 2021 andrena objects ag
Zusammenfassung

© 2021 andrena objects ag
Wir haben darüber geredet…

                            ✓ … wie Architekturarbeit in Scrum
                              konkret adressiert werden kann

                            ✓ … wo die Verantwortung liegt

                            ✓ … dass die nötige Architekturarbeit
                              zum „done“ Inkrement gehört

© 2021 andrena objects ag
Vielen Dank für eure Aufmerksamkeit!

                            Thorben Hehmann            Andreas Reuß
                            thorben.hehmann@andrena.de andres.reuss@andrena.de

© 2021 andrena objects ag
Sie können auch lesen