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

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. 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
  2. manipulate control rule restrain guide serve as deciding principle have

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

    determining or guiding influence rule to govern
  4. 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
  5. 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
  6. 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.”
  7. 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
  8. 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
  9. 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?
  10. Goals What’s holding us back today? What’s moving us forward

    today? Risks Strengths Opportunities Threats Weaknesses Cross-team relevance Business Architecture Requirements
  11. 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
  12. 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
  13. 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
  14. “I’m ‘just’ a developer - what can _I_ do?” Captured

    by https://github.com/lolcommits/lolcommits