Slide 1

Slide 1 text

DEMOCRATISING SOFTWARE ARCHITECTURE EOIN WOODS SEPTEMBER 2021

Slide 2

Slide 2 text

Eoin Woods • Endava’s CTO, based in London (6 years) • 10+ years in products - Bull, Sybase, InterTrust • 10 years in capital markets - UBS and BGI • Software engineer, architect, now CTO • Software engineer in theory & practice (BSc, MSc, PhD) • Author, editor, speaker, community guy

Slide 3

Slide 3 text

SOFTWARE ARCHITECTURE FOR THE DIGITAL AGE 3

Slide 4

Slide 4 text

The Digital Age: Intelligent Connected Platforms

Slide 5

Slide 5 text

Historical Context for Software Architecture • Central small group • Organisation of large pieces • Relatively static connections • Largely completed before implementation • Structures, qualities, stakeholders, technology choices 5

Slide 6

Slide 6 text

What has changed? 6 FLUID EVOLVING ARCHITECTURE DevOps Microservices Cloud Agile

Slide 7

Slide 7 text

What is the problem? 7 ? ? !! ? !! !! ? !!

Slide 8

Slide 8 text

Traditional software architecture is of less value • Constant evolution => less ”certainty” early in lifecycle • Less decided early in lifecycle => less value in thorough ”up front” architecture 8 • Autonomous teams => independent activity • Independent activity => constant parallel decision making • Constant decisions => architect overload => blocks progress

Slide 9

Slide 9 text

CONTINUOUS SOFTWARE ARCHITECTURE 9

Slide 10

Slide 10 text

Is architecture still needed? 10 • Achieving quality attributes • Balancing stakeholder concerns • Making complex tradeoffs • Achieving cross cutting concerns across many independent parts But architecture is now a continual flow of decisions Cross-Cutting Concerns Tradeoffs Stakeholders Quality Attributes Yes!

Slide 11

Slide 11 text

11 Architecture is a skill not (just) a role Stream of decisions, not “one off” architecture Principles, styles & patterns over structures Delegate & share wherever possible ”Little and often” (and adapt) Aim for a “shared commons” Architecture Work in the New World

Slide 12

Slide 12 text

• Principle 1: Architect products: evolve from projects to products • Principle 2: Focus on quality attributes, not functional requirements • Principle 3: Delay design decisions until absolutely necessary • Principle 4: Architect for change – leverage the “power of small” • Principle 5: Architect for build, test, deploy and operate • Principle 6: Model the organisation of your teams after the design of the system Continuous Architecture Principles 12 www.continuousarchitecture.info

Slide 13

Slide 13 text

Architecture Largely Up-Front Iterative Development Incremental Delivery Test Deliver Analysis Design Construct iN i1 i2 Stakeholder Concerns Moving to Continuous Software Architecture

Slide 14

Slide 14 text

Moving to Continuous Software Architecture Test Deliver Architecture Analysis Design Construct iN i1 i2 Incremental Delivery Architectural Knowledge Architectural Decisions Stakeholder Concerns (See Eltjo Poort’s work on “Risk and Cost Driven Architecture”) Agile Development with Continuous Architecture

Slide 15

Slide 15 text

Moving to Continuous Architecture 15 Principles 1. We prefer industry protocols, then standard in-house ones, then ad-hoc point-to-point ones 2. Partner specific detail must not pollute domain model … 3. Do not use cloud specific services Principles 1. We prefer industry protocols, then standard in-house ones, then ad-hoc point-to-point ones 2. Partner specific detail must not pollute domain model … 3. Do not use cloud specific services Principles 1. We prefer industry protocols, then standard in-house ones, then ad-hoc point-to-point ones 2. Partner specific detail must not pollute domain model … 3. Do not use cloud specific services Styles & Patterns Principles Decisions Top Down Prescriptive Design Evolving Shared Design

Slide 16

Slide 16 text

Artifacts of Continuous Architecture 16 Styles & Patterns: Common solutions to repeating problems Evolving Shared Design Principles 1. We prefer industry protocols, then standard in-house ones, then ad-hoc point-to-point ones 2. Partner specific detail must not pollute domain model … 3. Do not use cloud specific services Principles 1. We prefer industry protocols, then standard in-house ones, then ad-hoc point-to-point ones 2. Partner specific detail must not pollute domain model … 3. Do not use cloud specific services Principles 1. We prefer industry protocols, then standard in-house ones, then ad-hoc point-to-point ones 2. Partner specific detail must not pollute domain model … 3. Do not use cloud specific services Principles: Guidance to achieve aligned design decisions Decisions: Understanding what we did, when and why

Slide 17

Slide 17 text

When creating artifacts make them … Minimal Usable Significant Indexed Checked Have an audience Have a purpose and always …

Slide 18

Slide 18 text

Essential Continuous Architecture Activities 18 Provide Leadership Focus on Quality Attributes Drive Architectural Decisions Manage Technical Debt Implement Feedback Loops

Slide 19

Slide 19 text

19 Architecture work in every sprint Decisions, principles, styles, patterns Deliver decisions as they are needed Form an inclusive architecture group Practical tests to validate architecture work Keep the architecture ”close to the code” Useful Practices

Slide 20

Slide 20 text

TO CONCLUDE 20

Slide 21

Slide 21 text

Software development is changing: so will software architecture 21 Agile + DevOps change how we WORK Cloud + Containers change how we BUILD Less “Upfront” Architecture Quality Attributes, Tradeoffs, Stakeholders Flow Of Decisions & Guidance Changes to Architect’s Work Changes to Architect Training

Slide 22

Slide 22 text

Architect: From Purveyor of Wisdom … 22

Slide 23

Slide 23 text

… to Trusted Leader and Advisor 23

Slide 24

Slide 24 text

To Delve Further 24 continuousarchitecture.info continuous-architecture.com

Slide 25

Slide 25 text

Eoin Woods Endava [email protected] @eoinwoodz 25 THANK YOU … QUESTIONS?