SlideShare a Scribd company logo
Agile Architecture Diego Fontdevila [email_address]
Contents Software  A rchitecture The need for architecture The role of the  A rchitect Modularity Team
Software Architecture
Software architecture “ The structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them.” (Bass, Clements, Kazman) Strategic design Decisions we want to get right (Ralph Johnson) What is hard to change (Martin Fowler)
Software architecture As much the strategic design activity as the resulting product of that activity. Helps with iterative and incremental development. Might not be apparent. Noticeably affects the quality attributes of the product. Technology sensitive. Usually has a high level of abstraction.
The need for architecture
The need for architecture Essential complexity No Silver Bullet (Brooks) Flexibility is a basic hygien e  requirement Write less code (Poppendiecks) Growing size Pattern of constant growth of our abstractions (Shaw). Distribution Generalized in the '90s Uncerta in  number of users Agile Architecture
The role of the architect
The role of the architect Technical lead Has valuable experiences to share (might limit his vision) Mentor, guide and counselor for the team Has business vision Responsible for technical risks Supports communication between stakeholders Helps define the structure of the project Agile Architecture
Modularity
Modularity What is a module today? Piece of code? Procedure? ADT? Class? Package? Application? Product structure in terms of work assignment (Len Bass et al). Agile Architecture
Modularity S ystem size has grown and software use is widespread. Module size  is  driven by system size. Limitation on the amount of modules of a system is on the human mind. Module size is constantly  increasing. In other words, the granularity of our abstractions has been historically growing  (Shaw). Agile Architecture
Modularity Modules need to have wel l defined interfaces. Helps reduce dependencies between modules y facilitates  working independently. But the loss of dependencies inside a team may affect result eliminating opportunities for interaction and reconception between team members working in different modules (Austin and Devin). Agile Architecture
Modularity: Language Linguistic Modular Units  Pr inciple :  Programming language should support the syntax to describe modules  (Meyer). How do you say  module  in you r programming language? Hi gh level languages are a must (Brooks). Their level of abstraction has been steadily growing. Languages are becoming platforms, and there are already architecture level languages. Annotations and Aspects, for instance, allow us to extend languages. Agile Architecture
Team
Team We think only with the wor ds we know. Software as a conversation and collaboration. Technical v ision guides development producing a balanced and harmonic design . Contributions from team members are very important and must be integrated, not evened out: Reconceiving over Compromise (Austin and Devin). Different perspectives help diminish technical uncertainty . Agile Architecture
Team: Language Architecture serves as the entry point for training new team members. It is usu ally best to use a restricted solution language, based on patterns and frameworks  (Bass, Clements, Kazman). Domain Driven Design:  There should be a single model for problem and solution  (Evans) Domain Model: The T eam and the Customer build a single language for the solution they develop  (Evans) Agile Architecture
Team:  Collaboration Ana lyst: Initial requirements, feasibility  Developer: Incremental design , pair programming Tester: Quality attributes strategy, Prototype testing, test harness definitions Agile Architecture
Team When does architecture come into our work? When we fir st try to conceive the product as a whole When we propose strategies to fulfill requirements related to quality attributes and when we test them When we distribute work between our teams When we organize our software configuration When we choose languages and technology When we record design rationale Agile Architecture
Team: Documentation rules Ar chitecture Documentation/Communication Rules P ut yourself in his shoes (Views) Keep a standard organization (Views?) Avoid ambiguity (Unique language) Avoid unnecesary repetition (and explain notations) Keep documentation current but not too current Record rationale (Decision Log) Review documentation for fitness of purpose (Clements, Garlan, et al) Agile Architecture
Bibliography Austin, Bob,  Devin, Lee,  Artful Making , What Managers need to know about how artists work, Bass, Len, Clements, Paul, Kazman, Rick,  Software Architecture in Practice , SEI Series in Software Engineering, 1998. Brooks, Frederick,  No Silver Bullet, Essence and Accidents of Software Engineering , Computer Magazine, 1987. Clements, Paul, et al,  Documenting Software Architecture: Views & Beyond , SEI Series in Software Engineering, Addison-Wesley, 2003. Evans, Eric,  Domain Driven Design , Tackling Complexity in the Heart of Software, 2003. Agile Architecture
Bibliography Austin, Rob, Devin, Lee,  Artful Making, What managers need to know about how artists work , Prentice Hall, 2003. Bass, Len, Clements, Paul, Kazman, Rick,  Software Architecture in Practice , SEI Series in Software Engineering, 1998. Brooks, Frederick,  “No Silver Bullet” ,  in The Mythical Man-Month, Essays on Software Engineering , Addison-Wesley, 1985. Clements, Paul, Shaw, Mary,  "Three Patterns That Help Explain the Development of Software Engineering" , Position paper for Dagstuhl Workshop on Software Architecture, 1996. Agile Architecture
Bibliography Clements, Paul, et al,  Documenting Software Architecture: Views and Beyond , SEI Series in Software Engineering, Addison-Wesley, 2003. Fowler, Martin,  “Who Needs an Architect?” , IEEE Software, Volume 20, Issue 4, September 2003, pages 11-13. Meyer, Bertrand,  Object-Oriented Software Construction , Prentice-Hall, 1985, 2nd Edition 1997. Poppendieck, Mary, Poppendieck, Tom,  Implementing Lean Software Development, From Concept to Cash , Addison-Wesley, 2006.
Thank you

More Related Content

Similar to Agiles 2009 - Agile Architecture - Diego Fontdevila

The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
Niels Bech Nielsen
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
Utkarsh Agarwal
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
AkilaGamage2
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Mozaic Works
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
Sudarsun Santhiappan
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven design
Rick van der Arend
 
Modest Formalization of Software Design Patterns
Modest Formalization of Software Design PatternsModest Formalization of Software Design Patterns
Modest Formalization of Software Design Patterns
International Journal of Latest Research in Engineering and Technology
 
Unify Design & Deliverables
Unify Design & DeliverablesUnify Design & Deliverables
Unify Design & Deliverables
nathanacurtis
 
ESSENSE
ESSENSEESSENSE
Software Architecture is written with lowercase a
Software Architecture is written with lowercase aSoftware Architecture is written with lowercase a
Software Architecture is written with lowercase a
Ruben Gonzalez Blanco
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architectures
Majong DevJfu
 
Analysis Report
 Analysis Report  Analysis Report
Analysis Report
Dhaarna Singh
 
DDD In Agile
DDD In Agile   DDD In Agile
DDD In Agile
Skills Matter
 
Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being Driven
Antonio Terreno
 
SLDC Presentation
SLDC PresentationSLDC Presentation
SLDC Presentation
Charles Husemann
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
Hayim Makabee
 
09 introduction to_modeling
09 introduction to_modeling09 introduction to_modeling
09 introduction to_modeling
Majong DevJfu
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
stanbridge
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni Softwareengineering
Tony Bibbs
 
Supporting Software Development Teams with a Semantic Process- and Artifact-o...
Supporting Software Development Teams with a Semantic Process- and Artifact-o...Supporting Software Development Teams with a Semantic Process- and Artifact-o...
Supporting Software Development Teams with a Semantic Process- and Artifact-o...
Hans-Joerg Happel
 

Similar to Agiles 2009 - Agile Architecture - Diego Fontdevila (20)

The Modern Software Architect
The Modern Software ArchitectThe Modern Software Architect
The Modern Software Architect
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven design
 
Modest Formalization of Software Design Patterns
Modest Formalization of Software Design PatternsModest Formalization of Software Design Patterns
Modest Formalization of Software Design Patterns
 
Unify Design & Deliverables
Unify Design & DeliverablesUnify Design & Deliverables
Unify Design & Deliverables
 
ESSENSE
ESSENSEESSENSE
ESSENSE
 
Software Architecture is written with lowercase a
Software Architecture is written with lowercase aSoftware Architecture is written with lowercase a
Software Architecture is written with lowercase a
 
15 implementing architectures
15 implementing architectures15 implementing architectures
15 implementing architectures
 
Analysis Report
 Analysis Report  Analysis Report
Analysis Report
 
DDD In Agile
DDD In Agile   DDD In Agile
DDD In Agile
 
Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being Driven
 
SLDC Presentation
SLDC PresentationSLDC Presentation
SLDC Presentation
 
The Role of the Software Architect
The Role of the Software ArchitectThe Role of the Software Architect
The Role of the Software Architect
 
09 introduction to_modeling
09 introduction to_modeling09 introduction to_modeling
09 introduction to_modeling
 
Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)Cs 1023 lec 9 design pattern (week 2)
Cs 1023 lec 9 design pattern (week 2)
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni Softwareengineering
 
Supporting Software Development Teams with a Semantic Process- and Artifact-o...
Supporting Software Development Teams with a Semantic Process- and Artifact-o...Supporting Software Development Teams with a Semantic Process- and Artifact-o...
Supporting Software Development Teams with a Semantic Process- and Artifact-o...
 

More from Agiles2009

Agiles 2009 - Visual Management - Xavier Quesada Allue
Agiles 2009 - Visual Management - Xavier Quesada AllueAgiles 2009 - Visual Management - Xavier Quesada Allue
Agiles 2009 - Visual Management - Xavier Quesada Allue
Agiles2009
 
Agiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel Insaurralde
Agiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel InsaurraldeAgiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel Insaurralde
Agiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel Insaurralde
Agiles2009
 
Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...
Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...
Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...
Agiles2009
 
Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...
Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...
Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...
Agiles2009
 
Agiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo Tortorella
Agiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo TortorellaAgiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo Tortorella
Agiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo Tortorella
Agiles2009
 
Agiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison Fell
Agiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison FellAgiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison Fell
Agiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison Fell
Agiles2009
 
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles2009
 
Agiles 2009 - Enseñando Agilmente - Fernando Waisman
Agiles 2009 - Enseñando Agilmente - Fernando WaismanAgiles 2009 - Enseñando Agilmente - Fernando Waisman
Agiles 2009 - Enseñando Agilmente - Fernando Waisman
Agiles2009
 

More from Agiles2009 (8)

Agiles 2009 - Visual Management - Xavier Quesada Allue
Agiles 2009 - Visual Management - Xavier Quesada AllueAgiles 2009 - Visual Management - Xavier Quesada Allue
Agiles 2009 - Visual Management - Xavier Quesada Allue
 
Agiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel Insaurralde
Agiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel InsaurraldeAgiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel Insaurralde
Agiles 2009 - An Evolutive Approach From Cmmi Iso - Miguel Insaurralde
 
Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...
Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...
Agiles 2009 - Power Workshops: Kick-starting your Agile Project - Joke Vandem...
 
Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...
Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...
Agiles 2009 - Propuestas / Recomendaciones para Equipos "Tradicionales" - Jer...
 
Agiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo Tortorella
Agiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo TortorellaAgiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo Tortorella
Agiles2009 - The Games Workshop - Rafael Pridladnicky & Pablo Tortorella
 
Agiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison Fell
Agiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison FellAgiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison Fell
Agiles 2009 - Agilidad en la Produccion de Videojuegos - Pauline Morrison Fell
 
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
 
Agiles 2009 - Enseñando Agilmente - Fernando Waisman
Agiles 2009 - Enseñando Agilmente - Fernando WaismanAgiles 2009 - Enseñando Agilmente - Fernando Waisman
Agiles 2009 - Enseñando Agilmente - Fernando Waisman
 

Recently uploaded

It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
Zilliz
 
The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
Zilliz
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
SubhamMandal40
 
Tailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer InsightsTailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer Insights
SynapseIndia
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
ankush9927
 
Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
BrainSell Technologies
 
Intel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdfIntel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdf
Tech Guru
 
Communications Mining Series - Zero to Hero - Session 3
Communications Mining Series - Zero to Hero - Session 3Communications Mining Series - Zero to Hero - Session 3
Communications Mining Series - Zero to Hero - Session 3
DianaGray10
 
Accelerating Migrations = Recommendations
Accelerating Migrations = RecommendationsAccelerating Migrations = Recommendations
Accelerating Migrations = Recommendations
isBullShit
 
Keynote : AI & Future Of Offensive Security
Keynote : AI & Future Of Offensive SecurityKeynote : AI & Future Of Offensive Security
Keynote : AI & Future Of Offensive Security
Priyanka Aash
 
Discovery Series - Zero to Hero - Task Mining Session 1
Discovery Series - Zero to Hero - Task Mining Session 1Discovery Series - Zero to Hero - Task Mining Session 1
Discovery Series - Zero to Hero - Task Mining Session 1
DianaGray10
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
SAI KAILASH R
 
kk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdfkk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdf
KIRAN KV
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Semantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software DevelopmentSemantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software Development
Baishakhi Ray
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
Google Developer Group - Harare
 
Camunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptxCamunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptx
ZachWylie3
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
shanihomely
 
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
AimanAthambawa1
 

Recently uploaded (20)

It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...It's your unstructured data: How to get your GenAI app to production (and spe...
It's your unstructured data: How to get your GenAI app to production (and spe...
 
The History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal EmbeddingsThe History of Embeddings & Multimodal Embeddings
The History of Embeddings & Multimodal Embeddings
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
 
Tailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer InsightsTailored CRM Software Development for Enhanced Customer Insights
Tailored CRM Software Development for Enhanced Customer Insights
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
 
Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
 
Intel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdfIntel Unveils Core Ultra 200V Lunar chip .pdf
Intel Unveils Core Ultra 200V Lunar chip .pdf
 
Communications Mining Series - Zero to Hero - Session 3
Communications Mining Series - Zero to Hero - Session 3Communications Mining Series - Zero to Hero - Session 3
Communications Mining Series - Zero to Hero - Session 3
 
Accelerating Migrations = Recommendations
Accelerating Migrations = RecommendationsAccelerating Migrations = Recommendations
Accelerating Migrations = Recommendations
 
Keynote : AI & Future Of Offensive Security
Keynote : AI & Future Of Offensive SecurityKeynote : AI & Future Of Offensive Security
Keynote : AI & Future Of Offensive Security
 
Discovery Series - Zero to Hero - Task Mining Session 1
Discovery Series - Zero to Hero - Task Mining Session 1Discovery Series - Zero to Hero - Task Mining Session 1
Discovery Series - Zero to Hero - Task Mining Session 1
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and DisadvantagesBLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
BLOCKCHAIN TECHNOLOGY - Advantages and Disadvantages
 
kk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdfkk vathada _digital transformation frameworks_2024.pdf
kk vathada _digital transformation frameworks_2024.pdf
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Semantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software DevelopmentSemantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software Development
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
 
Camunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptxCamunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptx
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
 
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
COVID-19 and the Level of Cloud Computing Adoption: A Study of Sri Lankan Inf...
 

Agiles 2009 - Agile Architecture - Diego Fontdevila

  • 1. Agile Architecture Diego Fontdevila [email_address]
  • 2. Contents Software A rchitecture The need for architecture The role of the A rchitect Modularity Team
  • 4. Software architecture “ The structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them.” (Bass, Clements, Kazman) Strategic design Decisions we want to get right (Ralph Johnson) What is hard to change (Martin Fowler)
  • 5. Software architecture As much the strategic design activity as the resulting product of that activity. Helps with iterative and incremental development. Might not be apparent. Noticeably affects the quality attributes of the product. Technology sensitive. Usually has a high level of abstraction.
  • 6. The need for architecture
  • 7. The need for architecture Essential complexity No Silver Bullet (Brooks) Flexibility is a basic hygien e requirement Write less code (Poppendiecks) Growing size Pattern of constant growth of our abstractions (Shaw). Distribution Generalized in the '90s Uncerta in number of users Agile Architecture
  • 8. The role of the architect
  • 9. The role of the architect Technical lead Has valuable experiences to share (might limit his vision) Mentor, guide and counselor for the team Has business vision Responsible for technical risks Supports communication between stakeholders Helps define the structure of the project Agile Architecture
  • 11. Modularity What is a module today? Piece of code? Procedure? ADT? Class? Package? Application? Product structure in terms of work assignment (Len Bass et al). Agile Architecture
  • 12. Modularity S ystem size has grown and software use is widespread. Module size is driven by system size. Limitation on the amount of modules of a system is on the human mind. Module size is constantly increasing. In other words, the granularity of our abstractions has been historically growing (Shaw). Agile Architecture
  • 13. Modularity Modules need to have wel l defined interfaces. Helps reduce dependencies between modules y facilitates working independently. But the loss of dependencies inside a team may affect result eliminating opportunities for interaction and reconception between team members working in different modules (Austin and Devin). Agile Architecture
  • 14. Modularity: Language Linguistic Modular Units Pr inciple : Programming language should support the syntax to describe modules (Meyer). How do you say module in you r programming language? Hi gh level languages are a must (Brooks). Their level of abstraction has been steadily growing. Languages are becoming platforms, and there are already architecture level languages. Annotations and Aspects, for instance, allow us to extend languages. Agile Architecture
  • 15. Team
  • 16. Team We think only with the wor ds we know. Software as a conversation and collaboration. Technical v ision guides development producing a balanced and harmonic design . Contributions from team members are very important and must be integrated, not evened out: Reconceiving over Compromise (Austin and Devin). Different perspectives help diminish technical uncertainty . Agile Architecture
  • 17. Team: Language Architecture serves as the entry point for training new team members. It is usu ally best to use a restricted solution language, based on patterns and frameworks (Bass, Clements, Kazman). Domain Driven Design: There should be a single model for problem and solution (Evans) Domain Model: The T eam and the Customer build a single language for the solution they develop (Evans) Agile Architecture
  • 18. Team: Collaboration Ana lyst: Initial requirements, feasibility Developer: Incremental design , pair programming Tester: Quality attributes strategy, Prototype testing, test harness definitions Agile Architecture
  • 19. Team When does architecture come into our work? When we fir st try to conceive the product as a whole When we propose strategies to fulfill requirements related to quality attributes and when we test them When we distribute work between our teams When we organize our software configuration When we choose languages and technology When we record design rationale Agile Architecture
  • 20. Team: Documentation rules Ar chitecture Documentation/Communication Rules P ut yourself in his shoes (Views) Keep a standard organization (Views?) Avoid ambiguity (Unique language) Avoid unnecesary repetition (and explain notations) Keep documentation current but not too current Record rationale (Decision Log) Review documentation for fitness of purpose (Clements, Garlan, et al) Agile Architecture
  • 21. Bibliography Austin, Bob, Devin, Lee, Artful Making , What Managers need to know about how artists work, Bass, Len, Clements, Paul, Kazman, Rick, Software Architecture in Practice , SEI Series in Software Engineering, 1998. Brooks, Frederick, No Silver Bullet, Essence and Accidents of Software Engineering , Computer Magazine, 1987. Clements, Paul, et al, Documenting Software Architecture: Views & Beyond , SEI Series in Software Engineering, Addison-Wesley, 2003. Evans, Eric, Domain Driven Design , Tackling Complexity in the Heart of Software, 2003. Agile Architecture
  • 22. Bibliography Austin, Rob, Devin, Lee, Artful Making, What managers need to know about how artists work , Prentice Hall, 2003. Bass, Len, Clements, Paul, Kazman, Rick, Software Architecture in Practice , SEI Series in Software Engineering, 1998. Brooks, Frederick, “No Silver Bullet” , in The Mythical Man-Month, Essays on Software Engineering , Addison-Wesley, 1985. Clements, Paul, Shaw, Mary, "Three Patterns That Help Explain the Development of Software Engineering" , Position paper for Dagstuhl Workshop on Software Architecture, 1996. Agile Architecture
  • 23. Bibliography Clements, Paul, et al, Documenting Software Architecture: Views and Beyond , SEI Series in Software Engineering, Addison-Wesley, 2003. Fowler, Martin, “Who Needs an Architect?” , IEEE Software, Volume 20, Issue 4, September 2003, pages 11-13. Meyer, Bertrand, Object-Oriented Software Construction , Prentice-Hall, 1985, 2nd Edition 1997. Poppendieck, Mary, Poppendieck, Tom, Implementing Lean Software Development, From Concept to Cash , Addison-Wesley, 2006.