SlideShare a Scribd company logo
1 of 43
Download to read offline
Agile development and Domain Driven Design



Jacopo Romei
http://www.sviluppoagile.it/
Ego sliding
 Jacopo Romei
 PHP since 1999
 IT CEO in the past
 Freelance agile coach
 http://www.sviluppoagile.it/




         Jacopo Romei, http://www.sviluppoagile.it/
Agile development




    A family of empirical methodologies




    Jacopo Romei, http://www.sviluppoagile.it/
Agile Manifesto
 Individuals over tools
 Working software over documentation
 Customer collaboration over contract deals
 Accept change over following plans




         Jacopo Romei, http://www.sviluppoagile.it/
Domain




    What does inspire our solutions?




   Jacopo Romei, http://www.sviluppoagile.it/
Driven




     Where do we find our solutions?




    Jacopo Romei, http://www.sviluppoagile.it/
Design




   What does provide us with solutions?




    Jacopo Romei, http://www.sviluppoagile.it/
Design vs. Process
 Design principles
 Messy reality
 DDD is a way to cope with the mess
 Agile Dev is a way to cope with the mess




         Jacopo Romei, http://www.sviluppoagile.it/
Manouvrability




        Agility means manouvrability




    Jacopo Romei, http://www.sviluppoagile.it/
Shared values
 Courage
 Respect




        Jacopo Romei, http://www.sviluppoagile.it/
Shared values
 Courage                               Simplicity is the art of 
                                         maximizing the amount 
 Respect
                                         of work not done
 Simplicity




        Jacopo Romei, http://www.sviluppoagile.it/
Shared values
 Courage
 Respect
 Simplicity
 Communication
 Feedback




        Jacopo Romei, http://www.sviluppoagile.it/
Shared values
 Courage                               Who
 Respect                               Which
 Simplicity                            How
                                        Why
 Communication
 Feedback




        Jacopo Romei, http://www.sviluppoagile.it/
XP and good design
 Refactoring tries to avoid overengineering
 Refactoring can develop underengineering
 XP works best with good designers
 DDD helps developers being good designers




         Jacopo Romei, http://www.sviluppoagile.it/
Don't ossify, please




      Supple, knowledge­rich design




    Jacopo Romei, http://www.sviluppoagile.it/
Orthogonality
•Orthogonality is a system design property facilitating 
feasibility and compactness of complex designs.
• Orthogonality guarantees that modifying the technical 
effect produced by a component of a system neither 
creates nor propagates side effects to other components of 
the system. 
•Emergent behavior of a system should be controlled strictly 
by formal definitions of its logic and not by side effects 
resulting from poor integratio
•Orthogonality reduces testing and development time

           Jacopo Romei, http://www.sviluppoagile.it/
Shared required practices
 Iterative and incremental development
 Close relationship with domain experts
 Refactoring




         Jacopo Romei, http://www.sviluppoagile.it/
UX & Agile




    Methodology to write user stories




    Jacopo Romei, http://www.sviluppoagile.it/
DDD & Agile




    Methodology to (let emerge) design




    Jacopo Romei, http://www.sviluppoagile.it/
Ubiquitous language




          One jargon to rule them all




    Jacopo Romei, http://www.sviluppoagile.it/
Ubiquitous language
 Model as backbone of language in
   Code
   Diagrams
   Writings
   Speech




         Jacopo Romei, http://www.sviluppoagile.it/
Ubiquitous language
 Refactor
   Classes
   Methods
   Modules
 Reflect
   Real world entities
   Confusion resolution in conversations
   Changes in language as changes in model

        Jacopo Romei, http://www.sviluppoagile.it/
Example




    Jacopo Romei, http://www.sviluppoagile.it/
Short example
 “If we give the Routing Service an origin, 
  destination and arrival time, it can look up the 
  stops the cargo will have to make and well... stick 
  them in the database”
 “The origin, destination and so on... it all feeds into 
  Routing Service and we get back an Itinerary 
  that has everything we need it”
 “A Routing Service finds an Itinerary that satisfies 
  a Route Specification”


          Jacopo Romei, http://www.sviluppoagile.it/
Documentation



Agile methodologies value working software over 
         comprehensive documentation




       Jacopo Romei, http://www.sviluppoagile.it/
UML is not enough
UML doesn't convoy the concepts behind a model
UML doesn't convoy what objects are meant to do




        Jacopo Romei, http://www.sviluppoagile.it/
Ubiquitous documentation
UML provides some documentation
Code provides some documentation
Ubiquitous language provides some documentation




        Jacopo Romei, http://www.sviluppoagile.it/
Hands-on modelers



Everyone who writes code must feel responsible for 
                   the model.




        Jacopo Romei, http://www.sviluppoagile.it/
Hands-on modelers


Everyone who writes code must feel responsible for 
                   the model.
Everyone contributing to the model must touch the 
                      code.




        Jacopo Romei, http://www.sviluppoagile.it/
Hands-on modelers


Everyone who writes code must feel responsible for 
                   the model.
Everyone contributing to the model must touch the 
                      code.
     That's a DDD team. That's an agile team.



        Jacopo Romei, http://www.sviluppoagile.it/
Modeling paradigm


Object oriented programming is good to model the 
   way we think about things. OO community 
 developed lots of critically meaningful concepts.
            PHP community: WAKE UP!




        Jacopo Romei, http://www.sviluppoagile.it/
Deadly divide
 Model can be absent (brrr...)
 Model can be overdesigned
 Model can be detached from the domain
   Suspect correctness
   Hard to maintain
   Difficult to understand




         Jacopo Romei, http://www.sviluppoagile.it/
Reflection




    Software must reflect domain model




     Jacopo Romei, http://www.sviluppoagile.it/
Ubiquity




  Software must reflect ubiquitous language




     Jacopo Romei, http://www.sviluppoagile.it/
Building blocks
 Layered architecture
 Services
 Entities
 Value Objects
 Factories
 Aggregates
 Repositories


             Jacopo Romei, http://www.sviluppoagile.it/
Layers
 User interface
   Smart UI vs. Model Driven Design




         Jacopo Romei, http://www.sviluppoagile.it/
Layers
 User interface
   Smart UI vs. Model Driven Design
 Application
   a.k.a. Controller




         Jacopo Romei, http://www.sviluppoagile.it/
Layers
 User interface
   Smart UI vs. Model Driven Design
 Application
   a.k.a. Controller
 Domain/Model layer




         Jacopo Romei, http://www.sviluppoagile.it/
Layers
 User interface
   Smart UI vs. Model Driven Design
 Application
   a.k.a. Controller
 Domain/Model layer
 Infrastructure




         Jacopo Romei, http://www.sviluppoagile.it/
Frameworks




Free choice, but domain layer must be preserved.




       Jacopo Romei, http://www.sviluppoagile.it/
The end, the beginning



          No one said agile was easy.
  No one said it was a standalone concept.




     Jacopo Romei, http://www.sviluppoagile.it/
What's next




                    Agile Day 2009




    Jacopo Romei, http://www.sviluppoagile.it/
Jacopo Romei
       jacopo [at] sviluppoagile.it
            skype: jacoporomei


            www.sviluppoagile.it



Jacopo Romei, http://www.sviluppoagile.it/

More Related Content

Viewers also liked

Why Domain-Driven Design Matters
Why Domain-Driven Design MattersWhy Domain-Driven Design Matters
Why Domain-Driven Design Matters
Mathias Verraes
 

Viewers also liked (15)

Introduction to Domain Driven Design
Introduction to Domain Driven DesignIntroduction to Domain Driven Design
Introduction to Domain Driven Design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Modelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven DesignModelling a complex domain with Domain-Driven Design
Modelling a complex domain with Domain-Driven Design
 
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven DesignCode & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven Design
 
Domain-driven design
Domain-driven designDomain-driven design
Domain-driven design
 
A visual introduction to Event Sourcing and CQRS
A visual introduction to Event Sourcing and CQRSA visual introduction to Event Sourcing and CQRS
A visual introduction to Event Sourcing and CQRS
 
5-beamer: Creación de presentaciones con LaTeX Imprimible
5-beamer: Creación de presentaciones con LaTeX Imprimible5-beamer: Creación de presentaciones con LaTeX Imprimible
5-beamer: Creación de presentaciones con LaTeX Imprimible
 
Domain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDomain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with Rails
 
Refactoring for Domain Driven Design
Refactoring for Domain Driven DesignRefactoring for Domain Driven Design
Refactoring for Domain Driven Design
 
Why Domain-Driven Design Matters
Why Domain-Driven Design MattersWhy Domain-Driven Design Matters
Why Domain-Driven Design Matters
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
 
Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
 
Hermitage - The Palace, St Petersburg
Hermitage - The Palace, St PetersburgHermitage - The Palace, St Petersburg
Hermitage - The Palace, St Petersburg
 

Similar to Agile development and domain driven design

Are Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked DesignAre Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked Design
eraz
 
Wetelo_Inc_Presentation
Wetelo_Inc_PresentationWetelo_Inc_Presentation
Wetelo_Inc_Presentation
Svitlana Luts
 
Wetelo_Inc_Presentation
Wetelo_Inc_PresentationWetelo_Inc_Presentation
Wetelo_Inc_Presentation
Kate Grygola
 

Similar to Agile development and domain driven design (20)

M.M.H.Masud
M.M.H.MasudM.M.H.Masud
M.M.H.Masud
 
Are Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked DesignAre Agile Projects Doomed To Halfbaked Design
Are Agile Projects Doomed To Halfbaked Design
 
Ecms By Roofimon
Ecms By RoofimonEcms By Roofimon
Ecms By Roofimon
 
7 Ways To Leverage SP for PM Success
7 Ways To Leverage SP for PM Success7 Ways To Leverage SP for PM Success
7 Ways To Leverage SP for PM Success
 
"7 Ways To Leverage SharePoint for Project Management Sucess" SPS VA Beach
"7 Ways To Leverage SharePoint for Project Management Sucess" SPS VA Beach"7 Ways To Leverage SharePoint for Project Management Sucess" SPS VA Beach
"7 Ways To Leverage SharePoint for Project Management Sucess" SPS VA Beach
 
"7 Ways To Leverage SP For PM Success" for PMI-WDC Skyline
"7 Ways To Leverage SP For PM Success" for PMI-WDC Skyline"7 Ways To Leverage SP For PM Success" for PMI-WDC Skyline
"7 Ways To Leverage SP For PM Success" for PMI-WDC Skyline
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
 
Legacy Code: Evolve or Rewrite?
Legacy Code: Evolve or Rewrite?Legacy Code: Evolve or Rewrite?
Legacy Code: Evolve or Rewrite?
 
7 Ways To Leverage SP for PM Success PMI NYC
7 Ways To Leverage SP for PM Success PMI NYC7 Ways To Leverage SP for PM Success PMI NYC
7 Ways To Leverage SP for PM Success PMI NYC
 
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...ItalianSkin: an improvement in the accessibility of the Plone interface in or...
ItalianSkin: an improvement in the accessibility of the Plone interface in or...
 
Netwise Strategies Profile
Netwise Strategies ProfileNetwise Strategies Profile
Netwise Strategies Profile
 
Prototyping Adobe AIR Applications with Fireworks CS4
Prototyping Adobe AIR Applications with Fireworks CS4Prototyping Adobe AIR Applications with Fireworks CS4
Prototyping Adobe AIR Applications with Fireworks CS4
 
Managing Communication Barriers in Geographically Dispersed Teams
Managing Communication Barriers in Geographically Dispersed TeamsManaging Communication Barriers in Geographically Dispersed Teams
Managing Communication Barriers in Geographically Dispersed Teams
 
Using Wordpress 2009 04 29
Using Wordpress 2009 04 29Using Wordpress 2009 04 29
Using Wordpress 2009 04 29
 
Axance Le Mobile 2.0 Edition 2009
Axance Le Mobile 2.0 Edition 2009Axance Le Mobile 2.0 Edition 2009
Axance Le Mobile 2.0 Edition 2009
 
Programming for Non-programmers PFNP @ Razorfish
Programming for Non-programmers PFNP @ Razorfish Programming for Non-programmers PFNP @ Razorfish
Programming for Non-programmers PFNP @ Razorfish
 
Pwa, separating the features from the solutions
Pwa, separating the features from the solutions Pwa, separating the features from the solutions
Pwa, separating the features from the solutions
 
Wetelo_Inc_Presentation
Wetelo_Inc_PresentationWetelo_Inc_Presentation
Wetelo_Inc_Presentation
 
Wetelo_Inc_Presentation
Wetelo_Inc_PresentationWetelo_Inc_Presentation
Wetelo_Inc_Presentation
 
Happy Coding with Ruby on Rails
Happy Coding with Ruby on RailsHappy Coding with Ruby on Rails
Happy Coding with Ruby on Rails
 

More from Jacopo Romei

If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017
Jacopo Romei
 
Looking for the right swan - LESS2012
Looking for the right swan - LESS2012Looking for the right swan - LESS2012
Looking for the right swan - LESS2012
Jacopo Romei
 
Test Driven Development with Symfony2
Test Driven Development with Symfony2Test Driven Development with Symfony2
Test Driven Development with Symfony2
Jacopo Romei
 
Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!
Jacopo Romei
 
Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?
Jacopo Romei
 

More from Jacopo Romei (20)

Silicon doesn’t sweat
Silicon doesn’t sweatSilicon doesn’t sweat
Silicon doesn’t sweat
 
WebDeLDN - The outsourcing Veil of Maya
WebDeLDN - The outsourcing Veil of MayaWebDeLDN - The outsourcing Veil of Maya
WebDeLDN - The outsourcing Veil of Maya
 
If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017If you know where it will end up, it's not innovative enough - CloudConf 2017
If you know where it will end up, it's not innovative enough - CloudConf 2017
 
Negotiating contracts as user experiences - WIAD Rome 2016
Negotiating contracts as user experiences - WIAD Rome 2016Negotiating contracts as user experiences - WIAD Rome 2016
Negotiating contracts as user experiences - WIAD Rome 2016
 
LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...
LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...
LiquidO - No management from the trenches - Agile Saturday - October 2014, Ta...
 
LiquidO™ - Mini IAD Trento
LiquidO™ - Mini IAD TrentoLiquidO™ - Mini IAD Trento
LiquidO™ - Mini IAD Trento
 
Agile Saturday #10 - Liquid Organization: Anti-Fragility Beyond Design
Agile Saturday #10 - Liquid Organization: Anti-Fragility Beyond DesignAgile Saturday #10 - Liquid Organization: Anti-Fragility Beyond Design
Agile Saturday #10 - Liquid Organization: Anti-Fragility Beyond Design
 
Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...
Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...
Capitalismo distribuito: tutto quello che sfuggì a zio Karl e che non deve sf...
 
Grab yourself an alibi - PHPDay 2013
Grab yourself an alibi - PHPDay 2013Grab yourself an alibi - PHPDay 2013
Grab yourself an alibi - PHPDay 2013
 
Looking for the right swan - LESS2012
Looking for the right swan - LESS2012Looking for the right swan - LESS2012
Looking for the right swan - LESS2012
 
Cercando il cigno giusto - AgileDay 2012
Cercando il cigno giusto - AgileDay 2012Cercando il cigno giusto - AgileDay 2012
Cercando il cigno giusto - AgileDay 2012
 
Cercando il cigno giusto
Cercando il cigno giustoCercando il cigno giusto
Cercando il cigno giusto
 
Debito Tecnico
Debito TecnicoDebito Tecnico
Debito Tecnico
 
Refactoring
RefactoringRefactoring
Refactoring
 
Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011Symfony CMF - PHP Conference Brazil 2011
Symfony CMF - PHP Conference Brazil 2011
 
Test Driven Development with Symfony2
Test Driven Development with Symfony2Test Driven Development with Symfony2
Test Driven Development with Symfony2
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
 
Many to many: no man is an island
Many to many: no man is an islandMany to many: no man is an island
Many to many: no man is an island
 
Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!Let it flow, let it flow, let it flow!
Let it flow, let it flow, let it flow!
 
Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?Project manager e sviluppo agile: separati in casa?
Project manager e sviluppo agile: separati in casa?
 

Recently uploaded

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
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
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
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Agile development and domain driven design