SlideShare a Scribd company logo
Architecture
Fundamentals
#event-arch-fund
Learning Objectives
How architecture benefits me
How architecture benefits my project
What is architecture
How an architect fits in
Agenda
Boring stuff about me
What is Architecture?
Architectural Styles
Principles of Architecture
Case Study
Me!
Reda Hmeid
Head of Solutions
A bit more about me
Middlesex County Schools u15 Rugby Champion
Middlesex County Schools u15 Rugby Player
British Junior Kickboxing Champion 1992
Leading goalscorer of all time for HH in British Airways 7 a-side
league
Managed 10 press-ups in a row a month ago
1.
What is Architecture?
Just drawing some boxes
Your views
Some thoughts
Boxes with lines between them in some
sensible manner.
Tex Soh
A clear map of the physical nature of the
system/s with which you are working.
Andrew Bateson
“Computer architecture, like other
architecture, is the art of determining the
needs of the user of a structure and then
designing to meet those needs as
effectively as possible within economic
and technological constraints.
Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
“Computer architecture, like other
architecture, is the art of determining the
needs of the user of a structure and then
designing to meet those needs as
effectively as possible within economic
and technological constraints.
Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
“Computer architecture, like other
architecture, is the art of determining the
needs of the user of a structure and then
designing to meet those needs as
effectively as possible within economic
and technological constraints.
Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
“Computer architecture, like other
architecture, is the art of determining the
needs of the user of a structure and then
designing to meet those needs as
effectively as possible within economic
and technological constraints.
Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
“Computer architecture, like other
architecture, is the art of determining the
needs of the user of a structure and then
designing to meet those needs as
effectively as possible within economic
and technological constraints.
Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
“Software architecture defines the
components of a system; what they
do, what they are, and how they
interact (i.e. their interfaces).
David Slauson 2016 (Facebook)
“Software architecture defines the
components of a system; what they
do, what they are, and how they
interact (i.e. their interfaces).
David Slauson 2016 (Facebook)
“Software architecture defines the
components of a system; what they
do, what they are, and how they
interact (i.e. their interfaces).
David Slauson 2016 (Facebook)
“Software architecture defines the
components of a system; what they
do, what they are, and how they
interact (i.e. their interfaces).
David Slauson 2016 (Facebook)
Difference between Architecture and Design
Architecture Design
Customer
Microservice
Customer Microservice
Customer
Controller Customer
Connector
Customer Utils
Self Assessment
Microservice
Customer
Database
2.
Architectural Styles
“Architecture patterns (ed: or
Styles) help define the basic
characteristics and behavior of
an application.
Software Architecture Patterns, Mark Richards
Layered/Tiered
Front End Layer
Business Layer
Data Layer
UtilityLayer
DomainLayer
Layered/Tiered
Front End Layer
Business Layer
Data Layer
UtilityLayer
DomainLayer
Process Layer
SOAMicroservices
Process Services
ESB
Business Services
Data Services
Service Based Architectures
Comparison
Microservices
1. Choreography
2. Own DB
3. Domain driven
4. Full Stack Teams
5. Self contained
6. Polyglot
7. Usually REST (or REST-like)
8. Less Coupled
SOA
1. Orchestration
2. Shared DB
3. BPM Driven
4. Factories
5. Separately deployable
6. Technology limited
7. Usually SOAP (over HTTP or JMS)
8. More Coupled
REST
Described by Roy Fielding in his 2000 thesis.
“REST is defined by four interface constraints: identification of
resources; manipulation of resources through representations; self-
descriptive messages; and, hypermedia as the engine of application
state”
Other Architectural Styles
Event-Driven Architectures
Microkernel Architectures
Space Based Architectures
3.
Principles of Architecture
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
An architecture that is not based on
achieving business goals is not a good
architecture. Not matter how “pure” it is.
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Technical, people, infrastructure, financial,
requirements
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Deliver an architecture to fulfill the
requirements - no more. If a response
time of 2 seconds is ok, deliver an
architecture for a 2 seconds response
time.
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Fail to prepare, prepare to fail.
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Complexity is a measurement of the
number of components within a system,
the number of interactions between those
components and what those interactions
look like.
Greater the complexity, the greater the
development effort, the testing effort, the
maintenance effort and support effort. It
increases the potential number of points
failure and the number of bugs.
Some architectural styles are inherently
more complex.
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Architectural decisions that increase
complexity must be based on evidence:
Metrics
User Research
Expert Opinion
Technology Characteristics
Product Owner opinion
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
“Each software module should have one
and only one reason to change”
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
The reusability of a component is not
measured by whether or not it has been
reused, but by whether it could be reused.
Reusability is the ability of multiple clients
to reuse the same functionality.
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Resume Driven Architecture - the
inappropriate use of a technology to
boost one’s resume.
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Coupling components makes change
more difficult and less likely.
Some types of coupling:
External Data Structure
Data Format
Control
Common or module coupling
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Abstraction is the hiding of
implementation details from client
systems or components.
This is usually through well defined
interfaces and components
BEWARE: Do not overdo the abstraction
12 Principles of Architecture
1. Achieve business goals
2. Constraints are King
3. Just enough is always plenty
4. Architect for Change
5. Minimise Complexity
6. Evidence Based
7. Single Responsibility Principle
8. Reusable components
9. Avoid RDA
10. Loose Coupling
11. Abstraction
12. Don’t reinvent the wheel
Use established technologies, whether
internal or 3rd party where reasonably
possible.
Use the 80/20 rule
12 Principles of Architecture
Case Study
Business Goals
Increase Customer Satisfaction through greater understanding
Increase Revenue
Business Requirements
Use real-time analytics to understand our customer better to make an
informed suggestion on Next Best Action.
Constraints
Java developers
Most development by 3rd party suppliers
2 seconds end-to-end response times
6 month initial delivery
Existing Architecture
Offline analysis through modelling produces customer and business
related values
These are fed in from the data warehouse using ETL daily and
stored in an Oracle Database
A customer component used to retrieve any and all customer
related data
A provided equation (I want to say regression equation) is used in
real time, taking in the request and customer and business related
values to produce an answer
The web uses the “decisions” to display the appropriate content
Next Phase
A real time decisioning engine has been procured, that will make use of
existing data to suggest next best actions. This has been procured on a
1 year trial basis.
Go
Upcoming talks
Rest Architectural Style
Microservices Architecture
Communicating Architecture
Web Security Fundamentals & Advanced
Strategic Domain Driven Design
Machine Learning
Intro to Git
Homework
Single Responsibility Principle - https://blog.8thlight.com/uncle-
bob/2014/05/08/SingleReponsibilityPrinciple.html
Software Architecture Patterns - http://www.oreilly.
com/programming/free/files/software-architecture-patterns.pdf
Who needs an architect? - http://martinfowler.
com/ieeeSoftware/whoNeedsArchitect.pdf
Building Microservices - Sam Newman
Architectural Styles and the design of network based software
architecture (Roy Fielding) - https://www.ics.uci.
edu/~fielding/pubs/dissertation/top.htm
https://confluence.tools.tax.service.gov.
uk/display/AR/Courses
thanks!
Any questions?

More Related Content

PDF
Applying Design Principles in Practice
PPTX
An introduction to fundamental architecture concepts
PPTX
Design process
PPT
O'Reilly Webcast: Ten Things Every Software Architect Should Know
PDF
How to Develop Architectural concepts
PDF
Introduction to Software Architecture
PPT
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...
PPT
Distinguishing Analysis from Design
Applying Design Principles in Practice
An introduction to fundamental architecture concepts
Design process
O'Reilly Webcast: Ten Things Every Software Architect Should Know
How to Develop Architectural concepts
Introduction to Software Architecture
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...
Distinguishing Analysis from Design

What's hot (11)

PDF
Patterns of Evolutionary Architecture
PDF
Patterns of Evolutionary Architecture - Agile and Beyond 2018
PDF
Oop 2014 sw architekt v3
PPTX
Basic Engineering Design (Part 1): Identify the Problem
PPTX
A complexity approach to managing technology enabled business transformation ...
PDF
10 Hinweise für Architekten
PDF
Chapter2 framework-for-design
PPT
Cs 1023 lec 5 (week 1) edit 1
PDF
Framing the Problem
PDF
Design process
PDF
software-architecture-patterns
Patterns of Evolutionary Architecture
Patterns of Evolutionary Architecture - Agile and Beyond 2018
Oop 2014 sw architekt v3
Basic Engineering Design (Part 1): Identify the Problem
A complexity approach to managing technology enabled business transformation ...
10 Hinweise für Architekten
Chapter2 framework-for-design
Cs 1023 lec 5 (week 1) edit 1
Framing the Problem
Design process
software-architecture-patterns
Ad

Viewers also liked (20)

PDF
Learning to Love Humans: Emotional Interface Design
PDF
CHUPA Exhibits 2015
PPTX
Emotional design & Design for emotion
PPT
551udl
PDF
Considering Socio-cultural Sustainability in the Architectural Design Process...
PDF
Architecture Debates مناظرات معمارية
PDF
Restful design principles
PDF
Emotion Driven design
PDF
Oh Behave! - How to stimulate (positive) behaviour through emotion-driven des...
PPT
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 Aesthetics
PPTX
Privacy (architectural behaviour)
PPTX
Interiors
PPTX
motivation model
PPT
Principles
PDF
Emotional Design & Human Behavior
PPTX
Three levels of design
PDF
Emotion Driven Design
PPT
Design for Emotion and Flow
PPT
M Arch Living Architecture
PPTX
humanities principle of visual art
Learning to Love Humans: Emotional Interface Design
CHUPA Exhibits 2015
Emotional design & Design for emotion
551udl
Considering Socio-cultural Sustainability in the Architectural Design Process...
Architecture Debates مناظرات معمارية
Restful design principles
Emotion Driven design
Oh Behave! - How to stimulate (positive) behaviour through emotion-driven des...
Architectural Design 1 Lectures by Dr. Yasser Mahgoub - Lecture 10 Aesthetics
Privacy (architectural behaviour)
Interiors
motivation model
Principles
Emotional Design & Human Behavior
Three levels of design
Emotion Driven Design
Design for Emotion and Flow
M Arch Living Architecture
humanities principle of visual art
Ad

Similar to Architecture fundamentals (20)

PDF
O.Savchenko FWDays workshop Software Architecture
PPT
Architectural Thinking - What Is Architecture?
PPTX
Software Engineering Architectural Design
PDF
Modern Agile Software Architecture
PPTX
Architecture Design
PDF
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
PDF
Software architecture for developers
DOCX
Software architecture Unit 1 notes
PDF
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
PDF
Scott Whitmire - Just What is Architecture Anyway
PPTX
Software Architecture Practices
PPTX
Software Architecture and Design
PPTX
Introduction to Software architecture and design.pptx
PDF
An Introduction To Fundamental Architecture Concepts
PDF
Design & Implementation of Microservices - James Lewis
PPTX
Introduction to the Microsoft Azure Cloud.pptx
PPT
3 analysis and design overview
PPT
Chapter1
PPTX
1 introduction to sa
PPTX
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx
O.Savchenko FWDays workshop Software Architecture
Architectural Thinking - What Is Architecture?
Software Engineering Architectural Design
Modern Agile Software Architecture
Architecture Design
Software Engineering-Unit 4 "Architectural Design" by Adi.pdf
Software architecture for developers
Software architecture Unit 1 notes
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
Scott Whitmire - Just What is Architecture Anyway
Software Architecture Practices
Software Architecture and Design
Introduction to Software architecture and design.pptx
An Introduction To Fundamental Architecture Concepts
Design & Implementation of Microservices - James Lewis
Introduction to the Microsoft Azure Cloud.pptx
3 analysis and design overview
Chapter1
1 introduction to sa
chapter-6-Software_Engineering_P1_MohamedElhawy_19135002.pptx

More from Reda Hmeid MBCS (7)

PPTX
Custom built software and blts are not the same
PPTX
Building beautiful apis
PPTX
Make architecture great again
PPTX
The rise of the agile architect
PDF
The Rise of the Agile Architect
PDF
Practical guide to building public APIs
PDF
5 Golden Rules to Building APIs
Custom built software and blts are not the same
Building beautiful apis
Make architecture great again
The rise of the agile architect
The Rise of the Agile Architect
Practical guide to building public APIs
5 Golden Rules to Building APIs

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Electronic commerce courselecture one. Pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
Teaching material agriculture food technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
cuic standard and advanced reporting.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
Review of recent advances in non-invasive hemoglobin estimation
Digital-Transformation-Roadmap-for-Companies.pptx
sap open course for s4hana steps from ECC to s4
20250228 LYD VKU AI Blended-Learning.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
MIND Revenue Release Quarter 2 2025 Press Release
Per capita expenditure prediction using model stacking based on satellite ima...
Network Security Unit 5.pdf for BCA BBA.
Electronic commerce courselecture one. Pdf
Spectral efficient network and resource selection model in 5G networks
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Teaching material agriculture food technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
cuic standard and advanced reporting.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Approach and Philosophy of On baking technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Chapter 3 Spatial Domain Image Processing.pdf

Architecture fundamentals

  • 3. Learning Objectives How architecture benefits me How architecture benefits my project What is architecture How an architect fits in
  • 4. Agenda Boring stuff about me What is Architecture? Architectural Styles Principles of Architecture Case Study
  • 6. A bit more about me Middlesex County Schools u15 Rugby Champion Middlesex County Schools u15 Rugby Player British Junior Kickboxing Champion 1992 Leading goalscorer of all time for HH in British Airways 7 a-side league Managed 10 press-ups in a row a month ago
  • 7. 1. What is Architecture? Just drawing some boxes
  • 9. Some thoughts Boxes with lines between them in some sensible manner. Tex Soh A clear map of the physical nature of the system/s with which you are working. Andrew Bateson
  • 10. “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints. Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
  • 11. “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints. Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
  • 12. “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints. Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
  • 13. “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints. Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
  • 14. “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints. Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962
  • 15. “Software architecture defines the components of a system; what they do, what they are, and how they interact (i.e. their interfaces). David Slauson 2016 (Facebook)
  • 16. “Software architecture defines the components of a system; what they do, what they are, and how they interact (i.e. their interfaces). David Slauson 2016 (Facebook)
  • 17. “Software architecture defines the components of a system; what they do, what they are, and how they interact (i.e. their interfaces). David Slauson 2016 (Facebook)
  • 18. “Software architecture defines the components of a system; what they do, what they are, and how they interact (i.e. their interfaces). David Slauson 2016 (Facebook)
  • 19. Difference between Architecture and Design Architecture Design Customer Microservice Customer Microservice Customer Controller Customer Connector Customer Utils Self Assessment Microservice Customer Database
  • 21. “Architecture patterns (ed: or Styles) help define the basic characteristics and behavior of an application. Software Architecture Patterns, Mark Richards
  • 22. Layered/Tiered Front End Layer Business Layer Data Layer UtilityLayer DomainLayer
  • 23. Layered/Tiered Front End Layer Business Layer Data Layer UtilityLayer DomainLayer Process Layer
  • 24. SOAMicroservices Process Services ESB Business Services Data Services Service Based Architectures
  • 25. Comparison Microservices 1. Choreography 2. Own DB 3. Domain driven 4. Full Stack Teams 5. Self contained 6. Polyglot 7. Usually REST (or REST-like) 8. Less Coupled SOA 1. Orchestration 2. Shared DB 3. BPM Driven 4. Factories 5. Separately deployable 6. Technology limited 7. Usually SOAP (over HTTP or JMS) 8. More Coupled
  • 26. REST Described by Roy Fielding in his 2000 thesis. “REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self- descriptive messages; and, hypermedia as the engine of application state”
  • 27. Other Architectural Styles Event-Driven Architectures Microkernel Architectures Space Based Architectures
  • 29. 12 Principles of Architecture 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel
  • 30. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel An architecture that is not based on achieving business goals is not a good architecture. Not matter how “pure” it is. 12 Principles of Architecture
  • 31. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Technical, people, infrastructure, financial, requirements 12 Principles of Architecture
  • 32. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Deliver an architecture to fulfill the requirements - no more. If a response time of 2 seconds is ok, deliver an architecture for a 2 seconds response time. 12 Principles of Architecture
  • 33. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Fail to prepare, prepare to fail. 12 Principles of Architecture
  • 34. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Complexity is a measurement of the number of components within a system, the number of interactions between those components and what those interactions look like. Greater the complexity, the greater the development effort, the testing effort, the maintenance effort and support effort. It increases the potential number of points failure and the number of bugs. Some architectural styles are inherently more complex. 12 Principles of Architecture
  • 35. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Architectural decisions that increase complexity must be based on evidence: Metrics User Research Expert Opinion Technology Characteristics Product Owner opinion 12 Principles of Architecture
  • 36. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel “Each software module should have one and only one reason to change” 12 Principles of Architecture
  • 37. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel The reusability of a component is not measured by whether or not it has been reused, but by whether it could be reused. Reusability is the ability of multiple clients to reuse the same functionality. 12 Principles of Architecture
  • 38. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Resume Driven Architecture - the inappropriate use of a technology to boost one’s resume. 12 Principles of Architecture
  • 39. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Coupling components makes change more difficult and less likely. Some types of coupling: External Data Structure Data Format Control Common or module coupling 12 Principles of Architecture
  • 40. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Abstraction is the hiding of implementation details from client systems or components. This is usually through well defined interfaces and components BEWARE: Do not overdo the abstraction 12 Principles of Architecture
  • 41. 1. Achieve business goals 2. Constraints are King 3. Just enough is always plenty 4. Architect for Change 5. Minimise Complexity 6. Evidence Based 7. Single Responsibility Principle 8. Reusable components 9. Avoid RDA 10. Loose Coupling 11. Abstraction 12. Don’t reinvent the wheel Use established technologies, whether internal or 3rd party where reasonably possible. Use the 80/20 rule 12 Principles of Architecture
  • 43. Business Goals Increase Customer Satisfaction through greater understanding Increase Revenue
  • 44. Business Requirements Use real-time analytics to understand our customer better to make an informed suggestion on Next Best Action.
  • 45. Constraints Java developers Most development by 3rd party suppliers 2 seconds end-to-end response times 6 month initial delivery
  • 46. Existing Architecture Offline analysis through modelling produces customer and business related values These are fed in from the data warehouse using ETL daily and stored in an Oracle Database A customer component used to retrieve any and all customer related data A provided equation (I want to say regression equation) is used in real time, taking in the request and customer and business related values to produce an answer The web uses the “decisions” to display the appropriate content
  • 47. Next Phase A real time decisioning engine has been procured, that will make use of existing data to suggest next best actions. This has been procured on a 1 year trial basis.
  • 48. Go
  • 50. Rest Architectural Style Microservices Architecture Communicating Architecture Web Security Fundamentals & Advanced Strategic Domain Driven Design Machine Learning Intro to Git
  • 52. Single Responsibility Principle - https://blog.8thlight.com/uncle- bob/2014/05/08/SingleReponsibilityPrinciple.html Software Architecture Patterns - http://www.oreilly. com/programming/free/files/software-architecture-patterns.pdf Who needs an architect? - http://martinfowler. com/ieeeSoftware/whoNeedsArchitect.pdf Building Microservices - Sam Newman Architectural Styles and the design of network based software architecture (Roy Fielding) - https://www.ics.uci. edu/~fielding/pubs/dissertation/top.htm