SlideShare une entreprise Scribd logo
1  sur  38
Keeping Architectures Relevant Using Domain-Driven Design and  Emergent Architecture Paul Rayner Brandon Satrom AGILITY. CRAFT. ARCHITECTURE.
Relevant to Whom?
And the Architect Returns with the System Design…
Relevance through…
Context
Domain-Driven Design (DDD) is: a set of driving principles a pattern language  for strategic design and architecture.* * not an architecture framework
Bounded Contexts
Context Mapping
Context Mapping
Distillation Ol’ Core Domain Whiskey
Principle: Establish Context, Achieve Focus
Communication
CommunicationvsJargon Translate Refine Agree
Every misunderstanding is a bug…
A New Shared Language Within a context…
Principle: Don’t Translate,Advocate
Collaboration
Emergent Architecture
Agile Testing Matrix Business Facing Storytesting (aka BDD/ATTD) Exploratory Testing Regression Testing Usability Testing Critique the Product Support the Team Q2 Q3 Unit Testing (TDD) Component Testing Integration Testing Performance Reliability Scalability … Q1 Q4 Technology Facing From Agile Testing - Janet Gregory and Lisa Crispin
Storytesting as hands-on design…
Collaborate on models…
“ Final source code is the real software design — Jack Reeves ”
Don’t Coddle…
Principle: Don’t Coddle, Encapsulate
Connection
More here…
Principle: Simplify to Amplify
Architecture is a Shared Hallucination
“ A need to tell and hear stories is essential to the species...  the sound of story is the dominant sound of our lives… — Reynolds Price ”
Principle: Architect a Story…
Keeping Architectures Relevant Establish context, achieve focus Don’t translate, advocate Don’t coddle, encapsulate Simplify to amplify Architect a story
Thank You… Paul Rayner Brandon Satrom bsatrom@gmail.com www.userinexperience.com paul@virtual-genius.com www.virtual-genius.com See our article in the March edition… http://bit.ly/ddd_arch_journal

Contenu connexe

En vedette

Domain driven design in a nutshell
Domain driven design in a nutshellDomain driven design in a nutshell
Domain driven design in a nutshell
Toni Esteves
 

En vedette (20)

DDD Basics - Context mapping
DDD Basics - Context mappingDDD Basics - Context mapping
DDD Basics - Context mapping
 
DDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
DDD Basics: Bounded Contexts, Modelling - Kortrijk EditionDDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
DDD Basics: Bounded Contexts, Modelling - Kortrijk Edition
 
DDD: Context is King
DDD: Context is KingDDD: Context is King
DDD: Context is King
 
Context mapping
Context mappingContext mapping
Context mapping
 
Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014
 
Context Mapping In Action
Context Mapping In ActionContext Mapping In Action
Context Mapping In Action
 
Event storming recipes
Event storming recipesEvent storming recipes
Event storming recipes
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015
 
Workshop 3: Context Mapping
Workshop 3: Context MappingWorkshop 3: Context Mapping
Workshop 3: Context Mapping
 
Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015
 
Brownfield Domain Driven Design
Brownfield Domain Driven DesignBrownfield Domain Driven Design
Brownfield Domain Driven Design
 
Strategic Design - The Basics
Strategic Design - The BasicsStrategic Design - The Basics
Strategic Design - The Basics
 
Domain driven design in a nutshell
Domain driven design in a nutshellDomain driven design in a nutshell
Domain driven design in a nutshell
 
Sell First, Build Later with the Lean Startup: Fundamentals, Tools, Methods a...
Sell First, Build Later with the Lean Startup: Fundamentals, Tools, Methods a...Sell First, Build Later with the Lean Startup: Fundamentals, Tools, Methods a...
Sell First, Build Later with the Lean Startup: Fundamentals, Tools, Methods a...
 
Introduction to-ddd
Introduction to-dddIntroduction to-ddd
Introduction to-ddd
 
The precision blade
The precision bladeThe precision blade
The precision blade
 
Optimized for what
Optimized for whatOptimized for what
Optimized for what
 
Model storming
Model stormingModel storming
Model storming
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Taming Complex Domains with Domain Driven Design
Taming Complex Domains with Domain Driven DesignTaming Complex Domains with Domain Driven Design
Taming Complex Domains with Domain Driven Design
 

Similaire à Keeping architectures relevant

Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
YoungSu Son
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
cesarioramos
 
Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testability
amr0mt
 
Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?
CAST
 

Similaire à Keeping architectures relevant (20)

Keeping Architectures Relevant - 4 Feb 2010
Keeping Architectures Relevant - 4 Feb 2010Keeping Architectures Relevant - 4 Feb 2010
Keeping Architectures Relevant - 4 Feb 2010
 
What you can learn from an open-source project with 250 million downloads
What you can learn from an open-source project with 250 million downloadsWhat you can learn from an open-source project with 250 million downloads
What you can learn from an open-source project with 250 million downloads
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)The BDD Process (Behavior-driven development)
The BDD Process (Behavior-driven development)
 
Architecture Design Decisions and Group Decision Making
Architecture Design Decisions and Group Decision MakingArchitecture Design Decisions and Group Decision Making
Architecture Design Decisions and Group Decision Making
 
Up to speed in domain driven design
Up to speed in domain driven designUp to speed in domain driven design
Up to speed in domain driven design
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Software architecture in an agile environment
Software architecture in an agile environmentSoftware architecture in an agile environment
Software architecture in an agile environment
 
Agile Software Architecture
Agile Software ArchitectureAgile Software Architecture
Agile Software Architecture
 
Tailoring your SDLC for DevOps, Agile and more
Tailoring your SDLC for DevOps, Agile and moreTailoring your SDLC for DevOps, Agile and more
Tailoring your SDLC for DevOps, Agile and more
 
Software Design for Testability
Software Design for TestabilitySoftware Design for Testability
Software Design for Testability
 
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
Wednesday Webinar on "Strengthening your Agility with BDD - A demo using Cucu...
 
Notes on architecture
Notes on architectureNotes on architecture
Notes on architecture
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptx
 
Vsts intro
Vsts introVsts intro
Vsts intro
 
Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?Does Agile Really Work For Business Critical Applications?
Does Agile Really Work For Business Critical Applications?
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
 

Plus de Brandon Satrom

Plus de Brandon Satrom (6)

Secrets of Awesome JavaScript API Design
Secrets of Awesome JavaScript API DesignSecrets of Awesome JavaScript API Design
Secrets of Awesome JavaScript API Design
 
Coffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotesCoffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotes
 
Coding the right thing
Coding the right thingCoding the right thing
Coding the right thing
 
Workflow systems
Workflow systemsWorkflow systems
Workflow systems
 
Workflow Systems: Myths, Truths and Wishful Thinking
Workflow Systems: Myths, Truths and Wishful ThinkingWorkflow Systems: Myths, Truths and Wishful Thinking
Workflow Systems: Myths, Truths and Wishful Thinking
 
The Future Of Work And Workflow
The Future Of Work And WorkflowThe Future Of Work And Workflow
The Future Of Work And Workflow
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Keeping architectures relevant

Notes de l'éditeur

  1. Paul …and not an enterprise data model. Example from conversation with Doug
  2. http://www.infoq.com/articles/ddd-contextmappinghttp://www.methodsandtools.com/archive/archive.php?id=97
  3. http://www.infoq.com/articles/ddd-contextmappinghttp://www.methodsandtools.com/archive/archive.php?id=97
  4. Paul. Refinement Distill as deeper insights into the domain become apparent Architect help articulate the value of core domain distillation to stakeholders Bounded contexts A single, "Enterprise" Model is a bad idea Bounded contexts and a context map Needs to be flexible & change-absorbent without being too prescriptive
  5. BrandonCreating a new, ubiquitous takes a time commitment and leadership. An architect, typically the translator, is a perfect candidate for stepping into being an advocate for a ubiquitous language.A new language is great, and speaking that language creates understanding? But how to we document that understanding?
  6. Brandon- Communication and Jargon. Communication is the art of using language to convey meaning consistently and clearly. The goal of communication is shared understanding through unambiguous meaning.- Jargon, a style of communication, is the practice of using certain words and phrases in a way that assumes known context, and thus, can serve as a shortcut in communication. When both parties have a shared understanding of the terminology in play, jargon serves as a valuable shortcut for individuals short on time.Translation results in confusion that propagates into the softwareEvery misunderstanding is a bug in the systemWho is this translator most of the time? The architect
  7. BrandonTypically, we feel like we have to pick one vocabulary over the other. But each have their problems:Biz-dominated domain is relevant, but inaccurateTech-dominated domain is accurate and precise, but mostly irrelevantWe gain benefit by favoring both and creating a NEW language that takes elements of both and brings in new ideas
  8. BrandonCreating a new, ubiquitous takes a time commitment and leadership. An architect, typically the translator, is a perfect candidate for stepping into being an advocate for a ubiquitous language.A new language is great, and speaking that language creates understanding? But how to we document that understanding?
  9. The 4 intrinsic rewardsFundamentallyqualitative measures. Based on feelings and attitudes.Metrics and measurement are only a very small part of this, and they apply only to our sense of progress. They should be used to challenge and support our sense of progress.
  10. PaulUse Cucumber for storytesting system behavior. This enables users, customers and business analysts to collaborate with concrete examples and real data as the code is written. Also, UML can be combined with code analysis to increase our shared understanding of the invisible system structure.
  11. Paul
  12. Essence of coddling – don’t do things for the teams that they should be doing themselves.
  13. BrandonThe more complex an architecture is. The more detailed it is, the less likely it is to appear relevant to the people you serve… the more essentially simple it is, the more applicable and relevant it will seem.-- Remove the cruftThe more “cartoony” a domain model is, the more relevant it can be.
  14. Brandon“mutually agreed-upon design-decisions that shape a software-intensive system” Grady Booch
  15. Is your architecture part of the story, or just an irrelevant footnote to the conversation?Is your architecture law or a guidepost? Is it governance or guidance? You can get a sense for how relevant your architectures are by how often they are actually referred to day to day by the people who really matter…
  16. Architecture is so much more than a map or blueprints or diagrams or picturesYour architecture, ultimately, is a story. People need to see themselves in that story (they need to see a place for themselves and their concerns) This applies to both the customers AND the development teams, managers, testers, implementers If they don't, you'll never have their support, and you'll never be relevantThey need to connect with your architecture