SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Democratising
Software Architecture
Eoin Woods
Endava
@eoinwoodz
ICSA 2019, Hamburg, March 2019
1
Eoin Woods
• Endava’s CTO, based in London
• 10+ years in product dev - Bull, Sybase, InterTrust
• 10 years in capital markets applications - UBS and BGI
• Software engineer, then architect, now CTO
• Software engineer in theory & practice (BSc, MSc, recently PhD)
• Author, editor, speaker, community guy
3
DISCLAIMER
These are my views based on my experience
in the domains I have worked in.
Others may differ in their views !
EVOLVING SOFTWARE ARCHITECTURE
4
5 ages of software Systems
Intelligent
Connected
(2020s)
Internet
is the System
(2010s)
Internet
Connected
(2000s)
Distributed
Monoliths
(1990s)
Monolithic
(1980s)
Architecture has changed too
Computing Era Architecture Concern
Monolithic Era => Structuring programs
Distributed Monoliths Era => Architecture emerges
Internet-Connected Era => Quality properties
Internet-is-the-System Era => Architecture at speed
Intelligent Connected Era => … ?
Historical Context
• Central small group
• Organisation of large pieces
• Relatively static connections
• Largely completed before
implementation
• Structures, qualities,
stakeholders, technology choices
7
https://donmaclennan.com/
What has changed?
8
FLUID
EVOLVING
ARCHITECTURE
DevOps
Microservices
Cloud
Agile
What is the problem?
9
? ?
!!
?
!!
!! ? !!
Our traditional model is of less value
• Constant evolution => less ”certainty” early in lifecycle
• Less decided early in lifecycle =>
less value in thorough ”up front” architecture
10
• Autonomous teams => independent activity
• Independent activity => constant parallel decision making
• Constant decisions => architect overload => blocks progress
Is architecture still needed?
11
• Difficult quality attributes
• Stakeholders don’t go away
• Still have tradeoffs
• Cross cutting concerns across
many independent elements
• BUT traditional ”structural”
focus may need to change
Cross-Cutting Concerns
Tradeoffs
Stakeholders
Quality
Attributes
Yes!
WHAT PRACTITIONERS DO
12
Software Architecture in Practice
• Empowered cross-functional teams
• Less “architects” more “engineers”
• Lightweight description – C4, ADRs
• Code Analysis – dependency visibility
• Runtime Analysis – dependency visibility, trends
• Informal description – Wiki, PowerPoint, Visio
• Modelling – occasional use of UML and Archimate
13
C4 Model
• Simon Brown’s accessible 4-view
model for software architecture
• Context
• Containers
• Component
• Code (class diagram - optional)
• Optional Landscape, Dynamic
and Deployment views
• Structurizr tool
• Widely recognized in industry
14
c4model.com
Architecture Decision Records
• Old idea “rediscovered” by
Michael Nygard in 2011
• Simple textual decision records
using templates
• Stored with the code
• Nygard’s form:
• Title, Status, Context, Decision &
Consequences
15
thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions
github.com/joelparkerhenderson/architecture_decision_record
Code Analysis
• Generally static code analysis
• Open source tools dominate
• SonarQube in particular
• “Code doesn’t lie”
• Main architectural aspect is
dependency analysis
16
Runtime Analysis
• Response to dynamic nature of
microservices
• Distributed monitoring & tracing
• Jaeger, Zipkin
• Prometheus + Grafana
• Log aggregation & analysis - ELK
• AppDynamics & NewRelic
• “Production is reality”
17
Visio, PowerPoint, Wiki, …
• Where most ADs end up
• Quality varies from useless to
very valuable
• Familiar & highly accessible
• Usually custom syntax and
semantics
• Interpretation, precision and
consistency often limited
18
Modelling: UML and Archimate
• Rare choice today
• Their genericity is a difficulty
• UML good base for a DSL … but
significant investment needed
• Archimate useful for EA but not
really solution or software arch
• Tools can get in the way
• Can actually be a
communication barrier
19
A NEW APPROACH
20
21
Architecture is a skill not a role
Principles, styles & patterns over structures
Delegate & share wherever possible
”Little and often” (and adapt)
Aim for “shared commons”
Stream of decisions, not “one off” architecture
Architecture
Work in the
New World
22
Architecture work in every sprint
Decisions, principles, styles, patterns
Deliver decisions as they are needed
Form an inclusive architecture group
Practical tests to validate architecture work
Keep the architecture ”close to the code”
Key
Practices
23
RDCA
(Risk & Cost
Driven
Architecture)
Eltjo Poort, CGI
eltjopoort.nl
Architecturally Evident Code
• George Fairbanks
• Code reflects the architecture
• Names, structures line up
• Changes code packaging
• Can affect testing
• Often “messes up” architecture!
• Can be hard to check
• ArchUnit
24
Common Problems
• Sharing and managing architecture information (AKM)
• Lack of artefacts => misunderstanding, knowledge loss
• Understanding the system-wide view
• Resistance to any design work (“we’re agile”)
• Desire for a ”complete” architecture up front
• Enterprise architects (!)
25
FOR RESEARCH
26
Research vs Practice Disconnection
RESEARCH PRACTICE
Models and theories Technologies, patterns, code
Architecture as separate activity Architecture as dev activity
Completed architecture Just enough architecture
Solving idealised problems Focus on today’s delivery
Papers, academic conferences Github, blogs, conferences
Validation via small survey Validation by production operation27
Some Suggestions
WHILE PLANNING WHILE RESEARCHING
Link to industry projects Prioritise flow of change to
production
Understand practice through OSS Codify ideas in code, patterns,
templates
Watch industry event topics* Be sensitive to adoption effort vs
validation level
Attend industry events* Be aware of standard tools
Consider motivation & validation
28
* QCON, SATURN, DevTernity, JAX, NDC, …
TO CONCLUDE
29
Software development is changing:
so will software architecture
30
Agile + DevOps
change how we WORK
Cloud + Containers
change how we BUILD
Less “Upfront” Architecture
Quality Attributes, Tradeoffs, Stakeholders
Flow Of Decisions & Guidance
Changes to Architect’s Work
Changes to Architect Training
Architect: From Purveyor of Wisdom …
31
… to Trusted Leader and Advisor
32
Eoin Woods
Endava
eoin.woods@endava.com
@eoinwoodz 33
THANK YOU …

Contenu connexe

Tendances

Reducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transitionReducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transitionJoep Piscaer
 
The Evolution of Software for a Startup
The Evolution of Software for a Startup The Evolution of Software for a Startup
The Evolution of Software for a Startup SARCCOM
 
2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_design
2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_design2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_design
2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_designNCC Group
 
Collaborative Development the Gift That Keeps on Giving
Collaborative Development  the Gift That Keeps on GivingCollaborative Development  the Gift That Keeps on Giving
Collaborative Development the Gift That Keeps on GivingBlack Duck by Synopsys
 
Security and Software Engineering BSides St. John's 2017
Security and Software Engineering BSides St. John's 2017Security and Software Engineering BSides St. John's 2017
Security and Software Engineering BSides St. John's 2017Peter Rawsthorne
 
DevSecOps with Microsoft Tech
DevSecOps with Microsoft TechDevSecOps with Microsoft Tech
DevSecOps with Microsoft TechDarin Morris
 
Evaluating Blockchain Companies
Evaluating Blockchain CompaniesEvaluating Blockchain Companies
Evaluating Blockchain CompaniesMike Slinn
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisAaron Stannard
 
Infrastructure as code with test approach
Infrastructure as code with test approachInfrastructure as code with test approach
Infrastructure as code with test approachEnrique Carbonell
 
Designing a Base Building Network – The Integrator's Role
Designing a Base Building Network – The Integrator's RoleDesigning a Base Building Network – The Integrator's Role
Designing a Base Building Network – The Integrator's RoleNJ_OTI
 
Cloud Security Zen: Principles to Meditate On
Cloud Security Zen: Principles to Meditate OnCloud Security Zen: Principles to Meditate On
Cloud Security Zen: Principles to Meditate OnSamuel Reed
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design HeuristicsRebecca Wirfs-Brock
 
Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?Security Innovation
 
Nimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT TemplateNimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT Templatetjain
 

Tendances (19)

Reducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transitionReducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transition
 
The Evolution of Software for a Startup
The Evolution of Software for a Startup The Evolution of Software for a Startup
The Evolution of Software for a Startup
 
2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_design
2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_design2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_design
2012 06-19 --ncc_group_-_iet_seminar_-_mobile_apps_and_secure_by_design
 
Collaborative Development the Gift That Keeps on Giving
Collaborative Development  the Gift That Keeps on GivingCollaborative Development  the Gift That Keeps on Giving
Collaborative Development the Gift That Keeps on Giving
 
Security and Software Engineering BSides St. John's 2017
Security and Software Engineering BSides St. John's 2017Security and Software Engineering BSides St. John's 2017
Security and Software Engineering BSides St. John's 2017
 
DevSecOps with Microsoft Tech
DevSecOps with Microsoft TechDevSecOps with Microsoft Tech
DevSecOps with Microsoft Tech
 
Evaluating Blockchain Companies
Evaluating Blockchain CompaniesEvaluating Blockchain Companies
Evaluating Blockchain Companies
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability Crisis
 
Infrastructure as code with test approach
Infrastructure as code with test approachInfrastructure as code with test approach
Infrastructure as code with test approach
 
Tracing the evolution - Open source & Embedded systems
Tracing the evolution - Open source & Embedded systemsTracing the evolution - Open source & Embedded systems
Tracing the evolution - Open source & Embedded systems
 
Skilling Entry Level Engineers in IoT - A Practical Approach
Skilling Entry Level Engineers in IoT - A Practical ApproachSkilling Entry Level Engineers in IoT - A Practical Approach
Skilling Entry Level Engineers in IoT - A Practical Approach
 
Designing a Base Building Network – The Integrator's Role
Designing a Base Building Network – The Integrator's RoleDesigning a Base Building Network – The Integrator's Role
Designing a Base Building Network – The Integrator's Role
 
Cloud Security Zen: Principles to Meditate On
Cloud Security Zen: Principles to Meditate OnCloud Security Zen: Principles to Meditate On
Cloud Security Zen: Principles to Meditate On
 
Agile Not Fragile
Agile Not FragileAgile Not Fragile
Agile Not Fragile
 
Building careers in embedded
Building careers in embeddedBuilding careers in embedded
Building careers in embedded
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design Heuristics
 
Hacker vs tools
Hacker vs toolsHacker vs tools
Hacker vs tools
 
Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?Hacker vs Tools: Which to Choose?
Hacker vs Tools: Which to Choose?
 
Nimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT TemplateNimble Framework - Software architecture and design in agile era - PSQT Template
Nimble Framework - Software architecture and design in agile era - PSQT Template
 

Similaire à Democratising Software Architecture

Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems DissolveEoin Woods
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for ArchitectsEberhard Wolff
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architektenadesso AG
 
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...Obeo
 
SiriusCon 2017 - 5 years of modeling - Safety Architect
SiriusCon 2017 - 5 years of modeling - Safety ArchitectSiriusCon 2017 - 5 years of modeling - Safety Architect
SiriusCon 2017 - 5 years of modeling - Safety ArchitectJonathan DUMONT
 
Landscape of Architecture and Design Patterns for IoT Systems
Landscape of Architecture and Design Patterns for IoT SystemsLandscape of Architecture and Design Patterns for IoT Systems
Landscape of Architecture and Design Patterns for IoT SystemsHironori Washizaki
 
IoT, ready for business
IoT, ready for businessIoT, ready for business
IoT, ready for businessJon Mikel Inza
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichIvan Paulovich
 
WICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic Wikis
WICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic WikisWICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic Wikis
WICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic WikisRemco de Boer
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use itMark Windholtz
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014Steven Andrews
 
Jeffrey Wheeler Current Resume 2016
Jeffrey Wheeler Current Resume 2016Jeffrey Wheeler Current Resume 2016
Jeffrey Wheeler Current Resume 2016jwheeler1111
 
Architect Concept - .NET Interview Senior / Mid Level
Architect Concept - .NET Interview Senior / Mid Level Architect Concept - .NET Interview Senior / Mid Level
Architect Concept - .NET Interview Senior / Mid Level Asher Jawad
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk NewsESUG
 
Introductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureIntroductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureMaikel Meeuwse
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckUtrecht University
 
Cloud native
Cloud nativeCloud native
Cloud nativeKen Owens
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten ZiegelerICF CIRCUIT
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.pptRohanBorgalli
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 

Similaire à Democratising Software Architecture (20)

Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
 
Ten Advices for Architects
Ten Advices for ArchitectsTen Advices for Architects
Ten Advices for Architects
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
 
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...
SiriusCon 2017 - 5 years of modelisation, from a prototype to an industrial g...
 
SiriusCon 2017 - 5 years of modeling - Safety Architect
SiriusCon 2017 - 5 years of modeling - Safety ArchitectSiriusCon 2017 - 5 years of modeling - Safety Architect
SiriusCon 2017 - 5 years of modeling - Safety Architect
 
Landscape of Architecture and Design Patterns for IoT Systems
Landscape of Architecture and Design Patterns for IoT SystemsLandscape of Architecture and Design Patterns for IoT Systems
Landscape of Architecture and Design Patterns for IoT Systems
 
IoT, ready for business
IoT, ready for businessIoT, ready for business
IoT, ready for business
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
WICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic Wikis
WICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic WikisWICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic Wikis
WICSA 2011 Tutorial T2: Architectural Knowledge Management with Semantic Wikis
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014
 
Jeffrey Wheeler Current Resume 2016
Jeffrey Wheeler Current Resume 2016Jeffrey Wheeler Current Resume 2016
Jeffrey Wheeler Current Resume 2016
 
Architect Concept - .NET Interview Senior / Mid Level
Architect Concept - .NET Interview Senior / Mid Level Architect Concept - .NET Interview Senior / Mid Level
Architect Concept - .NET Interview Senior / Mid Level
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
Introductie slides Agile Software Architecture
Introductie slides Agile Software ArchitectureIntroductie slides Agile Software Architecture
Introductie slides Agile Software Architecture
 
NISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide DeckNISI Agile Software Architecture Slide Deck
NISI Agile Software Architecture Slide Deck
 
Cloud native
Cloud nativeCloud native
Cloud native
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 

Plus de 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
 
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
 
Using Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeUsing Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeEoin 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
 
Deferring the Last Responsible Moment
Deferring the Last Responsible MomentDeferring the Last Responsible Moment
Deferring the Last Responsible MomentEoin Woods
 

Plus de Eoin Woods (6)

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
 
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
 
Using Software Architecture Principles in Practice
Using Software Architecture Principles in PracticeUsing Software Architecture Principles in Practice
Using Software Architecture Principles in Practice
 
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
 
Deferring the Last Responsible Moment
Deferring the Last Responsible MomentDeferring the Last Responsible Moment
Deferring the Last Responsible Moment
 

Dernier

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Dernier (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Democratising Software Architecture

  • 2. Eoin Woods • Endava’s CTO, based in London • 10+ years in product dev - Bull, Sybase, InterTrust • 10 years in capital markets applications - UBS and BGI • Software engineer, then architect, now CTO • Software engineer in theory & practice (BSc, MSc, recently PhD) • Author, editor, speaker, community guy
  • 3. 3 DISCLAIMER These are my views based on my experience in the domains I have worked in. Others may differ in their views !
  • 5. 5 ages of software Systems Intelligent Connected (2020s) Internet is the System (2010s) Internet Connected (2000s) Distributed Monoliths (1990s) Monolithic (1980s)
  • 6. Architecture has changed too Computing Era Architecture Concern Monolithic Era => Structuring programs Distributed Monoliths Era => Architecture emerges Internet-Connected Era => Quality properties Internet-is-the-System Era => Architecture at speed Intelligent Connected Era => … ?
  • 7. Historical Context • Central small group • Organisation of large pieces • Relatively static connections • Largely completed before implementation • Structures, qualities, stakeholders, technology choices 7 https://donmaclennan.com/
  • 9. What is the problem? 9 ? ? !! ? !! !! ? !!
  • 10. Our traditional model is of less value • Constant evolution => less ”certainty” early in lifecycle • Less decided early in lifecycle => less value in thorough ”up front” architecture 10 • Autonomous teams => independent activity • Independent activity => constant parallel decision making • Constant decisions => architect overload => blocks progress
  • 11. Is architecture still needed? 11 • Difficult quality attributes • Stakeholders don’t go away • Still have tradeoffs • Cross cutting concerns across many independent elements • BUT traditional ”structural” focus may need to change Cross-Cutting Concerns Tradeoffs Stakeholders Quality Attributes Yes!
  • 13. Software Architecture in Practice • Empowered cross-functional teams • Less “architects” more “engineers” • Lightweight description – C4, ADRs • Code Analysis – dependency visibility • Runtime Analysis – dependency visibility, trends • Informal description – Wiki, PowerPoint, Visio • Modelling – occasional use of UML and Archimate 13
  • 14. C4 Model • Simon Brown’s accessible 4-view model for software architecture • Context • Containers • Component • Code (class diagram - optional) • Optional Landscape, Dynamic and Deployment views • Structurizr tool • Widely recognized in industry 14 c4model.com
  • 15. Architecture Decision Records • Old idea “rediscovered” by Michael Nygard in 2011 • Simple textual decision records using templates • Stored with the code • Nygard’s form: • Title, Status, Context, Decision & Consequences 15 thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions github.com/joelparkerhenderson/architecture_decision_record
  • 16. Code Analysis • Generally static code analysis • Open source tools dominate • SonarQube in particular • “Code doesn’t lie” • Main architectural aspect is dependency analysis 16
  • 17. Runtime Analysis • Response to dynamic nature of microservices • Distributed monitoring & tracing • Jaeger, Zipkin • Prometheus + Grafana • Log aggregation & analysis - ELK • AppDynamics & NewRelic • “Production is reality” 17
  • 18. Visio, PowerPoint, Wiki, … • Where most ADs end up • Quality varies from useless to very valuable • Familiar & highly accessible • Usually custom syntax and semantics • Interpretation, precision and consistency often limited 18
  • 19. Modelling: UML and Archimate • Rare choice today • Their genericity is a difficulty • UML good base for a DSL … but significant investment needed • Archimate useful for EA but not really solution or software arch • Tools can get in the way • Can actually be a communication barrier 19
  • 21. 21 Architecture is a skill not a role Principles, styles & patterns over structures Delegate & share wherever possible ”Little and often” (and adapt) Aim for “shared commons” Stream of decisions, not “one off” architecture Architecture Work in the New World
  • 22. 22 Architecture work in every sprint Decisions, principles, styles, patterns Deliver decisions as they are needed Form an inclusive architecture group Practical tests to validate architecture work Keep the architecture ”close to the code” Key Practices
  • 24. Architecturally Evident Code • George Fairbanks • Code reflects the architecture • Names, structures line up • Changes code packaging • Can affect testing • Often “messes up” architecture! • Can be hard to check • ArchUnit 24
  • 25. Common Problems • Sharing and managing architecture information (AKM) • Lack of artefacts => misunderstanding, knowledge loss • Understanding the system-wide view • Resistance to any design work (“we’re agile”) • Desire for a ”complete” architecture up front • Enterprise architects (!) 25
  • 27. Research vs Practice Disconnection RESEARCH PRACTICE Models and theories Technologies, patterns, code Architecture as separate activity Architecture as dev activity Completed architecture Just enough architecture Solving idealised problems Focus on today’s delivery Papers, academic conferences Github, blogs, conferences Validation via small survey Validation by production operation27
  • 28. Some Suggestions WHILE PLANNING WHILE RESEARCHING Link to industry projects Prioritise flow of change to production Understand practice through OSS Codify ideas in code, patterns, templates Watch industry event topics* Be sensitive to adoption effort vs validation level Attend industry events* Be aware of standard tools Consider motivation & validation 28 * QCON, SATURN, DevTernity, JAX, NDC, …
  • 30. Software development is changing: so will software architecture 30 Agile + DevOps change how we WORK Cloud + Containers change how we BUILD Less “Upfront” Architecture Quality Attributes, Tradeoffs, Stakeholders Flow Of Decisions & Guidance Changes to Architect’s Work Changes to Architect Training
  • 31. Architect: From Purveyor of Wisdom … 31
  • 32. … to Trusted Leader and Advisor 32