Slide 1

Slide 1 text

2 S e p t e m b e r 2 0 C o l o g n e Organizational challenges of modern software development Photo by Drew Dau on Unsplash

Slide 2

Slide 2 text

Software trends of recent years 4 Agile Continuous delivery Microservices Cloud native

Slide 3

Slide 3 text

5 So, why exactly do people think it’s a good idea to replace 1 JEE app with 100 Microservices?

Slide 4

Slide 4 text

Drivers for these trends? 6 New technical possibilities Problems of prior paradigms – like SOA or JEE Goals and requirements from business changed

Slide 5

Slide 5 text

Architecture derived from business 7 Business Goals IT Goals Architecture Goals Principles & Concepts

Slide 6

Slide 6 text

Classic goals 8 Business Goals IT Goals Architecture Goals Principles & Concepts Shareholder value Cost leadership Margin increase Cost reduction Efficiency Re-use Standardization Deduplication Component frameworks SOA Code generation Effects on Organization Centralization Specialization Division of Work

Slide 7

Slide 7 text

New goals 9 Business Goals IT Goals Architecture Goals Principles & Concepts Customer experience Innovation Experimental Agility Short time 2 market Decoupling Flexibility Changeability Continuous Delivery Microservices Cloud native Effects on Organization Decentralization Generalists Optimize for speed

Slide 8

Slide 8 text

12 New Ideal

Slide 9

Slide 9 text

14 <> Business Domain Software Dev Ops UX/UI PO Team <> Business Domain Software Dev Ops UX/UI PO Team <> Business Domain Software Dev Ops UX/UI PO Team

Slide 10

Slide 10 text

15 Challenges

Slide 11

Slide 11 text

16 https://www.sheffield.ac.uk/news/nr/leonardo-da-vinci-sheffield-talks-1.839504 „The first Full Stack Developer“ Robert Glaser @youngbrioche

Slide 12

Slide 12 text

Cross functional teams 17 (Too) many skills and experience needed Might result in poor speed or low quality How to educate, qualify, and enable teams? Challenge 1

Slide 13

Slide 13 text

Architecture 18 Each team solves only own problems (by design) Agile/autonomous teams will create complex systems How to maintain a sustainable architecture? How to align the overarching architecture to the company`s goals? Challenge 2

Slide 14

Slide 14 text

Feature planning and releasing 19 Features might involve several teams How to coordinate processes for planning and releasing? Who is responsible for the whole system? Super heroes might emerge – is this helpful? Challenge 3

Slide 15

Slide 15 text

20 Solution approaches

Slide 16

Slide 16 text

21 Decomposition along business responsibilities

Slide 17

Slide 17 text

Good modules 22 Information hiding High cohesion Low coupling David Parnas "On the Criteria To Be Used in Decomposing Systems into Modules“, 1972 Photo: https://en.wikipedia.org/wiki/David_Parnas

Slide 18

Slide 18 text

Modularization criteria? 23 Many potential criteria: domain model, technical, security, ... Depends on architecture goals If autonomy is key, the primary question is: Can one team develop, test, release and maintain a feature end-2-end? Checkout Customer Payment Bank details ?

Slide 19

Slide 19 text

24 API Gateway UI UI UI BE BE BE BE Framework Team Framework UI Toolkit Team UI Toolkit Gateway Team

Slide 20

Slide 20 text

25 Product UI BE Order UI BE Fulfillment UI BE ... UI BE Customer UI BE

Slide 21

Slide 21 text

26 Team-spanning structures

Slide 22

Slide 22 text

27 https://www.scaledagileframework.com

Slide 23

Slide 23 text

28 https://medium.com/@achardypm/agile-team-organisation-squads-chapters- tribes-and-guilds-80932ace0fdc

Slide 24

Slide 24 text

SAFe 29 Agile Team Agile Release Train (ART) Communities of Practice Squad Tribes Chapters & Guilds Spotify

Slide 25

Slide 25 text

CoP, Chapters, Guilds 30 Encourage know-how exchange over teams (beyond API discussions) Provide assistance: • Policies & information • Infrastructure • Facilitators

Slide 26

Slide 26 text

31 Find (the right) balance

Slide 27

Slide 27 text

Find the right balance 32 Autonomy Centralism Photo by Marion Michele on Unsplash

Slide 28

Slide 28 text

Separate responsibilities 33 Macro Architecture: Global decisions Micro Architecture: Local decisions Plattform Service Service Service

Slide 29

Slide 29 text

34 Micro Language/runtime Application architecture Frameworks Libraries Data storage ...

Slide 30

Slide 30 text

35 Micro Micro Micro Micro Protocols, Integration, Communication Packaging, Deployment, Rollout Macro

Slide 31

Slide 31 text

36 Micro Micro Micro Micro Protocols, Integration, Communication Packaging, Deployment, Rollout Macro Micro Micro Micro Micro Protocols, Integration, Communication Packaging, Deployment, Rollout Macro Micro Micro Micro Micro Protocols, Integration, Communication Packaging, Deployment, Rollout Macro Micro Micro Micro Micro Protocols, Integration, Communication Packaging, Deployment, Rollout Macro Enterprise Architecture Micro Micro Micro Micro Protocols, Integration, Communication Packaging, Deployment, Rollout Macro Micro Micro Micro Micro Protocols, Integration, Communication Packaging, Deployment, Rollout Macro

Slide 32

Slide 32 text

Who makes technical decisions? Team, Tribe or Enterprise? 37 Standards should focus on interfaces and protocols Avoid uncontrolled technology mixes Enable teams to make own decisions and assume responsibility Principle of subsidiarity: micro > macro > enterprise

Slide 33

Slide 33 text

39 Conclusion

Slide 34

Slide 34 text

Culture over strategy 40 Decisions driven by data instead of management committees Give teams a goal But let them find their own way Trust and responsibility Let those decide who actually do the work

Slide 35

Slide 35 text

Thanks for listening! Questions? 42 Oliver Tigges [email protected] @otigges 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 Hermannstrasse 13 20095 Hamburg Germany +49 2173 3366-0 Gewerbestr. 11 CH-6330 Cham Switzerland +41 41 743 0116 innoQ Deutschland GmbH innoQ Schweiz GmbH www.innoq.com