Slide 1

Slide 1 text

Software Architecture for Agile Enterprises Digitale Leute Summit 2019 Stefan Tilkov, @stilkov
 [email protected] Image by Michael Gaida from Pixabay

Slide 2

Slide 2 text

www.innoq.com OFFICES Monheim Berlin Offenbach Munich Hamburg Zurich FACTS ~150 employees Privately owned Vendor-independent SERVICES Strategy & technology consulting Digital business models Software architecture & development Digital platforms & infrastructures Knowledge transfer, coaching & trainings CLIENTS Finance Telecommunications Logistics E-commerce Fortune 500 SMBs Startups

Slide 3

Slide 3 text

Modularization Autonomy End-to-end responsibility

Slide 4

Slide 4 text

Modularization Autonomy End-to-end responsibility

Slide 5

Slide 5 text

@stilkov Awesome Shop CMS Archive General Ledger Print Shop HR

Slide 6

Slide 6 text

@stilkov Awesome Shop CMS Archive General Ledger Print Shop HR Context

Slide 7

Slide 7 text

@stilkov Awesome Shop CMS Archive General Ledger Print Shop HR Invoicing Accounting Auth Catalog Checkout & Order Search

Slide 8

Slide 8 text

@stilkov Awesome Shop CMS Archive General Ledger Print Shop HR Invoicing Accounting Auth Catalog Checkout & Order Search Domain Architecture

Slide 9

Slide 9 text

@stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

Slide 10

Slide 10 text

@stilkov

Slide 11

Slide 11 text

@stilkov Macro Architecture

Slide 12

Slide 12 text

@stilkov Ruby on Rails MySQL Java Spring Boot OSS Product COTS Java Spring Boot NodeJS ElasticSearch

Slide 13

Slide 13 text

@stilkov Ruby on Rails MySQL Java Spring Boot OSS Product COTS Java Spring Boot NodeJS ElasticSearch Micro Architecture

Slide 14

Slide 14 text

@stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

Slide 15

Slide 15 text

@stilkov Coming up with the “right” system boundaries is an architecture activity that must be done first

Slide 16

Slide 16 text

@stilkov Managing dependencies is the most important ongoing architecture task

Slide 17

Slide 17 text

@stilkov You cannot decide to not have an architecture; if you don’t actively create it, be prepared to deal with the one that emerges

Slide 18

Slide 18 text

number of
 developers strength of 
 decoupling methods modules components μservices systems

Slide 19

Slide 19 text

From a layered system … System Logic Data UI Module Module Module

Slide 20

Slide 20 text

… to a system of systems System System System Logic Data UI Logic Data UI Logic Data UI

Slide 21

Slide 21 text

Pattern: Evolutionary Architecture @stilkov

Slide 22

Slide 22 text

Modularization Autonomy End-to-end responsibility

Slide 23

Slide 23 text

@stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

Slide 24

Slide 24 text

@stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

Slide 25

Slide 25 text

@stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

Slide 26

Slide 26 text

@stilkov Invoicing Accounting Auth Catalog Checkout & Order Search Team Architecture?

Slide 27

Slide 27 text

@stilkov Conway’s Law: Organization → Architecture “Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations.”
 – M.E. Conway

Slide 28

Slide 28 text

@stilkov If your goal is to support autonomous teams, architecture is an essential ingredient

Slide 29

Slide 29 text

@stilkov Size is the #1 enemy of agility. Keep your systems as small as you can.

Slide 30

Slide 30 text

@stilkov Extremely loose coupling requires very few rules, but they need to be enforced strictly

Slide 31

Slide 31 text

Pattern: Regulated Market @stilkov

Slide 32

Slide 32 text

Modularization Autonomy End-to-end responsibility

Slide 33

Slide 33 text

@stilkov Pattern: Autonomous Cells Stakeholder Stakeholder Stakeholder Biz Dev Ops Biz Dev Ops Biz Dev Ops

Slide 34

Slide 34 text

@stilkov Pattern: Autonomous Cells Stakeholder Stakeholder Stakeholder Biz Dev Ops Biz Dev Ops Biz Dev Ops

Slide 35

Slide 35 text

@stilkov Not every person has to become a full-stack developer, but every team should be a full-stack team

Slide 36

Slide 36 text

Recommendations

Slide 37

Slide 37 text

@stilkov 1. Time to market requires supporting architecture

Slide 38

Slide 38 text

2. Establish autonomous teams as key ingredient

Slide 39

Slide 39 text

@stilkov 3. Create evolvable structures

Slide 40

Slide 40 text

www.innoq.com innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein Germany +49 2173 3366-0 Ohlauer Str. 43 10999 Berlin Germany +49 2173 3366-0 Ludwigstr. 180E 63067 Offenbach Germany +49 2173 3366-0 Kreuzstr. 16 80331 München Germany +49 2173 3366-0 innoQ Schweiz GmbH Gewerbestr. 11 CH-6330 Cham Switzerland +41 41 743 0116 Thank you! Stefan Tilkov @stilkov
 [email protected]
 +49 170 471 2625