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

Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...Konveyor Community
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps IntroductionRobert Sell
 
Azure Devops Build Tools for Powerapps
Azure Devops Build Tools for PowerappsAzure Devops Build Tools for Powerapps
Azure Devops Build Tools for PowerappsJoost Veldhuis, MSc
 
ArchiMate technology layer - Simplify the models
ArchiMate technology layer - Simplify the modelsArchiMate technology layer - Simplify the models
ArchiMate technology layer - Simplify the modelsCOMPETENSIS
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignRyan Riley
 
2019 07 Bizbok with Archimate 3 v3 [UPDATED !]
 2019 07 Bizbok with Archimate 3 v3 [UPDATED !] 2019 07 Bizbok with Archimate 3 v3 [UPDATED !]
2019 07 Bizbok with Archimate 3 v3 [UPDATED !]COMPETENSIS
 
Cloud transformation and Evolution of Integration Patterns
Cloud transformation and Evolution of Integration PatternsCloud transformation and Evolution of Integration Patterns
Cloud transformation and Evolution of Integration PatternsSrikanth Prathipati
 
Hardening Kubernetes by Securing Pods
Hardening Kubernetes by Securing PodsHardening Kubernetes by Securing Pods
Hardening Kubernetes by Securing PodsSuraj Deshmukh
 
Working with kubernetes
Working with kubernetesWorking with kubernetes
Working with kubernetesNagaraj Shenoy
 
Use a Cabeça! Python_Português.pdf
Use a Cabeça! Python_Português.pdfUse a Cabeça! Python_Português.pdf
Use a Cabeça! Python_Português.pdfMaxCoalastudio
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenTrang Nguyen
 
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...Amazon Web Services
 

What's hot (20)

Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
 
Effective terraform
Effective terraformEffective terraform
Effective terraform
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
ArchiMate 3.0 na prática
ArchiMate 3.0 na práticaArchiMate 3.0 na prática
ArchiMate 3.0 na prática
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Azure Devops Build Tools for Powerapps
Azure Devops Build Tools for PowerappsAzure Devops Build Tools for Powerapps
Azure Devops Build Tools for Powerapps
 
Dissecting SysML v2.pptx
Dissecting SysML v2.pptxDissecting SysML v2.pptx
Dissecting SysML v2.pptx
 
ArchiMate technology layer - Simplify the models
ArchiMate technology layer - Simplify the modelsArchiMate technology layer - Simplify the models
ArchiMate technology layer - Simplify the models
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
2019 07 Bizbok with Archimate 3 v3 [UPDATED !]
 2019 07 Bizbok with Archimate 3 v3 [UPDATED !] 2019 07 Bizbok with Archimate 3 v3 [UPDATED !]
2019 07 Bizbok with Archimate 3 v3 [UPDATED !]
 
Cloud transformation and Evolution of Integration Patterns
Cloud transformation and Evolution of Integration PatternsCloud transformation and Evolution of Integration Patterns
Cloud transformation and Evolution of Integration Patterns
 
Hardening Kubernetes by Securing Pods
Hardening Kubernetes by Securing PodsHardening Kubernetes by Securing Pods
Hardening Kubernetes by Securing Pods
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Working with kubernetes
Working with kubernetesWorking with kubernetes
Working with kubernetes
 
Use a Cabeça! Python_Português.pdf
Use a Cabeça! Python_Português.pdfUse a Cabeça! Python_Português.pdf
Use a Cabeça! Python_Português.pdf
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Solution Architecture
Solution ArchitectureSolution Architecture
Solution Architecture
 
Devops
DevopsDevops
Devops
 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang Nguyen
 
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
 

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

%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 

Recently uploaded (20)

%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 

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