-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdibb-framework.html
More file actions
200 lines (182 loc) · 25.9 KB
/
dibb-framework.html
File metadata and controls
200 lines (182 loc) · 25.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Spotify DIBB + Bets Board — Data → Insight → Belief → Bet</title>
<link rel="stylesheet" href="framework.css">
<style>
/* Page-accent — overrides framework.css fallback */
:root{--page-accent:var(--gold);--page-accent-soft:var(--gold-soft)}
/* DIBB chain */
.chain{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0;align-items:stretch}
.ch{background:#fff;border:1px solid var(--line);border-top:5px solid var(--page-accent);border-radius:10px;padding:16px 14px;text-align:center;position:relative}
.ch .big{font-family:Georgia,serif;font-size:30px;color:var(--page-accent);font-weight:700;line-height:1}
.ch .nm{font-weight:700;font-size:14px;margin:6px 0 4px}
.ch .ds{font-size:12.5px;color:var(--ink-soft);line-height:1.5}
.ch::after{content:"→";position:absolute;right:-10px;top:50%;transform:translateY(-50%);color:var(--page-accent);font-weight:700;font-size:18px;z-index:1}
.ch:last-child::after{display:none}
/* bets board */
.board{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;margin:14px 0;box-shadow:var(--shadow);border-left:5px solid var(--page-accent)}
.lanes{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}
.lane{background:var(--page-accent-soft);border:1px solid #e6d8a8;border-radius:8px;padding:10px 12px;font-size:12.5px}
.lane .h{font-weight:700;color:var(--page-accent);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px}
.lane .card-bet{background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 9px;margin:4px 0;font-size:12px}
/* caveat */
.caveat{font-size:12.5px;color:#8a6d2e;background:#fbf6e7;border:1px dashed #d8c98f;border-radius:6px;padding:7px 11px;margin-top:10px}
@media(max-width:680px){.chain{grid-template-columns:1fr 1fr}.lanes{grid-template-columns:1fr 1fr}}
</style>
</head>
<body>
<nav class="sitenav">
<details>
<summary>📑 Jump to</summary>
<div class="navmenu">
<div class="navgrp"><h4>Start here</h4>
<a href="index.html"><b>← Home (goal & map)</b></a>
<a href="impact-saas-companies.html">SaaS / B2B field study</a>
<a href="impact-consumer-companies.html">Consumer-tech field study</a>
<a href="methodologies-comparison.html"><b>All methods compared →</b></a>
<a href="experiment-trustworthiness.html">How 40k tests actually work →</a>
<a href="jargon.html">Jargon (glossary)</a>
</div>
<div class="navgrp"><h4>Scoring & Input modeling</h4>
<a href="rice-framework.html">RICE (Intercom)</a>
<a href="north-star-framework.html">North Star (Amplitude / Slack)</a>
</div>
<div class="navgrp"><h4>Goal-laddering / Define first</h4>
<a href="v2mom-framework.html">V2MOM (Salesforce)</a>
<a href="pyramid-of-clarity-framework.html">Pyramid of Clarity (Asana)</a>
<a href="pr-faq-framework.html">PR-FAQ / Working Backwards (Amazon)</a>
<a href="heart-framework.html">HEART (Google)</a>
<a class="cur" href="dibb-framework.html">DIBB (Spotify)</a>
</div>
<div class="navgrp"><h4>Experimentation (SaaS)</h4>
<a href="microsoft-exp-framework.html">Microsoft ExP / CUPED</a>
<a href="linkedin-xlnt-framework.html">LinkedIn T-REX</a>
</div>
<div class="navgrp"><h4>Experimentation (Consumer)</h4>
<a href="netflix-experimentation.html">Netflix · ABlaze</a>
<a href="booking-experimentation.html">Booking.com</a>
<a href="airbnb-erf-framework.html">Airbnb ERF</a>
<a href="uber-xp-framework.html">Uber XP</a>
<a href="doordash-switchback-framework.html">DoorDash switchback</a>
<a href="lyft-experimentation.html">Lyft</a>
<a href="pinterest-ab-framework.html">Pinterest</a>
</div>
<div class="navgrp"><h4>AI labs</h4>
<a href="anthropic-pm-on-ai-exponential.html">Anthropic · PM on AI exponential</a>
<a href="google-customer-zero-2026.html">Google · "Customer zero" 2026</a>
</div>
<div class="navgrp"><h4>Written discipline</h4>
<a href="stripe-shaping-framework.html">Stripe shaping</a>
</div>
</div>
</details>
</nav>
<div class="wrap">
<header class="masthead">
<p class="kicker">Methods · Deep-dive · Define impact before building</p>
<h1>Spotify DIBB + Bets Board — chain a bet to evidence <span class="srcyr">2016</span></h1>
<p class="sub">DIBB = <strong>Data → Insight → Belief → Bet</strong>. A four-step chain that says: <em>before committing to a bet, prove there's data behind the insight, the insight is real, and the belief follows from it.</em></p>
<p class="sub">Paired with a "Bets Board" — a company-level <a class="j" href="jargon.html#kanban">Kanban</a> with <em>Now / Next / Later</em> lanes — that limits how many big bets run at once.</p>
<div class="goal"><span>Goal</span><br>Decide features by data-backed expected impact — choose by outcome, not by to-do list or opinion.</div>
</header>
<div class="eli">
<div class="lbl">🎓 8th-grade version</div>
Before Spotify makes a big move, four things have to fit together in a row. <b>D</b>ata: a real number we saw (not a feeling). <b>I</b>nsight: what that number actually means. <b>B</b>elief: what we now think will work because of it. <b>B</b>et: the thing we'll actually do about it. Each arrow has to make sense — if the Belief doesn't follow from the Insight, we're just guessing. And there's a rule: you can only have a small number of big bets in motion at once, so picking matters. Most bets fail not at the Bet stage, but at the arrow between Insight and Belief.
</div>
<nav class="toc">
<a href="#headline">Honest headline</a>
<a href="#anatomy">DIBB + the board</a>
<a href="#mechanism">How it picks bets</a>
<a href="#sourcing">Sourcing caveat</a>
<a href="#apply">Apply to a sheet</a>
<a href="methodologies-comparison.html" style="color:var(--gold);font-weight:700">Comparison table →</a>
</nav>
<div class="finding" id="headline">
<h2>The honest headline: a strategic narrative test, not a scoring formula</h2>
<p>DIBB doesn't tell you whether feature A beats feature B by a number. It asks four questions and refuses to fund any bet that can't answer them: <b>What's the data? What insight do we draw? What do we now believe? What bet does that imply?</b> A bet that skips a layer — most commonly, jumping from belief to bet without insight — is not approved.</p>
<p>It's a <b>narrative consistency check</b>. Combined with the Bets Board (limit to a few large bets at once), it forces focus: you can't run ten bets if each requires a written DIBB chain.</p>
</div>
<!-- ANATOMY -->
<h2 class="sec" id="anatomy">DIBB — the four-link chain</h2>
<p class="secsub">The discipline is the <em>arrow</em>: each step must justify the next. A weak link breaks the whole chain.</p>
<div class="chain">
<div class="ch"><div class="big">D</div><div class="nm">Data</div><div class="ds">Observed numbers we can point to. Not anecdotes, not gut.</div></div>
<div class="ch"><div class="big">I</div><div class="nm">Insight</div><div class="ds">What the data <em>means</em>. A pattern, a gap, a surprise.</div></div>
<div class="ch"><div class="big">B</div><div class="nm">Belief</div><div class="ds">What we now think will work — derived from the insight.</div></div>
<div class="ch"><div class="big">B</div><div class="nm">Bet</div><div class="ds">The committed action — testable, sized, time-bound.</div></div>
</div>
<div class="board">
<h3 style="margin:0 0 4px;font-family:Georgia,serif;font-size:17px">The Bets Board — a Kanban for big company bets</h3>
<p style="margin:0;font-size:13.5px;color:var(--ink-soft)">Each bet is a card. The board <b>limits work-in-progress</b> — a bet can't move to "Now" until something leaves it. Kniberg's published Spotify board uses three lanes — <b>Now / Next / Later</b>; the "Won't do" lane shown below is a common Kanban add-on, not in Kniberg's original.</p>
<div class="lanes">
<div class="lane"><div class="h">Now</div><div class="card-bet">Free-tier expansion (6-mo)</div><div class="card-bet">Podcast monetisation</div></div>
<div class="lane"><div class="h">Next</div><div class="card-bet">Improved discovery</div></div>
<div class="lane"><div class="h">Later</div><div class="card-bet">Family-plan revamp</div><div class="card-bet">Live audio</div></div>
<div class="lane"><div class="h">Won't do <sup style="font-size:8px;color:var(--ink-soft)">+</sup></div><div class="card-bet">Hardware speaker</div></div>
</div>
<p style="margin:10px 0 0;font-size:12px;color:var(--ink-soft)"><em>Illustrative bets; actual Spotify bets are not public. <sup>+</sup>"Won't do" is the page's addition; Kniberg's source uses Now / Next / Later only.</em></p>
</div>
<div class="src">Source: <a class="cite" href="https://blog.crisp.se/2016/06/08/henrikkniberg/spotify-rhythm">Henrik Kniberg — "Spotify Rhythm" (Crisp blog, June 8, 2016)</a>. Kniberg was a long-time Spotify agile coach; this is the best publicly-available account of DIBB. No first-party Spotify documentation of DIBB exists.</div>
<!-- MECHANISM -->
<h2 class="sec" id="mechanism">How DIBB actually picks the bets</h2>
<p class="secsub">Five steps, but the test happens between the steps — each arrow has to hold up under questioning. Most bets die between Insight and Belief.</p>
<div class="step"><div class="num">1</div><div><h3>Start from observed Data</h3><p>Hard numbers from product analytics, customer research, or market data. Not "we noticed" — a specific data point with a source.</p></div></div>
<div class="step"><div class="num">2</div><div><h3>Extract an Insight</h3><p>What does the data <em>mean</em>? A surprise, a gap, a behavioural pattern. If multiple plausible insights, name them — the choice is part of the argument.</p></div></div>
<div class="step"><div class="num">3</div><div><h3>State the Belief explicitly</h3><p>"We now believe …" — a single-sentence claim about cause-and-effect or user behaviour. The Belief must follow from the Insight; if it doesn't, you're guessing.</p></div></div>
<div class="step"><div class="num">4</div><div><h3>Make the Bet — sized, sponsored, success metrics declared</h3><p>The Bet inherits the Belief. A short doc names: sponsor, stakeholders, expected outcome, success metric, deadline. Cards go onto the Bets Board, one per active bet. (Kniberg's source doesn't specify a doc length; the practice in community writing varies from one paragraph to a few pages.)</p></div></div>
<div class="step"><div class="num">5</div><div><h3>Validate the bet — track the success metric, re-evaluate quarterly</h3><p>Bets aren't fire-and-forget. The board is reviewed; cards move (Won, Lost, Won't Do) so the org learns which Beliefs were right.</p></div></div>
<!-- SOURCING -->
<h2 class="sec" id="sourcing">Honest sourcing caveat</h2>
<div class="warn">
<b>There is no first-party Spotify post that defines DIBB.</b> The best sources are <a class="cite" href="https://blog.crisp.se/2016/06/08/henrikkniberg/spotify-rhythm">Henrik Kniberg</a> (ex-Spotify agile coach, well-positioned but a consultant, not a Spotify-PR statement) and secondary PM sites. Treat DIBB as a <em>second-party</em> account — it's well-evidenced as a real Spotify practice, but the framework name and exact mechanics live in community writing, not in Spotify's own documentation.<br><br>
The Spotify "squads, tribes, guilds" model has the same sourcing pattern — Kniberg's whitepapers were the public artifact. The shape is real; the formality may differ inside Spotify.
</div>
<!-- APPLY TO A SHEET -->
<h2 class="sec" id="apply">Apply to a feature sheet</h2>
<p class="secsub">DIBB doesn't rank bets by score — it <strong>refuses to fund bets that can't fill all four cells</strong>. If you adopt it, your bets board becomes a sheet where every row has D / I / B / B columns plus the success metric, sponsor, board lane, and verdict. A bet missing any cell isn't ranked low — it's sent back for re-<a href="stripe-shaping-framework.html">shaping</a>.</p>
<div class="note" style="background:var(--teal-soft);border-left-color:var(--teal)"><b>Try it Monday morning (30 minutes).</b> Pick the most-funded bet your team is currently working on. On a doc, write its four DIBB cells from memory — Data, Insight, Belief, Bet — one sentence each. Then test each arrow: does the Insight follow from the Data? Does the Belief follow from the Insight? If you can't answer those two questions cleanly, you've found the link that needs evidence. That's the failure mode DIBB exists to surface — and it's almost always between Insight and Belief.</div>
<div class="extable" style="overflow-x:auto;margin:14px 0">
<table style="border-collapse:collapse;width:100%;font-size:13.5px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden">
<thead><tr style="background:var(--ink);color:#f3efe6;font-size:12px;letter-spacing:.05em;text-transform:uppercase"><th style="padding:10px 12px;text-align:left">Column to add</th><th style="padding:10px 12px;text-align:left">What it captures</th><th style="padding:10px 12px;text-align:left">How you fill it</th></tr></thead>
<tbody>
<tr><td style="padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600">Bet</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Candidate big bet</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Title — usually a quarterly or longer commitment, not a feature</td></tr>
<tr><td style="padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600">Data</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Observed number with a source — not anecdote</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Analytics, user research, or market data — cite the source</td></tr>
<tr><td style="padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600">Insight</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">What the data <em>means</em></td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">A pattern, gap, or surprise — must follow from the Data</td></tr>
<tr><td style="padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600">Belief</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">"We now believe …" — single sentence of cause-and-effect</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Must follow from the Insight; this is where most bets fail</td></tr>
<tr><td style="padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600">Success metric</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">How we'll know the bet worked</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">One numeric outcome with target value & deadline</td></tr>
<tr><td style="padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600">Sponsor</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Named individual who owns the bet</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Single name — no committees</td></tr>
<tr><td style="padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600">Board lane</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Where the bet sits on the Bets Board</td><td style="padding:10px 12px;border-bottom:1px solid var(--line)">Now / Next / Later / Won't do — WIP-limited at "Now"</td></tr>
<tr><td style="padding:10px 12px;font-weight:600">Verdict</td><td style="padding:10px 12px">Approved / Re-shape / Rejected</td><td style="padding:10px 12px">Per the rule below</td></tr>
</tbody>
</table>
</div>
<h3 style="font-family:Georgia,serif;font-size:18px;margin:24px 0 8px">Worked example — a bets board snapshot</h3>
<p style="font-size:13.5px;color:var(--ink-soft);margin:0 0 12px">Eight bets at various readiness stages, shaped after Kniberg's published Spotify-style template. The point is the chain logic — Belief must follow from Insight from Data. Bets that jump links get re-shaped.</p>
<div class="extable" style="overflow-x:auto;margin:14px 0">
<table style="border-collapse:collapse;width:100%;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden">
<thead><tr style="background:var(--ink);color:#f3efe6;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase"><th style="padding:9px 10px;text-align:left">Bet</th><th style="padding:9px 10px;text-align:left">Data</th><th style="padding:9px 10px;text-align:left">Insight</th><th style="padding:9px 10px;text-align:left">Belief</th><th style="padding:9px 10px;text-align:left">Success metric</th><th style="padding:9px 10px;text-align:left">Lane</th><th style="padding:9px 10px;text-align:left">Verdict</th></tr></thead>
<tbody>
<tr style="background:var(--gold-soft)"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Free-tier expansion</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Free→Paid conv 2.3% (down from 2.8%, 12 mo)</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Top-of-funnel growth slowing</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Wider free tier → +<a class="j" href="jargon.html#ltv">LTV</a> via deeper habit before paywall</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">+15% paid net-adds y1</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Now</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--gold);font-weight:700">Approved</td></tr>
<tr style="background:var(--gold-soft)"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Personalised discovery v2</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">60% skip rate on recommended tracks</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Discovery missing taste-fit, not novelty</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Weighting by taste history → lower skip + +D30</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Skip rate < 50%; +2pp D30</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Now</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--gold);font-weight:700">Approved</td></tr>
<tr style="background:var(--gold-soft)"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Podcast monetisation</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Podcast listening +38% y/y; ad <a class="j" href="jargon.html#cpm">CPM</a> ¼ of music</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Podcast ads under-monetised vs attention share</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Dynamic ad insertion + sponsored tier closes the gap</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Podcast <a class="j" href="jargon.html#arpu">ARPU</a> +50% y1</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Now</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--gold);font-weight:700">Approved</td></tr>
<tr style="background:var(--gold-soft)"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Onboarding playlist seeding</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)"><a class="j" href="jargon.html#dn-activation">D7</a> retention 41% new vs 68% returning</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Cold-start problem on first session</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">3-Q taste quiz + seed playlist closes cold-start gap</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">D7 retention 50%+</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Next</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--gold);font-weight:700">Approved</td></tr>
<tr style="background:var(--gold-soft)"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Family-plan revamp</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Family share of paid +6pp y/y</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Shared-account UX under-served</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Per-user personalisation within family lifts retention & ARPU</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Family churn -2pp; tier-up 4%</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Later</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--gold);font-weight:700">Approved · queued</td></tr>
<tr><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">AI workout playlists</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">"Workout" search +18% y/y</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Mood-context listening growing</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">"AI generates BPM-matched playlists" — Belief→Bet jump unclear</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Workout-tag listens +10%</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Next</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:#9a7b2e;font-weight:700">Re-shape</td></tr>
<tr><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Live audio (Greenroom-style)</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Clubhouse usage +N% (external)</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Trend — borrowed from competitor, not our users</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Weak — Insight not derived from our data</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">—</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Later</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:#9a7b2e;font-weight:700">Re-shape</td></tr>
<tr><td style="padding:9px 10px;font-weight:600">Branded hardware speaker</td><td style="padding:9px 10px">Smart-speaker household share +Y%</td><td style="padding:9px 10px">"Hardware matters"</td><td style="padding:9px 10px">"Own-the-living-room"</td><td style="padding:9px 10px">— (no margin model)</td><td style="padding:9px 10px">Won't Do</td><td style="padding:9px 10px;font-family:Georgia,serif;color:var(--accent);font-weight:700">Rejected</td></tr>
</tbody>
</table>
</div>
<div class="note" style="background:var(--accent-soft);border-left-color:var(--accent);margin-top:18px"><b>The most important reading skill on this page.</b> Look at the two <em>Re-shape</em> rows. The "AI workout playlists" row fails between <b>Belief</b> and <b>Bet</b> — the Belief is fine ("mood-context listening growing"), but the specific Bet ("BPM-matched AI playlists") doesn't obviously follow from it. The "Live audio" row fails one link earlier, between <b>Data</b> and <b>Insight</b> — the Data is about a <em>competitor</em>'s users, not ours, so any Insight derived from it is borrowed. DIBB's leverage is forcing you to point at <em>which arrow</em> is bending. "We just feel this is right" can't survive that pointing exercise.</div>
<div class="note" style="margin-top:18px"><b>Decision rule.</b> <b>Approved</b> only when all four DIBB cells contain concrete content, a single-named sponsor exists, a numeric success metric is committed, and a board lane is assigned. <b>Re-shape</b> when any link in the chain doesn't follow — most commonly Belief→Bet (workout AI row) or Insight→Belief (live audio row, where the Insight came from a competitor not from your users). <b>Reject</b> when Data is anecdotal, no sponsor exists, or there's no plausible success metric — this is what stops the "Hardware speaker" pattern of strategic-sounding bets without commercial backing. WIP-limit at "Now": a new bet can't enter "Now" until something leaves it.</div>
<div class="note"><b>Why DIBB is on the list anyway.</b> The narrative chain — every bet must trace back through Belief → Insight → Data — is the single best antidote to the common planning failure mode of "we just feel like this is right." Even if the framework name varies inside Spotify, the discipline transfers cleanly.</div>
<footer>
Companion to <a href="impact-consumer-companies.html#define">← Consumer case studies · Define impact first</a> · <a href="methodologies-comparison.html">All methods compared</a> · related: <a href="north-star-framework.html">North Star</a> (different question — direction vs evidence)<br>
<b>Grounded in</b> <a href="https://blog.crisp.se/2016/06/08/henrikkniberg/spotify-rhythm">Henrik Kniberg, "Spotify Rhythm" (Crisp blog, June 8, 2016)</a> — the canonical publicly-available DIBB source. <b>Verbatim from Kniberg:</b> the DIBB acronym (Data → Insight → Belief → Bet) and the Bets Board lane labels (Now / Next / Later). <b>Added by us, not in Kniberg's published account:</b> the "Won't do" lane (common Kanban add-on), the Won/Lost/Won't-Do verdict labels, the 8-row example bets board (illustrative; actual Spotify bets are not public), and the three-gate Approved/Re-shape/Rejected decision rule. <b>Sourcing caveat:</b> no first-party Spotify documentation of DIBB exists — Kniberg was a long-time Spotify agile coach (not a Spotify spokesperson), and his post is the strongest second-party account. The discipline is well-evidenced as a real Spotify practice; the framework's formal name and exact mechanics live primarily in community writing.
</footer>
</div>
</body>
</html>