My first Publication Agile-Data-Warehouse-Design-eBook | Page 135
114
Chapter 4
The presence of common degenerate dimensions (transaction IDs) often signifies
that events are milestones in a process sequence.
Ask for the next
event but don’t
worry about strict
chronology
After completing shipments, your search for the next event begins anew. This can
be the next one in sequence, or simply the next one the stakeholders think of when
they see popular dimensions like CUSTOMER and PRODUCT on the matrix. If
their next event doesn’t sound like the very next one chronologically, don’t worry,
just go with their train of thought—don’t try and derail it. Missing ‘next’ events are
much easier to spot as gaps on the matrix once you add the events you are freely
given. Imagine that the Pomegranate stakeholders respond to your next “Who
does what?” question with:
Customer returns product.
Exceptional steps
within a process are
documented
by bracketing their
event names
Figure 4-13 shows the matrix after PRODUCT RETURNS have been added along
with its new PROBLEM REASON dimension. PRODUCT RETURNS are depend-
ent on PRODUCT SHIPMENTS because customers have to order and receive
products to be able to return them, but this sequence of events is exceptional: only
a small percentage of orders are returned. You can document an optional or
exceptional event within a process by bracketing it. This acts as a visual clue that
you might want to handle the event separately to mandatory/unexceptional process
milestones. For example, order and shipment could be combined in a worthwhile
evolving order event because almost every order leads to a shipment, but the much
smaller number of returns might be better treated as part of a separate customer
support process rather than complicate orders. Exceptional events often indicate
that there may be missing events and other processes that need to be considered.
Figure 4-13
Adding PRODUCT
RETURNS to the
matrix
Stakeholders occasionally find it difficult to decide which of two events happen
first. Problematic “chicken or egg” events can occur simultaneously, loop each
other, or be mutually exclusive (e.g., payments or returns). Don’t get hung up on
perfect sequencing, just put them next to one another, above or below the events,
on the matrix, that everyone can agree they precede or follow.