-
Notifications
You must be signed in to change notification settings - Fork 0
/
culture-hacking.otl
338 lines (338 loc) · 10.7 KB
/
culture-hacking.otl
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
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
Culture Hacking from the Inside Out
Or, How I Learned to Stop Worrying and Start a Committee
>MARKDOWN
><h2><img
>src="https://upload.wikimedia.org/wikipedia/commons/8/85/Dr._Strangelove_-_The_War_Room.png"
>class="full"/></h2>
What do I mean by culture?
"I could never use Elm for my day job"
"We push half-finished projects out the door and never come back to fix them"
Something about the organisation that determines
what's accepted => easy
what's frowned upon => difficult
What do I mean by culture?
>MARKDOWN
>## Working definition: a shared set of...
>
>* habits
>* attitudes
>* **values**
>
>## Often *implicit*
>
>"Culture is what happens when nobody is watching"
What do I mean by culture?
<IMAGE
<demographics.jpg
Sidebar: diversity and inclusion
Even more important...
... but not what I am qualified to talk about
... but some lessons may translate
What do I mean by "inside out"?
>MARKDOWN
><h2>
><img
>src="http://assets.amuniversal.com/948052d09f8a012f2fe600163e41dd5b"
>class="right-half"/>
></h2>
>
>## Top-down approach
>* aka be the boss
>* Tell people how to behave
>* Make values *explicit*
>* Measure, track, reward
>
>## Necessary, but not sufficient:
>* Culture is everyone's job
>* You can't tell people to *care*
>* Metrics will be gamed (especially if people don't care)
$ whoami
Sam Stokes
Twitter: @samstokes
Software developer since 2005
Large companies, tiny startups, freelance
Flirted with management, never been a manager
Story of my experience with culture change
Background
Large organisation
8000 employees, 1000 engineers
My team - mid-size
designer, 2 product managers, 10 engineers
Disclaimer: this is not to criticise this company
Nor do I speak for them.
Any large company has stories like this.
Focusing on problems so I can talk about problem solving.
The Problem (as I saw it)
Explicit values: Leadership, Leverage, Results
framework for performance evaluation, promotions
i.e. incentives
wanted to offset negative effects of massive growth
Missing: "Craftsmanship"
pride in a job well done
quality results
best tools for the job
best practices
The Symptoms
>MARKDOWN
><h2>
><img
>src="http://blog.samstokes.co.uk/images/quality/quality-workmanship-can-suck-it.jpg"
>class="right-half" />
></h2>
Results over Craftsmanship
cutting corners to meet deadlines
features over reliability, maintainability
lots of legacy, lots of maintenance
Leverage over Craftsmanship
lots of centralised platforms/frameworks, and pressure to use them
unwieldy, prematurely generalised
poorly documented and understood
leverage magnifies the bad (e.g. slowdown) as well as the good (e.g. features)
Unintended consequences
This looks designed to fail!
Obviously nobody wanted that.
So how did we end up here?
Promotions are signalling tools
senior ICs become coalition builders rather than technical experts
lack of role models / mentorship for craftsmanship
Celebrated behaviour gets emulated
launch party
new platform praised at all-hands meeting
no "lack of production issues" party
Explicit values feed into implicit values
I'd seen this before
At previous companies
Decided either:
Culture was unfixably broken, or
I was a bad fit
Left
This time:
More experience
Working with people
Understanding incentives and systems
Trusted my instincts more
Decided to try to make a dent
Advocacy within my team
Discussions with my team
Advocating unit testing, monitoring, alerts
Time for design discussions
Resisting premature deadline commitment
Repeated myself a lot!
Standups
Planning meetings
Ad hoc discussions
Missing feedback loops
Self-correction mechanisms
Do problems surface and get fixed?
Or get worked around at extra cost?
Code review
Not just about catching bugs
Talk about expectations, best practices
Share knowledge
Sprint retrospectives
What's going well
What problems keep coming up
Local influence
Kept repeating myself
Assumed people thought I was obsessed, pedantic, naïve...
Team started doing code review and unit tests
Other people started asking the same questions I was
People started coming to me with questions
:"Seems like the kind of thing you'd have an opinion about"
Team values were starting to change
Cultural pushback
Product managers not on board
Frustrated with slow pace of change
:Once demanded a feature ship immediately instead of finishing unit
:tests
Deadlines were king
:"I agree this needs refactoring, but we have to meet the deadline"
Other high-profile teams didn't do these things
Felt like plugging holes in a dam
When you stop applying pressure, system reverts to the old behaviour
Exhausting for one person to hold back all that water
Crisis!
Three publicly visible production issues in a row
Freaked out senior management
Meanwhile, management introducing Craftsmanship into evaluation framework
Had actually been in progress for over a year
Management also felt they were plugging holes in a dam
Set one craftsmanship goal, people forget about the previous one
Wanted people to care
Tracked down people like me, put us in a room
Committee!
Started like this room
Group of passionate people sharing stories and ideas
Instead of plugging holes, how do we fix the dam?
Amplify individual efforts
Set up lasting effects to fight reversion to the mean
How can we change what hundreds of people care about?
Nobody comes to work to do a bad job
Education
Incentives
Empowerment
Signal to noise
How can we change what hundreds of people care about?
Education
What does good craftsmanship look like?
What good things happen if you have good craftsmanship?
Incentives
How do we find and celebrate examples of craftsmanship?
How do we get EMs, PMs on board?
How can we change what hundreds of people care about?
Empowerment
Do our tools make good craftsmanship easy?
Does everyone understand how to get the most out of them?
Signal to noise
Are craftsmanship messages being heard?
Are they received with appreciation or criticism?
Committee Mission
>MARKDOWN
>## What are we here to *actually do*?
>
>Build an enduring culture of craftsmanship
>
>Amplify efforts of passionate individuals
>
>Advise and assist with setting craftsmanship goals
>
>Identify and communicate best practices
>
>Identify and broadcast examples of craftsmanship
>
>## What are we *not* here to do?
>
>Not a decision-making authority
>
>Not a required signoff
Committee Vision
>MARKDOWN
>## What would the world look like if we were wildly successful?
>
>Make the company world-class in the *way* we build software
>
>Deliver excellent products, rapidly, repeatably, with high confidence
>
>Engineers are happy and constantly learning
>
>## *Why* are we doing this?
>
>## Get other people excited
>
>Including EMs and PMs
Committee Participation
Inclusivity
Anyone passionate about building a culture of craftsmanship
No seniority requirement
Not just from engineering
Explicit responsibilities
Commit some of their working hours to committee projects
Do not want:
turning up because it's expected (and checking their email all meeting)
turning up to tick the "leadership" box for promotion
Contrast to other, similar groups
Working group model
Purpose of regular meetings
Identify projects to work on
Pick volunteers to work on them
Share project progress and results
Small working groups (1-3 people)
Often several disciplines
e.g. engineer + office lead
Set quarterly goals
Reassure management we were actually doing something
Some projects we worked on
Blameless post mortems
Craftsmanship Test
Craftsmanship Survey
Blameless post mortems
Company policy...
major production outages reviewed daily
... but not everyone did them
except for major production outages
learn from outages - could we have caught it earlier?
also useful for "near misses" and even successes
Missing feedback loop
helps teams self-correct
we could read writeups, spot common themes to address
Craftsmanship Test
Goals:
shared sense of what craftsmanship means
help team leads see how well they are doing
focus on results, not prescribe specific practices
"How many of the following questions do you agree with?"
My code deployments are reliable and fast
I am notified quickly if my service fails in production
New team members can quickly ramp up and begin contributing to the codebase
Inspired by "The Joel Test"
Craftsmanship Survey
Goals:
Give management a meaningful metric for craftsmanship
Gather evidence to convince the sceptical
Gain insight into engineers' attitudes toward craftsmanship
NPS methodology:
:"How likely are you to recommend working at this company to your
:friends based on our culture of engineering craftsmanship?"
"What are we doing well?"
"What could we do better?"
:(Net Promoter Score, already used for companywide Employee Voice
:Survey)
Committee summary
Mission and vision
Help others understand what we were doing and why
Participation and responsibilities
Ensure we were effective, had the right people
Projects and working groups
Small teams focused on concrete results
Goals and accountability
Defeat cynicism
Committee summary
Overall
Give passionate individuals a megaphone
Get management on board with data
Give management a framework for understanding craftsmanship
Identify missing feedback loops and fix them
Did it work?
Too early to tell :)
Promising signs
People eager to join the committee
WTF! :)
Had to split into several groups
Craftsmanship Survey rolled out companywide
Model replicated to other groups and offices
Change in attitudes
Learnings
Time!
Don't expect quick results
Ask yourself why you are doing this
Feedback loops
Large groups of people have inertia - resist change
Any individual progress is liable to decay
Need to set up long term reinforcing loops to counteract this
Empathy
"Bureaucracy" and "politics" are just people
Why don't they already agree with you?
Recommended reading
>MARKDOWN
><h2><img
>src="https://images-na.ssl-images-amazon.com/images/I/51r7clpkJCL._SX346_BO1,204,203,200_.jpg"
>/></h2>
><h2><img
>src="https://images-na.ssl-images-amazon.com/images/I/51q%2BTMvkNFL._SX330_BO1,204,203,200_.jpg"
>class="right"
>/></h2>
><h2><img
>src="https://images-na.ssl-images-amazon.com/images/I/41x7Y2UlqjL.jpg"
>class="right"
>/></h2>
>## Field Guide to Understanding Human Error - Sidney Dekker
>* Nobody comes to work to do a bad job
>* "Cause and effect" can be misleading in complex systems
>
>## Thinking in Systems: A Primer - Donella Meadows
>* Feedback loops
>* Unintended consequences of incentives
>* Bounded rationality
>
>## Becoming a Technical Leader - Gerald Weinberg
>* Leadership as something you do, not a title you are given