SlideShare a Scribd company logo
1 of 37
Download to read offline
by KANNAN DURAIRAJ, Domain Architect - Digital
Software Engineer and Architect
Software Architecture
● Introduction - Software Architecture
● Forms of Architecture
● Architecture vs Design
● Architectural Patterns
● Design Patterns
● Diagrams
● Agile + Architecture
● Principles - Architecture and Design
● Recap
● References
Agenda
Architecture is it a Perspective?
How to see things in a meaningful way?
Need for Architecture
“Where Business meets Technology”
Definition
The fundamental organization of a system
embodied in its components, their
relationships to each other, and to the
environment, and the principles guiding its
design and evolution. Usually captured as a
diagram.
My Definition
A shared understanding among various team
members (business, product, development,
operations) about an application or a set of
applications that deliver business value by
building platform capabilities that are robust,
flexible - open for extension, composable by
nature, and can be orchestrated to produce an
optimal solutions for a business and add value
to the end user.
In Nutshell
Define
Boundaries / Contracts / Responsibility
of Software Components
Architectural Boundaries
Imagine Success
With Boundary Without Boundary
What are architectural considerations?
● Hard choices in Software
● Expensive part of Development and Delivery
● Important stuff!
● Business Value vs Platform Capability
current vs future
What are those hard choices?
Any thoughts?
Hard things and important stuff:
● Programming Language - Fit, Tools and Skills
● Reversibility - heights of tight coupling
● Building on top of unstable platform or software
● Over Engineering (should be Agile, right?)
● Complex frameworks and dependencies (YAGNI)
● Deployment Environment, DevOps
● Compliance, Security and Performance
Why Architecture is so important?
What & Why Where How
Product Feature Platform Capability Implementation
UX & CX Cross-Cutting Develop & Test
Customer Value Concerns Plays by
Component / System boundaries
Define Boundaries
Forms of Architecture
Forms of Architecture
System Architecture
Component Architecture
Application Architecture
Data / Information Architecture
Integration Architecture
IT / Network / Infrastructure Architecture
Enterprise Architecture
Software Architects = City Planners
city keeps changing… so does software!
Architect Roles
Integration Architect
Application / Technical Architect
Solution Architect / Solution Designer
Domain Architect
Enterprise Architect
Principal / Chief Architect
Software Architecture and Software Design - is it the
same thing?
Which one is more important?
Both are important - one can’t survive without the
other.
Let's look at the Definition of ‘Software Design’
Definition: Software Design
The fundamental organization of
code/modules within a component, and its
relationships to each other, and to the run
time environment, and the principles guiding
its development to deliver a specific
goal/functionality of an overall solutions.
Usually referred to as Application or Module
design.
Patterns
Patterns
In software engineering, a software design pattern is a
general reusable solution to a commonly occurring problem
within a given context in software design. It is not a
finished design that can be transformed directly into source
or machine code.
An architectural pattern is a general reusable solution to a
commonly occurring problem in software architecture
within a given context. Architectural patterns are similar
to software design pattern but have a broader scope.
Architectural Patterns
● Service-Oriented (SOA) and Microservices
● Event-Driven / MOM / ESB
● Layers
● Multi-Tier (2-tier, 3-tier, n-tier) / Client-Server
● Model-View-Controller,
Presentation-Abstraction-Control,
Model-View-Presenter, Model-View-ViewModel
Architecture Styles
Structure
● Component-based, monolithic, Layered, etc
Messaging
● Event Driven, Pub-Sub, Async Messaging, etc
Adaptive
● Plugin, Reflection, etc
Distributed
● Client-Server, REST, SOA, Microservices, etc
Design Patterns
Creational
● Abstract Factory, Builder, Factory Method,
Singleton, Prototype
Structural
● Bridge, Adapter, Composite, Decorator, Facade,
Proxy, Flyweight
Behavioral
● Command, Observer, Visitor, Chain of
Responsibility, etc..
Diagrams
Why Diagrams?
● Nothing but a form of “representation”
● Simple to understand, common language
● Simplifies Complexity (conceptualize)
● Abstracts code/development
● Logical + Data Flow + Integration View
Agile
&
Architecture
Agile + Architecture
Software Architecture in Agile Development Process
● Evolutionary Architecture and Emergent Design
● YAGNI
● Defer until the last responsible moment
● Refactoring
● Spikes, Stripes and Tracers
● Pragmatic
Agile Architecture
It's about “Just Enough”
- Boundaries, Structure, Vision and Leadership
- Understand how the significant elements fit
together
- Provide the foundations and vision to move
forward
- Mitigate the key risks
Agile Architecture “Guiding Principles”
● Last Responsible Moment
● Continuous Integration
● Lightweight, Living Documentation
● Continuous Delivery
● Adapt for Organizational Structure
● Design for Replaceability
Architectural Patterns will evolve over time
● Microservices
● API Layers
- Experience, Gateway, Application / System, Core
● new
Serverless / FaaS
● IoT, Smart Watch, Smart Cars - Tesla / Driverless
● new
Unikernels - Clive, MirageOS, Rump Kernels
Key Enablers
a.k.a
Platform for Business
External Enablers (Industry / Market Push)
Cloud Infrastructure
- Agility
- Elasticity of Compute Resources
SaaS
- Integration is easy, follow standards - REST, SAML
Microservices and API
- deliver faster, deliver frequently
Internal Enablers
The two key enablers are:
● A high-speed culture
○ A poor culture inhibits organisational changes designed to increase
speed.
○ Improve decision-making processes, can’t slow down delivery
● Strategic focus - two critical elements:
○ a clear strategic goal and
○ a focused strategic agenda.
If the culture injects the fuel for speed, strategic focus delivers the grip and
traction.
Recap
● Software Architecture is a shared responsibility
● Ask ‘what, why, where’ before ‘how’
● Patterns and Principles (Architecture & Design)
● Cool Diagrams!!
● Collaboration, close the feedback loop
● Agility in process is only half good without
Architecture agility
● Market Hypes & Internal Culture
Conclusion
Embrace by participation
● Minimum Viable Architecture / Agile Architecture
● Don’t think Architecture as just
● Architecture Solution is a living document just like
API documentation

More Related Content

What's hot

Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0iasaglobal
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsRebecca Wirfs-Brock
 
Architecture in an Agile World
Architecture in an Agile WorldArchitecture in an Agile World
Architecture in an Agile WorldDon McGreal
 
Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons
Principles and Techniques of Evolutionary Architecture with Dr. Rebecca ParsonsPrinciples and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons
Principles and Techniques of Evolutionary Architecture with Dr. Rebecca ParsonsBamdad Dashtban
 
Agile Architecture
Agile Architecture Agile Architecture
Agile Architecture VMware Tanzu
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecturePeter Hendriks
 
WANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setWANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setBrad Appleton
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software ArchitectureJérôme Kehrli
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011atlantascrum
 
Prerequisites for evolutionary architecture
Prerequisites for evolutionary architecturePrerequisites for evolutionary architecture
Prerequisites for evolutionary architectureChris Howe-Jones
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile ArchitectureThomas Malt
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectRandy Ynchausti
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design HeuristicsRebecca Wirfs-Brock
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile ArchitectureSteve Green
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010Gary Pedretti
 

What's hot (20)

Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0Adam boczek 2015 agile architecture in 10 steps v1.0
Adam boczek 2015 agile architecture in 10 steps v1.0
 
Why We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile ProjectsWhy We Need Architects (and Architecture) on Agile Projects
Why We Need Architects (and Architecture) on Agile Projects
 
Architecture in an Agile World
Architecture in an Agile WorldArchitecture in an Agile World
Architecture in an Agile World
 
Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons
Principles and Techniques of Evolutionary Architecture with Dr. Rebecca ParsonsPrinciples and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons
Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons
 
Agile Architecture
Agile Architecture Agile Architecture
Agile Architecture
 
The tension between agile and architecture
The tension between agile and architectureThe tension between agile and architecture
The tension between agile and architecture
 
WANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-setWANTED: Seeking Single Agile Knowledge Development Tool-set
WANTED: Seeking Single Agile Knowledge Development Tool-set
 
The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
Introduction to Modern Software Architecture
Introduction to Modern Software ArchitectureIntroduction to Modern Software Architecture
Introduction to Modern Software Architecture
 
Architectural runway
Architectural runwayArchitectural runway
Architectural runway
 
Future Role of the Architect
Future Role of the ArchitectFuture Role of the Architect
Future Role of the Architect
 
Emergent Architecture - March 2011
Emergent Architecture - March 2011Emergent Architecture - March 2011
Emergent Architecture - March 2011
 
software
softwaresoftware
software
 
Prerequisites for evolutionary architecture
Prerequisites for evolutionary architecturePrerequisites for evolutionary architecture
Prerequisites for evolutionary architecture
 
Introduction to Agile Architecture
Introduction to Agile ArchitectureIntroduction to Agile Architecture
Introduction to Agile Architecture
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software Architect
 
Cultivating Your Design Heuristics
Cultivating Your Design HeuristicsCultivating Your Design Heuristics
Cultivating Your Design Heuristics
 
Agile Architecture
Agile ArchitectureAgile Architecture
Agile Architecture
 
Agile Modeling using the Architecture Tools in VS 2010
Agile Modeling  using the Architecture Tools in VS 2010Agile Modeling  using the Architecture Tools in VS 2010
Agile Modeling using the Architecture Tools in VS 2010
 

Similar to Modern Agile Software Architecture

IT architecture and architects
IT architecture and architectsIT architecture and architects
IT architecture and architectsAndre Dovgal
 
Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?iasaglobal
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
O.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software ArchitectureO.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software ArchitectureAlexandr Savchenko
 
Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Daniel Leroux
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and RhapsodyMartin Owen
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...IBM Rational
 
The Benefits Of Software Creation
The Benefits Of Software CreationThe Benefits Of Software Creation
The Benefits Of Software CreationJennifer Wood
 
CIS Infrastructure Group Don Mori Profile 2016
CIS Infrastructure Group Don Mori Profile 2016CIS Infrastructure Group Don Mori Profile 2016
CIS Infrastructure Group Don Mori Profile 2016Don Mori
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise ArchitectureWSO2
 
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...MysoreMuleSoftMeetup
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 
Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedLuram Archanjo
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2bmercer
 
Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Richard Green
 

Similar to Modern Agile Software Architecture (20)

IT architecture and architects
IT architecture and architectsIT architecture and architects
IT architecture and architects
 
Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
O.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software ArchitectureO.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software Architecture
 
Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
Why to Architecture Information
Why to Architecture InformationWhy to Architecture Information
Why to Architecture Information
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
 
The Benefits Of Software Creation
The Benefits Of Software CreationThe Benefits Of Software Creation
The Benefits Of Software Creation
 
CIS Infrastructure Group Don Mori Profile 2016
CIS Infrastructure Group Don Mori Profile 2016CIS Infrastructure Group Don Mori Profile 2016
CIS Infrastructure Group Don Mori Profile 2016
 
SA_UNIT_1.pptx
SA_UNIT_1.pptxSA_UNIT_1.pptx
SA_UNIT_1.pptx
 
Pattern driven Enterprise Architecture
Pattern driven Enterprise ArchitecturePattern driven Enterprise Architecture
Pattern driven Enterprise Architecture
 
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learned
 
Thoughts On Architecting V4 2
Thoughts On Architecting V4 2Thoughts On Architecting V4 2
Thoughts On Architecting V4 2
 
Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Agile Architecture (MAE slides)
Agile Architecture (MAE slides)
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Modern Agile Software Architecture

  • 1. by KANNAN DURAIRAJ, Domain Architect - Digital Software Engineer and Architect Software Architecture
  • 2. ● Introduction - Software Architecture ● Forms of Architecture ● Architecture vs Design ● Architectural Patterns ● Design Patterns ● Diagrams ● Agile + Architecture ● Principles - Architecture and Design ● Recap ● References Agenda
  • 3.
  • 4. Architecture is it a Perspective? How to see things in a meaningful way?
  • 5. Need for Architecture “Where Business meets Technology”
  • 6.
  • 7. Definition The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. Usually captured as a diagram.
  • 8. My Definition A shared understanding among various team members (business, product, development, operations) about an application or a set of applications that deliver business value by building platform capabilities that are robust, flexible - open for extension, composable by nature, and can be orchestrated to produce an optimal solutions for a business and add value to the end user.
  • 9. In Nutshell Define Boundaries / Contracts / Responsibility of Software Components
  • 11. What are architectural considerations? ● Hard choices in Software ● Expensive part of Development and Delivery ● Important stuff! ● Business Value vs Platform Capability current vs future
  • 12. What are those hard choices? Any thoughts?
  • 13. Hard things and important stuff: ● Programming Language - Fit, Tools and Skills ● Reversibility - heights of tight coupling ● Building on top of unstable platform or software ● Over Engineering (should be Agile, right?) ● Complex frameworks and dependencies (YAGNI) ● Deployment Environment, DevOps ● Compliance, Security and Performance
  • 14. Why Architecture is so important? What & Why Where How Product Feature Platform Capability Implementation UX & CX Cross-Cutting Develop & Test Customer Value Concerns Plays by Component / System boundaries Define Boundaries
  • 16. Forms of Architecture System Architecture Component Architecture Application Architecture Data / Information Architecture Integration Architecture IT / Network / Infrastructure Architecture Enterprise Architecture
  • 17. Software Architects = City Planners city keeps changing… so does software!
  • 18. Architect Roles Integration Architect Application / Technical Architect Solution Architect / Solution Designer Domain Architect Enterprise Architect Principal / Chief Architect
  • 19. Software Architecture and Software Design - is it the same thing? Which one is more important?
  • 20. Both are important - one can’t survive without the other. Let's look at the Definition of ‘Software Design’
  • 21. Definition: Software Design The fundamental organization of code/modules within a component, and its relationships to each other, and to the run time environment, and the principles guiding its development to deliver a specific goal/functionality of an overall solutions. Usually referred to as Application or Module design.
  • 23. Patterns In software engineering, a software design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. An architectural pattern is a general reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design pattern but have a broader scope.
  • 24. Architectural Patterns ● Service-Oriented (SOA) and Microservices ● Event-Driven / MOM / ESB ● Layers ● Multi-Tier (2-tier, 3-tier, n-tier) / Client-Server ● Model-View-Controller, Presentation-Abstraction-Control, Model-View-Presenter, Model-View-ViewModel
  • 25. Architecture Styles Structure ● Component-based, monolithic, Layered, etc Messaging ● Event Driven, Pub-Sub, Async Messaging, etc Adaptive ● Plugin, Reflection, etc Distributed ● Client-Server, REST, SOA, Microservices, etc
  • 26. Design Patterns Creational ● Abstract Factory, Builder, Factory Method, Singleton, Prototype Structural ● Bridge, Adapter, Composite, Decorator, Facade, Proxy, Flyweight Behavioral ● Command, Observer, Visitor, Chain of Responsibility, etc..
  • 27. Diagrams Why Diagrams? ● Nothing but a form of “representation” ● Simple to understand, common language ● Simplifies Complexity (conceptualize) ● Abstracts code/development ● Logical + Data Flow + Integration View
  • 29. Agile + Architecture Software Architecture in Agile Development Process ● Evolutionary Architecture and Emergent Design ● YAGNI ● Defer until the last responsible moment ● Refactoring ● Spikes, Stripes and Tracers ● Pragmatic
  • 30. Agile Architecture It's about “Just Enough” - Boundaries, Structure, Vision and Leadership - Understand how the significant elements fit together - Provide the foundations and vision to move forward - Mitigate the key risks
  • 31. Agile Architecture “Guiding Principles” ● Last Responsible Moment ● Continuous Integration ● Lightweight, Living Documentation ● Continuous Delivery ● Adapt for Organizational Structure ● Design for Replaceability
  • 32. Architectural Patterns will evolve over time ● Microservices ● API Layers - Experience, Gateway, Application / System, Core ● new Serverless / FaaS ● IoT, Smart Watch, Smart Cars - Tesla / Driverless ● new Unikernels - Clive, MirageOS, Rump Kernels
  • 34. External Enablers (Industry / Market Push) Cloud Infrastructure - Agility - Elasticity of Compute Resources SaaS - Integration is easy, follow standards - REST, SAML Microservices and API - deliver faster, deliver frequently
  • 35. Internal Enablers The two key enablers are: ● A high-speed culture ○ A poor culture inhibits organisational changes designed to increase speed. ○ Improve decision-making processes, can’t slow down delivery ● Strategic focus - two critical elements: ○ a clear strategic goal and ○ a focused strategic agenda. If the culture injects the fuel for speed, strategic focus delivers the grip and traction.
  • 36. Recap ● Software Architecture is a shared responsibility ● Ask ‘what, why, where’ before ‘how’ ● Patterns and Principles (Architecture & Design) ● Cool Diagrams!! ● Collaboration, close the feedback loop ● Agility in process is only half good without Architecture agility ● Market Hypes & Internal Culture
  • 37. Conclusion Embrace by participation ● Minimum Viable Architecture / Agile Architecture ● Don’t think Architecture as just ● Architecture Solution is a living document just like API documentation