SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
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

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - AvrilIvanti
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Dernier (20)

Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.How Tech Giants Cut Corners to Harvest Data for A.I.
How Tech Giants Cut Corners to Harvest Data for A.I.
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - Avril
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 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