Slide 1

Slide 1 text

Architecture,
 Centralization, Autonomy Stefan Tilkov
 stefan.tilkov@innoq.com
 @stilkov Software Architecture Summit, 2019

Slide 2

Slide 2 text

@stilkov (Software) Architecture Definitions A system’s elements, their relationships, and the rules and principles that govern their design and evolution Whatever the architect considers important enough to merit their attention Decisions that you want to be correct because they are costly to change

Slide 3

Slide 3 text

@stilkov Order Management Production Planning Billing Production Fulfillment Domain architecture

Slide 4

Slide 4 text

@stilkov Macro (technical) architecture

Slide 5

Slide 5 text

@stilkov JRuby C# Scala Groovy
 Java Clojure

Slide 6

Slide 6 text

@stilkov RDBMS NoSQL K/V RDBMS RDBMS/DWH NoSQL
 DocDB

Slide 7

Slide 7 text

@stilkov RDBMS NoSQL K/V RDBMS RDBMS/DWH NoSQL
 DocDB Micro architecture

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

@stilkov Why you should centralize everything

Slide 11

Slide 11 text

@stilkov Why you should centralize nothing at all

Slide 12

Slide 12 text

@stilkov Why autonomous teams rule

Slide 13

Slide 13 text

@stilkov Why autonomous teams fail

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

@stilkov Just as it is gravely wrong to take from individuals what they can accomplish by their own initiative and industry and give it to the community, so also it is an injustice and at the same time a grave evil and disturbance of right order to assign to a greater and higher association what lesser and subordinate organizations can do. […]
 The supreme authority of the State ought, therefore, to let subordinate groups handle matters and concerns of lesser importance, which would otherwise dissipate its efforts greatly. Thereby the State will more freely, powerfully, and effectively do all those things that belong to it alone because it alone can do them: directing, watching, urging, restraining, as occasion requires and necessity demands. Subsidiarity Pope Pius XI, Encyclical Quadragesimo anno, 1931 Autonomy Centralization

Slide 16

Slide 16 text

Pattern: Regulated Market

Slide 17

Slide 17 text

@stilkov Context: • … Observation(s): • … Lesson(s) learned: • …

Slide 18

Slide 18 text

@stilkov Context: • E-Commerce/Online shop (Retail) • 100-120 developers, ~10 teams Observation(s): • Lack of front-end expertise led to central UI/design team, bottleneck for development, deployment, operations, evolution Lesson(s) learned: • Local optimization needs can trigger centralization • Full stack teams require full stack capabilities

Slide 19

Slide 19 text

@stilkov A general lack of specific skills, combined with a select few who have it, will sabotage any attempt at decentralizing anything requiring it

Slide 20

Slide 20 text

@stilkov Context: • E-Commerce/Online shop (Retail) • 100-120 developers, ~10 teams Observation(s): • Extremely inefficient UI integration runtime due to lack of standardization • Vast differences in API style, formats, documentation Lesson(s) learned: • Complete lack of guidance creates unproductive diversity

Slide 21

Slide 21 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 22

Slide 22 text

@stilkov There’s a fine line between diversity (that adds value) and chaos (that doesn’t)

Slide 23

Slide 23 text

@stilkov Context: • Insurance customer portal • 10-15 developers, 1 team Observation(s): • Potential for independent decisions in separated systems (almost) never exploited • Engineering effort spent on coordination Lesson(s) learned: • Premature modularization can lead to increased effort without matching benefits

Slide 24

Slide 24 text

https://en.wikipedia.org/wiki/Amdahl's_law#/media/File:AmdahlsLaw.svg

Slide 25

Slide 25 text

@stilkov Amdahl’s law for teams • Threshold set by non-parallelizable part of work • Adding more teams will not help you if you’ve reached the threshold

Slide 26

Slide 26 text

@stilkov Law of diminishing returns • Coordination effort increases with # of people/teams • Returns from re-use possibly far outweighed by extra effort

Slide 27

Slide 27 text

@stilkov Context: • E-Commerce/Online shop (Retail) • 100-120 developers, ~10 teams Observation(s): • Common standard micro architecture at start of project • Gradual increase in degrees of freedom • Increase in actual diversity of tools, languages, architecture Lesson(s) learned: • Increased maturity allows for less dogma/fewer rules

Slide 28

Slide 28 text

@stilkov Start with a common internal (micro) architecture, but allow for separate evolution according to specific needs

Slide 29

Slide 29 text

@stilkov Pattern: Marketing-based Governance

Slide 30

Slide 30 text

@stilkov Context: • Global logistics company • m projects, n teams Observation(s): • Inside-out development of rich, multi-faceted, highly functional platform, sophisticated tool support for developing platform applications • Teams resist perceived proprietary, complex, useless platform • Ultimate decommissioning of platform after MM€ investment Lesson(s) learned: • Platform development as high risk activity

Slide 31

Slide 31 text

@stilkov It’s difficult to get a man to understand something when his salary depends on his not understanding it. Change Resistance Upton Sinclair, 1934

Slide 32

Slide 32 text

@stilkov Sunk Cost Fallacy

Slide 33

Slide 33 text

@stilkov Eating your own dog food is an excellent idea.
 If you’re a dog.

Slide 34

Slide 34 text

@stilkov Context: • Company-wide digitization effort • 150-300 developers, 10-15 teams Observation(s): • Common standard platform and team to support other teams • Standardized CI/CD pipeline & runtime platform • Severe inefficiencies due to one-size-fits-all platform (esp. DB) • Continuous fighting between teams and platform engineering Lesson(s) learned: • Platform teams can take on a significant life of their own

Slide 35

Slide 35 text

@stilkov Closed organizational systems will do everything they can to maintain themselves

Slide 36

Slide 36 text

@stilkov Closing your system to external influences is a great way to ensure it will suck, eventually

Slide 37

Slide 37 text

@stilkov Context: • E-Commerce marketplace • 25-75 developers, 5-10 teams Observation(s): • Strategic decision to outsource platform to external party (public cloud provider) • 100% “all-in” strategy (no worries about vendor lock-in) Lesson(s) learned: • Significantly decreased emotional attachment to platform • Underestimated need for platform expertise

Slide 38

Slide 38 text

@stilkov Don’t fall in love with your own tools or libraries, maintain a strictly professional relationship

Slide 39

Slide 39 text

@stilkov Dreyfus model of skill acquisition Novice Advanced Beginner Competence Proficient Expert Recollection Non- Situational Situational Situational Situational Situational Recognition Decomposed Decomposed Holistic Holistic Holistic Decision Analytical Analytical Analytical Intuitive Intuitive Awareness Monitoring Monitoring Monitoring Monitoring Absorbed Quality Stage

Slide 40

Slide 40 text

@stilkov The more experienced you are at (active and passive) architectural governance, the less you can do of it

Slide 41

Slide 41 text

@stilkov Growing architectural maturity means less guidance and rules are needed

Slide 42

Slide 42 text

Takeaways

Slide 43

Slide 43 text

@stilkov 1. Autonomy is the goal (unless you waste effort without benefit)

Slide 44

Slide 44 text

@stilkov 2. Control is tempting (unless you’re the one being controlled)

Slide 45

Slide 45 text

@stilkov 3. Letting go is the hardest part (unless everyone sees benefits)

Slide 46

Slide 46 text

@stilkov 4. Decentralization must be managed (to the degree that’s needed to keep it)

Slide 47

Slide 47 text

@stilkov 5. Standardization helps (if it’s only mandatory as an exception)

Slide 48

Slide 48 text

Stefan Tilkov @stilkov
 stefan.tilkov@innoq.com
 Phone: +49 170 471 2625 innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim am Rhein Germany Phone: +49 2173 3366-0 innoQ Schweiz GmbH Gewerbestr. 11 CH-6330 Cham Switzerland Phone: +41 41 743 0116 www.innoq.com Ohlauer Straße 43 10999 Berlin Germany Phone: +49 2173 3366-0 Ludwigstr. 180E 63067 Offenbach Germany Phone: +49 2173 3366-0 Kreuzstraße 16
 80331 München Germany Phone: +49 2173 3366-0 @stilkov That’s all I have.
 Thanks for listening!

Slide 49

Slide 49 text

@stilkov 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