SlideShare a Scribd company logo
Agile Software Architecture Cesario Ramos 04-2009
Code focussed Do what is important now Evolves during the project Defers Implementation Documentation focussed Do what is important in the long term Defined upfront Includes Implementation Agile Architecture Classic Architecture
Why agile software architecture?
Deliver Fast Increase ROI. Early validation of your business case. Give customers what they want when they want it.
Defer Commitment Reduce risk. Decide based on most possible knowledge. Keep yours and the customers options open.
Eliminate Waste Support something that does not add value now. Have the architecture slow you down
so we need sw architecture to... Be the simplest solution to support the current functionality. Change without increasing risk or waste. Change economically. Change without making the software worse. Evolve in early and refine later iterations.
Comparing with civil engineering
Based on concrete analysis using physics and mathematics. Based on things you know and change slowly. Plan, Do, Review. Plan the work, work the plan
Requirements Design Coding Testing Release Analysis Design Construction Inspection Release Software Development Civil Engineering Coding is NOT Construction
and then.... When do we test our requirements? When do we test our design? What if we overdo it?  How do you handle changes? Requirements Architecture and Design Coding Testing Release
How to create agile software architecture?
High level guidelines. It’s helpful to know the functional modules needed to do the kind of business at hand. It’s helpful to know your current state and to know the desired future state modules architecture. (based in info known at the time.) You should include in the release plan the steps needed to go from current state to future state. Consider ROI in the decision making process Work on architectural modules only when actually needed. Evolve the architecture during the various releases Do not let quality decay, Refactor to the Open Closed. Validate, adapt and re-plan architecture.
Needed modules to do the business at hand?
DCI Architecture What the system IS Captures what is stable The domain classes What the system DOES User stories. Business objects.
Evolve the architecture?
Open Closed Principle A module should be open for extension and closed for modification
Refactoring as Fowler proposed Improving the design of existing code. Refactoring to be Open Closed. For handling future requirements. Refactoring Provides Value by Reducing Risk Reducing Waste
Separation Of Concerns Low Coupling Minimal dependencies Minimal side effects High Cohesion Single responsibility One reason to change
Tests Drive Design Supports you to look at your public API. Supports you to think about cohesion. Supports you to think about coupling. Supports you to not produce redundancies.
Readable code public   void  advanceTurn() { if ( characterHavingCurrentTurn  + 1 < p layableCharacters .size()) characterHavingCurrentTurn ++; else characterHavingCurrentTurn  = 0; }
Programming by Intention public   void  advanceTurn() { if (notAllCharactersInListHadTheirTurn()) nextCharacterInTheListGetsTheTurn(); else firstCharacterInTheListGetsTheTurn(); } private   void  firstCharacterInTheListGetsTheTurn() { characterHavingCurrentTurn  = 0; } private   void  nextCharacterInTheListGetsTheTurn() { characterHavingCurrentTurn ++; } private   boolean  notAllCharactersInListHadTheirTurn() { return   characterHavingCurrentTurn  + 1 <  playableCharacters .size(); }
Summary Agile Architecture helps you reduce risk and waste. OO/XP principles and practices make evolving architecture  possible. Particular approach depends upon knowledge of domain, technology and project size.
Agile Software Architecture Cesario Ramos 04-2009

More Related Content

What's hot (20)

A differnt Type of Supermarket Delivery
A differnt Type of Supermarket DeliveryA differnt Type of Supermarket Delivery
A differnt Type of Supermarket Delivery
Thoughtworks
 
Learn Prwatech Test Module
Learn Prwatech Test ModuleLearn Prwatech Test Module
Learn Prwatech Test Module
PrwaTech
 
vodQA Pune (2019) - Insights into big data testing
vodQA Pune (2019) - Insights into big data testingvodQA Pune (2019) - Insights into big data testing
vodQA Pune (2019) - Insights into big data testing
vodQA
 
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
TEST Huddle
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategies
Hylke Stapersma
 
Test-Driven development; why you should never code without it
Test-Driven development; why you should never code without itTest-Driven development; why you should never code without it
Test-Driven development; why you should never code without it
Jad Salhani
 
Should you be your own judge?
Should you be your own judge?Should you be your own judge?
Should you be your own judge?
Achyut Pokhrel
 
A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26
Julio Ramirez
 
Amsterdam JUG - Continuous performance
Amsterdam JUG - Continuous performanceAmsterdam JUG - Continuous performance
Amsterdam JUG - Continuous performance
Bert Jan Schrijver
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
Suman Guha
 
Codemotion tech pills - Continuous performance
Codemotion tech pills  - Continuous performanceCodemotion tech pills  - Continuous performance
Codemotion tech pills - Continuous performance
Bert Jan Schrijver
 
Agile Testing Analytics
Agile Testing AnalyticsAgile Testing Analytics
Agile Testing Analytics
QASymphony
 
vodQA Pune (2019) - Testing ethereum smart contracts
vodQA Pune (2019) - Testing ethereum smart contractsvodQA Pune (2019) - Testing ethereum smart contracts
vodQA Pune (2019) - Testing ethereum smart contracts
vodQA
 
SeleniumCamp 2020 - Shift Right and Observability
SeleniumCamp 2020 - Shift Right and ObservabilitySeleniumCamp 2020 - Shift Right and Observability
SeleniumCamp 2020 - Shift Right and Observability
Marcus Merrell
 
Behavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextBehavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in context
Alexander Kress
 
Tech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDDTech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDD
DUONG Trong Tan
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
HarshaVJoshi
 
Continuous Performance - Load testing for developers with gatling @ iSense 2016
Continuous Performance - Load testing for developers with gatling @ iSense 2016Continuous Performance - Load testing for developers with gatling @ iSense 2016
Continuous Performance - Load testing for developers with gatling @ iSense 2016
Tim van Eijndhoven
 
CYA: Cover Your App
CYA: Cover Your AppCYA: Cover Your App
CYA: Cover Your App
Jorge Ortiz
 
Presentation Test Driven Development
Presentation Test Driven DevelopmentPresentation Test Driven Development
Presentation Test Driven Development
Rashmi Srivastava
 
A differnt Type of Supermarket Delivery
A differnt Type of Supermarket DeliveryA differnt Type of Supermarket Delivery
A differnt Type of Supermarket Delivery
Thoughtworks
 
Learn Prwatech Test Module
Learn Prwatech Test ModuleLearn Prwatech Test Module
Learn Prwatech Test Module
PrwaTech
 
vodQA Pune (2019) - Insights into big data testing
vodQA Pune (2019) - Insights into big data testingvodQA Pune (2019) - Insights into big data testing
vodQA Pune (2019) - Insights into big data testing
vodQA
 
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
Emily Bache - Readable, Executable Requirements: Hands-On - EuroSTAR 2013
TEST Huddle
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategies
Hylke Stapersma
 
Test-Driven development; why you should never code without it
Test-Driven development; why you should never code without itTest-Driven development; why you should never code without it
Test-Driven development; why you should never code without it
Jad Salhani
 
Should you be your own judge?
Should you be your own judge?Should you be your own judge?
Should you be your own judge?
Achyut Pokhrel
 
A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26A Test Manifesto 2014.03.26
A Test Manifesto 2014.03.26
Julio Ramirez
 
Amsterdam JUG - Continuous performance
Amsterdam JUG - Continuous performanceAmsterdam JUG - Continuous performance
Amsterdam JUG - Continuous performance
Bert Jan Schrijver
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
Suman Guha
 
Codemotion tech pills - Continuous performance
Codemotion tech pills  - Continuous performanceCodemotion tech pills  - Continuous performance
Codemotion tech pills - Continuous performance
Bert Jan Schrijver
 
Agile Testing Analytics
Agile Testing AnalyticsAgile Testing Analytics
Agile Testing Analytics
QASymphony
 
vodQA Pune (2019) - Testing ethereum smart contracts
vodQA Pune (2019) - Testing ethereum smart contractsvodQA Pune (2019) - Testing ethereum smart contracts
vodQA Pune (2019) - Testing ethereum smart contracts
vodQA
 
SeleniumCamp 2020 - Shift Right and Observability
SeleniumCamp 2020 - Shift Right and ObservabilitySeleniumCamp 2020 - Shift Right and Observability
SeleniumCamp 2020 - Shift Right and Observability
Marcus Merrell
 
Behavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextBehavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in context
Alexander Kress
 
Tech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDDTech talks #1- Unit testing and TDD
Tech talks #1- Unit testing and TDD
DUONG Trong Tan
 
Continuous Performance - Load testing for developers with gatling @ iSense 2016
Continuous Performance - Load testing for developers with gatling @ iSense 2016Continuous Performance - Load testing for developers with gatling @ iSense 2016
Continuous Performance - Load testing for developers with gatling @ iSense 2016
Tim van Eijndhoven
 
CYA: Cover Your App
CYA: Cover Your AppCYA: Cover Your App
CYA: Cover Your App
Jorge Ortiz
 
Presentation Test Driven Development
Presentation Test Driven DevelopmentPresentation Test Driven Development
Presentation Test Driven Development
Rashmi Srivastava
 

Viewers also liked (12)

Design for perfect scrum day kiev 2017
Design for perfect scrum day kiev 2017Design for perfect scrum day kiev 2017
Design for perfect scrum day kiev 2017
cesarioramos
 
Accessibility, Usability and User Centred Design (User centred design)
Accessibility, Usability and User Centred Design (User centred design)Accessibility, Usability and User Centred Design (User centred design)
Accessibility, Usability and User Centred Design (User centred design)
David Lamas
 
Agile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решения
Agile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решенияAgile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решения
Agile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решения
LuxoftAgilePractice
 
Lessons Learned: Implementing VoLTE Roaming
Lessons Learned: Implementing VoLTE Roaming Lessons Learned: Implementing VoLTE Roaming
Lessons Learned: Implementing VoLTE Roaming
Syniverse
 
Making VoLTE Interconnect Work
Making VoLTE Interconnect WorkMaking VoLTE Interconnect Work
Making VoLTE Interconnect Work
Syniverse
 
5G and Automative : Cellular V2X (vehicle-to-everything)
5G and Automative : Cellular V2X (vehicle-to-everything)5G and Automative : Cellular V2X (vehicle-to-everything)
5G and Automative : Cellular V2X (vehicle-to-everything)
ITU
 
ZTE VoLTE Solutions
ZTE VoLTE SolutionsZTE VoLTE Solutions
ZTE VoLTE Solutions
TELCON UNI
 
VoLTE Charging and Clearing Explained
VoLTE Charging and Clearing ExplainedVoLTE Charging and Clearing Explained
VoLTE Charging and Clearing Explained
Syniverse
 
SCRUM
SCRUM SCRUM
SCRUM
Giovanni Barrero Ortiz
 
Lessons Learned: Implementing VoLTE Roaming APAC
Lessons Learned: Implementing VoLTE Roaming APAC Lessons Learned: Implementing VoLTE Roaming APAC
Lessons Learned: Implementing VoLTE Roaming APAC
Syniverse
 
Agile training
Agile trainingAgile training
Agile training
Long Ta
 
Simplifying IMS - IMS, VoLTE, RCS and LTE
Simplifying IMS - IMS, VoLTE, RCS and LTESimplifying IMS - IMS, VoLTE, RCS and LTE
Simplifying IMS - IMS, VoLTE, RCS and LTE
Robert Seymour
 
Design for perfect scrum day kiev 2017
Design for perfect scrum day kiev 2017Design for perfect scrum day kiev 2017
Design for perfect scrum day kiev 2017
cesarioramos
 
Accessibility, Usability and User Centred Design (User centred design)
Accessibility, Usability and User Centred Design (User centred design)Accessibility, Usability and User Centred Design (User centred design)
Accessibility, Usability and User Centred Design (User centred design)
David Lamas
 
Agile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решения
Agile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решенияAgile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решения
Agile Talks: Scrum Cookbook - Внедрение Скрам: ошибки и решения
LuxoftAgilePractice
 
Lessons Learned: Implementing VoLTE Roaming
Lessons Learned: Implementing VoLTE Roaming Lessons Learned: Implementing VoLTE Roaming
Lessons Learned: Implementing VoLTE Roaming
Syniverse
 
Making VoLTE Interconnect Work
Making VoLTE Interconnect WorkMaking VoLTE Interconnect Work
Making VoLTE Interconnect Work
Syniverse
 
5G and Automative : Cellular V2X (vehicle-to-everything)
5G and Automative : Cellular V2X (vehicle-to-everything)5G and Automative : Cellular V2X (vehicle-to-everything)
5G and Automative : Cellular V2X (vehicle-to-everything)
ITU
 
ZTE VoLTE Solutions
ZTE VoLTE SolutionsZTE VoLTE Solutions
ZTE VoLTE Solutions
TELCON UNI
 
VoLTE Charging and Clearing Explained
VoLTE Charging and Clearing ExplainedVoLTE Charging and Clearing Explained
VoLTE Charging and Clearing Explained
Syniverse
 
Lessons Learned: Implementing VoLTE Roaming APAC
Lessons Learned: Implementing VoLTE Roaming APAC Lessons Learned: Implementing VoLTE Roaming APAC
Lessons Learned: Implementing VoLTE Roaming APAC
Syniverse
 
Agile training
Agile trainingAgile training
Agile training
Long Ta
 
Simplifying IMS - IMS, VoLTE, RCS and LTE
Simplifying IMS - IMS, VoLTE, RCS and LTESimplifying IMS - IMS, VoLTE, RCS and LTE
Simplifying IMS - IMS, VoLTE, RCS and LTE
Robert Seymour
 

Similar to Agile Software Architecture (20)

C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2
Hammad Rajjoub
 
C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2
Hammad Rajjoub
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
David Solivan
 
He mian agile project-inception
He mian   agile project-inceptionHe mian   agile project-inception
He mian agile project-inception
Odd-e
 
MongoDB World 2018: How an Idea Becomes a MongoDB Feature
MongoDB World 2018: How an Idea Becomes a MongoDB FeatureMongoDB World 2018: How an Idea Becomes a MongoDB Feature
MongoDB World 2018: How an Idea Becomes a MongoDB Feature
MongoDB
 
Agile Development From A Developers Perspective
Agile Development From A Developers PerspectiveAgile Development From A Developers Perspective
Agile Development From A Developers Perspective
Richard Banks
 
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
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Peter Marshall
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile Way
Ramadevi Lakshmanan
 
Sharepoint 2010: Practical Architecture from the Field
Sharepoint 2010: Practical Architecture from the FieldSharepoint 2010: Practical Architecture from the Field
Sharepoint 2010: Practical Architecture from the Field
Tihomir Ignatov
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
rupeshchanchal
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
Erez PEDRO
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
cfry
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
Enkitec
 
Incremental model
Incremental modelIncremental model
Incremental model
Sajid Ali Laghari
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architect
llangit
 
From Components To Services
From Components To ServicesFrom Components To Services
From Components To Services
James Phillips
 
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesHow To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
Lightbend
 
Using Agile Methodologies
Using Agile MethodologiesUsing Agile Methodologies
Using Agile Methodologies
Dave Kellogg
 
Poor Man's Kanban
Poor Man's KanbanPoor Man's Kanban
Poor Man's Kanban
Chicago ALT.NET
 
C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2
Hammad Rajjoub
 
C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2C:\Fakepath\Combating Software Entropy 2
C:\Fakepath\Combating Software Entropy 2
Hammad Rajjoub
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
David Solivan
 
He mian agile project-inception
He mian   agile project-inceptionHe mian   agile project-inception
He mian agile project-inception
Odd-e
 
MongoDB World 2018: How an Idea Becomes a MongoDB Feature
MongoDB World 2018: How an Idea Becomes a MongoDB FeatureMongoDB World 2018: How an Idea Becomes a MongoDB Feature
MongoDB World 2018: How an Idea Becomes a MongoDB Feature
MongoDB
 
Agile Development From A Developers Perspective
Agile Development From A Developers PerspectiveAgile Development From A Developers Perspective
Agile Development From A Developers Perspective
Richard Banks
 
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
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Peter Marshall
 
Way to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile WayWay to Agile from Tradition - Agile Way
Way to Agile from Tradition - Agile Way
Ramadevi Lakshmanan
 
Sharepoint 2010: Practical Architecture from the Field
Sharepoint 2010: Practical Architecture from the FieldSharepoint 2010: Practical Architecture from the Field
Sharepoint 2010: Practical Architecture from the Field
Tihomir Ignatov
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
rupeshchanchal
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
Erez PEDRO
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
cfry
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
Enkitec
 
The Role Of An Architect
The Role Of An ArchitectThe Role Of An Architect
The Role Of An Architect
llangit
 
From Components To Services
From Components To ServicesFrom Components To Services
From Components To Services
James Phillips
 
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On KubernetesHow To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
How To Build, Integrate, and Deploy Real-Time Streaming Pipelines On Kubernetes
Lightbend
 
Using Agile Methodologies
Using Agile MethodologiesUsing Agile Methodologies
Using Agile Methodologies
Dave Kellogg
 

Recently uploaded (20)

Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Maarten Verwaest
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
João Esperancinha
 
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Cyntexa
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)
Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)
Com fer un pla de gestió de dades amb l'eiNa DMP (en anglès)
CSUC - Consorci de Serveis Universitaris de Catalunya
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
Top 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptx
Top 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptxTop 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptx
Top 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptx
mkubeusa
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Limecraft Webinar - 2025.3 release, featuring Content Delivery, Graphic Conte...
Maarten Verwaest
 
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Crazy Incentives and How They Kill Security. How Do You Turn the Wheel?
Christian Folini
 
AI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamsonAI-proof your career by Olivier Vroom and David WIlliamson
AI-proof your career by Olivier Vroom and David WIlliamson
UXPA Boston
 
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
RTP Over QUIC: An Interesting Opportunity Or Wasted Time?
Lorenzo Miniero
 
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
Could Virtual Threads cast away the usage of Kotlin Coroutines - DevoxxUK2025
João Esperancinha
 
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Cyntexa
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
May Patch Tuesday
May Patch TuesdayMay Patch Tuesday
May Patch Tuesday
Ivanti
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
IT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information TechnologyIT488 Wireless Sensor Networks_Information Technology
IT488 Wireless Sensor Networks_Information Technology
SHEHABALYAMANI
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
fennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solutionfennec fox optimization algorithm for optimal solution
fennec fox optimization algorithm for optimal solution
shallal2
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
Top 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptx
Top 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptxTop 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptx
Top 5 Benefits of Using Molybdenum Rods in Industrial Applications.pptx
mkubeusa
 
Dark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanizationDark Dynamism: drones, dark factories and deurbanization
Dark Dynamism: drones, dark factories and deurbanization
Jakub Šimek
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 

Agile Software Architecture

  • 1. Agile Software Architecture Cesario Ramos 04-2009
  • 2. Code focussed Do what is important now Evolves during the project Defers Implementation Documentation focussed Do what is important in the long term Defined upfront Includes Implementation Agile Architecture Classic Architecture
  • 3. Why agile software architecture?
  • 4. Deliver Fast Increase ROI. Early validation of your business case. Give customers what they want when they want it.
  • 5. Defer Commitment Reduce risk. Decide based on most possible knowledge. Keep yours and the customers options open.
  • 6. Eliminate Waste Support something that does not add value now. Have the architecture slow you down
  • 7. so we need sw architecture to... Be the simplest solution to support the current functionality. Change without increasing risk or waste. Change economically. Change without making the software worse. Evolve in early and refine later iterations.
  • 8. Comparing with civil engineering
  • 9. Based on concrete analysis using physics and mathematics. Based on things you know and change slowly. Plan, Do, Review. Plan the work, work the plan
  • 10. Requirements Design Coding Testing Release Analysis Design Construction Inspection Release Software Development Civil Engineering Coding is NOT Construction
  • 11. and then.... When do we test our requirements? When do we test our design? What if we overdo it? How do you handle changes? Requirements Architecture and Design Coding Testing Release
  • 12. How to create agile software architecture?
  • 13. High level guidelines. It’s helpful to know the functional modules needed to do the kind of business at hand. It’s helpful to know your current state and to know the desired future state modules architecture. (based in info known at the time.) You should include in the release plan the steps needed to go from current state to future state. Consider ROI in the decision making process Work on architectural modules only when actually needed. Evolve the architecture during the various releases Do not let quality decay, Refactor to the Open Closed. Validate, adapt and re-plan architecture.
  • 14. Needed modules to do the business at hand?
  • 15. DCI Architecture What the system IS Captures what is stable The domain classes What the system DOES User stories. Business objects.
  • 17. Open Closed Principle A module should be open for extension and closed for modification
  • 18. Refactoring as Fowler proposed Improving the design of existing code. Refactoring to be Open Closed. For handling future requirements. Refactoring Provides Value by Reducing Risk Reducing Waste
  • 19. Separation Of Concerns Low Coupling Minimal dependencies Minimal side effects High Cohesion Single responsibility One reason to change
  • 20. Tests Drive Design Supports you to look at your public API. Supports you to think about cohesion. Supports you to think about coupling. Supports you to not produce redundancies.
  • 21. Readable code public void advanceTurn() { if ( characterHavingCurrentTurn + 1 < p layableCharacters .size()) characterHavingCurrentTurn ++; else characterHavingCurrentTurn = 0; }
  • 22. Programming by Intention public void advanceTurn() { if (notAllCharactersInListHadTheirTurn()) nextCharacterInTheListGetsTheTurn(); else firstCharacterInTheListGetsTheTurn(); } private void firstCharacterInTheListGetsTheTurn() { characterHavingCurrentTurn = 0; } private void nextCharacterInTheListGetsTheTurn() { characterHavingCurrentTurn ++; } private boolean notAllCharactersInListHadTheirTurn() { return characterHavingCurrentTurn + 1 < playableCharacters .size(); }
  • 23. Summary Agile Architecture helps you reduce risk and waste. OO/XP principles and practices make evolving architecture possible. Particular approach depends upon knowledge of domain, technology and project size.
  • 24. Agile Software Architecture Cesario Ramos 04-2009
  翻译: