liveBook · Manning

Design decision

As explained in Collaborative Software Design: How to facilitate domain modeling decisions

A design decision is a chosen resolution to a software design problem or alternative.

A design decision is a chosen resolution to a software design problem or alternative. Design activities move a team from the problem space toward a preferred software system, and their resulting plans formulate design decisions. section 3.1.3

Design decisions may remain implicit, isolated, or based on incorrect models. Making them explicit through collaborative modeling helps teams expose assumptions, share understanding, compare tradeoffs, and reduce ambiguity. section 3.1 section 3.1.5

Assess a design decision by asking:

  • Does it alter the foundational shape of the software system, or merely change an isolated part of the code? section 3.1.3
  • Have the relevant domain experts and stakeholders identified its alternatives, tradeoffs, and value? section 3.1.5
  • Can everyone understand and communicate the decision, including its effects on technical, social, and organizational concerns? section 1.3 section 3.1.5

BigScreen’s reservation system

During EventStorming, the BigScreen team examined its ticket-purchasing process for an “Anytime, Anywhere” campaign. The exercise revealed how the existing system had evolved and surfaced surprising past decisions. When teams are excluded from such decisions, they may implement conflicting designs, causing delays, rework, and an implicit architecture. section 3.1.2 section 3.1.5

How Collaborative Software Design: How to facilitate domain modeling decisions covers it

How deep it goes
Distinguishes routine implementation changes from decisions that reshape architecture, and examines ambiguity, tradeoffs, and group consequences.
Examples
Uses BigScreen’s reservation system, EventStorming, ticket purchasing, and the “Anytime, Anywhere” campaign.
What it assumes
Assumes awareness of software systems while teaching the need to model technical, social, cognitive, and business concerns together.
What you can do after
Apply collaborative modeling to identify alternatives, weigh tradeoffs, and communicate explicit decisions.
How it connects
Connects design decisions with software design, software architecture, collaborative modeling, implicit architecture, and sociotechnical systems.

Also explained in

Compare how 2 books explain design decision →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Collaborative Software Design: How to facilitate domain modeling decisions. The section links point to the parts of the book it draws on.