SlideShare a Scribd company logo
1 of 24
Download to read offline
Using Software
Architecture Principles
in Practice
Eoin Woods - Endava

@eoinwoodz
BACKGROUND
• Eoin Woods
• CTO at Endava (technology services, 3300 people)
• 10 years in product development - Bull, Sybase, InterTrust
• 10 years in capital markets applications - UBS and BGI
• Software engineer, then architect, now CTO
• Author, editor, speaker, community guy
COMMON CHALLENGES
COMMON CHALLENGES
• Understanding rationale for architecture & design
• Maintaining knowledge over time
• Relating contexts across enterprise / system / code
• Guiding design without making the decisions
• Minimal effective documentation
COMMON SOLUTIONS
• Lots of documentation
• always out of date
• “Listen to the code”
• doesn't contain all of the information
• Oral history
• Fragile and easily lost or distorted
UNCOMMON SOLUTIONS
• Architecture design decisions
• Architecture principles
These practices are elegant solutions to capturing and communicating
architectural knowledge
Today we’ll talk about principles
ARCHITECTURE PRINCIPLES
ARCHITECTURE PRINCIPLES
• What is a “principle” ?
• a fundamental truth or proposition serving as the foundation for belief or action
[OED]
• An architecture principle is ….
• a declarative statement made with the intention of guiding architectural
design decisions in order to achieve one or more qualities of a system

A (VERY) SIMPLE EXAMPLE
• Use Tiered Architectures:

Use application tiers to separate presentation, logic & data.

Our rationale for this is:
• data lives longer than applications; business logic lives longer than UIs
• tiers separate aspects of the system to allow different rates of evolution
• tiers allow variation of technology and qualities for different parts of systems (e.g. scalable
servers, secure databases)
• while more complex initially than two tier systems, this is outweighed by the benefits for
all but the simplest cases
REQUIREMENTS AND DECISIONS
• Requirement - the desired system quality
• normally measurable
• Principle - a constraint or guide for decisions, reflecting the requirement(s)
• applicable to a broad context (guides many decisions)
• Decision - how something is to be achieved
• bound to a specific narrow context
PRINCIPLES ALIGNTEAMS
Goal
Requirement
Principle
Decision
PRINCIPLES ALIGNINGTEAMS
Goal: allow product to be sold into regulated industries (unknown regulations)
Requirement: allow deployment on premise and to “cloud” platforms
Principles: 

1. Do not use cloud specific services

2. Only assume key/value storage for data stores
Decisions:

1. Initially deploy to AWS

2. Do not use unique AWS services (e.g. SQS) 

3. Use Aerospike for DB accessed via LibStore
Guidance
Rationale
PRINCIPLES ALIGNINGTEAMS
Requirement: add new trading partner 2 in weeks, <= 50 days effort
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 - 

where necessary then isolate in specific areas
Decisions:
1. Integrate using “Trader” model with partner extensions
2. Integrate using RPC and pub/sub messaging

3. For pub/sub use RabbitMQ, RPC use HTTP/JSON REST
Guidance
Rationale
ARCHITECTURE PRINCIPLES IN PRACTICE
USEFULTYPES OF PRINCIPLE
• Define a goal
• “single visitor logon for all web sites”
• Indicate a preference or constraint
• “prefer 3rd party data formats, over
in-house, over custom”
• Avoid a specific technical problem
• “use tiers to avoid UIs becoming
bound to databases”
• Encourage a practice
• “our software must always be
deployable at the end of a sprint”
• Remind people of useful knowledge
• “abstractions live longer than
details” [Hunt &Thomas]
DEFINING A PRINCIPLE
• A good name
• A clear description
• A rationale
• An example
• and a counter-example
• Applicability
• if necessary for clarity
• Implications
• if not obvious
ANOTHER EXAMPLE
Name Prefer Standardised Message Protocols
Description
We prefer to use industry protocols for messaging, where this isn’t
possible we use well defined in-house ones, only in the last resort do
we use local ad-hoc protocols.
Rationale
Minimise concept (re)definition, maximise future integration options,
allow flexible organisational structure
Example
Use FIX if that’s not possible, Equities wide standard transaction
messages, otherwise, point-to-point ad-hoc fmt
Applicability All inter-system business transactions across Markets IT
Implications
Teams need to understand the options; time needs to be taken to
understand new protocols if needed
PROPERTIES OF GOOD PRINCIPLES
Constructive stated for a definite purpose, useful guide for decision making
Reasoned rational, logical, consistent
Well Articulated comprehensible by all of the necessary stakeholders
Testable can check if you’ve followed it and where the exceptions are
Significant not just a truism; would the opposite ever be the case?
(Nick Rozanski)
VIOLATING PRINCIPLES
• Principles can’t always be followed
• but when broken must be broken for justifiable reasons
• i.e. benefits have to outweigh the costs
• This doesn’t (necessarily) reduce their usefulness
• reason for breaking a principle is valuable design information
• many violations signal the need to revisit the principle
• capturing the violation signals a non-standard decision
PRACTICAL COMPLICATIONS
Identification identifying meaningful principles, avoiding truisms
Quantity avoiding excessive number (too many authors?)
Description being clear, complete, succinct & understandable
Validation difficult to validate and measure the value
Communicating often difficult to understand & internalise
Retrofitting difficult to apply principles usefully after the fact
TO CONCLUDE
CONCLUSIONS
• Principles provide “laws” to guide the design process
• useful at different levels of scale, help to create informed design decisions
• Principles can provide traceability
• link back to more abstract principles, requirements or goals
• justifies decisions by reference to a particular context
• Address some common challenges
• maintain knowledge, capture rationale, provide context, …
• elegant and minimal solution avoid lots of documents
FINDING OUT MORE
(Yes - really!)
THANKYOU … QUESTIONS?
Eoin Woods

Endava

eoin.woods@endava.com
@eoinwoodz

More Related Content

What's hot

All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)Rich Hilliard
 
Making Decisions - From Software Architecture Theory to Practice
Making Decisions - From Software Architecture Theory to PracticeMaking Decisions - From Software Architecture Theory to Practice
Making Decisions - From Software Architecture Theory to PracticeParis Avgeriou
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFMichael Sukachev
 
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power AutomateA Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power AutomateEric Shupps
 
2 enterprise architectuur
2 enterprise architectuur2 enterprise architectuur
2 enterprise architectuurDan Kamminga
 
The Profession Of IT Architecture
The Profession Of IT ArchitectureThe Profession Of IT Architecture
The Profession Of IT ArchitectureChristopher Grant
 
Introduction to Business Analysis
Introduction to Business AnalysisIntroduction to Business Analysis
Introduction to Business AnalysisSwatiS-BA
 
Een praktische invulling van TOGAF
Een praktische invulling van TOGAFEen praktische invulling van TOGAF
Een praktische invulling van TOGAFDanny Greefhorst
 
Scope of Work Template
Scope of Work TemplateScope of Work Template
Scope of Work Templatemeaslyacne6432
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture designLen Bass
 
Project requirements presentation
 Project requirements presentation Project requirements presentation
Project requirements presentationBeckie Palmer
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the boxKangaroot
 
Business Analysis in IT
Business Analysis in ITBusiness Analysis in IT
Business Analysis in IT*instinctools
 
Togaf 9 an introduction
Togaf 9   an introductionTogaf 9   an introduction
Togaf 9 an introductionDaan Bakboord
 
SOC Lessons from DevOps and SRE by Anton Chuvakin
SOC Lessons from DevOps and SRE by Anton ChuvakinSOC Lessons from DevOps and SRE by Anton Chuvakin
SOC Lessons from DevOps and SRE by Anton ChuvakinAnton Chuvakin
 
Solution Architecture and Solution Acquisition
Solution Architecture and Solution AcquisitionSolution Architecture and Solution Acquisition
Solution Architecture and Solution AcquisitionAlan McSweeney
 

What's hot (20)

All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)All about ISO/IEC/IEEE 42010 (r5)
All about ISO/IEC/IEEE 42010 (r5)
 
Making Decisions - From Software Architecture Theory to Practice
Making Decisions - From Software Architecture Theory to PracticeMaking Decisions - From Software Architecture Theory to Practice
Making Decisions - From Software Architecture Theory to Practice
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
 
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power AutomateA Beginners Guide to Custom Connectors for Power Apps and Power Automate
A Beginners Guide to Custom Connectors for Power Apps and Power Automate
 
Design System
Design SystemDesign System
Design System
 
2 enterprise architectuur
2 enterprise architectuur2 enterprise architectuur
2 enterprise architectuur
 
The Profession Of IT Architecture
The Profession Of IT ArchitectureThe Profession Of IT Architecture
The Profession Of IT Architecture
 
requirement documentation
requirement documentation requirement documentation
requirement documentation
 
Introduction to Business Analysis
Introduction to Business AnalysisIntroduction to Business Analysis
Introduction to Business Analysis
 
Een praktische invulling van TOGAF
Een praktische invulling van TOGAFEen praktische invulling van TOGAF
Een praktische invulling van TOGAF
 
Scope of Work Template
Scope of Work TemplateScope of Work Template
Scope of Work Template
 
Principles of software architecture design
Principles of software architecture designPrinciples of software architecture design
Principles of software architecture design
 
Project requirements presentation
 Project requirements presentation Project requirements presentation
Project requirements presentation
 
The role of Business Analyst
The role of Business Analyst The role of Business Analyst
The role of Business Analyst
 
8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box8 - OpenShift - A look at a container platform: what's in the box
8 - OpenShift - A look at a container platform: what's in the box
 
Togaf 9.2 Introduction
Togaf 9.2 IntroductionTogaf 9.2 Introduction
Togaf 9.2 Introduction
 
Business Analysis in IT
Business Analysis in ITBusiness Analysis in IT
Business Analysis in IT
 
Togaf 9 an introduction
Togaf 9   an introductionTogaf 9   an introduction
Togaf 9 an introduction
 
SOC Lessons from DevOps and SRE by Anton Chuvakin
SOC Lessons from DevOps and SRE by Anton ChuvakinSOC Lessons from DevOps and SRE by Anton Chuvakin
SOC Lessons from DevOps and SRE by Anton Chuvakin
 
Solution Architecture and Solution Acquisition
Solution Architecture and Solution AcquisitionSolution Architecture and Solution Acquisition
Solution Architecture and Solution Acquisition
 

Viewers also liked

Modeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMateModeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMateIver Band
 
TOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenariosTOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenariosCuneyt Kaya
 
TOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-componentsTOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-componentsCuneyt Kaya
 
Modeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageModeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageIver Band
 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?Chris F Carroll
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems DissolveEoin Woods
 
TOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admTOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admCuneyt Kaya
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Building a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMateBuilding a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMateBas van Gils
 
Archimate 2.1 an introduction
Archimate 2.1   an introductionArchimate 2.1   an introduction
Archimate 2.1 an introductionDaan Bakboord
 
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...Iver Band
 
Archi mate views_and_viewpoints
Archi mate views_and_viewpointsArchi mate views_and_viewpoints
Archi mate views_and_viewpointsIgor Igoroshka
 
Iasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewWinton Winton
 

Viewers also liked (16)

Modeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMateModeling TOGAF with ArchiMate
Modeling TOGAF with ArchiMate
 
TOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenariosTOGAF Classroom Series - M7 business-scenarios
TOGAF Classroom Series - M7 business-scenarios
 
TOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-componentsTOGAF Classroom Series - M2 togaf-9-components
TOGAF Classroom Series - M2 togaf-9-components
 
Modeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 LanguageModeling Big Data with the ArchiMate 3.0 Language
Modeling Big Data with the ArchiMate 3.0 Language
 
Software Architecture: Why and What?
Software Architecture: Why and What?Software Architecture: Why and What?
Software Architecture: Why and What?
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
 
TOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-admTOGAF Classroom Series - M3 intro-adm
TOGAF Classroom Series - M3 intro-adm
 
Archimate Introduction
Archimate IntroductionArchimate Introduction
Archimate Introduction
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Building a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMateBuilding a strong Data Management capability with TOGAF and ArchiMate
Building a strong Data Management capability with TOGAF and ArchiMate
 
TOGAF 9 Architectural Artifacts
TOGAF 9  Architectural ArtifactsTOGAF 9  Architectural Artifacts
TOGAF 9 Architectural Artifacts
 
Archimate 2.1 an introduction
Archimate 2.1   an introductionArchimate 2.1   an introduction
Archimate 2.1 an introduction
 
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
 
Archi mate views_and_viewpoints
Archi mate views_and_viewpointsArchi mate views_and_viewpoints
Archi mate views_and_viewpoints
 
Iasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK Archimate Overview
Iasa UK Archimate Overview
 
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overviewEnterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
Enterprise Architecture for Dummies - TOGAF 9 enterprise architecture overview
 

Similar to Using Software Architecture Principles in Practice

Designing Flexibility in Software to Increase Security
Designing Flexibility in Software to Increase SecurityDesigning Flexibility in Software to Increase Security
Designing Flexibility in Software to Increase Securitylawmoore
 
Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...
Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...
Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...Jeffrey Stewart
 
Kubernetes, The Day After
Kubernetes, The Day AfterKubernetes, The Day After
Kubernetes, The Day AfterApcera
 
Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...
Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...
Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...Steve Judd
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLangNVISIA
 
Patching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudPatching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudDatavail
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...DevOps.com
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutesAndrew Siemer
 
Using standards for GOOD in DevOps
Using standards for GOOD in DevOpsUsing standards for GOOD in DevOps
Using standards for GOOD in DevOpsNeil McCaughley
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureAttila Bertók
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at ScaleRandy Shoup
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryMandi Walls
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architectureGang Tao
 
Going Global with Itoc and AWS
Going Global with Itoc and AWS Going Global with Itoc and AWS
Going Global with Itoc and AWS Mark Promnitz
 
Technical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerationsTechnical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerationsPaul Walk
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015Randy Shoup
 
Closing the Loop - Technology Implementations
Closing the Loop - Technology ImplementationsClosing the Loop - Technology Implementations
Closing the Loop - Technology ImplementationsCASRAI
 
1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterpriseScott Simmons
 

Similar to Using Software Architecture Principles in Practice (20)

Chapter 7 design rules
Chapter 7 design rulesChapter 7 design rules
Chapter 7 design rules
 
Designing Flexibility in Software to Increase Security
Designing Flexibility in Software to Increase SecurityDesigning Flexibility in Software to Increase Security
Designing Flexibility in Software to Increase Security
 
Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...
Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...
Strategies and Lessons Learned from Enterprise Integration of uProduce and uS...
 
Kubernetes, The Day After
Kubernetes, The Day AfterKubernetes, The Day After
Kubernetes, The Day After
 
Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...
Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...
Things I wish I'd known before I started with Microservices - GOTO Amsterdam ...
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
 
Patching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP CloudPatching is Your Friend in the New World Order of EPM and ERP Cloud
Patching is Your Friend in the New World Order of EPM and ERP Cloud
 
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
Microservices at Scale: How to Reduce Overhead and Increase Developer Product...
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Using standards for GOOD in DevOps
Using standards for GOOD in DevOpsUsing standards for GOOD in DevOps
Using standards for GOOD in DevOps
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean Architecture
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at Scale
 
Role of Pipelines in Continuous Delivery
Role of Pipelines in Continuous DeliveryRole of Pipelines in Continuous Delivery
Role of Pipelines in Continuous Delivery
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
Going Global with Itoc and AWS
Going Global with Itoc and AWS Going Global with Itoc and AWS
Going Global with Itoc and AWS
 
Technical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerationsTechnical standards & the RDTF Vision: some considerations
Technical standards & the RDTF Vision: some considerations
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
 
Closing the Loop - Technology Implementations
Closing the Loop - Technology ImplementationsClosing the Loop - Technology Implementations
Closing the Loop - Technology Implementations
 
1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise
 

More from Eoin Woods

API Vulnerabilties and What to Do About Them
API Vulnerabilties and What to Do About ThemAPI Vulnerabilties and What to Do About Them
API Vulnerabilties and What to Do About ThemEoin Woods
 
Democratising Software Architecture
Democratising Software ArchitectureDemocratising Software Architecture
Democratising Software ArchitectureEoin Woods
 
Secure by Design - Security Design Principles for the Working Architect
Secure by Design - Security Design Principles for the Working ArchitectSecure by Design - Security Design Principles for the Working Architect
Secure by Design - Security Design Principles for the Working ArchitectEoin Woods
 
A Breathless Tour of Blockchain
A Breathless Tour of BlockchainA Breathless Tour of Blockchain
A Breathless Tour of BlockchainEoin Woods
 
Models, Sketches and Everything In Between
Models, Sketches and Everything In BetweenModels, Sketches and Everything In Between
Models, Sketches and Everything In BetweenEoin Woods
 
Capturing Design (When you really have to)
Capturing Design (When you really have to)Capturing Design (When you really have to)
Capturing Design (When you really have to)Eoin Woods
 
Serverless Computing for the Inquiring Mind
Serverless Computing for the Inquiring MindServerless Computing for the Inquiring Mind
Serverless Computing for the Inquiring MindEoin Woods
 
Secure by Design - Security Design Principles for the Rest of Us
Secure by Design - Security Design Principles for the Rest of UsSecure by Design - Security Design Principles for the Rest of Us
Secure by Design - Security Design Principles for the Rest of UsEoin Woods
 
Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)Eoin Woods
 
When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets DataEoin Woods
 
System Security Beyond the Libraries
System Security Beyond the LibrariesSystem Security Beyond the Libraries
System Security Beyond the LibrariesEoin Woods
 
Getting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it ThereGetting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it ThereEoin Woods
 
Common WebApp Vulnerabilities and What to Do About Them
Common WebApp Vulnerabilities and What to Do About ThemCommon WebApp Vulnerabilities and What to Do About Them
Common WebApp Vulnerabilities and What to Do About ThemEoin Woods
 
Deferring the Last Responsible Moment
Deferring the Last Responsible MomentDeferring the Last Responsible Moment
Deferring the Last Responsible MomentEoin Woods
 

More from Eoin Woods (14)

API Vulnerabilties and What to Do About Them
API Vulnerabilties and What to Do About ThemAPI Vulnerabilties and What to Do About Them
API Vulnerabilties and What to Do About Them
 
Democratising Software Architecture
Democratising Software ArchitectureDemocratising Software Architecture
Democratising Software Architecture
 
Secure by Design - Security Design Principles for the Working Architect
Secure by Design - Security Design Principles for the Working ArchitectSecure by Design - Security Design Principles for the Working Architect
Secure by Design - Security Design Principles for the Working Architect
 
A Breathless Tour of Blockchain
A Breathless Tour of BlockchainA Breathless Tour of Blockchain
A Breathless Tour of Blockchain
 
Models, Sketches and Everything In Between
Models, Sketches and Everything In BetweenModels, Sketches and Everything In Between
Models, Sketches and Everything In Between
 
Capturing Design (When you really have to)
Capturing Design (When you really have to)Capturing Design (When you really have to)
Capturing Design (When you really have to)
 
Serverless Computing for the Inquiring Mind
Serverless Computing for the Inquiring MindServerless Computing for the Inquiring Mind
Serverless Computing for the Inquiring Mind
 
Secure by Design - Security Design Principles for the Rest of Us
Secure by Design - Security Design Principles for the Rest of UsSecure by Design - Security Design Principles for the Rest of Us
Secure by Design - Security Design Principles for the Rest of Us
 
Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)Software Architecture as Systems Dissolve (OOP2016)
Software Architecture as Systems Dissolve (OOP2016)
 
When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets Data
 
System Security Beyond the Libraries
System Security Beyond the LibrariesSystem Security Beyond the Libraries
System Security Beyond the Libraries
 
Getting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it ThereGetting Your System to Production and Keeping it There
Getting Your System to Production and Keeping it There
 
Common WebApp Vulnerabilities and What to Do About Them
Common WebApp Vulnerabilities and What to Do About ThemCommon WebApp Vulnerabilities and What to Do About Them
Common WebApp Vulnerabilities and What to Do About Them
 
Deferring the Last Responsible Moment
Deferring the Last Responsible MomentDeferring the Last Responsible Moment
Deferring the Last Responsible Moment
 

Recently uploaded

Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 

Recently uploaded (20)

Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 

Using Software Architecture Principles in Practice

  • 1. Using Software Architecture Principles in Practice Eoin Woods - Endava
 @eoinwoodz
  • 2. BACKGROUND • Eoin Woods • CTO at Endava (technology services, 3300 people) • 10 years in product development - Bull, Sybase, InterTrust • 10 years in capital markets applications - UBS and BGI • Software engineer, then architect, now CTO • Author, editor, speaker, community guy
  • 4. COMMON CHALLENGES • Understanding rationale for architecture & design • Maintaining knowledge over time • Relating contexts across enterprise / system / code • Guiding design without making the decisions • Minimal effective documentation
  • 5. COMMON SOLUTIONS • Lots of documentation • always out of date • “Listen to the code” • doesn't contain all of the information • Oral history • Fragile and easily lost or distorted
  • 6. UNCOMMON SOLUTIONS • Architecture design decisions • Architecture principles These practices are elegant solutions to capturing and communicating architectural knowledge Today we’ll talk about principles
  • 8. ARCHITECTURE PRINCIPLES • What is a “principle” ? • a fundamental truth or proposition serving as the foundation for belief or action [OED] • An architecture principle is …. • a declarative statement made with the intention of guiding architectural design decisions in order to achieve one or more qualities of a system

  • 9. A (VERY) SIMPLE EXAMPLE • Use Tiered Architectures:
 Use application tiers to separate presentation, logic & data.
 Our rationale for this is: • data lives longer than applications; business logic lives longer than UIs • tiers separate aspects of the system to allow different rates of evolution • tiers allow variation of technology and qualities for different parts of systems (e.g. scalable servers, secure databases) • while more complex initially than two tier systems, this is outweighed by the benefits for all but the simplest cases
  • 10. REQUIREMENTS AND DECISIONS • Requirement - the desired system quality • normally measurable • Principle - a constraint or guide for decisions, reflecting the requirement(s) • applicable to a broad context (guides many decisions) • Decision - how something is to be achieved • bound to a specific narrow context
  • 12. PRINCIPLES ALIGNINGTEAMS Goal: allow product to be sold into regulated industries (unknown regulations) Requirement: allow deployment on premise and to “cloud” platforms Principles: 
 1. Do not use cloud specific services
 2. Only assume key/value storage for data stores Decisions:
 1. Initially deploy to AWS
 2. Do not use unique AWS services (e.g. SQS) 
 3. Use Aerospike for DB accessed via LibStore Guidance Rationale
  • 13. PRINCIPLES ALIGNINGTEAMS Requirement: add new trading partner 2 in weeks, <= 50 days effort 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 - 
 where necessary then isolate in specific areas Decisions: 1. Integrate using “Trader” model with partner extensions 2. Integrate using RPC and pub/sub messaging
 3. For pub/sub use RabbitMQ, RPC use HTTP/JSON REST Guidance Rationale
  • 15. USEFULTYPES OF PRINCIPLE • Define a goal • “single visitor logon for all web sites” • Indicate a preference or constraint • “prefer 3rd party data formats, over in-house, over custom” • Avoid a specific technical problem • “use tiers to avoid UIs becoming bound to databases” • Encourage a practice • “our software must always be deployable at the end of a sprint” • Remind people of useful knowledge • “abstractions live longer than details” [Hunt &Thomas]
  • 16. DEFINING A PRINCIPLE • A good name • A clear description • A rationale • An example • and a counter-example • Applicability • if necessary for clarity • Implications • if not obvious
  • 17. ANOTHER EXAMPLE Name Prefer Standardised Message Protocols Description We prefer to use industry protocols for messaging, where this isn’t possible we use well defined in-house ones, only in the last resort do we use local ad-hoc protocols. Rationale Minimise concept (re)definition, maximise future integration options, allow flexible organisational structure Example Use FIX if that’s not possible, Equities wide standard transaction messages, otherwise, point-to-point ad-hoc fmt Applicability All inter-system business transactions across Markets IT Implications Teams need to understand the options; time needs to be taken to understand new protocols if needed
  • 18. PROPERTIES OF GOOD PRINCIPLES Constructive stated for a definite purpose, useful guide for decision making Reasoned rational, logical, consistent Well Articulated comprehensible by all of the necessary stakeholders Testable can check if you’ve followed it and where the exceptions are Significant not just a truism; would the opposite ever be the case? (Nick Rozanski)
  • 19. VIOLATING PRINCIPLES • Principles can’t always be followed • but when broken must be broken for justifiable reasons • i.e. benefits have to outweigh the costs • This doesn’t (necessarily) reduce their usefulness • reason for breaking a principle is valuable design information • many violations signal the need to revisit the principle • capturing the violation signals a non-standard decision
  • 20. PRACTICAL COMPLICATIONS Identification identifying meaningful principles, avoiding truisms Quantity avoiding excessive number (too many authors?) Description being clear, complete, succinct & understandable Validation difficult to validate and measure the value Communicating often difficult to understand & internalise Retrofitting difficult to apply principles usefully after the fact
  • 22. CONCLUSIONS • Principles provide “laws” to guide the design process • useful at different levels of scale, help to create informed design decisions • Principles can provide traceability • link back to more abstract principles, requirements or goals • justifies decisions by reference to a particular context • Address some common challenges • maintain knowledge, capture rationale, provide context, … • elegant and minimal solution avoid lots of documents
  • 23. FINDING OUT MORE (Yes - really!)
  • 24. THANKYOU … QUESTIONS? Eoin Woods
 Endava
 eoin.woods@endava.com @eoinwoodz