SlideShare a Scribd company logo
1 of 50
Agile architecture & programming Agile Mëtteg – 20 May 2010
OBJECTIVES Understand the implications of agile development on architecture, design and coding practices Explain some misbelieves about software architecture and agility 20 May 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…) 20 May 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
WHO’S WHO Who are we ? Whatisourrole in ourorganization ? What are our expectations fromthisseminar ? 20 May 2010 Agile Mëtteg - Agile architecture 4
AGENDA Agenda Can Enterprise Architecture be Agile ? Misbelieves about architecture and agility Why Up Front Design doesn’t always work ? Emerging architectures and evolutionary design Coding practices So is Design dead ? 20 May 2010 Agile Mëtteg - Agile architecture 5
ARCHITECTURE ? WHICH ONE ? Architecture: very contextual activity Enterprisearchitecture Software architecture Technical architecture Etc. 20 May 2010 Agile Mëtteg - Agile architecture 6
Can Enterprise Architecture be Agile ? 20 May 2010 Agile Mëtteg - Agile architecture 7
CAN EA BE AGILE ? Enterprise architecture: Vision, principles, standards, roadmap Enterprise architecture frameworks: TOGAF 9, Zachman framework, … Define extensively structure and models Use them as guides, not as rules Beware of over-documentation 20 May 2010 Agile Mëtteg - Agile architecture 8
CAN EA BE AGILE ? 20 May 2010 Agile Mëtteg - Agile architecture 9 Example: Zachman framework
CAN EA BE AGILE ? Example: Zachman framework 20 May 2010 Agile Mëtteg - Agile architecture 10 EA Armory ;) Choose one or two weapon(s) Use Agile modeling (JIT Modeling) Helps to structure Leave no stone unturned DO NOT TRY AND IMPLEMENT EVERYTHING!!!!
Misbelieves about SOFTWARE architecture and agility 20 May 2010 Agile Mëtteg - Agile architecture 11
MISBELIEVES ON ARCHITECTURE You have to know precisely what to build before you can start building it. Building software is like construction building 20 May 2010 Agile Mëtteg - Agile architecture 12
MISBELIEVES ON AGILITY No architecture Code and fix nightmare Cowboy coding Onlyworks forsmallprojects 20 May 2010 Agile Mëtteg - Agile architecture 13
Why up front design doesn’talwayswork ? 20 May 2010 Agile Mëtteg - Agile architecture 14
Traditional / Waterfallapproach Design isdoneup front BigDesign Up Front = BDUF WHEN DO YOU DESIGN ? 20 May 2010 Agile Mëtteg - Agile architecture 15
IS THAT THE RIGHT APPROACH ? “In preparing for battle I have always found that plans are useless, but planningis indispensable.”  [D.Eisenhower] 20 May 2010 Agile Mëtteg - Agile architecture 16
WHAT DO AGILISTS SAY ? “Design is there to enable you to keep changing the software easily in the long term.”  [Kent Beck] Source : http://thedailywtf.com/Articles/The_Customer-Friendly_System.aspx 20 May 2010 Agile Mëtteg - Agile architecture 17
WHAT DO AGILISTS SAY ? “eXtreme Programming recognizes the importance of design decisions, but it strongly resists upfront design. Instead, it puts and admirable effort into communication and improving the projects ability to changecourse rapidly”  [Eric Evans, DDD] 20 May 2010 Agile Mëtteg - Agile architecture 18
BDUF NOT ALWAYS WORKING ? You cannot foresee the future Requirements change Architecture documents are not carved in stone 20 May 2010 Agile Mëtteg - Agile architecture 19
BDUF NOT ALWAYS WORKING ? The « Architect » in hisIvoryTower Architects far from teams Developers kept out of architecture definition Frustrated teams ignore / bypass the model 20 May 2010 Agile Mëtteg - Agile architecture 20
BDUF NOT ALWAYS WORKING ? 20 May 2010 Agile Mëtteg - Agile architecture 21 Everheard about over design ?
OVER DESIGN CONSEQUENCES Lack of  Flexibility Adaptability Extensibility 20 May 2010 Agile Mëtteg - Agile architecture 22 Effect on Cost ROI Time to market
Emerging architectures and evolutionary design 20 May 2010 Agile Mëtteg - Agile architecture 23
Waterfallapproach Design isdoneup front WHEN DO YOU DESIGN ? 20 May 2010 Agile Mëtteg - Agile architecture 24
Agile approach Design ispart of the developmentprocess WHEN DO YOU DESIGN ? 20 May 2010 Agile Mëtteg - Agile architecture 25 Iteration 1 Iteration 2 Iteration n No specificorder
20 May 2010 Agile Mëtteg - Agile architecture 26 How would you eat this cake ? LAYERED CAKE
ARCHITECTURE LAYERED CAKE Iteration n 20 May 2010 Agile Mëtteg - Agile architecture 27 Iteration 3 Iteration 2 Iteration 1
ABOUT EMERGENCE Tobias Mayer Emergence results from an empirical approach. It implies that all solutions to all problems will become clear as we work.  They will not become clear if we simply talk about them. Big Up Front Design might result in Big Wrong Design or at best Big Working But Totally Inflexible Design. When we allow solutions to emerge it is always the simplest and the most appropriate solution for the current context that rises to the surface.  Emergence coupled with Empiricism will lead us to the most appropriate and the most flexible (i.e. changeable) solution. 20 May 2010 Agile Mëtteg - Agile architecture 28
ABOUT EMERGENCE Tobias Mayer Emergence results from an empirical approach. It implies that all solutions to all problems will become clear as we work.  They will not become clear if we simply talk about them. Big Up Front Design might result in Big Wrong Design or at best Big Working But Totally Inflexible Design. When we allow solutions to emerge it is always the simplest and the most appropriate solution for the current context that rises to the surface.  Emergence coupled with Empiricism will lead us to the most appropriate and the most flexible (i.e. changeable) solution. 20 May 2010 Agile Mëtteg - Agile architecture 29
HOW DOES IT START ? It all startedwith a vision Initial architecture envisionning 20 May 2010 Agile Mëtteg - Agile architecture 30
AGILE MODELING 20 May 2010 Agile Mëtteg - Agile architecture 31 JIT modeling / design Coding practices Envisioning Source : http://www.agilemodeling.com/essays/initialArchitectureModeling.htm
DESIGN DURING DEVELOPMENT eXtremeProgramming Iteration 0 "The first iteration must be a functioning skeleton of the system as a whole.“ [Kent Beck] System metaphor Followingiterations Spike solution Proof of concept 20 May 2010 Agile Mëtteg - Agile architecture 32
DESIGN DURING DEVELOPMENT Domain Driven Design (Eric Evans) Just in time modeling Ubiquitouslanguage (cf System Metaphor) 20 May 2010 Agile Mëtteg - Agile architecture 33
VALUES OF AGILE ARCHITECTURE  20 May 2010 Agile Mëtteg - Agile architecture 34
Coding practices 20 May 2010 Agile Mëtteg - Agile architecture 35
PRACTICES Test DrivenDevelopment BehaviorDrivenDevelopment Refactoring Continuousintegration 20 May 2010 Agile Mëtteg - Agile architecture 36
TEST DRIVEN DEVELOPMENT (TDD) Makeit breakwrite the test first Makeitpasswrite the simplestimplementation Makeit right refactorwithoutchanging the behavior 20 May 2010 Agile Mëtteg - Agile architecture 37
TDD EXAMPLE FizzBuzz Kata Multiple of 3  Fizz Multiple of 7  Buzz Multiple of 3 and 7  FizzBuzz 20 May 2010 Agile Mëtteg - Agile architecture 38 Source : http://www.viddler.com/explore/Lostechies/videos/1/
BEHAVIOR DRIVEN DEVELOPMENT 20 May 2010 Agile Mëtteg - Agile architecture 39 User stories
BDD : EXECUTABLE SPECIFICATIONS Scenario : Accountis in credit 20 May 2010 Agile Mëtteg - Agile architecture 40
REFACTORING Refactoring  Change “How” not “What” Pay your technical debt Use of patterns Refactor towards patterns only when needed Leverage ubiquitous language 20 May 2010 Agile Mëtteg - Agile architecture 41
CONTINUOUS INTEGRATION Your product builds at any time Run the tests often Ease deployment 20 May 2010 Agile Mëtteg - Agile architecture 42
So is design dead ? 20 May 2010 Agile Mëtteg - Agile architecture 43
SO IS DESIGN DEAD ? “Not by any means, but the nature of design has changed.” [Martin Fowler] Keep code as clean and simple as possible. Refactorto confidently make improvements. Use design patterns when needed. Communicate the design using code, diagrams and above all conversation. 20 May 2010 Agile Mëtteg - Agile architecture 44
EMPHASIZED COMMUNICATION 20 May 2010 Agile Mëtteg - Agile architecture 45
AGILE ARCHITECTURE MANIFESTO ? Business focus Emergence Simplicity Extensibility 20 May 2010 Agile Mëtteg - Agile architecture 46 Technical perfection Up front design Excessive design Omnipotence
QUESTIONS 47 Agile Mëtteg - Agile architecture 20 May 2010
NEXT TRAININGS & CERTIFICATIONS 20 May 2010 Agile Mëtteg - Agile architecture 48 Complete calendar on: http://www.agilepartner.net/training/training_calendar.html
RESOURCES Agile Partner: www.agilepartner.net Agile Interest Group Luxembourg:www.aiglu.org Agile Alliance: www.agilealliance.org Scrum alliance: www.scrumalliance.org Scrum.org 20 May 2010 Agile Mëtteg - Agile architecture 49
CONTACTS Thank You 20 May 2010 Agile Mëtteg - Agile architecture 50

More Related Content

What's hot

Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Sander Hoogendoorn
 
introdução a pretotyping fazer a coisa certa mais do que fazer certo a coisa
introdução a pretotyping  fazer a coisa certa mais do que fazer certo a coisaintrodução a pretotyping  fazer a coisa certa mais do que fazer certo a coisa
introdução a pretotyping fazer a coisa certa mais do que fazer certo a coisatdc-globalcode
 
Agile Mëtteg series session 7
Agile Mëtteg series session 7Agile Mëtteg series session 7
Agile Mëtteg series session 7Agile Partner S.A.
 
Agile and Organizational Learning
Agile and Organizational LearningAgile and Organizational Learning
Agile and Organizational LearningWolfgang Wiedenroth
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground upSander Hoogendoorn
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the RubiconThoughtworks
 
Product owner Roles and responsibilities in Agile Scrum Methodologies
Product owner Roles and responsibilities in Agile Scrum MethodologiesProduct owner Roles and responsibilities in Agile Scrum Methodologies
Product owner Roles and responsibilities in Agile Scrum MethodologiesAgile Project Management
 
The revolution will be collaborative
The revolution will be collaborativeThe revolution will be collaborative
The revolution will be collaborativeRonan Berder
 
The layperson's guide to software architecture
The layperson's guide to software architectureThe layperson's guide to software architecture
The layperson's guide to software architectureThoughtworks
 
The Role and Challenges of a PM in a New Industry by Elliptic PM
The Role and Challenges of a PM in a New Industry by Elliptic PMThe Role and Challenges of a PM in a New Industry by Elliptic PM
The Role and Challenges of a PM in a New Industry by Elliptic PMProduct School
 

What's hot (10)

Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.
 
introdução a pretotyping fazer a coisa certa mais do que fazer certo a coisa
introdução a pretotyping  fazer a coisa certa mais do que fazer certo a coisaintrodução a pretotyping  fazer a coisa certa mais do que fazer certo a coisa
introdução a pretotyping fazer a coisa certa mais do que fazer certo a coisa
 
Agile Mëtteg series session 7
Agile Mëtteg series session 7Agile Mëtteg series session 7
Agile Mëtteg series session 7
 
Agile and Organizational Learning
Agile and Organizational LearningAgile and Organizational Learning
Agile and Organizational Learning
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground up
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Product owner Roles and responsibilities in Agile Scrum Methodologies
Product owner Roles and responsibilities in Agile Scrum MethodologiesProduct owner Roles and responsibilities in Agile Scrum Methodologies
Product owner Roles and responsibilities in Agile Scrum Methodologies
 
The revolution will be collaborative
The revolution will be collaborativeThe revolution will be collaborative
The revolution will be collaborative
 
The layperson's guide to software architecture
The layperson's guide to software architectureThe layperson's guide to software architecture
The layperson's guide to software architecture
 
The Role and Challenges of a PM in a New Industry by Elliptic PM
The Role and Challenges of a PM in a New Industry by Elliptic PMThe Role and Challenges of a PM in a New Industry by Elliptic PM
The Role and Challenges of a PM in a New Industry by Elliptic PM
 

Similar to Agile Mëtteg series - Session 3

Lean & Agile ♥ UX Design
Lean & Agile ♥ UX DesignLean & Agile ♥ UX Design
Lean & Agile ♥ UX DesignLukas Fittl
 
Agile Architecture
Agile Architecture Agile Architecture
Agile Architecture VMware Tanzu
 
BitDegree Public
BitDegree PublicBitDegree Public
BitDegree PublicYu-kai Chou
 
BitDegree Island
BitDegree IslandBitDegree Island
BitDegree IslandYu-kai Chou
 
Sharepoint 2013 - pratcical architecture from the field - Tihomir Ignatov
Sharepoint 2013 - pratcical architecture from the field - Tihomir IgnatovSharepoint 2013 - pratcical architecture from the field - Tihomir Ignatov
Sharepoint 2013 - pratcical architecture from the field - Tihomir IgnatovTihomir Ignatov
 
AI Foundation and how to CareerPivot to AI
AI Foundation and how to CareerPivot to AI AI Foundation and how to CareerPivot to AI
AI Foundation and how to CareerPivot to AI Sudha Jamthe
 
When we design together
When we design togetherWhen we design together
When we design togetherThoughtworks
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application ArchitectureBrad Beiermann
 
How to develop a novel wearable product?
How to develop a novel wearable product?   How to develop a novel wearable product?
How to develop a novel wearable product? Ruth Thomson
 
Why Design Automation Will Disrupt AEC
Why Design Automation Will Disrupt AECWhy Design Automation Will Disrupt AEC
Why Design Automation Will Disrupt AECBrett Young
 
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdfOSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdfAltinity Ltd
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
We (don't) need a software architect!?!
We (don't) need a software architect!?!We (don't) need a software architect!?!
We (don't) need a software architect!?!Hendrik Lösch
 
20210318 vaidas adomauskas - startup lithuania
20210318   vaidas adomauskas - startup lithuania20210318   vaidas adomauskas - startup lithuania
20210318 vaidas adomauskas - startup lithuaniaVaidas Adomauskas
 
A Guide To Minimum Viable Architecture Points For Any Startup
A Guide To Minimum Viable Architecture Points For Any StartupA Guide To Minimum Viable Architecture Points For Any Startup
A Guide To Minimum Viable Architecture Points For Any StartupMindbowser Inc
 
PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...
PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...
PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...Espedito Passarello
 
Agile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse DuttileAgile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse DuttileFelice Pescatore
 

Similar to Agile Mëtteg series - Session 3 (20)

Lean & Agile ♥ UX Design
Lean & Agile ♥ UX DesignLean & Agile ♥ UX Design
Lean & Agile ♥ UX Design
 
Agile Architecture
Agile Architecture Agile Architecture
Agile Architecture
 
BitDegree Public
BitDegree PublicBitDegree Public
BitDegree Public
 
BitDegree Island
BitDegree IslandBitDegree Island
BitDegree Island
 
Sharepoint 2013 - pratcical architecture from the field - Tihomir Ignatov
Sharepoint 2013 - pratcical architecture from the field - Tihomir IgnatovSharepoint 2013 - pratcical architecture from the field - Tihomir Ignatov
Sharepoint 2013 - pratcical architecture from the field - Tihomir Ignatov
 
2009 scrum & architecture
2009 scrum & architecture2009 scrum & architecture
2009 scrum & architecture
 
AI Foundation and how to CareerPivot to AI
AI Foundation and how to CareerPivot to AI AI Foundation and how to CareerPivot to AI
AI Foundation and how to CareerPivot to AI
 
When we design together
When we design togetherWhen we design together
When we design together
 
The Language of Application Architecture
The Language of Application ArchitectureThe Language of Application Architecture
The Language of Application Architecture
 
How to develop a novel wearable product?
How to develop a novel wearable product?   How to develop a novel wearable product?
How to develop a novel wearable product?
 
How to develop a wearable
How to develop a wearableHow to develop a wearable
How to develop a wearable
 
Why Design Automation Will Disrupt AEC
Why Design Automation Will Disrupt AECWhy Design Automation Will Disrupt AEC
Why Design Automation Will Disrupt AEC
 
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdfOSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
OSA Con 2022 - Welcome to OSA CON Version 2022 - Robert Hodges - Altinity.pdf
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
We (don't) need a software architect!?!
We (don't) need a software architect!?!We (don't) need a software architect!?!
We (don't) need a software architect!?!
 
20210318 vaidas adomauskas - startup lithuania
20210318   vaidas adomauskas - startup lithuania20210318   vaidas adomauskas - startup lithuania
20210318 vaidas adomauskas - startup lithuania
 
Startup CTO Role v3
Startup CTO Role v3Startup CTO Role v3
Startup CTO Role v3
 
A Guide To Minimum Viable Architecture Points For Any Startup
A Guide To Minimum Viable Architecture Points For Any StartupA Guide To Minimum Viable Architecture Points For Any Startup
A Guide To Minimum Viable Architecture Points For Any Startup
 
PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...
PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...
PASSARELLO ESPEDITO CATEDRA ARQUITECTURA EMPRESARIAL Clase 7 material_organiz...
 
Agile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse DuttileAgile meets IoT: AgileIoT and Eclipse Duttile
Agile meets IoT: AgileIoT and Eclipse Duttile
 

More from 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.
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industryAgile 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.
 

More from 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)
 
ALM and DevOps in the health industry
ALM and DevOps in the health industryALM and DevOps in the health industry
ALM and DevOps in the health industry
 
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
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 

Agile Mëtteg series - Session 3

  • 1. Agile architecture & programming Agile Mëtteg – 20 May 2010
  • 2. OBJECTIVES Understand the implications of agile development on architecture, design and coding practices Explain some misbelieves about software architecture and agility 20 May 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…) 20 May 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. WHO’S WHO Who are we ? Whatisourrole in ourorganization ? What are our expectations fromthisseminar ? 20 May 2010 Agile Mëtteg - Agile architecture 4
  • 5. AGENDA Agenda Can Enterprise Architecture be Agile ? Misbelieves about architecture and agility Why Up Front Design doesn’t always work ? Emerging architectures and evolutionary design Coding practices So is Design dead ? 20 May 2010 Agile Mëtteg - Agile architecture 5
  • 6. ARCHITECTURE ? WHICH ONE ? Architecture: very contextual activity Enterprisearchitecture Software architecture Technical architecture Etc. 20 May 2010 Agile Mëtteg - Agile architecture 6
  • 7. Can Enterprise Architecture be Agile ? 20 May 2010 Agile Mëtteg - Agile architecture 7
  • 8. CAN EA BE AGILE ? Enterprise architecture: Vision, principles, standards, roadmap Enterprise architecture frameworks: TOGAF 9, Zachman framework, … Define extensively structure and models Use them as guides, not as rules Beware of over-documentation 20 May 2010 Agile Mëtteg - Agile architecture 8
  • 9. CAN EA BE AGILE ? 20 May 2010 Agile Mëtteg - Agile architecture 9 Example: Zachman framework
  • 10. CAN EA BE AGILE ? Example: Zachman framework 20 May 2010 Agile Mëtteg - Agile architecture 10 EA Armory ;) Choose one or two weapon(s) Use Agile modeling (JIT Modeling) Helps to structure Leave no stone unturned DO NOT TRY AND IMPLEMENT EVERYTHING!!!!
  • 11. Misbelieves about SOFTWARE architecture and agility 20 May 2010 Agile Mëtteg - Agile architecture 11
  • 12. MISBELIEVES ON ARCHITECTURE You have to know precisely what to build before you can start building it. Building software is like construction building 20 May 2010 Agile Mëtteg - Agile architecture 12
  • 13. MISBELIEVES ON AGILITY No architecture Code and fix nightmare Cowboy coding Onlyworks forsmallprojects 20 May 2010 Agile Mëtteg - Agile architecture 13
  • 14. Why up front design doesn’talwayswork ? 20 May 2010 Agile Mëtteg - Agile architecture 14
  • 15. Traditional / Waterfallapproach Design isdoneup front BigDesign Up Front = BDUF WHEN DO YOU DESIGN ? 20 May 2010 Agile Mëtteg - Agile architecture 15
  • 16. IS THAT THE RIGHT APPROACH ? “In preparing for battle I have always found that plans are useless, but planningis indispensable.” [D.Eisenhower] 20 May 2010 Agile Mëtteg - Agile architecture 16
  • 17. WHAT DO AGILISTS SAY ? “Design is there to enable you to keep changing the software easily in the long term.” [Kent Beck] Source : http://thedailywtf.com/Articles/The_Customer-Friendly_System.aspx 20 May 2010 Agile Mëtteg - Agile architecture 17
  • 18. WHAT DO AGILISTS SAY ? “eXtreme Programming recognizes the importance of design decisions, but it strongly resists upfront design. Instead, it puts and admirable effort into communication and improving the projects ability to changecourse rapidly” [Eric Evans, DDD] 20 May 2010 Agile Mëtteg - Agile architecture 18
  • 19. BDUF NOT ALWAYS WORKING ? You cannot foresee the future Requirements change Architecture documents are not carved in stone 20 May 2010 Agile Mëtteg - Agile architecture 19
  • 20. BDUF NOT ALWAYS WORKING ? The « Architect » in hisIvoryTower Architects far from teams Developers kept out of architecture definition Frustrated teams ignore / bypass the model 20 May 2010 Agile Mëtteg - Agile architecture 20
  • 21. BDUF NOT ALWAYS WORKING ? 20 May 2010 Agile Mëtteg - Agile architecture 21 Everheard about over design ?
  • 22. OVER DESIGN CONSEQUENCES Lack of Flexibility Adaptability Extensibility 20 May 2010 Agile Mëtteg - Agile architecture 22 Effect on Cost ROI Time to market
  • 23. Emerging architectures and evolutionary design 20 May 2010 Agile Mëtteg - Agile architecture 23
  • 24. Waterfallapproach Design isdoneup front WHEN DO YOU DESIGN ? 20 May 2010 Agile Mëtteg - Agile architecture 24
  • 25. Agile approach Design ispart of the developmentprocess WHEN DO YOU DESIGN ? 20 May 2010 Agile Mëtteg - Agile architecture 25 Iteration 1 Iteration 2 Iteration n No specificorder
  • 26. 20 May 2010 Agile Mëtteg - Agile architecture 26 How would you eat this cake ? LAYERED CAKE
  • 27. ARCHITECTURE LAYERED CAKE Iteration n 20 May 2010 Agile Mëtteg - Agile architecture 27 Iteration 3 Iteration 2 Iteration 1
  • 28. ABOUT EMERGENCE Tobias Mayer Emergence results from an empirical approach. It implies that all solutions to all problems will become clear as we work. They will not become clear if we simply talk about them. Big Up Front Design might result in Big Wrong Design or at best Big Working But Totally Inflexible Design. When we allow solutions to emerge it is always the simplest and the most appropriate solution for the current context that rises to the surface. Emergence coupled with Empiricism will lead us to the most appropriate and the most flexible (i.e. changeable) solution. 20 May 2010 Agile Mëtteg - Agile architecture 28
  • 29. ABOUT EMERGENCE Tobias Mayer Emergence results from an empirical approach. It implies that all solutions to all problems will become clear as we work. They will not become clear if we simply talk about them. Big Up Front Design might result in Big Wrong Design or at best Big Working But Totally Inflexible Design. When we allow solutions to emerge it is always the simplest and the most appropriate solution for the current context that rises to the surface. Emergence coupled with Empiricism will lead us to the most appropriate and the most flexible (i.e. changeable) solution. 20 May 2010 Agile Mëtteg - Agile architecture 29
  • 30. HOW DOES IT START ? It all startedwith a vision Initial architecture envisionning 20 May 2010 Agile Mëtteg - Agile architecture 30
  • 31. AGILE MODELING 20 May 2010 Agile Mëtteg - Agile architecture 31 JIT modeling / design Coding practices Envisioning Source : http://www.agilemodeling.com/essays/initialArchitectureModeling.htm
  • 32. DESIGN DURING DEVELOPMENT eXtremeProgramming Iteration 0 "The first iteration must be a functioning skeleton of the system as a whole.“ [Kent Beck] System metaphor Followingiterations Spike solution Proof of concept 20 May 2010 Agile Mëtteg - Agile architecture 32
  • 33. DESIGN DURING DEVELOPMENT Domain Driven Design (Eric Evans) Just in time modeling Ubiquitouslanguage (cf System Metaphor) 20 May 2010 Agile Mëtteg - Agile architecture 33
  • 34. VALUES OF AGILE ARCHITECTURE 20 May 2010 Agile Mëtteg - Agile architecture 34
  • 35. Coding practices 20 May 2010 Agile Mëtteg - Agile architecture 35
  • 36. PRACTICES Test DrivenDevelopment BehaviorDrivenDevelopment Refactoring Continuousintegration 20 May 2010 Agile Mëtteg - Agile architecture 36
  • 37. TEST DRIVEN DEVELOPMENT (TDD) Makeit breakwrite the test first Makeitpasswrite the simplestimplementation Makeit right refactorwithoutchanging the behavior 20 May 2010 Agile Mëtteg - Agile architecture 37
  • 38. TDD EXAMPLE FizzBuzz Kata Multiple of 3  Fizz Multiple of 7  Buzz Multiple of 3 and 7  FizzBuzz 20 May 2010 Agile Mëtteg - Agile architecture 38 Source : http://www.viddler.com/explore/Lostechies/videos/1/
  • 39. BEHAVIOR DRIVEN DEVELOPMENT 20 May 2010 Agile Mëtteg - Agile architecture 39 User stories
  • 40. BDD : EXECUTABLE SPECIFICATIONS Scenario : Accountis in credit 20 May 2010 Agile Mëtteg - Agile architecture 40
  • 41. REFACTORING Refactoring Change “How” not “What” Pay your technical debt Use of patterns Refactor towards patterns only when needed Leverage ubiquitous language 20 May 2010 Agile Mëtteg - Agile architecture 41
  • 42. CONTINUOUS INTEGRATION Your product builds at any time Run the tests often Ease deployment 20 May 2010 Agile Mëtteg - Agile architecture 42
  • 43. So is design dead ? 20 May 2010 Agile Mëtteg - Agile architecture 43
  • 44. SO IS DESIGN DEAD ? “Not by any means, but the nature of design has changed.” [Martin Fowler] Keep code as clean and simple as possible. Refactorto confidently make improvements. Use design patterns when needed. Communicate the design using code, diagrams and above all conversation. 20 May 2010 Agile Mëtteg - Agile architecture 44
  • 45. EMPHASIZED COMMUNICATION 20 May 2010 Agile Mëtteg - Agile architecture 45
  • 46. AGILE ARCHITECTURE MANIFESTO ? Business focus Emergence Simplicity Extensibility 20 May 2010 Agile Mëtteg - Agile architecture 46 Technical perfection Up front design Excessive design Omnipotence
  • 47. QUESTIONS 47 Agile Mëtteg - Agile architecture 20 May 2010
  • 48. NEXT TRAININGS & CERTIFICATIONS 20 May 2010 Agile Mëtteg - Agile architecture 48 Complete calendar on: http://www.agilepartner.net/training/training_calendar.html
  • 49. RESOURCES Agile Partner: www.agilepartner.net Agile Interest Group Luxembourg:www.aiglu.org Agile Alliance: www.agilealliance.org Scrum alliance: www.scrumalliance.org Scrum.org 20 May 2010 Agile Mëtteg - Agile architecture 49
  • 50. CONTACTS Thank You 20 May 2010 Agile Mëtteg - Agile architecture 50

Editor's Notes

  1. SCH
  2. SCH
  3. CPO & PAG
  4. CPO
  5. CPO
  6. PAG
  7. PAG
  8. PAG
  9. PAG
  10. CPO
  11. CPO
  12. CPO
  13. PAG
  14. PAG
  15. PAG
  16. PAG
  17. PAG
  18. CPO
  19. CPO - Parler du « rôle » de cet architecte 
  20. CPO
  21. CPO
  22. PAG
  23. PAG
  24. PAG
  25. CPO
  26. CPO
  27. CPO
  28. CPO
  29. PAG
  30. PAG
  31. PAG
  32. PAG
  33. CPO
  34. CPO
  35. CPO
  36. CPO
  37. CPO
  38. CPO
  39. CPO
  40. PAG
  41. PAG – Enchainement « Is Design Dead ? »
  42. PAG
  43. PAG
  44. PAG
  45. CPO
  46. CPO