Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Challenges of decentralized systems and organiz...

Oliver Tigges
September 20, 2019

Challenges of decentralized systems and organizations

Cloud computing, container technologies and Microservices: New technoliges enable ever more dynamic software systems and shorter intervals for development and delivery of new features. Companies embrace agile and autonomous teams to react quickly to markets and customers. The challenge is to keep control over emerging, complex systems and actively steer architecture without thwarting agile teams.

Oliver Tigges

September 20, 2019
Tweet

More Decks by Oliver Tigges

Other Decks in Technology

Transcript

  1. 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
  2. 5 So, why exactly do people think it’s a good

    idea to replace 1 JEE app with 100 Microservices?
  3. Drivers for these trends? 6 New technical possibilities Problems of

    prior paradigms – like SOA or JEE Goals and requirements from business changed
  4. 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
  5. 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
  6. 14 <<problem space>> Business Domain Software Dev Ops UX/UI PO

    Team <<problem space>> Business Domain Software Dev Ops UX/UI PO Team <<problem space>> Business Domain Software Dev Ops UX/UI PO Team
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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 ?
  12. 24 API Gateway UI UI UI BE BE BE BE

    Framework Team Framework UI Toolkit Team UI Toolkit Gateway Team
  13. SAFe 29 Agile Team Agile Release Train (ART) Communities of

    Practice Squad Tribes Chapters & Guilds Spotify
  14. CoP, Chapters, Guilds 30 Encourage know-how exchange over teams (beyond

    API discussions) Provide assistance: • Policies & information • Infrastructure • Facilitators
  15. 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
  16. 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
  17. 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
  18. 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