SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Similar a 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
 

Similar a 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
 

Más 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.
 

Más 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
 

Último

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer 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

Notas del editor

  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