Quiz — Chapter 32: Visual Storytelling

Target: 70%+ before moving on. Answers are hidden—commit to a choice before opening them.


Section 1 — Multiple Choice (10)

1. A diagram most clearly earns its place over prose when the reader needs to grasp:

  • a) An exact throughput number
  • b) An argument for adopting a design
  • c) A shape—how parts connect, how a process branches, or how interactions are ordered
  • d) A single linear instruction
Answer**c.** Diagrams are for *shape*—connection, branching, temporal order, data relationships. Exact numbers belong in a table (a), arguments belong in prose (b), and a single linear step is faster as a sentence (d). This is [Chapter 9](../../part-02-building-blocks/chapter-09-visuals-and-data/index.md)'s channel-fit logic applied to diagrams. (§32.1)

2. The single most damaging mistake in an architecture diagram is:

  • a) Using too few colors
  • b) Mixing levels of abstraction (infra + app + code in one picture)
  • c) Drawing it in Mermaid instead of Lucidchart
  • d) Including a legend
Answer**b.** When a box could be a load balancer, a class, or a process, the reader can't tell what *kind* of thing anything is. The C4 discipline—pick one level, draw a set—exists precisely to prevent this. (§32.2)

3. In Simon Brown's C4 model, the diagram that shows the major runnable/deployable pieces inside your system and how they communicate is the:

  • a) Context diagram
  • b) Container diagram
  • c) Component diagram
  • d) Code diagram
Answer**b.** Container = the big moving parts inside your system (web app, API, database, worker). Context (a) is the whole system as one box plus external actors; Component (c) is inside one container; Code (d) is classes/functions. (§32.2)

4. A flowchart is the right tool specifically when:

  • a) You're showing how data entities relate
  • b) The process has decisions and branches ("if X do this, else that")
  • c) You need to show where services are deployed
  • d) The steps are linear with no decisions
Answer**b.** The branches are the whole point of a flowchart. A linear no-decision process (d) is better as a numbered list; data relationships (a) want an ER diagram; deployment (c) wants a network diagram. (§32.3)

5. In a sequence diagram, the vertical axis represents:

  • a) Importance
  • b) Time (top to bottom)
  • c) Network distance
  • d) Level of abstraction
Answer**b.** Top-to-bottom is time; that's why sequence diagrams are the best tool for ordered interactions and protocols. If order doesn't matter to your message, you probably don't need a sequence diagram. (§32.4)

6. The single most valuable thing an ER diagram conveys—the thing prose states clumsily—is:

  • a) The color of each table
  • b) Cardinality (one-to-many, many-to-many)
  • c) The physical disk layout
  • d) The query performance
Answer**b.** Cardinality is the payload: does one customer have many orders or one? An ER diagram with plain lines and no cardinality omits the very thing the reader needs. (§32.5)

7. A teammate sends a clean three-box diagram, Client → API → Database, but the real system has a cache that serves stale data, a queue that backs up, and a third-party call that times out. The diagram is:

  • a) Fine—simpler is always better
  • b) Wrong in every box
  • c) Potentially misleading: it implies "nothing surprising can fail," which is false
  • d) Only a problem if it's drawn in Mermaid
Answer**c.** Every box can be accurate while the *omission* misleads—a clean diagram looks authoritative. The fix is honesty about scope: caption the omission, or show failure modes in a second view. (§32.8)

8. The chapter's main argument for Mermaid (diagrams-as-code) over a visual tool is that:

  • a) It produces prettier diagrams
  • b) The diagram lives in version control, diffs in a pull request, and can't silently drift out of sync
  • c) It supports more diagram types than anything else
  • d) It requires no learning
Answer**b.** The decisive advantage is co-location with code and review-ability, which fights diagram rot. The trade-off is giving up pixel-perfect layout control—where draw.io or Lucidchart win. (§32.9)

9. Three rules transfer across all the diagram types in this chapter. They are:

  • a) Add color, add a logo, add a border
  • b) One level of abstraction, label every arrow, name every box by role
  • c) Use UML, be complete, match the spec exactly
  • d) Make it big, make it detailed, make it symmetrical
Answer**b.** All five types are graphs the reader must decode under time pressure; these three rules each reduce decoding cost. The type changes what nodes and edges *mean*; the craft is constant. (§32.6 "Why Does This Work?")

10. A diagram's caption should ideally state:

  • a) The diagram's file format
  • b) Just the word "Architecture" or "Diagram"
  • c) The one idea the reader should take away (Level 3 interpretation)
  • d) Every box's name in a list
Answer**c.** Like a chart caption ([Chapter 9](../../part-02-building-blocks/chapter-09-visuals-and-data/index.md)) and an assertion–evidence slide title ([Chapter 30](../chapter-30-slide-design/index.md)), the caption states the *one idea* and the diagram is the evidence. A bare "Architecture" label is as under-captioned as a chart titled "Data." (§32.7)

Section 2 — True / False with Justification (5)

State true or false and explain in one sentence.

11. A more complete architecture diagram is always a better one.

Answer**False.** Completeness often *reduces* communication—a thirty-box picture says "complicated," not "here's how it works." Completeness lives in the *set* of diagrams (context → container → component), each at one honest level. (§32.2)

12. An unlabeled arrow between two boxes is acceptable because the reader can infer the relationship from context.

Answer**False.** "A → B" could mean calls, depends on, sends data to, or inherits from—four different things. The unlabeled arrow is the single most common diagram bug; labeling it is the highest-leverage habit. (§32.7, Common Mistakes)

13. You should always draw fully UML-compliant diagrams, down to the correct arrowhead style.

Answer**False.** The chapter's guidance is "borrow UML's vocabulary, skip its ceremony." An 80%-correct diagram that's instantly clear beats a 100%-compliant one nobody reads; the goal is communication, not conformance. (§32.6)

14. A diagram made to reassure executives can safely be reused as the team's working mental model.

Answer**False.** A diagram simplified for a pitch carries blind spots; if new engineers learn from it, they inherit those gaps. Different audiences need different diagrams (audience is everything, [Chapter 2](../../part-01-writing-is-thinking/chapter-02-audience/index.md)); label the simplified one and keep an honest working version. (§32.8 Warning)

15. The diagram you sketch on a whiteboard to figure out a design is the diagram you should publish.

Answer**False.** Like the exploratory chart in [Chapter 9](../../part-02-building-blocks/chapter-09-visuals-and-data/index.md), the thinking sketch is for you; you rebuild the explanatory version for the reader who wasn't in the room. Sketch to think, then ship the keeper. (§32.9)

Section 3 — Short Answer (4)

16. A reader needs to understand the order of calls in a token-refresh flow. Which diagram type, and why that one over an architecture diagram?

Model answerA **sequence diagram**, because the message is *temporal order*—who calls whom and what returns, top to bottom—and an architecture diagram shows only static structure, losing the order entirely. *(Rubric: names sequence diagram + cites time/order as the reason.)*

17. Give the chapter's three-step fix for an overcrowded "all-arrows" diagram, in order.

Model answer(1) Decide the one idea and the level (this deletes off-topic arrows); (2) rename boxes to what they are; (3) label the surviving arrows and set one consistent direction. Meaning first, cleanup second—the editing hierarchy applied to a picture. *(Rubric: correct three steps in the meaning-before-appearance order.)*

18. What's the difference between a diagram that is simplified and one that is misleading?

Model answerA simplified diagram omits detail but doesn't make a false implicit claim, and it's honest about its scope (captioned, or paired with a deeper view). A misleading diagram's omission causes the reader to believe something untrue—e.g., "nothing here can fail." The line is whether the omission deceives. *(Rubric: identifies "honest scope / false implication" as the distinguishing factor.)*

19. Why does the chapter recommend keeping a diagram's source (Mermaid text, .drawio file) next to the doc rather than just the rendered image?

Model answerBecause an un-editable diagram is one nobody updates—when the system changes, the orphaned PNG goes stale and silently lies to readers. Co-located, editable source (ideally diagrams-as-code that diffs in review) lets the diagram be revised alongside the content. *(Rubric: connects "editable + co-located" to fighting diagram rot.)*

Section 4 — Applied Scenario (1)

20. You're documenting this for a new engineer: "A user submits an order. The order service reserves inventory, then charges the card through a payment provider. If the charge succeeds, it confirms the order and publishes an event that a worker uses to email a receipt. If the charge fails, it releases the inventory and returns an error to the user."

Produce: (a) the best diagram type and a one-sentence justification, (b) a small Mermaid diagram, and (c) a Level-3 caption. Then (d) name one thing your diagram does not show and whether that omission is honest.

Model answer + rubric (a) A **flowchart** (or a sequence diagram with an `alt`/`else` branch) fits, because the message is a *process with a success/failure branch*—the fork is the point. (b) For example:
flowchart TD
    Start([Order submitted]) --> Reserve[Reserve inventory]
    Reserve --> Charge[Charge card via provider]
    Charge --> Q{Charge succeeded?}
    Q -- Yes --> Confirm[Confirm order] --> Event[Publish event]
    Event --> Email[Worker emails receipt]
    Q -- No --> Release[Release inventory] --> Err[Return error to user]
    Email --> End([Done])
    Err --> End
(c) Caption (Level 3): *"How a payment outcome drives the order: a successful charge confirms the order and triggers a receipt email, while a failure releases the held inventory—so a failed payment never leaves stock reserved."* (d) It does not show *retries* on the payment call or what happens if the email worker fails. That omission is honest **only if captioned** as "happy/failed-charge path; retry and email-failure handling shown separately." **Rubric:** type + justification (1); valid branching diagram with labeled decisions and end states (2); caption interprets rather than labels (1); names a real omission and judges its honesty (1). 4–5 = strong; 3 = redo Part B; ≤2 = reread §32.3 and §32.8.

Scoring & Next Steps

Score What it means Do this
< 50% Core ideas not yet solid Re-read §32.1–32.2 and §32.7; redo Part A of the exercises
50–70% Partial grasp Redo Exercises Part B and Part C (choose the right type)
70–85% Solid—proceed Move to Chapter 33; do one Project Checkpoint diagram
> 85% Strong command Try Exercises Part E (build the C4 set; the honest second view)