A quest at mapping Domain-Driven Design Heuristics

Mapping our Domain-Driven Design Heuristics

150 minutes

Abstract

“We all use heuristics (even if we haven’t articulated them to others) to discover, understand, explore, create, modify, or extend complex software systems. Billy Vaughn Koen, in Discussion of the Method: Conducting the Engineer’s Approach to Problem Solving, defines a heuristic as, “anything that provides a plausible aid or direction in the solution of a problem but is in the final analysis unjustified, incapable of justification, and potentially fallible.”

-Rebecca Wirfs-Brock

You can look at heuristics as a rule of thumb, they don’t guarantee to be optimal, perfect, logical or rational. Instead, they are based on our past experiences, not scientifically proven to work, but worked for us in the past. The thing about designing software is that nothing is certain. Every time I hear someone say ‘it depends’ that is a trigger for me to find out their heuristic.

With this in mind, and by talking with Rebecca I started a site called DDDHeuristics.com in where we can collaborate to document and discuss these heuristics. In this session, I want to extend my search to ‘gotta catch em all’ and see how together we can map our Domain-Driven Design Heuristics.

After a short introduction about heuristics, we will start exploring, distilling and mapping our own heuristics stories. With these stories mapped out we can find and share individual heuristics. We document them in a certain flexible way, where we have a question, the heuristic and give some examples and context. At the end of the workshop, you should get a clear overview of what heuristics are, how it can help you design, and how you can map them out in order to drive and implement your design and software.

Audience background

No skills required, just past experience in software development, design and architecture etc...

Benefits of participating

Gaining knowledge into how we can map and use everyones 'it depends' heuristics and then visually discuss these. It helps in making discussion into design and development a lot easier.

Materials provided

Stickies, sharpies, whiteboard markers, paper roll.

Process

* We'll do some liberating structure impromptu networking to get to know each other.
* I'll do a short introduction into heuristics, what they are and how they help.
* Then I will show how we can collectively map them.
* in groups, we will discover, discuss and map our heuristics
* we will share them with the entire group
* now we find one heuristics that stand on itself per person and will document them.

Detailed timetable

00:00 - 00:20 - We'll do some liberating structure impromptu networking to get to know each other.

00:20 - 00:40 - I'll do a short introduction into heuristics, what they are and how they help. and share with each other some personal heuristics


00:40 - 00:55 - Then I will show how we can collectively map them.

00:55 - 01:35 in groups, we will discover, discuss and map our heuristics

01:35 - 01:50 we will share them with the entire group

01:50 - 02:20 now we find one heuristics that stand on itself per person and will document them.

02:20 - 02:30 wrap up sharing the heuristics.

Outputs

your personal Domain-Driven Design heuristics on dddheuristics.com

Presenters

  1. Kenny Baas-Schwegler
    Xebia