-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathspotify-model.yaml
More file actions
131 lines (121 loc) · 3.55 KB
/
spotify-model.yaml
File metadata and controls
131 lines (121 loc) · 3.55 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
# OPI Template: Spotify Model
# Pre-built unit types and example structure for the Spotify organizational model.
# Usage: Copy unit-types into your components/unit-types.yaml, then scaffold units.
#
# Spotify Model concepts:
# - Squad: Cross-functional team (6-12 people), aligned to a mission
# - Tribe: Collection of squads with shared domain (max ~100 people)
# - Chapter: Functional group across squads (e.g. all backend devs)
# - Guild: Voluntary community of interest across the org
opi: "0.2.0"
components:
unit-types:
spotify-squad:
description: "Cross-functional team aligned to a mission. Autonomous in HOW they work, aligned on WHAT they deliver."
base_type: stream-aligned
required_members: [product-owner, scrum-master]
required_fields: [schedule, interfaces, governance]
defaults:
schedule:
cadence: biweekly
duration: 60min
governance:
framework: consent
template:
channels:
sync:
- type: standup
name: "Daily Standup"
cadence: daily
- type: review
name: "Sprint Review"
cadence: biweekly
- type: meeting
name: "Retrospective"
cadence: biweekly
spotify-tribe:
description: "Collection of squads with a shared business domain. Led by a Tribe Lead. Max ~100 people."
base_type: leadership
required_members: [tribe-lead]
required_fields: [schedule]
defaults:
schedule:
cadence: monthly
duration: 90min
template:
channels:
sync:
- type: meeting
name: "Tribe All-Hands"
cadence: monthly
spotify-chapter:
description: "Functional expertise group spanning squads within a tribe (e.g. 'Backend Chapter'). Chapter Lead manages people."
base_type: enabling
required_members: [chapter-lead]
required_fields: [schedule]
defaults:
schedule:
cadence: biweekly
duration: 60min
spotify-guild:
description: "Voluntary community of interest across the entire org (e.g. 'Testing Guild'). No formal authority."
base_type: enabling
required_members: [guild-coordinator]
defaults:
schedule:
cadence: monthly
duration: 60min
# --- Example: A Payments Tribe with 3 Squads ---
---
# Example usage (separate files in practice):
# units/tribes/payments-tribe.yaml
# unit:
# name: "Payments Tribe"
# derived_from: spotify-tribe
# purpose: "All payment-related capabilities"
# owner: "Tribe Lead Payments"
#
# members:
# - role: tribe-lead
# name: "Maria Schmidt"
#
# schedule:
# cadence: monthly
# day: "First Thursday"
# time: "14:00"
# duration: 90min
# units/squads/checkout-squad.yaml
# unit:
# name: "Checkout Squad"
# derived_from: spotify-squad
# purpose: "Seamless checkout experience"
# parent: payments-tribe
#
# members:
# - role: product-owner
# name: "Jan Müller"
# - role: scrum-master
# name: "Lisa Weber"
# - role: developer
# count: 4
# - role: designer
# count: 1
#
# schedule:
# cadence: biweekly
# day: Wednesday
# time: "10:00"
# duration: 60min
# units/chapters/backend-chapter.yaml
# unit:
# name: "Backend Chapter"
# derived_from: spotify-chapter
# purpose: "Backend engineering excellence across Payments squads"
# parent: payments-tribe
#
# members:
# - role: chapter-lead
# name: "Tom Fischer"
# - role: member
# count: 8
# position: "Backend Developer"