agile architektur - oio.de · 2 © orientation in objects gmbh agile architektur ihre sprecher...

32
1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Version: Agile Architektur 1.1 Agile Architektur © Orientation in Objects GmbH Abstract 2 Eine gut geplante Softwarearchitektur stellt das Grundgerüst jeder wartbaren Software dar. Das steht in einem scheinbaren Widerspruch zu agilen Softwareprozessen, bei denen langfristige Planungen weitestgehend vermieden werden. Die Session zeigt anhand zahlreicher konkreter Beispiele, wie man die Erstellung einer Softwarearchitektur in einzelne Aufgabenpakete unterteilt, dokumentiert und regelmäßig durch Reviews und automatisierte Architekturtests verifiziert. Das Ziel ist es, auch in einem iterativen Prozess eine langfristig tragfähige Architektur entstehen zu lassen.

Upload: others

Post on 04-Nov-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

1

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]:

Agile Architektur

1.1

Agile Architektur© Orientation in Objects GmbH

Abstract

2

Eine gut geplante Softwarearchitektur stellt das Grundgerüst jederwartbaren Software dar. Das steht in einem scheinbaren Widerspruch zuagilen Softwareprozessen, bei denen langfristige Planungenweitestgehend vermieden werden.

Die Session zeigt anhand zahlreicher konkreter Beispiele, wie man dieErstellung einer Softwarearchitektur in einzelne Aufgabenpaketeunterteilt, dokumentiert und regelmäßig durch Reviews undautomatisierte Architekturtests verifiziert. Das Ziel ist es, auch in einemiterativen Prozess eine langfristig tragfähige Architektur entstehen zulassen.

Page 2: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

2

Agile Architektur© Orientation in Objects GmbH

Ihre Sprecher

Trainer, Berater, Entwickler

3

Thorsten Maier, Falk Sippach

@ThorstenMaier @sippsack

Agile Architektur© Orientation in Objects GmbH 4

Agiles Manifest=

Individuen und Interaktionen mehr als Prozesse und Werkzeuge

Funktionierende Software mehr als umfassende Dokumentation

Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung

Reagieren auf Veränderung mehr als das Befolgen eines Plans

Page 3: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

3

Agile Architektur© Orientation in Objects GmbH 5

Architektur in eigenen Worten:

fundamentale Strukturen,

Konzepte,

Entscheidungen

und Lösungsansätze

... die man nicht mehr leicht los bekommt!

Agile Architektur© Orientation in Objects GmbH 6

Agile Architektur

Widerspruch?

Page 4: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

4

Agile Architektur© Orientation in Objects GmbH 7

Unsere These

Eine gute Architektur kann iterativ in kleinen

Aufgabenpaketen entstehen.

Agile Architektur© Orientation in Objects GmbH 8

Agiles Manifest

Die BESTEN Architekturen […] entstehen

durch selbstorganisierte Teams.

(11. Prinzip der agilen Softwareentwicklung)

Page 5: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

5

Agile Architektur© Orientation in Objects GmbH 9

Herausforderung in einem agilen Prozess

Architekturarbeit aufteilen

Darum geht es heute

12 konkrete Arbeitspakete

Agile Architektur© Orientation in Objects GmbH 10

PLANPLANPLANPLAN

DODODODO

CHECKCHECKCHECKCHECK

ACTACTACTACT

Page 6: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

6

Agile Architektur© Orientation in Objects GmbH 11

ArchitekturArchitekturArchitekturArchitektur

entwerfenentwerfenentwerfenentwerfen

ArchitekturArchitekturArchitekturArchitektur

umsetzenumsetzenumsetzenumsetzen

automatischautomatischautomatischautomatisch

prüfenprüfenprüfenprüfen

Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur

verbessernverbessernverbessernverbessern

Agile Architektur© Orientation in Objects GmbH

1

12

Nicht-funktionale

Anforderungen konkretisieren

� Software-Architektur

Page 7: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

7

Agile Architektur© Orientation in Objects GmbH 13

„Benutzerfreundlich“

„Schnell“

„Wartbar“

Agile Architektur© Orientation in Objects GmbH 14

Nicht-funktionale Anforderungen

müssen prüfbar sein

Page 8: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

8

Agile Architektur© Orientation in Objects GmbH 15

„Benutzerfreundlich“

=

Nachbearbeitung eines Inkasso-Anrufes

darf maximal 30 Sekunden dauern und muss

nach 3 Klicks abgeschlossen sein.

Agile Architektur© Orientation in Objects GmbH 16

„Wartbar“

=

Ein neues Krankenversicherungsprodukt lässt

sich mit einem durchschnittlichen Aufwand von

28 Personentagen in die Anwendung integrieren.

Page 9: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

9

Agile Architektur© Orientation in Objects GmbH

Leitung Entwicklung

17

Marketing

Leitung WartungKunde

Endbenutzer

Stakeholder

bewusst machen

2

Agile Architektur© Orientation in Objects GmbH

Leitung Entwicklung

18

Marketing

Leitung WartungKunde

Endbenutzer

Wartbarkeit

Geringe Kosten,

geringe Fluktuation

Geringe Kosten,

pünktliche Lieferung

Neue Feature

Time-to-market

Schnell,

benutzerfreundlich

Agiles Team

Page 10: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

10

Agile Architektur© Orientation in Objects GmbH 19

Bausteine und

Beziehungen entwerfen

3

Agile Architektur© Orientation in Objects GmbH 20

Fachliche

Anforderungen

Randbedingungen

Qualitätsziele

Architektur

Bau-

steineSpezial-

konzepte

Techno-

logien

Lösungsstrategie

Risi-

ken

Page 11: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

11

Agile Architektur© Orientation in Objects GmbH 21

Architektur bewerten

4

Agile Architektur© Orientation in Objects GmbH 22

Theorie:

Architekturen früh vergleichbar

Praxis:

Analyse wird während Schadensbegrenzung

spät im Projekt durchgeführt

Page 12: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

12

Agile Architektur© Orientation in Objects GmbH 23

Szenariobasierte

Architekturbewertung

SAAM – Software architecture analysis method

ATAM – Architecture tradeoff analysis method

ACDM – Architecture-centric design method

Agile Architektur© Orientation in Objects GmbH 24

Architektur 1 Architektur 2

Neues Krankenversicherungsprodukt

DHL statt Hermes

Ergebnis

Komponenten Aufwand Komponenten Aufwand

3 28d 2 20d

- - 4 12d

3 28d 6 32d

Stakeholder

Page 13: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

13

Agile Architektur© Orientation in Objects GmbH 25

Architektur dokumentieren

5

Agile Architektur© Orientation in Objects GmbH 26

Ansicht

Schnitt

Grundriss

Page 14: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

14

Agile Architektur© Orientation in Objects GmbH 27

Kontextsichten

Laufzeitsichten Bausteinsichten Verteilungssichten

Agile Architektur© Orientation in Objects GmbH 28

Lev

el

0Le

ve

l 1

Lev

el

2

Nicht zu detailliert,

sondern pragmatisch

und effizient!

Page 15: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

15

Agile Architektur© Orientation in Objects GmbH 29

Templates für:

Microsoft Word

Confluence

Markdown, AsciiDoc

Latex, DocBook

HTML, EPUB

Textile

Agile Architektur© Orientation in Objects GmbH 30

Continuous

Documentation

Documentation

as Code

REPO

Page 16: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

16

Agile Architektur© Orientation in Objects GmbH 31

Architektur kommunizieren

6

Agile Architektur© Orientation in Objects GmbH 32

"Man glaubt nur so lange, dass

ein Entwurf perfekt ist, bis man ihn

jemand anderem gezeigt hat."

(Software Architecture Documentation in Practice von Bachmann, Bass)

Page 17: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

17

Agile Architektur© Orientation in Objects GmbH 33

vs.

ԪԬ

$€!!!!

?

Agile Architektur© Orientation in Objects GmbH 34

Wenn man die Architektur

nicht erklären kann,

ist sie zu kompliziert!

Page 18: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

18

Agile Architektur© Orientation in Objects GmbH 35

Agile Architektur© Orientation in Objects GmbH 36

ArchitekturArchitekturArchitekturArchitektur

entwerfenentwerfenentwerfenentwerfen

ArchitekturArchitekturArchitekturArchitektur

umsetzenumsetzenumsetzenumsetzen

automatischautomatischautomatischautomatisch

prüfenprüfenprüfenprüfen

Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur

verbessernverbessernverbessernverbessern

Page 19: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

19

Agile Architektur© Orientation in Objects GmbH 37

Dokumentation generieren

7

Agile Architektur© Orientation in Objects GmbH

interface DemoService {String foobar();

}

class DemoServiceImpl implements DemoService {@Overridepublic String foobar() {

return "demo";}

}

enum State {NEW, OPEN, APPROVED, IN_PROGRESS, FIXED

}

38

PlantUML +

AsciiDoc

generieren

Quellcode

DB-Schema

UML-Modell

Schnittstellen

Konfiguration

@startuml

interface DemoServiceDemoService <|-- DemoServiceImpl

enum State {NEWOPENAPPROVEDIN_PROGRESSFIXED

}

@enduml

# Werte von State

* NEW* OPEN* APPROVED* IN_PROGRESS* FIXED

Page 20: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

20

Agile Architektur© Orientation in Objects GmbH 39

Generate

automatisiert

validieren!

Agile Architektur© Orientation in Objects GmbH 40

ArchitekturArchitekturArchitekturArchitektur

entwerfenentwerfenentwerfenentwerfen

ArchitekturArchitekturArchitekturArchitektur

umsetzenumsetzenumsetzenumsetzen

automatischautomatischautomatischautomatisch

prüfenprüfenprüfenprüfen

Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur

verbessernverbessernverbessernverbessern

Page 21: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

21

Agile Architektur© Orientation in Objects GmbH 41

Automatisierte

Architekturchecks

einrichten

8

Agile Architektur© Orientation in Objects GmbH

@Component

public class DemoServiceImpl implements DemoService {

@Autowired

private DemoController demoController;

public void superServiceMethod() {

demoController.doSomething();

}

}

42

Controller

ServiceImpl

Page 22: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

22

Agile Architektur© Orientation in Objects GmbH 43

https://github.com/thorstenmaier/architecture-layer-check/

Controller

ServiceImpl

DaoImpl

@RunWith(SpringRunner.class)

@SpringBootTest

public class DepencencyTesterApplicationTests {

@Autowired

private DefaultListableBeanFactory beanFactory;

@Test

public void checkDependencies() {

for (String beanName : beanFactory.getBeanDefinitionNames()) {

for (String depName : beanFactory.getDependenciesForBean(beanName)) {

checkNotAllowedConnection(beanName, depName, ".*ServiceImpl", ".*Controller");

checkNotAllowedConnection(beanName, depName, ".*Controller", ".*DaoImpl");

checkNotAllowedConnection(beanName, depName, ".*DaoImpl", ".*Controller");

}

}

}

private void checkNotAllowedConnection(String beanName, String depName, String beanNamePattern,

String dependencyNamePattern) {

String msg = "Connection not allowed: " + beanName + " -> " + depName;

assertFalse(msg, beanName.matches(beanNamePattern) && depName.matches(dependencyNamePattern));

}

}

Agile Architektur© Orientation in Objects GmbH 44

Dokumentation ausführen

9

Page 23: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

23

Agile Architektur© Orientation in Objects GmbH 45

Living Documentation

Agile Architektur© Orientation in Objects GmbH 46

Page 24: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

24

Agile Architektur© Orientation in Objects GmbH 47

Architektur-

definition

in PlantUML

Generierte

Cypher-

Regel

[[architecture:DefinedDependencies][plantuml,role=concept]----[artifactId:xo.impl] as impl <<:Maven:Project>>[artifactId:xo.api] as api <<:Maven:Project>>[artifactId:xo.spi] as spi <<:Maven:Project>>

impl -> api : Defines Dependencyimpl -> spi : Defines Dependencyspi -> api : Defines Dependency----

[[architecture:UndefinedDependencies[source,cypher,role=constraint,requiresConceptsThere must not be dependencies between Maven project which have not been defined.----MATCH(p1:Maven:Project)-[:CREATES]-(p2:Maven:Project)-[:CREATES]-(t2)-[:DEPENDS_ON]->(t1)

WHERE NOT(p1)-[:DEFINES_DEPENDENCY

RETURN*

----

Agile Architektur© Orientation in Objects GmbH 48

Code Reviews

installieren

10

Page 25: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

25

Agile Architektur© Orientation in Objects GmbH 49

Kennen Sie das?

„Das ist historisch

gewachsen.“

Agile Architektur© Orientation in Objects GmbH 50

…noch ein Klassiker

„Thomas ist leider gerade

im Urlaub“

Page 26: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

26

Agile Architektur© Orientation in Objects GmbH 51

Bugs finden

Agile Architektur© Orientation in Objects GmbH 52

Wissen

Page 27: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

27

Agile Architektur© Orientation in Objects GmbH 53

100 105

15

0

20

40

60

80

100

120

ohne Code-Review mit Code-Review

En

twic

klu

ng

sko

ste

n i

n %

Code-Review

Entwicklung

Agile Architektur© Orientation in Objects GmbH 54

ohne Code-Review mit Code-Review

Bugfixing

Code-Review

EntwicklungWissen

Page 28: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

28

Agile Architektur© Orientation in Objects GmbH 55

ArchitekturArchitekturArchitekturArchitektur

entwerfenentwerfenentwerfenentwerfen

ArchitekturArchitekturArchitekturArchitektur

umsetzenumsetzenumsetzenumsetzen

automatischautomatischautomatischautomatisch

prüfenprüfenprüfenprüfen

Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur

verbessernverbessernverbessernverbessern

Agile Architektur© Orientation in Objects GmbH 56

Retrospektive

durchführen

11

Page 29: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

29

Agile Architektur© Orientation in Objects GmbH 57

Entwicklungsteam Management KundeArchitektur

Agile Architektur© Orientation in Objects GmbH 58

Verbesserungen einplanen

und vorantreiben

12

Page 30: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

30

Agile Architektur© Orientation in Objects GmbH 59

Arbeitspakete

aus Retrospektive

Agile Architektur© Orientation in Objects GmbH 60

Something that's

everybody's responsibility

is no one's responsibility.

Page 31: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

31

Agile Architektur© Orientation in Objects GmbH 61

Mitentwickelnder

Kümmerer/

Koordinator

Agile Architektur© Orientation in Objects GmbH 62

ArchitekturArchitekturArchitekturArchitektur

entwerfenentwerfenentwerfenentwerfen

ArchitekturArchitekturArchitekturArchitektur

umsetzenumsetzenumsetzenumsetzen

automatischautomatischautomatischautomatisch

prüfenprüfenprüfenprüfen

Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur

verbessernverbessernverbessernverbessern

Nicht-funktionale

Anforderungen

konkretisieren

Stakeholder

bewusst machen

Bausteine und

Beziehungen

entwerfen

Architektur

bewerten

Architektur

dokumentieren

Architektur

kommunizieren

Automatisierte

Architekturtests

einrichtenCode Reviews

installieren

Retrospektive

durchführen

Verbesserungen

einplanen und

vorantreiben

Dokumentation

generieren

Dokumentation

ausführen

Page 32: Agile Architektur - oio.de · 2 © Orientation in Objects GmbH Agile Architektur Ihre Sprecher Trainer, Berater, Entwickler 3 Thorsten Maier, Falk Sippach @ThorstenMaier @sippsack

32

Agile Architektur© Orientation in Objects GmbH 63

ArchitekturArchitekturArchitekturArchitektur

entwerfenentwerfenentwerfenentwerfen

ArchitekturArchitekturArchitekturArchitektur

umsetzenumsetzenumsetzenumsetzen

automatischautomatischautomatischautomatisch

prüfenprüfenprüfenprüfen

Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur

verbessernverbessernverbessernverbessern

Nicht-funktionale

Anforderungen

konkretisieren

Stakeholder

bewusst machen

Bausteine und

Beziehungen

entwerfenArchitektur

bewerten

Architektur

dokumentieren

Architektur

kommunizieren

Automatisierte

Architekturtests

einrichten

Code Reviews

installieren

Retrospektive

durchführen

Verbesserungen

einplanen und

vorantreiben

Dokumentation

generieren

Dokumentation

ausführen

Thorsten

Thorsten Thorsten

Thorsten

Thorsten

Thorsten

Falk

Falk

Falk

Falk

Falk

Falk

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Vielen Dank für Ihre Aufmerksamkeit!