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.

645147e9899005bc24e5ff7d65a1d60c?s=128

Birgitta Boeckeler

November 06, 2019
Tweet

Transcript

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

    6, 2019
  2. Autonomous Teams

  3. https://agilemanifesto.org/

  4. Autonomous Teams

  5. Motivation Flexibility Scaling Why autonomy?

  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
  7. Decentralisation Autonomous Teams && Architecture

  8. Architecture

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

  10. Decentralisation Autonomous Teams && Architecture

  11. “We need some governance”

  12. manipulate control rule restrain guide serve as deciding principle have

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

    determining or guiding influence rule to govern
  14. Business Architecture Requirements Decisions Practices Principles

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

    Team Team Team
  16. Decisions Practices Business Architecture Requirements Principles

  17. Push & pull the business context

  18. None
  19. Decisions Practices Business Architecture Requirements Principles

  20. Architecture Requirements

  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
  22. Prioritise

  23. Prioritise Offline Availability Portability Data privacy … …

  24. Decisions Practices Business Architecture Requirements Principles

  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
  26. Statement Team Decisions System Qualities Team Decisions Team Decisions Team

    Decisions guide lead to Require- ments
  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.”
  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
  29. http://engineering-principles.onejl.uk

  30. Sam Newman, “Building Microservices”

  31. Sam Newman, “Building Microservices” Rationale Implications

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

    X Customer centricity
  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
  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?
  35. How to find your principles?

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

    today? Risks
  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
  38. None
  39. Decisions Practices Business Architecture Requirements Principles

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

  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
  42. Sensible Defaults

  43. Decisions Practices Business Architecture Requirements Principles

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

  45. CULTIVATING ARCHITECTURE How to make it effective?

  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
  47. Autonomy Trust Voice Westrum Organizational Culture Software Delivery Performance Organizational

    Performance Retrospectives Climate for Learning
  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
  49. Reflect & Iterate Talk to each other Record history Foster

    a Learning Culture
  50. “I’m ‘just’ a developer - what can _I_ do?” Captured

    by https://github.com/lolcommits/lolcommits
  51. Organization Unit Unit Unit Team Team Team Team Team Team

    Team Team Team
  52. CULTIVATING ARCHITECTURE Birgitta Böckeler | @birgitta410