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

Domain-Driven Design Heuristics is a community driven site to document and discuss about Design Heuristics. For now we divide into three different types of heuristics:

  • Design Heuristics: Heuristics we use to solve a specific problem;
  • Guiding Heuristics: Heuristics that guide our use of other heuristics (meta-heuristics, if you will);
  • Value-based Heuristics: Heuristics that determine our attitude and behavior towards design or the world and the way we work;

Checkout the Heuristics tab.

Using the information

All the information on this site is Creative Commons Attribution-ShareAlike, please remix, adapt, and build upon the work on this site, even for commercial purposes, as long as you credit the authors and submitter and license your new creations under the identical terms. CC BY-SA


If you want to submit your own heuristics go to Submit Heuristics for explanations.

If you have any questions please feel free to contact us trough email: submit@dddheuristic.com