$30 off During Our Annual Pro Sale. View Details »

Cultivating Architecture with Principles

Cultivating Architecture with Principles

Many organizations today strive to establish autonomous development teams who can move as independently of each other as possible. The goal is to achieve speed, scalability, and empowerment. The bigger you get, the less central decision making will work, because a central group just cannot know enough to make good decisions.

You have to decide what architecture governance looks like in such a decentralized setup and how to avoid chaos. And you have to know how to walk the line between hard rules and helpful guidance. One way to create a shared understanding of what architecture means in your particular organization is to introduce architecture principles and use them to guide all the teams’ decision making toward common goals.

The presentation explores different ways of creating and phrasing principles, outlines what you need in place around principles to make them practical and effective, and some lessons from a few organizations where I've seen principles in action.

Birgitta Boeckeler

November 06, 2019
Tweet

More Decks by Birgitta Boeckeler

Other Decks in Technology

Transcript

  1. CULTIVATING ARCHITECTURE
    WITH PRINCIPLES
    Birgitta Böckeler | @birgitta410 | Nov 6, 2019

    View Slide

  2. Autonomous Teams

    View Slide

  3. https://agilemanifesto.org/

    View Slide

  4. Autonomous Teams

    View Slide

  5. Motivation
    Flexibility
    Scaling
    Why autonomy?

    View Slide

  6. Autonomy
    Trust
    Voice
    Westrum
    Organizational
    Culture
    Software
    Delivery
    Performance
    Organizational
    Performance
    Forsgren et al, State of DevOps Report 2018
    https://cloudplatformonline.com/2018-state-of-devops.html
    predictive relationship

    View Slide

  7. Decentralisation
    Autonomous Teams
    && Architecture

    View Slide

  8. Architecture

    View Slide

  9. Cumulative
    features
    Time
    No / Poor Architecture
    Good Architecture
    https://martinfowler.com/bliki/DesignStaminaHypothesis.html

    View Slide

  10. Decentralisation
    Autonomous Teams
    && Architecture

    View Slide

  11. “We need some governance”

    View Slide

  12. manipulate
    control
    rule
    restrain
    guide
    serve as
    deciding principle
    have decisive
    influence
    Exert a determining or
    guiding influence
    to govern

    View Slide

  13. guide
    serve as
    deciding principle
    have decisive
    influence
    Exert a determining or
    guiding influence
    rule
    to govern

    View Slide

  14. Business
    Architecture
    Requirements
    Decisions
    Practices
    Principles

    View Slide

  15. Organization
    Unit Unit Unit
    Team Team Team Team Team Team Team Team Team

    View Slide

  16. Decisions
    Practices
    Business
    Architecture
    Requirements
    Principles

    View Slide

  17. Push & pull the
    business context

    View Slide

  18. View Slide

  19. Decisions
    Practices
    Business
    Architecture
    Requirements
    Principles

    View Slide

  20. Architecture
    Requirements

    View Slide

  21. Accessibility
    Auditability
    Availability
    Compliance
    Configurability
    Data integrity
    Distributability
    Extensibility
    Internationalization
    Monitoring
    Performance
    Portability
    Resilience / Fault
    Tolerance
    Scalability
    Security
    Supportability
    Usability
    Upgradability
    Responsiveness
    Testability
    Recoverability
    Data Privacy
    Find your focus

    Traceability

    View Slide

  22. Prioritise

    View Slide

  23. Prioritise
    Offline
    Availability
    Portability
    Data
    privacy


    View Slide

  24. Decisions
    Practices
    Business
    Architecture
    Requirements
    Principles

    View Slide

  25. https://www.slideshare.net/EoinWoods1/using-software-architecture-principles-in-practice
    “A declarative statement made with the intention
    of guiding architectural design decisions in order
    to achieve one or more qualities of a system.”
    - Eoin Woods
    Architecture Principles

    View Slide

  26. Statement
    Team
    Decisions System
    Qualities
    Team
    Decisions
    Team
    Decisions
    Team
    Decisions
    guide lead to
    Require-
    ments

    View Slide

  27. http://engineering-principles.onejl.uk/
    “A declarative statement made with the
    intention of guiding architectural
    design decisions in order to achieve one
    or more qualities of a system.”

    View Slide

  28. http://engineering-principles.onejl.uk/
    http://pubs.opengroup.org/architecture/togaf8-doc/arch/chap29.html
    in order to achieve one or more
    qualities of a system.
    made with the intention of guiding
    architectural design decisions
    A declarative statement

    View Slide

  29. http://engineering-principles.onejl.uk

    View Slide

  30. Sam Newman, “Building Microservices”

    View Slide

  31. Sam Newman, “Building Microservices”
    Rationale
    Implications

    View Slide

  32. Facts over
    Opinions
    Hypothesis-driven
    development
    Data
    democratization
    Enter new
    market X
    Customer
    centricity

    View Slide

  33. Authorizations are
    role-based
    Eliminate
    integration
    databases
    Do ongoing user
    research
    Design for Pace of
    Change
    Build
    Differentiators
    Open Integration
    Standards
    Reusable
    Components
    Scale Horizontally
    Cloud Native
    Production Ready
    Automate
    Repetitive Tasks
    Clean Code
    Continuous
    Delivery
    Consistent
    Environments
    Maintainability
    Performance
    Importance
    Release Early and
    Often
    Security First
    Loosely Coupled
    Security,
    Compliance and
    Data Privacy
    AWS First
    Be Bold
    Data-driven/
    metric-driven
    Infrastructure as
    Code
    Have a
    multidisciplinary
    team
    Eliminate accidental
    complexity
    Consistent
    interfaces and data
    flows
    Small and Simple
    Smarts in the
    Nodes, not the
    Network
    Encapsulate legacy
    Minimal
    customisation of
    COTS/SaaS
    Organise around
    Business
    Capabilities
    Consolidate and
    cleanse data
    Minimize
    technology
    variation
    Cleaning is part of
    work well done
    You build it, you
    run it
    Apply principle of
    least privileges
    Data is a shared
    asset
    Small independent
    services
    Facts over Opinions
    Autonomy over
    Economies of Scale
    Decisions at latest
    responsible
    moment
    Single Source of
    Truth
    Data freshness
    Domain Integrity
    Sensitive data are
    exchanged securely
    Existing
    experiences over
    different variations
    Asynchronous
    interactions over
    synchronous coupling

    View Slide

  34. Authorizations are
    role-based
    Eliminate
    integration
    databases
    Do ongoing user
    research
    Design for Pace of
    Change
    Build
    Differentiators
    Open Integration
    Standards
    Reusable
    Components
    Scale Horizontally
    Cloud Native
    Production Ready
    Automate
    Repetitive Tasks
    Clean Code
    Continuous
    Delivery
    Consistent
    Environments
    Maintainability
    Performance
    Importance
    Release Early and
    Often
    Security First
    Loosely Coupled
    Security,
    Compliance and
    Data Privacy
    AWS First
    Be Bold
    Data-driven/
    metric-driven
    Infrastructure as
    Code
    Have a
    multidisciplinary
    team
    Eliminate accidental
    complexity
    Consistent
    interfaces and data
    flows
    Small and Simple
    Smarts in the
    Nodes, not the
    Network
    Encapsulate legacy
    Minimal
    customisation of
    COTS/SaaS
    Organise around
    Business
    Capabilities
    Consolidate and
    cleanse data
    Minimize
    technology
    variation
    Cleaning is part of
    work well done
    You build it, you
    run it
    Apply principle of
    least privileges
    Data is a shared
    asset
    Small independent
    services
    Facts over Opinions
    Autonomy over
    Economies of Scale
    Decisions at latest
    responsible
    moment
    Single Source of
    Truth
    Data freshness
    Domain Integrity
    Sensitive data are
    exchanged securely
    Existing
    experiences over
    different variations
    Asynchronous
    interactions over
    synchronous coupling
    Focus
    Consensus
    Official Blessing
    Why bother with your
    own principles?

    View Slide

  35. How to find your principles?

    View Slide

  36. Goals
    What’s holding us
    back today?
    What’s moving
    us forward today?
    Risks

    View Slide

  37. Goals
    What’s holding us
    back today?
    What’s moving
    us forward today?
    Risks
    Strengths
    Opportunities
    Threats
    Weaknesses
    Cross-team
    relevance
    Business
    Architecture
    Requirements

    View Slide

  38. View Slide

  39. Decisions
    Practices
    Business
    Architecture
    Requirements
    Principles

    View Slide

  40. Technology Radar
    https://opensource.zalando.com/tech-radar/

    View Slide

  41. Promising, experimenting with this on one or more teams
    TRIAL
    Neal Ford, “Using the ThoughtWorks Technology Radar to track governance”
    Proven to work within this enterprise, well supported
    ADOPT
    Evaluating for potential experiments, under active research
    ASSESS
    Deprecated, don't start new projects using this
    HOLD
    Level of guidance

    View Slide

  42. Sensible Defaults

    View Slide

  43. Decisions
    Practices
    Business
    Architecture
    Requirements
    Principles

    View Slide

  44. Decision Records
    http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions

    View Slide

  45. CULTIVATING ARCHITECTURE
    How to make
    it effective?

    View Slide

  46. Autonomy
    Trust
    Voice
    Westrum
    Organizational
    Culture
    Software
    Delivery
    Performance
    Organizational
    Performance
    Forsgren et al, State of DevOps Report 2018
    https://cloudplatformonline.com/2018-state-of-devops.html
    predictive relationship
    Retrospectives
    Climate for Learning

    View Slide

  47. Autonomy
    Trust
    Voice
    Westrum
    Organizational
    Culture
    Software Delivery
    Performance
    Organizational
    Performance
    Retrospectives
    Climate for Learning

    View Slide

  48. guide
    serve as
    deciding principle
    have decisive
    influence
    Exert a determining or
    guiding influence
    rule
    foster learning culture
    to govern
    telling people
    what to do

    View Slide

  49. Reflect & Iterate
    Talk to each other
    Record history
    Foster a Learning Culture

    View Slide

  50. “I’m ‘just’ a developer -
    what can _I_ do?”
    Captured by https://github.com/lolcommits/lolcommits

    View Slide

  51. Organization
    Unit Unit Unit
    Team Team Team Team Team Team Team Team
    Team

    View Slide

  52. CULTIVATING ARCHITECTURE
    Birgitta Böckeler | @birgitta410

    View Slide