Domain
Driven
Design
& Rapid Change
@benjiweber
@benjiweber
@benjiweber
http://benjiweber.com/blog
2 years
12 → 120 people
1 → 8 countries
DDD & Extreme Programming
Mistakes, Lessons & Success
#noprojects
Big ideas
Change of direction
Concept → Prod in 2 hours
Find out how — Tomorrow
Not valid for long
Little implementation time
Lack of domain experts
Simplicity
Incremental
Ruthless Refactoring
"Invest in the design of the system every day. Strive to make the design of the system an excellent fit for the needs of the system that day.
When your understanding of the best possible design leaps forward, work gradually but persistently to bring the design back into alignment with your understanding."
Kent Beck - XP Explained"In the 12 practices of Extreme Programming, the role of a System Metaphor could be fulfilled by a Ubiquitous Language
Projects should augment that language with System Metaphors or other large scale structures when they find one that fits well"
Eric Evans - Domain Driven DesignOh, that my words were recorded,
that they were written on a scroll,
that they were inscribed
with an iron tool on lead
or engraved in rock forever!
Effective Customer Communication
Ubiquitous Language
Enriched with Idioms
Incremental Design
>100 classes
Confusing Conversations
Follow personas
Adops - Campaign Config
Finance
Split Teams
Conway's Law
Creatives
Vocabulary is the First Symptom
Unclear requirements
Code smells soon after
Tests
ORM
Templating
Security
Listen
If it hurts, do it more often
Frameworks are Insidious
Tests with but one assertion
Focus on Communication
Translation Layer
Keeping up is impossible
Incompatible object graphs
Do you test every permutation?
Contextual Blindness Again
Don't version artifacts
Redeploy affected
Deploy often - identify boundaries
Don't use lazy loading
Make performance explicit
Identifiers over References
Shared Language with AdOps
Grown fast
Move fast
Think DDD helps
It's hard
Do painful things often
Frameworks are Insidious
Continually Integrate
All about conversations
Thanks so much for listening!
@benjiweber
We're hiring - talent@unrulymedia.com