SlideShare a Scribd company logo
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
Modern Agile Software Architecture
Architecture is it a Perspective?
How to see things in a meaningful way?
Need for Architecture
“Where Business meets Technology”
Modern Agile Software Architecture
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

PPTX
Software Architecture for Agile Development
PDF
Resource Adaptive Systems
PPTX
Software architecture in an agile environment
ODP
Agile Architecture
PPTX
Adaptable Designs for Agile Software Development
PPTX
Refactoring, Emergent Design & Evolutionary Architecture
PDF
Agile Architecture Agile Dev Practices 2013 Keynote
PDF
Agile archiecture iltam 2014
Software Architecture for Agile Development
Resource Adaptive Systems
Software architecture in an agile environment
Agile Architecture
Adaptable Designs for Agile Software Development
Refactoring, Emergent Design & Evolutionary Architecture
Agile Architecture Agile Dev Practices 2013 Keynote
Agile archiecture iltam 2014

What's hot (20)

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

Similar to Modern Agile Software Architecture (20)

PDF
O.Savchenko FWDays workshop Software Architecture
PPT
Software_Archi-1.ppt
PPT
Software architecture
PPTX
Introduction to Software architecture and design.pptx
PPTX
Architecture Design
PPTX
NISI Agile Software Architecture Slide Deck
PPTX
Software Architecture Practices
ODP
Software Patterns
PDF
Software architect - roles & responsabilities
PDF
01 Introduction to SDA 2.pdf software architecture
PDF
Software Architecture in an Agile World
PPTX
Power point for project
PDF
Introduction to Software Architecture
PDF
Software architecture, Patterns for Scale
PPTX
The Role of the Software Architect
PDF
The Language of Application Architecture
DOCX
Software architecture Unit 1 notes
PPTX
Software architecture slides chap1 .pptx
PPT
Software architecture design ppt
PPT
Cs 1023 lec 1 big idea (week 1)
O.Savchenko FWDays workshop Software Architecture
Software_Archi-1.ppt
Software architecture
Introduction to Software architecture and design.pptx
Architecture Design
NISI Agile Software Architecture Slide Deck
Software Architecture Practices
Software Patterns
Software architect - roles & responsabilities
01 Introduction to SDA 2.pdf software architecture
Software Architecture in an Agile World
Power point for project
Introduction to Software Architecture
Software architecture, Patterns for Scale
The Role of the Software Architect
The Language of Application Architecture
Software architecture Unit 1 notes
Software architecture slides chap1 .pptx
Software architecture design ppt
Cs 1023 lec 1 big idea (week 1)
Ad

Recently uploaded (20)

PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPT
Teaching material agriculture food technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
KodekX | Application Modernization Development
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Empathic Computing: Creating Shared Understanding
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Teaching material agriculture food technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Understanding_Digital_Forensics_Presentation.pptx
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Digital-Transformation-Roadmap-for-Companies.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Review of recent advances in non-invasive hemoglobin estimation
KodekX | Application Modernization Development
Spectral efficient network and resource selection model in 5G networks
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Empathic Computing: Creating Shared Understanding
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
NewMind AI Weekly Chronicles - August'25 Week I
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Reach Out and Touch Someone: Haptics and Empathic Computing

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
  • 4. Architecture is it a Perspective? How to see things in a meaningful way?
  • 5. Need for Architecture “Where Business meets Technology”
  • 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