keeping architectures relevant

38
Paul Rayner AGILITY. CRAFT. ARCHITECTURE. Keeping Architectures Relevant Using Domain-Driven Design and Emergent Architecture Brandon Satrom

Upload: brandon-satrom

Post on 19-Jun-2015

388 views

Category:

Technology


0 download

DESCRIPTION

May IASA Denver presentation on DDD and Emergent Architecture

TRANSCRIPT

Page 1: Keeping architectures relevant

Paul Rayner

AGILITY. CRAFT. ARCHITECTURE.

Keeping Architectures RelevantUsing Domain-Driven Design and Emergent Architecture

Brandon Satrom

Page 2: Keeping architectures relevant

RELEVANT TO WHOM?

Page 3: Keeping architectures relevant

And the Architect Returns with the System Design…

Page 4: Keeping architectures relevant

Relevance through…

Context

Communication

Collaboration

Connection

Page 5: Keeping architectures relevant

CONTEXT

Page 6: Keeping architectures relevant
Page 7: Keeping architectures relevant

Domain-Driven Design (DDD) is:

a set of driving principlesa pattern language

for strategic design and architecture.*

* not an architecture framework

Page 8: Keeping architectures relevant

Bounded Contexts

Page 9: Keeping architectures relevant

Context Mapping

Page 10: Keeping architectures relevant

Context Mapping

Page 11: Keeping architectures relevant

Distillation

Ol’ Core DomainWhiskey

Page 12: Keeping architectures relevant

Principle: Establish Context, Achieve Focus

Page 13: Keeping architectures relevant

COMMUNICATION

Page 14: Keeping architectures relevant

Jargon

Domain Expert

Technical Expert

Jargon

Translate

Refine

Agree

Communication vsJargon

Page 15: Keeping architectures relevant

Every misunderstanding is a

bug…

Page 16: Keeping architectures relevant

A New Shared Language

Within a context…

Page 17: Keeping architectures relevant

Principle: Don’t Translate,Advocate

Page 18: Keeping architectures relevant

COLLABORATION

Page 19: Keeping architectures relevant

Emergent Architecture

Page 20: Keeping architectures relevant

Unit Testing (TDD)Component TestingIntegration Testing

Unit Testing (TDD)Component TestingIntegration Testing

Storytesting(aka BDD/ATTD)

Storytesting(aka BDD/ATTD)

PerformanceReliabilityScalability

PerformanceReliabilityScalability

Exploratory TestingRegression TestingUsability Testing

Exploratory TestingRegression TestingUsability Testing

Business Facing

Technology Facing

Critique the Product

Support the Team

From Agile Testing - Janet Gregory and Lisa Crispin

Q1

Q2 Q3

Q4

Agile Testing Matrix

Page 21: Keeping architectures relevant

Storytesting as hands-on design…

Page 22: Keeping architectures relevant

Collaborate on models…

Page 23: Keeping architectures relevant

Final source code is the real software design

— Jack Reeves

“”

Page 24: Keeping architectures relevant

Don’t Coddle…

Page 25: Keeping architectures relevant

Principle: Don’t Coddle, Encapsulate

Page 26: Keeping architectures relevant

CONNECTION

Page 27: Keeping architectures relevant
Page 28: Keeping architectures relevant
Page 29: Keeping architectures relevant

More here…

Page 30: Keeping architectures relevant
Page 31: Keeping architectures relevant
Page 32: Keeping architectures relevant
Page 33: Keeping architectures relevant

Principle: Simplify to Amplify

Page 34: Keeping architectures relevant

Architecture is a Shared Hallucinatio

n

Page 35: Keeping architectures relevant

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

“”

Page 36: Keeping architectures relevant

Principle: Architect a Story…

Page 37: Keeping architectures relevant

Keeping Architectures Relevant

Context

Communication

Collaboration

Connection

Establish context, achieve focus

Don’t translate, advocate

Don’t coddle, encapsulate

Simplify to amplify

Architect a story

Page 38: Keeping architectures relevant

[email protected]

Paul RaynerBrandon Satrom

Thank You…

[email protected]

http://bit.ly/ddd_arch_journal

See our article in the March edition…