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

Software Architecture for Agile Enterprises

Software Architecture for Agile Enterprises

Stefan Tilkov takes a look at challenges, patterns and antipatterns of architectural work in practice—and derive concrete recommendations for the daily work of software architects.

Afd6dc452bc20f8f06612d4792bb8be3?s=128

Stefan Tilkov

May 20, 2020
Tweet

More Decks by Stefan Tilkov

Other Decks in Technology

Transcript

  1. Software Architecture for Agile Enterprises INNOQ Online Technology Lunch,
 May

    2020 Stefan Tilkov, @stilkov
 stefan.tilkov@innoq.com Image by Michael Gaida from Pixabay
  2. 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
  3. @stilkov architecture/ ˈɑr kɪˌtɛk tʃər /:
 noun A fancy word for the

    stuff you should not ignore
  4. Modularization Autonomy End-to-end responsibility

  5. Modularization Autonomy End-to-end responsibility

  6. @stilkov Awesome Shop CMS Archive General Ledger Print Shop HR

  7. @stilkov Awesome Shop CMS Archive General Ledger Print Shop HR

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

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

    Invoicing Accounting Auth Catalog Checkout & Order Search Domain Architecture
  10. @stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

  11. @stilkov

  12. @stilkov Macro Architecture

  13. @stilkov Ruby on Rails MySQL Java Spring Boot OSS Product

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

    COTS Java Spring Boot NodeJS ElasticSearch Micro Architecture
  15. @stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

  16. @stilkov Coming up with the “right” system boundaries is an

    architecture activity that must be done first
  17. @stilkov Managing dependencies is the most important ongoing architecture task

  18. @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
  19. number of
 developers strength of 
 decoupling methods modules components

    μservices systems
  20. From a layered system … System Logic Data UI Module

    Module Module
  21. … to a system of systems System System System Logic

    Data UI Logic Data UI Logic Data UI
  22. Pattern: Evolutionary Architecture @stilkov

  23. Modularization Autonomy End-to-end responsibility

  24. @stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

  25. @stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

  26. @stilkov Invoicing Accounting Auth Catalog Checkout & Order Search

  27. @stilkov Invoicing Accounting Auth Catalog Checkout & Order Search Team

    Architecture
  28. @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
  29. @stilkov If your goal is to support autonomous teams, architecture

    is an essential ingredient
  30. @stilkov Size is the #1 enemy of agility; keep your

    systems as small as you reasonably can (but no smaller)
  31. @stilkov Extremely loose coupling requires very few rules, but those

    need to be enforced strictly
  32. Pattern: Regulated Market @stilkov Troy / CC BY-SA (https://creativecommons.org/licenses/by-sa/2.0)

  33. Modularization Autonomy End-to-end responsibility

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

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

    Biz Dev Ops Biz Dev Ops
  36. @stilkov Not every person has to become a full-stack developer,

    but every team should be a full-stack team
  37. Recommendations

  38. @stilkov 1. Establish autonomous teams as key ingredient

  39. @stilkov 2. Manage the inter-dependencies of organization and architecture

  40. @stilkov 3. Create evolvable structures and strictly maintain few rules

  41. 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 Thank you! Any questions? Stefan Tilkov @stilkov
 stefan.tilkov@innoq.com
 +49 170 471 2625