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.

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

    [email protected]
    Image by Michael Gaida from Pixabay

    View full-size slide

  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

    View full-size slide

  3. @stilkov
    architecture/ ˈɑr kɪˌtɛk tʃər /:

    noun
    A fancy word for the stuff
    you should not ignore

    View full-size slide

  4. Modularization
    Autonomy
    End-to-end responsibility

    View full-size slide

  5. Modularization
    Autonomy
    End-to-end responsibility

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  11. @stilkov
    Macro Architecture

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. @stilkov
    Managing dependencies is the most important
    ongoing architecture task

    View full-size slide

  17. @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

    View full-size slide

  18. number of

    developers
    strength of 

    decoupling
    methods
    modules
    components
    μservices
    systems

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  21. Pattern: Evolutionary Architecture
    @stilkov

    View full-size slide

  22. Modularization
    Autonomy
    End-to-end responsibility

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  27. @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

    View full-size slide

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

    View full-size slide

  29. @stilkov
    Size is the #1 enemy of agility; keep your systems
    as small as you reasonably can (but no smaller)

    View full-size slide

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

    View full-size slide

  31. Pattern: Regulated Market
    @stilkov
    Troy / CC BY-SA (https://creativecommons.org/licenses/by-sa/2.0)

    View full-size slide

  32. Modularization
    Autonomy
    End-to-end responsibility

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  36. Recommendations

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  40. 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

    [email protected]
    +49 170 471 2625

    View full-size slide