SlideShare une entreprise Scribd logo
1  sur  47
Agile architecture & programming Agile Mëtteg – 16 September 2010
OBJECTIVES Understand the implications of agile development on architecture, design and coding practices Explain some myths about software architecture and agility Show some best practices 16 Sept 2010 2 Agile Mëtteg - Agile architecture
AGILE PARTNER SERVICES Custom Software Development & Maintenance Our core business to answer customer needs IS services Thanks to our expertise we can support IT team to reach their productivity & quality objectives (Assessment, Coaching, Support, Training, Resource delegation…) IS Solutions Take benefit from commercial or Open Source platform to answer as quick as possible to specific needs IS users services We can support Product & Services owners to work closely with the IT team (Assessment, Coaching, Support, Training, Resource delegation…) 16 Sept 2010 Agile Mëtteg - Agile architecture 3 IS users Services 1 4 Software Development & SoftwareMaintenance 2 ISSolutions IS Services Agility Agility 3 1 2 3 4 Agility
ABOUT ME About Me 16 Sept 2010 Agile Mëtteg - Agile architecture 4
AGENDA Agenda Myths about agility and architecture What do we mean by Architecture? What do we mean by Agile? How does agility affect architecture? Introduction to Domain-Driven Design Introduction to Component-Based Design Coding practices 16 Sept 2010 Agile Mëtteg - Agile architecture 5
Myths about Agility and Architecture 16 Sept 2010 Agile Mëtteg - Agile architecture 6
MYTHS ABOUT AGILITY & ARCHITECTURE Agile = Fragile No Architecture  No Design Only works for small projects 16 Sept 2010 Agile Mëtteg - Agile architecture 7
What do we mean by Architecture? 16 Sept 2010 Agile Mëtteg - Agile architecture 8
WHAT DO WE MEAN BY ARCHITECTURE? Architecture embodies the critical design decisions that classify a system Enterprise Architecture (relates to organizational structure, cost of change, ...) Technical Architecture (infrastructure) Software Architecture (capabilities of the system, structure of code ...) etc. 16 Sept 2010 Agile Mëtteg - Agile architecture 9
WHAT DO WE MEAN BY ARCHITECTURE? A good architecture is one in which the significance of decisions is reduced This means key decisions are the ones that reduce the significance of other decisions Makes changes easy  Reduces cost of change A stable and robust architecture does not mean it is “frozen” 16 Sept 2010 Agile Mëtteg - Agile architecture 10
WHAT DO WE MEAN BY ARCHITECTURE? The importance of decisions needs to be well understood and assessed Heavy-weight approaches are likely to reduce the understanding and the ability to evaluate Keep it simple! 16 Sept 2010 Agile Mëtteg - Agile architecture 11
WHY ARCHITECTURE IS SO IMPORTANT Base for further decisions Influence on team structure Foundation for GUI “The interface is the program” (Raskin) Reflects system design Web, Smart Client, Client/Server, Embedded ... 16 Sept 2010 Agile Mëtteg - Agile architecture 12
What do we mean by AGILE? 16 Sept 2010 Agile Mëtteg - Agile architecture 13
AGILE MANIFESTO Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan 16 Sept 2010 Agile Mëtteg - Agile architecture 14
AGILE DEVELOPMENT What makes development agile is ... Sustainability of process and code Feedback at different levels of scale Awareness of what is being built and how The right detail at the right time and in the right place The engagement of people in the process Economy 16 Sept 2010 Agile Mëtteg - Agile architecture 15
How does agility affect Architecture? 16 Sept 2010 Agile Mëtteg - Agile architecture 16
HOW DOES AGILITY AFFECT ARCHITECTURE? Requirements for an “agile” design The design should improve inter team communication It must be comprehensible to everyone without a lot of documentation It must support testing The design must support customer communication and collaboration It must respond to change 16 Sept 2010 Agile Mëtteg - Agile architecture 17
BUFD, NUFD or RUFD? 16 Sept 2010 Agile Mëtteg - Agile architecture 18
WATERFALL / CLASSICAL APPROACH 16 Sept 2010 Agile Mëtteg - Agile architecture 19 Project Plan Build Test Review Deploy
WATERFALL / CLASSICAL APPROACH Big upfront design Impossible to know everything in advance Lack of flexibility Lack of extensibility Lack of adaptability “Ivory Tower” metaphor Architecture might be ignored because team members were not involved in its creation 16 Sept 2010 Agile Mëtteg - Agile architecture 20
SCRUM 16 Sept 2010 Agile Mëtteg - Agile architecture 21 Sprint Plan Deploy Plan Plan Plan Review Build Build Build Build Test Test Test Test Review Review Review Review Feature 1 Feature 2 Feature 3 Feature 4
AGILE MODELLING No Up-Front Design Team members have a very high technical expertise Team members have in-depth knowledge of the domain 16 Sept 2010 Agile Mëtteg - Agile architecture 22
AGILE MODELLING Keep up-front design short But not tooshort You 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 architecture Use existing expertise Delaying critical design decisions does not mean we ignore existing knowledge Use proof of concepts to backup the architecture and document it 16 Sept 2010 Agile Mëtteg - Agile architecture 23
D RUFD vs NUFD  16 Sept 2010 Agile Mëtteg - Agile architecture 24 Release  G A H A - J E B I F C J 1st Sprint 2nd Sprint 3rd Sprint Inception D A G J A - I E B H K F C I L 1st Sprint 2nd Sprint 3rd Sprint 4th Sprint
EVOLVING ARCHITECTURE 16 Sept 2010 Agile Mëtteg - Agile architecture 25 Feedback Models,  Vision Envision Initial Architecture Communicate Architecture to Stakeholders Update Architecture Models,  Vision Feedback Models,  Vision Work with developers Models,  Vision
LAYERED ARCHITECTURE Iteration n 16 Sept 2010 Agile Mëtteg - Agile architecture 26 Iteration 3 Iteration 2 Iteration 1
InTrODuction TODoMain-DRIVEN DESIGN 16 Sept 2010 Agile Mëtteg - Agile architecture 27
DOMAIN-DRIVEN DESIGN Domain-Driven Design (Eric Evans) Focus on the core domain and domain logic Model is the base of complex designs Initiating a creative collaboration between technical and domain experts to find the conceptual heart of the problem iteratively. 16 Sept 2010 Agile Mëtteg - Agile architecture 28
DOMAIN-DRIVEN DESIGN Domain-Driven Design Concepts Just in time modeling Ubiquitous language Bounded Contexts Decoupling business logic from other aspects of the system Separation Of Concerns Cohesiveness 16 Sept 2010 Agile Mëtteg - Agile architecture 29
InTrODuction TOCOMPONENT-BASED DESIGN 16 Sept 2010 Agile Mëtteg - Agile architecture 30
COMPONENT-BASED DESIGN Component-Based Design An 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 board 16 Sept 2010 Agile Mëtteg - Agile architecture 31
COMPONENT-BASED DESIGN Component-Based Design Concepts Modularity Reusability Composition Encapsulation Separation Of Concerns Cohesiveness 16 Sept 2010 Agile Mëtteg - Agile architecture 32
COMBINING APPROACHES Using Domain-Driven Design within a component To create domain model and logic Bounded Contexts Anti-Corruption layers Improve communication with UL 16 Sept 2010 Agile Mëtteg - Agile architecture 33
COMBINING APPROACHES Using Component-Based design to achieve Modularity Composition Encapsulation and Decoupling The component defines a bounded context Enables us to focus on one problem at a time 16 Sept 2010 Agile Mëtteg - Agile architecture 34
SOFTWARE CELLS 16 Sept 2010 Agile Mëtteg - Agile architecture 35 Presentation Presentation Presentation Presentation Domain Model Domain Model Domain Model Domain Model Data Access Data Access Data Access Data Access is composed of Presentation Presentation Domain Model Domain Model Data Access Data Access
Coding practices 16 Sept 2010 Agile Mëtteg - Agile architecture 36
TEST-DRIVEN DEVELOPMENT Test-Driven Development Design tests BEFORE implementing a feature Tests are testing the expected behavior of a component or class Implementation is done step by step until all tests pass Supports thinking of a design that can be tested 16 Sept 2010 Agile Mëtteg - Agile architecture 37
BEHAVIOR-DRIVEN DEVELOPMENT Behavior-Driven Development Get business specialists involved in testing! Focuses on collaboration between developers, quality assurance and business users Might be used for User Acceptance testing 16 Sept 2010 Agile Mëtteg - Agile architecture 38
VERSION CONTROL & CONTINUOUS INTEGRATION Version Control A version control system allows the team members to simultaneously work on the code base. It automatically merges differences and reports conflicts. Continuous Integration Regular builds of the code base Early discovery of introduced bugs Automatic execution of test base Reduces Regression 16 Sept 2010 Agile Mëtteg - Agile architecture 39
REFACTORING Refactoring Improve code quality without changing its behavior Code towards design patterns Consider separation of concerns and cohesiveness TDD, BDD, Version Control and CI are the foundation for refactoring (a safety-net), they reduce the fear of change 16 Sept 2010 Agile Mëtteg - Agile architecture 40
DECOUPLING Decoupling How? Inversion of control Dependency Injection  Encapsulation Helps with Modularity Extensibility Maintainability Testability 16 Sept 2010 Agile Mëtteg - Agile architecture 41
DESIGN PATTERNS Design Patterns Do not re-invent the wheel Design Patterns provide solutions for common problems Domain-Driven Design defines a set of architectural patterns 16 Sept 2010 Agile Mëtteg - Agile architecture 42
DEMo 16 Sept 2010 Agile Mëtteg - Agile architecture 43
QUESTIONS IntentionallyBlank(ish) 16 Sept 2010 Agile Mëtteg - Agile architecture 44
RESOURCES Agile Partner: www.agilepartner.net Agile Partner blog: blog.agilepartner.net Agile Interest Group Luxembourg:www.aiglu.org Agile Alliance: www.agilealliance.org Scrum alliance: www.scrumalliance.org Scrum.org 16 Sept 2010 Agile Mëtteg - Agile architecture 45
NEXT TRAININGS & CERTIFICATIONS June 17th, 2010 Agile Mëtteg - Continuous improvement in practice 46 Complete calendar on: http://www.agilepartner.net/training/
CONTACTS Thank You 16 Sept 2010 Agile Mëtteg - Agile architecture 47

Contenu connexe

Similaire à Agile Architecture Programming

O.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software ArchitectureO.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software ArchitectureAlexandr Savchenko
 
Agile Architecture Belfast Software Architecture User Group
Agile Architecture   Belfast Software Architecture User GroupAgile Architecture   Belfast Software Architecture User Group
Agile Architecture Belfast Software Architecture User GroupPaul Wallace
 
Mule soft meetup Houston 16
Mule soft meetup Houston 16Mule soft meetup Houston 16
Mule soft meetup Houston 16Jim Andrews
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayDivya Watson
 
IT architecture and architects
IT architecture and architectsIT architecture and architects
IT architecture and architectsAndre Dovgal
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application ArchitectureBrad Beiermann
 
Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Daniel Leroux
 
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 FieldTihomir Ignatov
 
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...MysoreMuleSoftMeetup
 
Iterative Architecture: Your Path to on-time Delivery
Iterative Architecture: Your Path to on-time DeliveryIterative Architecture: Your Path to on-time Delivery
Iterative Architecture: Your Path to on-time DeliveryAsanka Abeysinghe
 
Continuous Delivery of Agile Architecture
Continuous Delivery of Agile ArchitectureContinuous Delivery of Agile Architecture
Continuous Delivery of Agile ArchitectureBrad Appleton
 
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
 
TechEvent Agile infrastructure projects
TechEvent Agile infrastructure projectsTechEvent Agile infrastructure projects
TechEvent Agile infrastructure projectsTrivadis
 
Integration blueprint-short-en
Integration blueprint-short-enIntegration blueprint-short-en
Integration blueprint-short-enGuido Schmutz
 
SACON NY 19: "Creating an effective developer experience for cloud-native apps"
SACON NY 19: "Creating an effective developer experience for cloud-native apps"SACON NY 19: "Creating an effective developer experience for cloud-native apps"
SACON NY 19: "Creating an effective developer experience for cloud-native apps"Daniel Bryant
 
Challenging The Role Of The Architect
Challenging The Role Of The ArchitectChallenging The Role Of The Architect
Challenging The Role Of The ArchitectKevin Francis
 

Similaire à Agile Architecture Programming (20)

Being Architect
Being ArchitectBeing Architect
Being Architect
 
O.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software ArchitectureO.Savchenko FWDays workshop Software Architecture
O.Savchenko FWDays workshop Software Architecture
 
Agile Architecture Belfast Software Architecture User Group
Agile Architecture   Belfast Software Architecture User GroupAgile Architecture   Belfast Software Architecture User Group
Agile Architecture Belfast Software Architecture User Group
 
Mule soft meetup Houston 16
Mule soft meetup Houston 16Mule soft meetup Houston 16
Mule soft meetup Houston 16
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
 
2009 scrum & architecture
2009 scrum & architecture2009 scrum & architecture
2009 scrum & architecture
 
IT architecture and architects
IT architecture and architectsIT architecture and architects
IT architecture and architects
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application Architecture
 
Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131Innovate 2013 Design on a Diet - session 2131
Innovate 2013 Design on a Diet - session 2131
 
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
 
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
Application Design Thinking wrt Integration Architecture - Part II | MuleSoft...
 
Iterative Architecture: Your Path to on-time Delivery
Iterative Architecture: Your Path to on-time DeliveryIterative Architecture: Your Path to on-time Delivery
Iterative Architecture: Your Path to on-time Delivery
 
Continuous Delivery of Agile Architecture
Continuous Delivery of Agile ArchitectureContinuous Delivery of Agile Architecture
Continuous Delivery of Agile Architecture
 
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?
 
Clean Architecture (Alt.Net Meetup on 26/06/2013)
Clean Architecture (Alt.Net Meetup on 26/06/2013)Clean Architecture (Alt.Net Meetup on 26/06/2013)
Clean Architecture (Alt.Net Meetup on 26/06/2013)
 
TechEvent Agile infrastructure projects
TechEvent Agile infrastructure projectsTechEvent Agile infrastructure projects
TechEvent Agile infrastructure projects
 
Integration blueprint-short-en
Integration blueprint-short-enIntegration blueprint-short-en
Integration blueprint-short-en
 
SACON NY 19: "Creating an effective developer experience for cloud-native apps"
SACON NY 19: "Creating an effective developer experience for cloud-native apps"SACON NY 19: "Creating an effective developer experience for cloud-native apps"
SACON NY 19: "Creating an effective developer experience for cloud-native apps"
 
Challenging The Role Of The Architect
Challenging The Role Of The ArchitectChallenging The Role Of The Architect
Challenging The Role Of The Architect
 

Plus de Agile Partner S.A.

Domain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationDomain-Driven Design: From strategic business goals to software implementation
Domain-Driven Design: From strategic business goals to software implementationAgile Partner S.A.
 
Devops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesDevops: la réunion des co-propriétaires
Devops: la réunion des co-propriétairesAgile Partner S.A.
 
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...
Comment intégrer au plus tôt l’utilisateur dans le développement d’une applic...Agile Partner S.A.
 
Agilité : la voix de la collaboration
Agilité : la voix de la collaborationAgilité : la voix de la collaboration
Agilité : la voix de la collaborationAgile Partner S.A.
 
Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Market validation (by Sylvain Chery)
Market validation (by Sylvain Chery)Agile Partner S.A.
 
Agile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Brown Bag: Gouvernance SharePoint
Agile Brown Bag: Gouvernance SharePointAgile Partner S.A.
 
Agile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Mëtteg Septembre 2015: Introduction à DevOps
Agile Mëtteg Septembre 2015: Introduction à DevOpsAgile Partner S.A.
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Partner S.A.
 
Retour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéRetour d expérience_sur_l_agilité
Retour d expérience_sur_l_agilitéAgile Partner S.A.
 
Continuous innovation with Lean Startup
Continuous innovation with Lean StartupContinuous innovation with Lean Startup
Continuous innovation with Lean StartupAgile Partner S.A.
 
Maîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileMaîtriser et controler vos projets Agile
Maîtriser et controler vos projets AgileAgile Partner S.A.
 
Kanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamKanban: going Lean/Agile for your IT dev. & support team
Kanban: going Lean/Agile for your IT dev. & support teamAgile Partner S.A.
 
Agility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgility, a mature approach, the fruit of more than 30 years research
Agility, a mature approach, the fruit of more than 30 years researchAgile Partner S.A.
 

Plus de Agile Partner S.A. (20)

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

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Dernier (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Agile Architecture Programming

  • 1. Agile architecture & programming Agile Mëtteg – 16 September 2010
  • 2. OBJECTIVES Understand the implications of agile development on architecture, design and coding practices Explain some myths about software architecture and agility Show some best practices 16 Sept 2010 2 Agile Mëtteg - Agile architecture
  • 3. AGILE PARTNER SERVICES Custom Software Development & Maintenance Our core business to answer customer needs IS services Thanks to our expertise we can support IT team to reach their productivity & quality objectives (Assessment, Coaching, Support, Training, Resource delegation…) IS Solutions Take benefit from commercial or Open Source platform to answer as quick as possible to specific needs IS users services We can support Product & Services owners to work closely with the IT team (Assessment, Coaching, Support, Training, Resource delegation…) 16 Sept 2010 Agile Mëtteg - Agile architecture 3 IS users Services 1 4 Software Development & SoftwareMaintenance 2 ISSolutions IS Services Agility Agility 3 1 2 3 4 Agility
  • 4. ABOUT ME About Me 16 Sept 2010 Agile Mëtteg - Agile architecture 4
  • 5. AGENDA Agenda Myths about agility and architecture What do we mean by Architecture? What do we mean by Agile? How does agility affect architecture? Introduction to Domain-Driven Design Introduction to Component-Based Design Coding practices 16 Sept 2010 Agile Mëtteg - Agile architecture 5
  • 6. Myths about Agility and Architecture 16 Sept 2010 Agile Mëtteg - Agile architecture 6
  • 7. MYTHS ABOUT AGILITY & ARCHITECTURE Agile = Fragile No Architecture No Design Only works for small projects 16 Sept 2010 Agile Mëtteg - Agile architecture 7
  • 8. What do we mean by Architecture? 16 Sept 2010 Agile Mëtteg - Agile architecture 8
  • 9. WHAT DO WE MEAN BY ARCHITECTURE? Architecture embodies the critical design decisions that classify a system Enterprise Architecture (relates to organizational structure, cost of change, ...) Technical Architecture (infrastructure) Software Architecture (capabilities of the system, structure of code ...) etc. 16 Sept 2010 Agile Mëtteg - Agile architecture 9
  • 10. WHAT DO WE MEAN BY ARCHITECTURE? A good architecture is one in which the significance of decisions is reduced This means key decisions are the ones that reduce the significance of other decisions Makes changes easy Reduces cost of change A stable and robust architecture does not mean it is “frozen” 16 Sept 2010 Agile Mëtteg - Agile architecture 10
  • 11. WHAT DO WE MEAN BY ARCHITECTURE? The importance of decisions needs to be well understood and assessed Heavy-weight approaches are likely to reduce the understanding and the ability to evaluate Keep it simple! 16 Sept 2010 Agile Mëtteg - Agile architecture 11
  • 12. WHY ARCHITECTURE IS SO IMPORTANT Base for further decisions Influence on team structure Foundation for GUI “The interface is the program” (Raskin) Reflects system design Web, Smart Client, Client/Server, Embedded ... 16 Sept 2010 Agile Mëtteg - Agile architecture 12
  • 13. What do we mean by AGILE? 16 Sept 2010 Agile Mëtteg - Agile architecture 13
  • 14. AGILE MANIFESTO Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan 16 Sept 2010 Agile Mëtteg - Agile architecture 14
  • 15. AGILE DEVELOPMENT What makes development agile is ... Sustainability of process and code Feedback at different levels of scale Awareness of what is being built and how The right detail at the right time and in the right place The engagement of people in the process Economy 16 Sept 2010 Agile Mëtteg - Agile architecture 15
  • 16. How does agility affect Architecture? 16 Sept 2010 Agile Mëtteg - Agile architecture 16
  • 17. HOW DOES AGILITY AFFECT ARCHITECTURE? Requirements for an “agile” design The design should improve inter team communication It must be comprehensible to everyone without a lot of documentation It must support testing The design must support customer communication and collaboration It must respond to change 16 Sept 2010 Agile Mëtteg - Agile architecture 17
  • 18. BUFD, NUFD or RUFD? 16 Sept 2010 Agile Mëtteg - Agile architecture 18
  • 19. WATERFALL / CLASSICAL APPROACH 16 Sept 2010 Agile Mëtteg - Agile architecture 19 Project Plan Build Test Review Deploy
  • 20. WATERFALL / CLASSICAL APPROACH Big upfront design Impossible to know everything in advance Lack of flexibility Lack of extensibility Lack of adaptability “Ivory Tower” metaphor Architecture might be ignored because team members were not involved in its creation 16 Sept 2010 Agile Mëtteg - Agile architecture 20
  • 21. SCRUM 16 Sept 2010 Agile Mëtteg - Agile architecture 21 Sprint Plan Deploy Plan Plan Plan Review Build Build Build Build Test Test Test Test Review Review Review Review Feature 1 Feature 2 Feature 3 Feature 4
  • 22. AGILE MODELLING No Up-Front Design Team members have a very high technical expertise Team members have in-depth knowledge of the domain 16 Sept 2010 Agile Mëtteg - Agile architecture 22
  • 23. AGILE MODELLING Keep up-front design short But not tooshort You 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 architecture Use existing expertise Delaying critical design decisions does not mean we ignore existing knowledge Use proof of concepts to backup the architecture and document it 16 Sept 2010 Agile Mëtteg - Agile architecture 23
  • 24. D RUFD vs NUFD 16 Sept 2010 Agile Mëtteg - Agile architecture 24 Release G A H A - J E B I F C J 1st Sprint 2nd Sprint 3rd Sprint Inception D A G J A - I E B H K F C I L 1st Sprint 2nd Sprint 3rd Sprint 4th Sprint
  • 25. EVOLVING ARCHITECTURE 16 Sept 2010 Agile Mëtteg - Agile architecture 25 Feedback Models, Vision Envision Initial Architecture Communicate Architecture to Stakeholders Update Architecture Models, Vision Feedback Models, Vision Work with developers Models, Vision
  • 26. LAYERED ARCHITECTURE Iteration n 16 Sept 2010 Agile Mëtteg - Agile architecture 26 Iteration 3 Iteration 2 Iteration 1
  • 27. InTrODuction TODoMain-DRIVEN DESIGN 16 Sept 2010 Agile Mëtteg - Agile architecture 27
  • 28. DOMAIN-DRIVEN DESIGN Domain-Driven Design (Eric Evans) Focus on the core domain and domain logic Model is the base of complex designs Initiating a creative collaboration between technical and domain experts to find the conceptual heart of the problem iteratively. 16 Sept 2010 Agile Mëtteg - Agile architecture 28
  • 29. DOMAIN-DRIVEN DESIGN Domain-Driven Design Concepts Just in time modeling Ubiquitous language Bounded Contexts Decoupling business logic from other aspects of the system Separation Of Concerns Cohesiveness 16 Sept 2010 Agile Mëtteg - Agile architecture 29
  • 30. InTrODuction TOCOMPONENT-BASED DESIGN 16 Sept 2010 Agile Mëtteg - Agile architecture 30
  • 31. COMPONENT-BASED DESIGN Component-Based Design An 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 board 16 Sept 2010 Agile Mëtteg - Agile architecture 31
  • 32. COMPONENT-BASED DESIGN Component-Based Design Concepts Modularity Reusability Composition Encapsulation Separation Of Concerns Cohesiveness 16 Sept 2010 Agile Mëtteg - Agile architecture 32
  • 33. COMBINING APPROACHES Using Domain-Driven Design within a component To create domain model and logic Bounded Contexts Anti-Corruption layers Improve communication with UL 16 Sept 2010 Agile Mëtteg - Agile architecture 33
  • 34. COMBINING APPROACHES Using Component-Based design to achieve Modularity Composition Encapsulation and Decoupling The component defines a bounded context Enables us to focus on one problem at a time 16 Sept 2010 Agile Mëtteg - Agile architecture 34
  • 35. SOFTWARE CELLS 16 Sept 2010 Agile Mëtteg - Agile architecture 35 Presentation Presentation Presentation Presentation Domain Model Domain Model Domain Model Domain Model Data Access Data Access Data Access Data Access is composed of Presentation Presentation Domain Model Domain Model Data Access Data Access
  • 36. Coding practices 16 Sept 2010 Agile Mëtteg - Agile architecture 36
  • 37. TEST-DRIVEN DEVELOPMENT Test-Driven Development Design tests BEFORE implementing a feature Tests are testing the expected behavior of a component or class Implementation is done step by step until all tests pass Supports thinking of a design that can be tested 16 Sept 2010 Agile Mëtteg - Agile architecture 37
  • 38. BEHAVIOR-DRIVEN DEVELOPMENT Behavior-Driven Development Get business specialists involved in testing! Focuses on collaboration between developers, quality assurance and business users Might be used for User Acceptance testing 16 Sept 2010 Agile Mëtteg - Agile architecture 38
  • 39. VERSION CONTROL & CONTINUOUS INTEGRATION Version Control A version control system allows the team members to simultaneously work on the code base. It automatically merges differences and reports conflicts. Continuous Integration Regular builds of the code base Early discovery of introduced bugs Automatic execution of test base Reduces Regression 16 Sept 2010 Agile Mëtteg - Agile architecture 39
  • 40. REFACTORING Refactoring Improve code quality without changing its behavior Code towards design patterns Consider separation of concerns and cohesiveness TDD, BDD, Version Control and CI are the foundation for refactoring (a safety-net), they reduce the fear of change 16 Sept 2010 Agile Mëtteg - Agile architecture 40
  • 41. DECOUPLING Decoupling How? Inversion of control Dependency Injection Encapsulation Helps with Modularity Extensibility Maintainability Testability 16 Sept 2010 Agile Mëtteg - Agile architecture 41
  • 42. DESIGN PATTERNS Design Patterns Do not re-invent the wheel Design Patterns provide solutions for common problems Domain-Driven Design defines a set of architectural patterns 16 Sept 2010 Agile Mëtteg - Agile architecture 42
  • 43. DEMo 16 Sept 2010 Agile Mëtteg - Agile architecture 43
  • 44. QUESTIONS IntentionallyBlank(ish) 16 Sept 2010 Agile Mëtteg - Agile architecture 44
  • 45. RESOURCES Agile Partner: www.agilepartner.net Agile Partner blog: blog.agilepartner.net Agile Interest Group Luxembourg:www.aiglu.org Agile Alliance: www.agilealliance.org Scrum alliance: www.scrumalliance.org Scrum.org 16 Sept 2010 Agile Mëtteg - Agile architecture 45
  • 46. NEXT TRAININGS & CERTIFICATIONS June 17th, 2010 Agile Mëtteg - Continuous improvement in practice 46 Complete calendar on: http://www.agilepartner.net/training/
  • 47. CONTACTS Thank You 16 Sept 2010 Agile Mëtteg - Agile architecture 47

Notes de l'éditeur

  1. SCH
  2. SCH
  3. CPO & PAG
  4. CPO
  5. PAG
  6. PAG
  7. PAG
  8. PAG
  9. PAG
  10. PAG
  11. PAG
  12. PAG
  13. PAG
  14. PAG
  15. PAG
  16. PAG
  17. PAG
  18. PAG
  19. PAG
  20. PAG
  21. PAG
  22. PAG
  23. PAG
  24. PAG
  25. CPO
  26. PAG
  27. PAG
  28. PAG
  29. PAG
  30. PAG
  31. PAG
  32. PAG
  33. PAG
  34. PAG
  35. CPO
  36. CPO
  37. CPO
  38. CPO
  39. CPO
  40. CPO
  41. CPO
  42. CPO
  43. CPO