Domain-driven design (DDD) is too often mistaken for just having an object-oriented model that mimics the behavior of the business domain. Not that having such a model is wrong or out of place; it’s just that there’s much more than that in DDD. DDD is primarily a method for understanding and managing the complexity of monumentally large and rich domains. In similar situations, a faithful domain model is not just appropriate but a true lifesaver. In all other (more common) situations, the value of DDD lies elsewhere and overall DDD is much closer to the idea of microservices and CQRS than domain modeling and O/RM frameworks. To make its point the workshop is based on four modules. First, it discusses common patterns for implementing the business logic and relates them to data access and layered architectures. It then introduces the value of keeping command and query stacks separated and how the persistence patterns that best fit. Finally, we expand on the DDD patterns of domain analysis (ubiquitous language and bounded context) and reach the territory of microservices and issues and opportunities available there.
2. EXPOWARE SOFT - 2017
The user of the software won’t know what
she wants until she sees the software.
Humphrey’s Law
An interactive system can never be fully
specified nor can it ever be fully tested.
Wegner’s Lemma
11. EXPOWARE SOFT - 2017
Anonymous
If you wait until the last minute to
complete the user interface, it only takes
a minute.
12. EXPOWARE SOFT - 2017
Many great ideas have been first
sketched out on paper napkins.
13. EXPOWARE SOFT - 2017
Visual immediacy
Missed points caught earlier
Focus on tasks and actions
Frontend and backend match up
14. EXPOWARE SOFT - 2017
INVOICE
ISSUED
EMAIL
CUSTOMER
in 3
WEEKS
WHAT
DOES IT
MEAN???
SHOULD
WE SWAP
THESE?
NEED
MONITORING
CRITICAL
NOTES
ALERT
NOTES
ACTIONS
DOMAIN
EVENTS
Can’t be
changed
anymore
NEED
GREAT
UI HERE
15. EXPOWARE SOFT - 2017
Two Architect Roles
Collect usability requirements to
build the best possible UX for
the presentation layer
Collect business requirements
to build the best possible
domain layer
Software
Architect
Faces the painful truth of
requirements
UX
Architect
Faces the blissful simplicity
of visuals
Remember: all I'm offering is the truth. Nothing more.
—Morpheus (from “The Matrix”)
16. EXPOWARE SOFT - 2017
Architecture of the information
User-machine interaction
Usability reviews
Responsibilities of
UX architects
■ Record users in action
■ Analyze body language
■ Monitor timing of operations
17. EXPOWARE SOFT - 2017
UXDD in Three Steps
Create screens as
users love them
Trigger workflows
from screens
Code workflows to
use business logic
18. EXPOWARE SOFT - 2017
Two-phase waterfall
Low-cost design of the frontend
Straight implementation of the backend
Longer than classic bottom-up
Nearly no post-deployment costs
UXDD
Summary
19. EXPOWARE SOFT - 2017
UXDD
Summary
NO POST-DEPLOYMENT COSTS?
NO POST-DEPLOYMENT COSTS.
21. EXPOWARE SOFT - 2017
The experience users go through while
interacting with the application.
User Experience
22. EXPOWARE SOFT - 2017
SKETCH
Freehand drawing
primarily done to jot
down ideas
Related Terminology
WIREFRAME
More precise sketch
focused on layout,
navigation, content
MOCKUP
As detailed as a
wireframe with some
sample UI attached
23. EXPOWARE SOFT - 2017
PROOF OF CONCEPT
Small exercise to verify
truthfulness or viability of
an assumption
Related Terminology
PROTOTYPE
Fake system simulating
the behavior of the real
system to be built
PILOT
Production-ready system
tested against a subset of
the intended audience
26. EXPOWARE SOFT - 2017
DATA MODEL
BUSINESS LOGIC
USER INTERFACE
Possible model mismatch
BOTTOM-UP
REQUIREMENTS
27. EXPOWARE SOFT - 2017
TOP-DOWN
DATA MODEL
BUSINESS LOGIC
USER INTERFACE
Model cut to fit
REQUIREMENTS
28. EXPOWARE SOFT - 2017
TOP-DOWN
DATA MODEL
BUSINESS LOGIC
USER INTERFACE
Model cut to fit
REQUIREMENTS
29. EXPOWARE SOFT - 2017
TOP-DOWN
BLACK MAGIC
USER INTERFACE
REQUIREMENTS
Model cut to fit
30. EXPOWARE SOFT - 2017
USER INTERFACE
SCREEN SCREENSCREEN
APPLICATION LAYER
WORK
FLOW
WORK
FLOW
WORK
FLOW
DOMAIN LAYER
INFRASTRUCTURE LAYER
VIEW modelINPUT model
The UX users want
Backend to support
just the UX users want
31. EXPOWARE SOFT - 2017
UXDD
IN OTHER WORDS …
is yet another
DD thing!!!