liveBook · Manning

Alternative

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

An alternative design is one of multiple candidate structures or approaches proposed to solve a software problem.

An alternative is a plan: a set of intended actions for reaching a desired outcome. Alternatives turn a possibility into a choice that can be consciously evaluated and acted on. section 9.1.1

A decision needs two or more alternatives that could lead to different futures. If every option has the same desired outcome, selecting one does not meaningfully decide anything. section 9.1.3 section 9.7

Figure 9.1 The key elements that are needed to make good decisions

Use the decision elements together: compare what can be done, what is known, and what is wanted, then let an authorized decision-maker turn them into an executable plan. section 9.1.3

Develop alternatives as part of sustainable software design:

  • Generate several candidate designs while solving the problem; decision-making begins when those candidates are analyzed and a tradeoff is selected. section 9.1.5
  • Consider each candidate’s sociotechnical effects, not only its technical properties, using the information currently available. section 9.1.5
  • Treat the selected option as consequential: choosing allocates time, money, or energy that may cost more to undo later. section 9.1.1
  • Record the chosen alternative and its consequences so later participants can understand the reasoning and effects. section 11.1

From designs to a sustainable choice

A team facing a software problem first creates a few alternative designs. It then analyzes their sociotechnical tradeoffs, chooses a course of action through its decision process, and captures the consequences of the selected design for future use. section 9.1.5 section 11.1

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

How deep it goes
Defines alternatives as plans, distinguishes meaningful options by future outcomes, and connects their analysis to sociotechnical tradeoffs.
Examples
Illustrates alternatives through candidate software designs analyzed for their sociotechnical tradeoffs and documented consequences.
What it assumes
Starts from zero by defining alternatives as plans rather than merely possibilities.
What you can do after
Evaluate/understand candidate designs as distinct plans, compare their tradeoffs, and document the consequences of the selected option.
How it connects
Connects alternatives with decision-making, information, preferences, resource allocation, sociotechnical effects, and decision documentation.

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.