35
11.09.17 1 Softwarearchitektur wird Entwicklerskill STEFAN ZÖRNER, EMBARC Java Forum Nord 2017 Hannover, 12.09.2017 0 Softwarearchitektur für alle!? 2 Softwarearchitektur für alle!? embarc.de Softwarearchitektur für alle!? „Die besten Architekturen entstehen durch selbstorganisierte Teams.“ – So steht es zumindest in den Prinzipien des Agilen Manifestes (2001). Und tatsächlich treffen mittlerweile mehr und mehr Teams grundlegende Entscheidungen gemeinsam, anstatt dass ein klassischer Architekt dies alleine tut (und ihnen abnimmt). Softwarearchitektur wird dadurch mehr und zum Entwicklerskill. In jedem cross-funktionalen Team sollte genügend Wissen und Können rund um diese Disziplin vorhanden sein. In diesem Vortrag zeige ich Euch, welche grundlegenden Techniken und Methoden aus diesem Gebiet jeder Entwickler beherrschen oder zumindest kennen sollte, und wie viel (oder wenig) Softwarearchitektur Eurem Team gut zu Gesicht steht.

Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

1

Softwarearchitektur wird Entwicklerskill

STEFAN ZÖRNER, EMBARC

Java Forum Nord 2017

Hannover, 12.09.2017

0

Softwarearchitektur für alle!?

2 Softwarearchitektur für alle!? embarc.de

Softwarearchitektur für alle!?

„Die besten Architekturen … entstehen durch selbstorganisierte Teams.“ – So steht es zumindest in den Prinzipien des Agilen Manifestes (2001). Und tatsächlich treffen mittlerweile mehr und mehr Teams grundlegende Entscheidungen gemeinsam, anstatt dass ein klassischer Architekt dies alleine tut (und ihnen abnimmt). Softwarearchitektur wird dadurch mehr und zum Entwicklerskill. In jedem cross-funktionalen Team sollte genügend Wissen und Können rund um diese Disziplin vorhanden sein. In diesem Vortrag zeige ich Euch, welche grundlegenden Techniken und Methoden aus diesem Gebiet jeder Entwickler beherrschen oder zumindest kennen sollte, und wie viel (oder wenig) Softwarearchitektur Eurem Team gut zu Gesicht steht.

Page 2: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

2

3 Softwarearchitektur für alle!? embarc.de

Stefan Zörner

n  Softwareentwickler + -architekt bei embarc in Hamburg n  Vorher oose, IBM, Mummert + Partner, Bayer AG, …

Schwerpunkte: n  Softwarearchitektur (Entwurf,

Bewertung, Dokumentation) n  Java Technologien

[email protected]

@StefanZoerner

xing.to/szr

4 Softwarearchitektur für alle!? embarc.de

1 Worum geht es?

2 Was ist zu tun?

3 Wie mache ich das?

4 Wo fangt Ihr an?

5 Fazit und weitere Informationen

Agenda

Page 3: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

3

5 Softwarearchitektur für alle!? embarc.de

1 Worum geht es?

2 Was ist zu tun?

3 Wie mache ich das?

4 Wo fangt Ihr an?

5 Fazit und weitere Informationen

Agenda

1

6 Softwarearchitektur für alle!? embarc.de

Was ist Softwarearchitektur?

wichtig := n  fundamental n  im weiteren Verlauf nur schwer zu ändern n  entscheidend für den Erfolg des Softwaresystems

Softwarearchitektur :=

∑ wichtige Entscheidungen

Page 4: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

4

7 Softwarearchitektur für alle!? embarc.de

Themen für Entscheidungen

Technologie-Stack Programmiersprache(n), Bibliotheken, Frameworks Middleware (Kommunikation, Applikationsserver ...) Querschnittsthemen (Persistenz, Oberfläche ...) ...

Zielumgebung Wo läuft die Software? (Endanwender vs. RZ vs. Cloud) Verteilungsaspekte (Redundanz, Clustering) Virtualisierung ...

Zerlegung Module und Abhängigkeiten Komponentenbildung ...

8 Softwarearchitektur für alle!? embarc.de

„Verunfallte“ Softwarearchitektur?

aus Grady Booch: „The Accidental Architecture“ IEEE Software 2006

„Every interesting software-intensive system has an architecture. While some of these architectures are intentional, most appear to be accidental.“

Page 5: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

5

9 Softwarearchitektur für alle!? embarc.de

Großer Konzern (z.B. Versicherung) n  Anwendungen oftmals nach dem immer gleichen Muster gestrickt

n  Insbesondere Technologie-Stack überall gleich n  einzelne Entwickler-Teams konzentrieren sich auf Fachlichkeit und Funktionalität.

n  Veränderungen im Technologie-Stack gleichen Eruptionen

n  große Initiativen „Neue Anwendungsarchitektur“ n  „Alte Welt“ vs. „Neue Welt“

Szene 1: Konzern-IT

10 Softwarearchitektur für alle!? embarc.de

Szene 2: Microservices

Mega-Trend Microservices n  verspricht schnelle Reaktion auf Veränderung durch kleine, unabhängige Einheiten

n  Teams verantworten die individuelle Technologieauswahl bis hin zu Betriebssystem und Programmiersprache

n  Entwickler geben freimütig Antworten auf Fragen, die sich im klassischen Großkonzern aus Szene 1 niemand stellt.

Page 6: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

6

11 Softwarearchitektur für alle!? embarc.de

Makro- vs. Mikro-Architektur

12 Softwarearchitektur für alle!? embarc.de

Vorteile standardisierter Lösungen   Entwickler wechseln leicht zwischen Teams

und Projekten   Konzentration auf Applikationsspezifika (z.B.

Fachlichkeit) leichter möglich   Vermeidung von Fehlern in kritischen

Bereichen durch erprobte Konzepte   Geringere Kosten durch weniger Produkte

(Lizenzen, Ausbildung von Spezialisten)   Wiederverwendung von Lösungen über

Applikationsgrenzen hinweg leichter ...

Page 7: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

7

13 Softwarearchitektur für alle!? embarc.de

“Konzern-IT”

14 Softwarearchitektur für alle!? embarc.de

Vorteile individueller Lösungen

  Einsatz optimaler Lösungen für spezifische Probleme möglich

  Neue Trends lassen sich schneller aufgreifen

  Fehlentscheidungen haben geringere Relevanz

  Geringere Abhängigkeit von einzelnen Lieferanten ...

Page 8: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

8

15 Softwarearchitektur für alle!? embarc.de

Microservices-Stil

16 Softwarearchitektur für alle!? embarc.de

These.

“Moderne Architekturansätze wie beispielsweise Microservices und

Self-contained Systems bieten Entwicklerteams mehr Spielraum für

konzeptionelle Arbeit. Softwarearchitektur wird

Entwickler-Skill.”

-- Stefan Zörner

Page 9: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

9

17 Softwarearchitektur für alle!? embarc.de

1 Worum geht es?

2 Was ist zu tun?

3 Wie mache ich das?

4 Wo fangt Ihr an?

5 Fazit und weitere Informationen

Agenda

2

18 Softwarearchitektur für alle!? embarc.de

Zu allererst: Den Kontext festlegen

Worüber reden wir eigentlich?

Optionen (Auswahl):   Eine Anwendung die in Module, Services,

Komponenten ... zerfällt? (Self-contained Systems, Microservices …)

  Eine Produktfamilie oder -linie, die in Varianten oder Ausprägungen zerfällt?

  Eine Systemlandschaft, die in Anwendungen zerfällt?

  ...

n Ganzes n Teil

Farbcode:

Page 10: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

10

19 Softwarearchitektur für alle!? embarc.de

Nun: Makro- vs. Mikroarchitektur

Entscheidungen ... Welche Aspekte sind für alle Bestandteile gleich?

(Makro) Wo ist Spielraum?

(Mikro) Damit Ihr das für Eurer Vorhaben oder Eure Welt erschließen könnt, hier eine Themensammlung ...

20 Softwarearchitektur für alle!? embarc.de

Themenkomplexe für Entscheidungen

Interaktion mit Benutzern und

Fremdsystemen

1

"Unter der Haube“

2

Entwicklung und Weiterentwicklung

3

Zielumgebung und Betrieb

4

Page 11: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

11

21 Softwarearchitektur für alle!? embarc.de

Themenkomplex 1

n  Benutzeroberflächen (UI) n  Kommunikation und Integration n  Internationalisierung n  Ergonomie, Barrierefreiheit n  Plausibilisierung und Validierung n  Ausnahme-/ Fehlerbehandlung n  Ablauf-, Dialog- und Workflow-Steuerung n  ...

Interaktion mit Benutzern / Fremdsystemen

22 Softwarearchitektur für alle!? embarc.de

„Passende“ Talks auf der Konferenz Interaktion mit Benutzern und Fremdsystemen

Dennis Kieselhorst: Mehr als nur Schnittstellenbeschreibung: Die OpenAPI Specification aka Swagger

Oliver Zeigermann: Moderne Web Entwicklung mit React und TypeScript

Die 7 Todsünden des Workflow Managements (Bernd Rücker)

Benutzeroberflächen (UI) Kommunikation und Integration

Ablauf-, Dialog- und

Workflow-Steuerung

Page 12: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

12

23 Softwarearchitektur für alle!? embarc.de

Themenkomplex 2

n  Persistenz n  Verteilung n  Sicherheit, Authentifizierung / Autorisierung n  Transaktionsbehandlung n  Session- und Zustandsbehandlung n  Caching n  Parallelisierung und Threading n  Geschäftsregeln n  ...

"Unter der Haube“

24 Softwarearchitektur für alle!? embarc.de

„Passende“ Talks auf der Konferenz "Unter der Haube“

Was modernes SQL alles kann, dir aber niemand gesagt hat (Markus Winand)

Crypto 101 (Oliver Milke)

Riding the Jet-Stream (Christoph Engelbert)

Eine kleine Reise durch NoSQL (Christian Mennerich)

Persistenz

Persistenz

Sicherheit

Parallelisierung und Threading

Page 13: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

13

25 Softwarearchitektur für alle!? embarc.de

Themenkomplex 3

n  Vorgehen, z.B. Scrum, BDD, UCD n  Modellierung n  Build-Management n  Testen n  Code-Generierung n  Konfigurieren n  Migration

Entwicklung und Weiterentwicklung

26 Softwarearchitektur für alle!? embarc.de

„Passende“ Talks auf der Konferenz Entwicklung und Weiterentwicklung

Selbstorganisierte agile Teams - zwischen Autonomie, Selbstbeschränkung und Chaos (Frank Düsterbeck)

It's all about the domain, honey - Fachliche Architektur für Java mit DDD (Henning Schwentner)

Gitlab, GitlabCI, Docker, Maven und wie man damit code shared (Niklas Grebe)

Vorgehen

Modellierung

Build-Management

Page 14: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

14

27 Softwarearchitektur für alle!? embarc.de

Themenkomplex 4

n  Zielumgebung n  (Hoch-)verfügbarkeit, Disaster-Recovery n  Virtualisierung, Container n  Skalierung n  Resilienz n  Logging und Tracing n  Systemmanagement und Administrierung

Zielumgebung und Betrieb

28 Softwarearchitektur für alle!? embarc.de

„Passende“ Talks auf der Konferenz Zielumgebung und Betrieb

Wer braucht schon einen Server? Serverless Java in der Cloud! (Lars Röwekamp)

Cloud Native Java EE mit WildFly Swarm (Matthias Wessendorf)

Ihr redet über Resilience und wisst nicht was CAP & Co ist? (Ch. Mennerich & J. Arras)

Virtualisierung

Zielumgebung

Resilienz, Verfügbarkeit

Page 15: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

15

29 Softwarearchitektur für alle!? embarc.de

Entscheidungen und Konzepte

Interaktion mit Benutzern und

Fremdsystemen

1

"Unter der Haube“

2

Entwicklung und Weiterentwicklung

3

Zielumgebung und Betrieb

4

Lösungsoptionen Architekturmuster Architekturprinzipien Architekturstile Bibliotheken Frameworks Middleware Modellgetrieben Aspektorientierung …

30 Softwarearchitektur für alle!? embarc.de

“Zeitlose” Softwarearchitektur

Wie Ihr zu den „richtigen“ Entscheidungen kommt ist langlebiger als Trends und konkrete Technologien. Vier wichtige Disziplinen:

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

Page 16: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

16

31 Softwarearchitektur für alle!? embarc.de

Aufgabenanalyse: Tätigkeiten

  Kontext abgrenzen   Qualitätsziele verstehen   Rahmenbedingungen klären

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

32 Softwarearchitektur für alle!? embarc.de

Architekturentwurf: Tätigkeiten

  Entscheidungen treffen   Strukturen definieren   Lösungskonzepte erarbeiten

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

Page 17: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

17

33 Softwarearchitektur für alle!? embarc.de

Architekturbewertung: Tätigkeiten

  Entscheidungen absichern   Risiken aufdecken   Zielerreichung prüfen   Kompromisse finden

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

34 Softwarearchitektur für alle!? embarc.de

Architekturdokumentation: Tätigkeiten

  Entscheidungen festhalten   Lösungsideen breit kommunizieren   Architekturverwässerung vorbeugen

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

Page 18: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

18

35 Softwarearchitektur für alle!? embarc.de

“Klassische” Softwarearchitektur?

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

Phasen? Nicht Dein Ernst, oder? WTF …

36 Softwarearchitektur für alle!? embarc.de

1 Worum geht es?

2 Was ist zu tun?

3 Wie mache ich das?

4 Wo fangt Ihr an?

5 Fazit und weitere Informationen

Agenda

3

Page 19: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

19

37 Softwarearchitektur für alle!? embarc.de

Iterative Architekturarbeit

38 Softwarearchitektur für alle!? embarc.de

Ein paar nützliche Werkzeuge

Qualitätsziele (Aufgabenanalyse)

arc42 (Architekturdokumentation)

Architekturvision (Architekturentwurf)

Lösungsstrategie (Architekturbewertung)

Page 20: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

20

39 Softwarearchitektur für alle!? embarc.de

Qualitätsziele

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

Die wichtigsten geforderten Qualitätsmerkmale, um beim Treffen von Entscheidungen Orientierung zu geben, und um die Architektur nachvollziehbar zu machen.

40 Softwarearchitektur für alle!? embarc.de

Einflüsse auf Entscheidungen

-  schränken die Lösung ein

-  schließen Optionen aus

-  formen die Lösung -  nachher schwierig

“einzubauen” Qualitätsanforderungen Benutzbarkeit, Sicherheit ...

Rahmenbedingungen technisch organisatorisch

Page 21: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

21

41 Softwarearchitektur für alle!? embarc.de

Qualitätsmerkmale

Zuverlässigkeit (Reliability)

Ist das System verfügbar, tolerant gegenüber Fehlern, nach Abstürzen schnell wieder hergestellt? ...

Begriffe nach Norm ISO 25010

Funktionalität (Functionality)

Sind die berechneten Ergebnisse korrekt / exakt, ist die Funktionalität angemessen? ...

Wartbarkeit (Maintainability)

Ist die Software leicht zu ändern, erweitern, testen, verstehen? Lassen sich Teile wiederverwenden? ...

Benutzbarkeit (Usability)

Ist die Software intuitiv zu bedienen, leicht zu erlernen, attraktiv?

Sicherheit (Security)

Ist das System sicher vor Angriffen? Sind Daten und Funktion vor unberechtigtem Zugriff geschützt? ...

Kompatibilität (Compatibility)

Ist die Software konform zu Standards, arbeitet sie gut mit anderen zusammen?

Effizienz (Performance)

Antwortet die Software schnell, hat sie einen hohen Durchsatz, einen geringen Ressourcenverbrauch? ...

Portabilität (Portability)

Ist die Software leicht auf andere Zielumgebungen (z.B. anderes OS) übertragbar?

42 Softwarearchitektur für alle!? embarc.de

Typische Wechselwirkungen

Benutzbarkeit (Usability)

Ist die Software intuitiv zu bedienen, leicht zu erlernen, attraktiv?

Sicherheit (Security)

Ist das System sicher vor Angriffen? Sind Daten und Funktion vor unberechtigtem Zugriff geschützt? ...

Benutzer empfinden Sicherheitsmaßnahmen als störend (z. B. Passwortkomplexität, CAPTCHAs)

ì

î

Page 22: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

22

43 Softwarearchitektur für alle!? embarc.de

Typische Wechselwirkungen

Portabilität (Portability)

Ist die Software leicht auf andere Zielumgebungen (z.B. anderes OS) übertragbar?

Effizienz (Performance)

Antwortet die Software schnell, hat sie einen hohen Durchsatz, einen geringen Ressourcenverbrauch? ...

Abstraktionen (z. B. Schichten) reduzieren die Möglichkeit plattformspezifischer Optimierungen

ì

î

Qualitätsmerkmale hängen voneinander ab. Entscheidungen führen zu Kompromissen (engl. „Tradoff“).

44 Softwarearchitektur für alle!? embarc.de

Qualitative Architekturbewertung

ATAM Architecture tradeoff analysis method n  verbreitetste Methode zur

qualitativen Bewertung von Softwarearchitektur

n  früh anwendbar n  szenarienbasiert

Page 23: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

23

45 Softwarearchitektur für alle!? embarc.de

Lösungsstrategie

Stellt Qualitätsziele und zugeordnete high-level Lösungsansätze einander gegenüber und erlaubt eine erste Bewertung.

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

46 Softwarearchitektur für alle!? embarc.de

Architektur-/Lösungsansätze

Architektur-/Qualitätsziele

Die Brücke schlagen ...

Form: Tabelle, [ Ziele | Lösungsansätze ]

Siehe Themenkomplexe aus Abschnitt 2

Quelle: S. Zörner, Softwarearchitekturen dokumentieren und kommunizieren

Page 24: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

24

47 Softwarearchitektur für alle!? embarc.de

Architekturvision

Konkreter, schlanker Vorschlag, wie viel Architekturarbeit vor dem Start in die Realisierung geleistet sein sollte.

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

48 Softwarearchitektur für alle!? embarc.de

Was mindestens zu Beginn?

Quelle: S. Toth, Vorgehensmuster für Softwarearchitektur

Page 25: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

25

49 Softwarearchitektur für alle!? embarc.de

arc42 Ein Gliederungsvorschlag für Architekturbeschreibungen.

Aufgaben-analyse

Architektur-entwurf

Architektur-bewertung

Architektur-dokumentation

è  arc42.org

50 Softwarearchitektur für alle!? embarc.de

arc42 – Struktur.

Page 26: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

26

51 Softwarearchitektur für alle!? embarc.de

arc42 – Ergebnisse festhalten ...

Kontext abgrenzen

Qualitätsziele verstehen

Rahmenbedingungen klären

Aufgabenanalyse

Entscheidungen treffen

Strukturen definieren

Lösungskonzepte erarbeiten

Architekturentwurf

Entscheidungen absichern

Zielerreichung prüfen Kompromisse finden

Risiken aufdecken

Architekturbewertung

52 Softwarearchitektur für alle!? embarc.de

1 Worum geht es?

2 Was ist zu tun?

3 Wie mache ich das?

4 Wo fangt Ihr an?

5 Fazit und weitere Informationen

Agenda

4

Page 27: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

27

53 Softwarearchitektur für alle!? embarc.de

Stufen der Softwarearchitektur

zufällig 0 explizit 1

nachvollziehbar 2 wirkungsvoll 3

Ein Selbsttest für Euch und Eurer Team, um Handlungsbedarf zu identifizieren ...

54 Softwarearchitektur für alle!? embarc.de

Kommunikation

Wie werden bei Euch Fragen nach Architektur-entscheidungen, -ansätzen, -konzepten beantwortet?

n  „Historisch gewachsen …“

n  Es findet ein Austausch über die Architektur über Produkt-/Teamgrenzen hinweg statt.

n  Architekturansätze sind im Team bekannt und können neuen Mitarbeitern nachvollziehbar erklärt werden.

n  „Da musst Du Rene fragen …“

Page 28: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

28

55 Softwarearchitektur für alle!? embarc.de

Struktur

Wo finde ich die Struktur der Lösung?

n  nur im Quelltext

n  Teile/Komponenten werden (wo sinnvoll) über Teamgrenzen hinweg wiederverwendet

n  die Strukturen (z.B. Schichten, fachliche Zerlegung, Begriffe) sind nachvollziehbar an den Anforderungen ausgerichtet.

n  in Diagrammen / Modellen und konsistent dazu im Quelltext

56 Softwarearchitektur für alle!? embarc.de

Übergreifende Konzepte Wie wird mit übergreifenden Aspekten und Fragestellungen umgegangen?

n  Tendenziell gibt es keine. Die Lösung ist inkonsistent. Makro- und Mikroarchitektur sind unscharf.

n  Einzelne Konzepte sind durchgängig eingehalten.

n  Die Konzepte sind an den Qualitätszielen ausgerichtet.

n  Die Auswahl der Themen für einheitliche Konzepte ist nachvollziehbar (inkl. bewusstes Weglassen)

n  Lösungen für einheitliche Konzepte werden, wo sinnvoll, über Team- und Produktgrenzen geteilt.

Page 29: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

29

57 Softwarearchitektur für alle!? embarc.de

Stufen der Softwarearchitektur

0 (zufällig) Softwarearchitektur ist implizit, Erfolg Zufall.

1 (explizit) Architekturansätze sind explizit vorhanden und benennbar (Beispiele: Verwendung von Mustern, Entscheidungen für Frameworks)

2 (nachvollziehbar) Die Lösung ist an Zielen und Anforderungen nachvollziehbar ausgerichtet. Umsetzung und Architektur entsprechen sich.

3 (wirkungsvoll) Die Lösung und das Vorgehen der Architekturarbeit sind reflektiert und angemessen. Die Architektur wirkt über Team-/Produktgrenzen hinaus.

58 Softwarearchitektur für alle!? embarc.de

Risikogetriebene Architektur

“You should pay as much attention to software architecture as it contributes risk to the overall project, since if there is little architecture risk, then optimizing it only helps little.“

(George Fairbanks)

Risiken in Softwarearchitektur n  später schwer zu ändern

n  Umsetzung eher teuer

n  sehr hohe qualitative Anforderungen

n  schwere Integration in Bestehendes

n  wenig eigene Erfahrung im Lösungsspektrum

Page 30: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

30

59 Softwarearchitektur für alle!? embarc.de

60 Softwarearchitektur für alle!? embarc.de

The risk is in the blocks! Risiken im Team erarbeiten Hilfsmittel •  Jenga-Spiel •  Flipchart (zum Festhalten der

Risiken)

Mitspieler •  Team, inkl. PO, ggf. Kunde

Page 31: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

31

61 Softwarearchitektur für alle!? embarc.de

The risk is in the blocks! -- Ablauf

n  Jeder im Team, der ein Risiko sieht, nennt es und zieht einen Block aus dem Stapel

Ø  hohes Risiko == weiter unten wegnehmen

n  Risiken werden festgehalten (inkl. Höhe, z.B. H/M/L)

n  andere Teammitglieder dürfen Fragen stellen

n  Das „Spiel“ endet, wenn a)  keine Risiken mehr kommen b)  der Turm einstürzt

n  Anschließend: Nachbereitung

62 Softwarearchitektur für alle!? embarc.de

è http://tastycupcakes.org/2013/04/the-risk-is-in-the-blocks/

Page 32: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

32

63 Softwarearchitektur für alle!? embarc.de

1 Worum geht es?

2 Was ist zu tun?

3 Wie mache ich das?

4 Wo fangt Ihr an?

5 Fazit und weitere Informationen

Agenda

5

64 Softwarearchitektur für alle!? embarc.de

tl;dr (too long; didn’t read)

Trends und Technologien haben kurze Halbwertszeiten, methodische Werkzeuge sind langlebiger. Gestaltet mit schlanken Hilfsmitteln daraus wie Architekturvision und Lösungsstrategie Eure Vorhaben!

Eine Weiterentwicklung in diese Richtung ist heute kein sozialer Aufstieg für wenige, sondern eine logische Konsequenz, wenn Eurer Team auch in der Mikroarchitektur risikogetrieben vorgehen will.

Moderne Architekturansätze bieten Entwicklerteams mehr Spielraum für konzeptionelle Arbeit. Heute machen mehr Entwickler Architektur.

Page 33: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

33

65 Softwarearchitektur für alle!? embarc.de

Buchtipp: Vorgehensmuster für Softwarearchitektur

Kombinierbare Praktiken in Zeiten von Agile und Lean Autor: Stefan Toth Umfang: ca. 270 Seiten Verlag: Carl Hanser Verlag, 2. Auflage 2015 Sprache: Deutsch ISBN: 978-3-446-44395-2 è www.swamuster.de

27

66 Softwarearchitektur für alle!? embarc.de

Spicken erlaubt! Unsere Architektur-Spicker beleuchten die konzeptionelle Seite der Softwareentwicklung.

è  embarc.de/architektur-spicker/

Page 34: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

34

67 Softwarearchitektur für alle!? embarc.de

Hier auf dem Java Forum Nord ...

3 Ausgaben unserer Architektur-Spicker im Bündel zum Mitnehmen ...

-  Microservices -  Architektur-Reviews -  Cloud-Anwendungen

Vielen Dank. Ich freue mich auf Eure Fragen!

[email protected]

xing.to/szr

@StefanZoerner

DOWNLOAD FOLIEN: http://www.embarc.de/blog/

Bei uns arbeiten?

Page 35: Softwarearchitektur für alle!?...Microservices-Stil Softwarearchitektur für alle!? embarc.de 16 These. “Moderne Architekturansätze wie beispielsweise Microservices und Self-contained

11.09.17

35

69 Softwarearchitektur für alle!? embarc.de

Klingt interessant? Sprich uns gerne direkt an oder Mail an [email protected]

Berater/in gesucht! für Softwarearchitektur / Agilität / CD & DevOps / Microservices (Standort flexibel in Deutschland oder Wien)

§  Du brennst für ein Thema und bist motiviert, Dich mit aktuellen Trends tiefer auseinander zu setzen?

§  Du hast eher zu viele Ideen als zu wenige? §  Du teilst Deine Erkenntnisse und Erfahrungen gerne mit Kollegen

und denkst Themen weiter? §  Du stehst auf Pragmatismus, nicht auf Mikro-Management?

embarc.de/karriere

„Wir glauben weniger an ausgefeilte interne Strategien, als an die Möglichkeiten die entstehen wenn sich leidenschaftliche Leute

zusammenschließen.“

Bereit zum Durchstarten? Da haben wir was...