SlideShare a Scribd company logo
Agile architecture & programmingAgile Mëtteg – 16 September 2010
OBJECTIVESUnderstand the implications of agile development on architecture, design and coding practicesExplain some myths about software architecture and agilityShow some best practices16 Sept 20102Agile Mëtteg - Agile architecture
AGILE PARTNER SERVICESCustom Software Development & MaintenanceOur core business to answer customer needsIS servicesThanks to our expertise we can support IT team to reach their productivity & quality objectives (Assessment, Coaching, Support, Training, Resource delegation…)IS SolutionsTake benefit from commercial or Open Source platform to answer as quick as possible to specific needsIS users servicesWe can support Product & Services owners to work closely with the IT team (Assessment, Coaching, Support, Training, Resource delegation…)16 Sept 2010Agile Mëtteg - Agile architecture3IS users Services14Software Development & SoftwareMaintenance2ISSolutionsIS ServicesAgilityAgility31234Agility
ABOUT MEAbout Me16 Sept 2010Agile Mëtteg - Agile architecture4
AGENDAAgendaMyths about agility and architectureWhat do we mean by Architecture?What do we mean by Agile?How does agility affect architecture?Introduction to Domain-Driven DesignIntroduction to Component-Based DesignCoding practices16 Sept 2010Agile Mëtteg - Agile architecture5
Myths about Agility and Architecture16 Sept 2010Agile Mëtteg - Agile architecture6
MYTHS ABOUT AGILITY & ARCHITECTUREAgile = FragileNo Architecture No DesignOnly works for small projects16 Sept 2010Agile Mëtteg - Agile architecture7
What do we mean by Architecture?16 Sept 2010Agile Mëtteg - Agile architecture8
WHAT DO WE MEAN BY ARCHITECTURE?Architecture embodies the critical design decisions that classify a systemEnterprise Architecture (relates to organizational structure, cost of change, ...)Technical Architecture (infrastructure)Software Architecture (capabilities of the system, structure of code ...)etc.16 Sept 2010Agile Mëtteg - Agile architecture9
WHAT DO WE MEAN BY ARCHITECTURE?A good architecture is one in which the significance of decisions is reducedThis means key decisions are the ones that reduce the significance of other decisionsMakes changes easy Reduces cost of changeA stable and robust architecture does not mean it is “frozen”16 Sept 2010Agile Mëtteg - Agile architecture10
WHAT DO WE MEAN BY ARCHITECTURE?The importance of decisions needs to be well understood and assessedHeavy-weight approaches are likely to reduce the understanding and the ability to evaluateKeep it simple!16 Sept 2010Agile Mëtteg - Agile architecture11
WHY ARCHITECTURE IS SO IMPORTANTBase for further decisionsInfluence on team structureFoundation for GUI“The interface is the program” (Raskin)Reflects system designWeb, Smart Client, Client/Server, Embedded ...16 Sept 2010Agile Mëtteg - Agile architecture12
What do we mean by AGILE?16 Sept 2010Agile Mëtteg - Agile architecture13
AGILE MANIFESTOIndividuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan16 Sept 2010Agile Mëtteg - Agile architecture14
AGILE DEVELOPMENTWhat makes development agile is ...Sustainability of process and codeFeedback at different levels of scaleAwareness of what is being built and howThe right detail at the right time and in the right placeThe engagement of people in the processEconomy16 Sept 2010Agile Mëtteg - Agile architecture15
How does agility affect Architecture?16 Sept 2010Agile Mëtteg - Agile architecture16
HOW DOES AGILITY AFFECT ARCHITECTURE?Requirements for an “agile” designThe design should improve inter team communicationIt must be comprehensible to everyone without a lot of documentationIt must support testingThe design must support customer communication and collaborationIt must respond to change16 Sept 2010Agile Mëtteg - Agile architecture17
BUFD, NUFD or RUFD?16 Sept 2010Agile Mëtteg - Agile architecture18
WATERFALL / CLASSICAL APPROACH16 Sept 2010Agile Mëtteg - Agile architecture19ProjectPlanBuildTestReviewDeploy
WATERFALL / CLASSICAL APPROACHBig upfront designImpossible to know everything in advanceLack of flexibilityLack of extensibilityLack of adaptability“Ivory Tower” metaphorArchitecture might be ignored because team members were not involved in its creation16 Sept 2010Agile Mëtteg - Agile architecture20
SCRUM16 Sept 2010Agile Mëtteg - Agile architecture21SprintPlanDeployPlanPlanPlanReviewBuildBuildBuildBuildTestTestTestTestReviewReviewReviewReviewFeature 1Feature 2Feature 3Feature 4
AGILE MODELLINGNo Up-Front DesignTeam members have a very high technical expertiseTeam members have in-depth knowledge of the domain16 Sept 2010Agile Mëtteg - Agile architecture22
AGILE MODELLINGKeep up-front design shortBut not tooshortYou do not have to know precisely what to build before you can start building it.A sprint/iteration 0 can help defining key architecture concepts, a vision and initial architectureUse existing expertiseDelaying critical design decisions does not mean we ignore existing knowledgeUse proof of concepts to backup the architecture and document it16 Sept 2010Agile Mëtteg - Agile architecture23
DRUFD vs NUFD 16 Sept 2010Agile Mëtteg - Agile architecture24Release GAHA - JEBIFCJ1st Sprint2nd Sprint3rd SprintInceptionDAGJA - IEBHKFCIL1st Sprint2nd Sprint3rd Sprint4th Sprint
EVOLVING ARCHITECTURE16 Sept 2010Agile Mëtteg - Agile architecture25FeedbackModels, VisionEnvision Initial ArchitectureCommunicate Architecture to StakeholdersUpdate ArchitectureModels, VisionFeedbackModels, VisionWork with developersModels, Vision
LAYERED ARCHITECTUREIteration n16 Sept 2010Agile Mëtteg - Agile architecture26Iteration 3Iteration 2Iteration 1
InTrODuction TODoMain-DRIVEN DESIGN16 Sept 2010Agile Mëtteg - Agile architecture27
DOMAIN-DRIVEN DESIGNDomain-Driven Design (Eric Evans)Focus on the core domain and domain logicModel is the base of complex designsInitiating a creative collaboration between technical and domain experts to find the conceptual heart of the problem iteratively.16 Sept 2010Agile Mëtteg - Agile architecture28
DOMAIN-DRIVEN DESIGNDomain-Driven Design ConceptsJust in time modelingUbiquitous languageBounded ContextsDecoupling business logic from other aspects of the systemSeparation Of ConcernsCohesiveness16 Sept 2010Agile Mëtteg - Agile architecture29
InTrODuction TOCOMPONENT-BASED DESIGN16 Sept 2010Agile Mëtteg - Agile architecture30
COMPONENT-BASED DESIGNComponent-Based DesignAn individual component is a software package, a web service, or a module that encapsulates a set of related functions (or data).All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)Software as a circuit board16 Sept 2010Agile Mëtteg - Agile architecture31
COMPONENT-BASED DESIGNComponent-Based Design ConceptsModularityReusabilityCompositionEncapsulationSeparation Of ConcernsCohesiveness16 Sept 2010Agile Mëtteg - Agile architecture32
COMBINING APPROACHESUsing Domain-Driven Design within a componentTo create domain model and logicBounded ContextsAnti-Corruption layersImprove communication with UL16 Sept 2010Agile Mëtteg - Agile architecture33
COMBINING APPROACHESUsing Component-Based design to achieveModularityCompositionEncapsulation and DecouplingThe component defines a bounded contextEnables us to focus on one problem at a time16 Sept 2010Agile Mëtteg - Agile architecture34
SOFTWARE CELLS16 Sept 2010Agile Mëtteg - Agile architecture35PresentationPresentationPresentationPresentationDomain ModelDomain ModelDomain ModelDomain ModelData AccessData AccessData AccessData Accessis composed ofPresentationPresentationDomain ModelDomain ModelData AccessData Access
Coding practices16 Sept 2010Agile Mëtteg - Agile architecture36
TEST-DRIVEN DEVELOPMENTTest-Driven DevelopmentDesign tests BEFORE implementing a featureTests are testing the expected behavior of a component or classImplementation is done step by step until all tests passSupports thinking of a design that can be tested16 Sept 2010Agile Mëtteg - Agile architecture37
BEHAVIOR-DRIVEN DEVELOPMENTBehavior-Driven DevelopmentGet business specialists involved in testing!Focuses on collaboration between developers, quality assurance and business usersMight be used for User Acceptance testing16 Sept 2010Agile Mëtteg - Agile architecture38
VERSION CONTROL & CONTINUOUS INTEGRATIONVersion ControlA version control system allows the team members to simultaneously work on the code base. It automatically merges differences and reports conflicts.Continuous IntegrationRegular builds of the code baseEarly discovery of introduced bugsAutomatic execution of test baseReduces Regression16 Sept 2010Agile Mëtteg - Agile architecture39
REFACTORINGRefactoringImprove code quality without changing its behaviorCode towards design patternsConsider separation of concerns and cohesivenessTDD, BDD, Version Control and CI are the foundation for refactoring (a safety-net), they reduce the fear of change16 Sept 2010Agile Mëtteg - Agile architecture40
DECOUPLINGDecouplingHow?Inversion of controlDependency Injection EncapsulationHelps withModularityExtensibilityMaintainabilityTestability16 Sept 2010Agile Mëtteg - Agile architecture41
DESIGN PATTERNSDesign PatternsDo not re-invent the wheelDesign Patterns provide solutions for common problemsDomain-Driven Design defines a set of architectural patterns16 Sept 2010Agile Mëtteg - Agile architecture42
DEMo16 Sept 2010Agile Mëtteg - Agile architecture43
QUESTIONSIntentionallyBlank(ish)16 Sept 2010Agile Mëtteg - Agile architecture44
RESOURCESAgile Partner: www.agilepartner.netAgile Partner blog: blog.agilepartner.netAgile Interest Group Luxembourg:www.aiglu.orgAgile Alliance: www.agilealliance.orgScrum alliance: www.scrumalliance.orgScrum.org16 Sept 2010Agile Mëtteg - Agile architecture45
NEXT TRAININGS & CERTIFICATIONSJune 17th, 2010Agile Mëtteg - Continuous improvement in practice46Complete calendar on: http://www.agilepartner.net/training/
CONTACTSThank You16 Sept 2010Agile Mëtteg - Agile architecture47

More Related Content

PDF
Оформление коммерческого предложения
PDF
Web usability et e-Commerce
PPTX
Nouvelles expériences de lecture
PPTX
Agile Mëtteg series - Session 5
PDF
TibcoBE-Development
PDF
How to stay positive in a tough working environment pdf
PDF
PEC PA&Utilities 2016 | Il caso del Portogallo
PDF
ALM and DevOps in the health industry
Оформление коммерческого предложения
Web usability et e-Commerce
Nouvelles expériences de lecture
Agile Mëtteg series - Session 5
TibcoBE-Development
How to stay positive in a tough working environment pdf
PEC PA&Utilities 2016 | Il caso del Portogallo
ALM and DevOps in the health industry

Similar to Agile Mëtteg series session 7 (20)

PPTX
Being Architect
PDF
O.Savchenko FWDays workshop Software Architecture
PPTX
Agile Architecture Belfast Software Architecture User Group
PDF
Mule soft meetup Houston 16
PDF
Modern Agile Software Architecture
PDF
The Architecture Of Software Defined Radios Essay
PPTX
2009 scrum & architecture
PPTX
IT architecture and architects
PDF
The Language of Application Architecture
PPT
Innovate 2013 Design on a Diet - session 2131
PPTX
Sharepoint 2010: Practical Architecture from the Field
PPTX
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
PDF
Iterative Architecture: Your Path to on-time Delivery
PPTX
Continuous Delivery of Agile Architecture
PDF
Are You an Accidental or Intentional Architect?
PDF
Clean Architecture (Alt.Net Meetup on 26/06/2013)
PDF
Building an Enterprise Design System for 2024
PDF
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
PPTX
TechEvent Agile infrastructure projects
PPT
Integration blueprint-short-en
Being Architect
O.Savchenko FWDays workshop Software Architecture
Agile Architecture Belfast Software Architecture User Group
Mule soft meetup Houston 16
Modern Agile Software Architecture
The Architecture Of Software Defined Radios Essay
2009 scrum & architecture
IT architecture and architects
The Language of Application Architecture
Innovate 2013 Design on a Diet - session 2131
Sharepoint 2010: Practical Architecture from the Field
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Iterative Architecture: Your Path to on-time Delivery
Continuous Delivery of Agile Architecture
Are You an Accidental or Intentional Architect?
Clean Architecture (Alt.Net Meetup on 26/06/2013)
Building an Enterprise Design System for 2024
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
TechEvent Agile infrastructure projects
Integration blueprint-short-en
Ad

More from Agile Partner S.A. (20)

PDF
Domain-Driven Design: From strategic business goals to software implementation
PDF
Devops: la réunion des co-propriétaires
PDF
Découverte de l'esprit agile
PPTX
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
PDF
Agilité : la voix de la collaboration
PDF
Market validation (by Sylvain Chery)
PPT
Agile Brown Bag: Gouvernance SharePoint
PDF
Agile Mëtteg Septembre 2015: Introduction à DevOps
PDF
Agile Brown Bag - Vagrant & Docker: Introduction
PPTX
Agile Mëtteg #5: Agile Testing
PPTX
Introduction to agile methods
PPTX
Retour d expérience_sur_l_agilité
PPTX
Continuous innovation with Lean Startup
PPTX
Agile testing games
PPTX
Coding Dojo
PDF
Lkfr12 - De Scrum à Kanban
PPTX
Maîtriser et controler vos projets Agile
PPTX
Kanban: going Lean/Agile for your IT dev. & support team
PPTX
It job day Henam 2011-06-20
PDF
Agility, a mature approach, the fruit of more than 30 years research
Domain-Driven Design: From strategic business goals to software implementation
Devops: la réunion des co-propriétaires
Découverte de l'esprit agile
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Agilité : la voix de la collaboration
Market validation (by Sylvain Chery)
Agile Brown Bag: Gouvernance SharePoint
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Mëtteg #5: Agile Testing
Introduction to agile methods
Retour d expérience_sur_l_agilité
Continuous innovation with Lean Startup
Agile testing games
Coding Dojo
Lkfr12 - De Scrum à Kanban
Maîtriser et controler vos projets Agile
Kanban: going Lean/Agile for your IT dev. & support team
It job day Henam 2011-06-20
Agility, a mature approach, the fruit of more than 30 years research
Ad

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
cuic standard and advanced reporting.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Cloud computing and distributed systems.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Machine learning based COVID-19 study performance prediction
NewMind AI Weekly Chronicles - August'25 Week I
Programs and apps: productivity, graphics, security and other tools
20250228 LYD VKU AI Blended-Learning.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
Understanding_Digital_Forensics_Presentation.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
MYSQL Presentation for SQL database connectivity
Cloud computing and distributed systems.
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation_ Review paper, used for researhc scholars

Agile Mëtteg series session 7

  • 1. Agile architecture & programmingAgile Mëtteg – 16 September 2010
  • 2. OBJECTIVESUnderstand the implications of agile development on architecture, design and coding practicesExplain some myths about software architecture and agilityShow some best practices16 Sept 20102Agile Mëtteg - Agile architecture
  • 3. AGILE PARTNER SERVICESCustom Software Development & MaintenanceOur core business to answer customer needsIS servicesThanks to our expertise we can support IT team to reach their productivity & quality objectives (Assessment, Coaching, Support, Training, Resource delegation…)IS SolutionsTake benefit from commercial or Open Source platform to answer as quick as possible to specific needsIS users servicesWe can support Product & Services owners to work closely with the IT team (Assessment, Coaching, Support, Training, Resource delegation…)16 Sept 2010Agile Mëtteg - Agile architecture3IS users Services14Software Development & SoftwareMaintenance2ISSolutionsIS ServicesAgilityAgility31234Agility
  • 4. ABOUT MEAbout Me16 Sept 2010Agile Mëtteg - Agile architecture4
  • 5. AGENDAAgendaMyths about agility and architectureWhat do we mean by Architecture?What do we mean by Agile?How does agility affect architecture?Introduction to Domain-Driven DesignIntroduction to Component-Based DesignCoding practices16 Sept 2010Agile Mëtteg - Agile architecture5
  • 6. Myths about Agility and Architecture16 Sept 2010Agile Mëtteg - Agile architecture6
  • 7. MYTHS ABOUT AGILITY & ARCHITECTUREAgile = FragileNo Architecture No DesignOnly works for small projects16 Sept 2010Agile Mëtteg - Agile architecture7
  • 8. What do we mean by Architecture?16 Sept 2010Agile Mëtteg - Agile architecture8
  • 9. WHAT DO WE MEAN BY ARCHITECTURE?Architecture embodies the critical design decisions that classify a systemEnterprise Architecture (relates to organizational structure, cost of change, ...)Technical Architecture (infrastructure)Software Architecture (capabilities of the system, structure of code ...)etc.16 Sept 2010Agile Mëtteg - Agile architecture9
  • 10. WHAT DO WE MEAN BY ARCHITECTURE?A good architecture is one in which the significance of decisions is reducedThis means key decisions are the ones that reduce the significance of other decisionsMakes changes easy Reduces cost of changeA stable and robust architecture does not mean it is “frozen”16 Sept 2010Agile Mëtteg - Agile architecture10
  • 11. WHAT DO WE MEAN BY ARCHITECTURE?The importance of decisions needs to be well understood and assessedHeavy-weight approaches are likely to reduce the understanding and the ability to evaluateKeep it simple!16 Sept 2010Agile Mëtteg - Agile architecture11
  • 12. WHY ARCHITECTURE IS SO IMPORTANTBase for further decisionsInfluence on team structureFoundation for GUI“The interface is the program” (Raskin)Reflects system designWeb, Smart Client, Client/Server, Embedded ...16 Sept 2010Agile Mëtteg - Agile architecture12
  • 13. What do we mean by AGILE?16 Sept 2010Agile Mëtteg - Agile architecture13
  • 14. AGILE MANIFESTOIndividuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan16 Sept 2010Agile Mëtteg - Agile architecture14
  • 15. AGILE DEVELOPMENTWhat makes development agile is ...Sustainability of process and codeFeedback at different levels of scaleAwareness of what is being built and howThe right detail at the right time and in the right placeThe engagement of people in the processEconomy16 Sept 2010Agile Mëtteg - Agile architecture15
  • 16. How does agility affect Architecture?16 Sept 2010Agile Mëtteg - Agile architecture16
  • 17. HOW DOES AGILITY AFFECT ARCHITECTURE?Requirements for an “agile” designThe design should improve inter team communicationIt must be comprehensible to everyone without a lot of documentationIt must support testingThe design must support customer communication and collaborationIt must respond to change16 Sept 2010Agile Mëtteg - Agile architecture17
  • 18. BUFD, NUFD or RUFD?16 Sept 2010Agile Mëtteg - Agile architecture18
  • 19. WATERFALL / CLASSICAL APPROACH16 Sept 2010Agile Mëtteg - Agile architecture19ProjectPlanBuildTestReviewDeploy
  • 20. WATERFALL / CLASSICAL APPROACHBig upfront designImpossible to know everything in advanceLack of flexibilityLack of extensibilityLack of adaptability“Ivory Tower” metaphorArchitecture might be ignored because team members were not involved in its creation16 Sept 2010Agile Mëtteg - Agile architecture20
  • 21. SCRUM16 Sept 2010Agile Mëtteg - Agile architecture21SprintPlanDeployPlanPlanPlanReviewBuildBuildBuildBuildTestTestTestTestReviewReviewReviewReviewFeature 1Feature 2Feature 3Feature 4
  • 22. AGILE MODELLINGNo Up-Front DesignTeam members have a very high technical expertiseTeam members have in-depth knowledge of the domain16 Sept 2010Agile Mëtteg - Agile architecture22
  • 23. AGILE MODELLINGKeep up-front design shortBut not tooshortYou do not have to know precisely what to build before you can start building it.A sprint/iteration 0 can help defining key architecture concepts, a vision and initial architectureUse existing expertiseDelaying critical design decisions does not mean we ignore existing knowledgeUse proof of concepts to backup the architecture and document it16 Sept 2010Agile Mëtteg - Agile architecture23
  • 24. DRUFD vs NUFD 16 Sept 2010Agile Mëtteg - Agile architecture24Release GAHA - JEBIFCJ1st Sprint2nd Sprint3rd SprintInceptionDAGJA - IEBHKFCIL1st Sprint2nd Sprint3rd Sprint4th Sprint
  • 25. EVOLVING ARCHITECTURE16 Sept 2010Agile Mëtteg - Agile architecture25FeedbackModels, VisionEnvision Initial ArchitectureCommunicate Architecture to StakeholdersUpdate ArchitectureModels, VisionFeedbackModels, VisionWork with developersModels, Vision
  • 26. LAYERED ARCHITECTUREIteration n16 Sept 2010Agile Mëtteg - Agile architecture26Iteration 3Iteration 2Iteration 1
  • 27. InTrODuction TODoMain-DRIVEN DESIGN16 Sept 2010Agile Mëtteg - Agile architecture27
  • 28. DOMAIN-DRIVEN DESIGNDomain-Driven Design (Eric Evans)Focus on the core domain and domain logicModel is the base of complex designsInitiating a creative collaboration between technical and domain experts to find the conceptual heart of the problem iteratively.16 Sept 2010Agile Mëtteg - Agile architecture28
  • 29. DOMAIN-DRIVEN DESIGNDomain-Driven Design ConceptsJust in time modelingUbiquitous languageBounded ContextsDecoupling business logic from other aspects of the systemSeparation Of ConcernsCohesiveness16 Sept 2010Agile Mëtteg - Agile architecture29
  • 30. InTrODuction TOCOMPONENT-BASED DESIGN16 Sept 2010Agile Mëtteg - Agile architecture30
  • 31. COMPONENT-BASED DESIGNComponent-Based DesignAn individual component is a software package, a web service, or a module that encapsulates a set of related functions (or data).All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)Software as a circuit board16 Sept 2010Agile Mëtteg - Agile architecture31
  • 32. COMPONENT-BASED DESIGNComponent-Based Design ConceptsModularityReusabilityCompositionEncapsulationSeparation Of ConcernsCohesiveness16 Sept 2010Agile Mëtteg - Agile architecture32
  • 33. COMBINING APPROACHESUsing Domain-Driven Design within a componentTo create domain model and logicBounded ContextsAnti-Corruption layersImprove communication with UL16 Sept 2010Agile Mëtteg - Agile architecture33
  • 34. COMBINING APPROACHESUsing Component-Based design to achieveModularityCompositionEncapsulation and DecouplingThe component defines a bounded contextEnables us to focus on one problem at a time16 Sept 2010Agile Mëtteg - Agile architecture34
  • 35. SOFTWARE CELLS16 Sept 2010Agile Mëtteg - Agile architecture35PresentationPresentationPresentationPresentationDomain ModelDomain ModelDomain ModelDomain ModelData AccessData AccessData AccessData Accessis composed ofPresentationPresentationDomain ModelDomain ModelData AccessData Access
  • 36. Coding practices16 Sept 2010Agile Mëtteg - Agile architecture36
  • 37. TEST-DRIVEN DEVELOPMENTTest-Driven DevelopmentDesign tests BEFORE implementing a featureTests are testing the expected behavior of a component or classImplementation is done step by step until all tests passSupports thinking of a design that can be tested16 Sept 2010Agile Mëtteg - Agile architecture37
  • 38. BEHAVIOR-DRIVEN DEVELOPMENTBehavior-Driven DevelopmentGet business specialists involved in testing!Focuses on collaboration between developers, quality assurance and business usersMight be used for User Acceptance testing16 Sept 2010Agile Mëtteg - Agile architecture38
  • 39. VERSION CONTROL & CONTINUOUS INTEGRATIONVersion ControlA version control system allows the team members to simultaneously work on the code base. It automatically merges differences and reports conflicts.Continuous IntegrationRegular builds of the code baseEarly discovery of introduced bugsAutomatic execution of test baseReduces Regression16 Sept 2010Agile Mëtteg - Agile architecture39
  • 40. REFACTORINGRefactoringImprove code quality without changing its behaviorCode towards design patternsConsider separation of concerns and cohesivenessTDD, BDD, Version Control and CI are the foundation for refactoring (a safety-net), they reduce the fear of change16 Sept 2010Agile Mëtteg - Agile architecture40
  • 41. DECOUPLINGDecouplingHow?Inversion of controlDependency Injection EncapsulationHelps withModularityExtensibilityMaintainabilityTestability16 Sept 2010Agile Mëtteg - Agile architecture41
  • 42. DESIGN PATTERNSDesign PatternsDo not re-invent the wheelDesign Patterns provide solutions for common problemsDomain-Driven Design defines a set of architectural patterns16 Sept 2010Agile Mëtteg - Agile architecture42
  • 43. DEMo16 Sept 2010Agile Mëtteg - Agile architecture43
  • 44. QUESTIONSIntentionallyBlank(ish)16 Sept 2010Agile Mëtteg - Agile architecture44
  • 45. RESOURCESAgile Partner: www.agilepartner.netAgile Partner blog: blog.agilepartner.netAgile Interest Group Luxembourg:www.aiglu.orgAgile Alliance: www.agilealliance.orgScrum alliance: www.scrumalliance.orgScrum.org16 Sept 2010Agile Mëtteg - Agile architecture45
  • 46. NEXT TRAININGS & CERTIFICATIONSJune 17th, 2010Agile Mëtteg - Continuous improvement in practice46Complete calendar on: http://www.agilepartner.net/training/
  • 47. CONTACTSThank You16 Sept 2010Agile Mëtteg - Agile architecture47

Editor's Notes