Patterns of Effective Teams

Dan North

Recorded at GOTO 2017

and so a bit of background to to this
talk I I've been RIT for 25 years I'm
old and gray and miserable and get off
my lawn but um for about eight of those
from 2002 to the end of 2009 I was with
sort works which are they they are
analysis to the global company every
time I look there's another thousand
thought workers having eruption at four
thousand they'll I kind of taken over
the world but back then they were not
much fewer but these guys were real
pioneers of agile methods and
particularly bring an agile method into
large organizations so lots of people
were doing little bits of agile footwork
so get much more seriously and said
we're going to show our large clients
how we're going to do stuff so I was
there until about end of 29th end of
2009-2010 I left I've been there eight
years it's time to do something
different and I joined a very small team
in a trading firm and the trading firm
is headquartered here in Chicago I was
working in the London office so this is
a bit of a sort of homecoming for this
talk because a lot of the patterns that
I'm going to talk about I started
observing there and then I started
teaching them and I started noticing
them in other places as well so while I
was at the trading firm I I was working
in a really really weirdly
high-performing team like there was a
tiny though there were three people when
I joined I was number three at its peak
the team so it was never a huge team
that they were delivering software more
effectively and more quickly than any
other team I've ever seen that alone
worked in and as some weird things
coming up on the monitor screen down
here mr. AV person I'm getting some
tweets and things and rather than that
so what we'd like to know um
and now you should see this screen it's
brilliant it's got little piles of poo
that say microservices on it's fantastic
if you haven't seen that slide that
slide is worth looking for I'm no longer
going to be distracted by that so anyway
I started I figured either this is a
float right and it's like it you know
you have to have Kent back in the room
for me it's a chap called Joe warm'd
who's my favorite programmer I know lots
of programmers he's the best programmer
I know but and when he's in a team
things just work a lot better and so I
figured maybe that that's the secret is
have Jaron Athene but then I realized
this team was doing things that I
figured I could maybe articulate maybe
share maybe name as patterns and maybe
get other people doing as well so that's
what I've spent about the last five
years kind of obsessing about and so
this talk is really is the subset of
those that is about how teams work and
Team Dynamics as I usually do I've got
way too much stuff to fit into the 50
minutes I've got so I thought I'd start
by rambling for five minutes and see
what I get things so at first a word of
caution okay I'm talking about effective
teams okay I'm not talking about
productive teams productive is a massive
red herring productive comes from the
Latin Pradera to make and it is the root
of production product productivity and
productive and what it means is the
ability to make lots of the thing okay
so productive if I have a more
productive system it produces more stuff
the goal of software development is not
to produce stuff the goal of software
development is to impact a business in
some way hopefully positively right
that's what we're about we're not about
writing software we're about solving
business problems so effective teams
managed to solve gnarly business
problems with tiny tiny bits of software
if you can solve gnarly business
problems with no software you win it
software okay that's how software works
so where I do not want productive teams
but do not want productive engineers
yeah what I want is people who are
really really good at understanding the
heart of the problem and just solving
for that okay that'll pay a lot of money
patterns I'm going to lay them out in
some sort of form so I figured I would
put them out on
a little plane that looks like this with
difficulty on one axis like how hard is
it to become good at this thing and
effectiveness how much will it help you
on the other axis just for a frame of
reference the origin and the bottom left
corner start that quite difficult and
quite effective ok so what I'm saying by
that is this these patterns are not for
beginners well some of them anyway but I
would argue the patterns aren't for
beginners anyway ok best practices are
for beginners follow these rules you'll
be fine ok once you start to gain a bit
of context then you start looking at
patterns so does anybody know what that
image in the background is I want to
take a guess where that's from
it's a map it is a map what's it a map
of it's a map from the original print of
Treasure Island I figured it was a
really really nice idea to have in the
back of family a little bits of gold in
I think so so there's that there's a
little backdrop for you okay the first
pattern I want to talk about then is I
think I called Dreyfus squared so in
order to talk about Dreyfus squared I
need to first of all talk about the
Dreyfus model so there's a there are
many many models of learning of skills
acquisitions there's xu Hari there's
conscious competent and all that stuff
Dreyfus model starts with two brothers
Hubert in Stuart Dreyfus in the 70s and
one of them is a systems analyst back
when we had those things and the other
ones that philosophers I can imagine
them at a dinner party and and they got
together one day and they said wouldn't
it be cool if you could program a
computer to learn stuff so like your
teachers you could learn you can program
a computer to learn chess and so they
didn't want a program a chess-playing
computer that already existed they said
they wanted to program a computer to
learn and chess was a sufficiently
interesting problem because the rules
aren't very hard but it's really really
hard to be good at ok so they said this
is great let's just go find out how
learning works and then and then we'll
code it up and they went off and looked
at how and it turns out now when you
have learning worked yeah so so being
being an early pioneers in technology
they started shaving yaks and they did
their own research and at the back of
this research mostly looking at airline
pilots and how airline
quite skilled they identified five
levels of skills acquisition five levels
of capability you go through on your way
to deeply deeply learning a skill and so
here they are at the first level you're
a novice so you just need rules okay
don't tell me any of the background just
tell me what to do I'm learning tennis
and all I need to know is that I hit the
round thing with the stick thing okay
and the surrounding missed it okay no
no point of this at this stage telling
me where my footing is telling me about
topspin or balance or you have to use
the court that will just overwhelming
okay I want to hit the round thing with
the stick thing a bunch of times and so
then I do that bunch of times but I'm
start getting a bit better at hitting
the round thing with the stick thing and
so I now move on and I know it's called
an advanced beginner so advanced
beginner is where you understand the
rules and you're trying to wonder out
you're trying to figure out why those
are the rules so many many years ago I
used to do jujitsu martial art and ang
it so it has lots of tiny little
economic moves in it so my favorite
Jitsu move I'll show you it is this this
is the entire thing okay that right it's
called cooker Nagi means air technique
so that is how you defend yourself when
someone is swinging a chain at you we
don't teach that to beginners okay and
what it does is actually this as the
change coming round there's a lovely
point of momentum just here and so you
put your hands by the side of the
shoulder and you use it as a pivot so
I'm doing that the person is moving in a
big arc like that and they land like a
sack of sand and the chain lands neatly
next to them okay you don't learn that
straightaway but these are the thought
this is what gypsies got in it apart
from blocking gypsies blocking is these
big circular movements like this and I
just thought that seems really
unofficial so I'm going to do little
blocking movement so I did a little
head and that's how I learnt that you do
big movement okay so that's begin it
you're testing the rules were breaking
the rules you're seeing what happens at
analyze the rules and you become what's
called competent and at a competent
level you can now apply the rules to
achieve a goal so I don't need to tell
you to take the teabags out and heat the
kettle and whatever I can just tell you
I can ask you for a cup of tea could you
make me a cup of tea please and you say
certainly would you like milk would you
like sugar how strong do you like it
because those are basically the three
variables okay and so because you
understand how to apply rules that is as
far as most people get with most skills
if you then decide that you want to
particularly invest in the skill you
start moving towards the next level
which is proficient so efficient is now
where you've really internalized the
rules and the solution starts up here
fully formed in your head you start
having instinct and insight and
intuition and lots of other things that
start within okay but you don't trust it
yet so you kind of fall back on the
rules right and so so you're still
learning whether to trust your instinct
and then eventually again you know you
you you nerd out about this thing and so
may be proficient in terms of tea making
as I start studying different kinds of
tea in different tea making techniques
and I learn about how to's made and that
if you pick the leaves or the buds at
different points during the age of the
whatever I don't know I'm not a Tina
I'm faking it but eventually you become
an expert and as an expert transcends
the rules and this isn't in some
pretentious hand wavy way this is they
literally no longer think in rules now
bear in mind these guys came up with
this model in the 70s so 40 years ago or
something recent neuroscience is backing
this up there's a thing you've got live
MRI scanning nail so you can watch
someone's brain activity in real time
which is kind of cool and one of the
recent bit of studies that I've heard
about was studying chess players as
they're playing chess so when you play
so the idea that the theory was that
chess grandmaster just understand how to
process chess much better than you do
and if they don't they play differently
so the way a chess grandmaster plays
chess is they look at the board the part
of their brain that's to do with recall
fires up briefly so that's then
remembering games that are similar
so they're falling back on their context
and then the kind of illogical
processing parts are now they're
scanning like this they're scanning that
space and they're figuring out what to
do for their move
meanwhile the not expert chess player
the intermediate chess player is that
part is really busy so they're scanning
a much bigger space so not only is this
chess grandmaster going to beat you
they're going to apply less effort doing
it how annoying is that so thanks for a
transcendual I got really excited about
this model because it's based on science
and I like things that are based on
science but also it tells me something
about how people how I can help people
progress or how people can help
themselves progress in the context of
teams then this is a Dreyfus model
Dreyfus squared so this it says imagine
you laid these things out as a table you
don't have to imagine I've laid it out
as a table for you that's handy isn't it
and so then we took then we look at what
happens when we pair up people in a team
so the new person joins the team and
what do we tend to do with the new
person when they join the team we rather
give them a pile of stuff to read if we
don't like them yeah or normally what we
do is we pair them up with neo with the
expert when we sit okay so that's great
so we're going to pair you up we're
going to bring you up to speed so so
what happens when we pair a novice with
the novice could get overwhelmed yeah
but remember the expert doesn't think in
rules anymore they don't it's not that
they're choosing not to they don't know
how to okay so what happens when you
pair a novice with an expert is someone
dies okay now we don't know which yet
right either either the novice is
grabbing the expert by the throat and
saying tell me what to do or the expert
is saying if you ask me one more dumb
question I'm going to kill you okay it
doesn't end well now remember and I'll
keep saying this and you'll keep
forgetting it that's okay I'll keep
saying it Drake this model is about
skills not about people so you will have
a portfolio of skills some of the
you will be a novice at some of them
you'll be competent some of them you may
be an expert in and that will be
different from someone else's portfolio
skills so really what this is is an
overlaying model so when we're thinking
about pairing people up and watching
people work this jumps out for me in
terms of seeing the kinds of disconnects
I get in communication in teams okay
what about when I pair up to advanced
beginners what happens then sorry lots
of rule-breaking mayhem mayhem incre
that may have a go it's fantastic right
there's this huge huge busy learning
stuff right so it's a really real hotbed
of like why have you try this and this
and this so it's a super super
productive time do not put any of that
into production okay unless you have a
sensible adult around to help Shepherd
this stuff it's a fantastic way to get
people learning okay let's look at a
couple more what about when I pet a
novice and someone competent in that
skill how does that work that works
really well so the comp at the competent
level I'm not aware of things like
insight and intuition and all those kind
of things
I'm still thinking in rules but I'm
really really good at rules at the
competent level is typically where
people write you know the rule books and
the best practices and the blueprints
and all that stuff because they think
the best way to help people is with rule
what Draper's brothers realize is the
one thing not to do with someone who's
an advanced beginner is to try and try
and help them not mistake and not make
all the mistakes everyone else makes
because making mistakes that everyone
else makes is how you learn right it's
the process of learning but yes and
parent knowledge is competent that's
brilliant so when you get brand-new
people or someone who's brand-new to a
domain or a an application or a language
or whatever else else it is pair them up
with someone who's okay at it but still
looking up a load of stuff themselves
right there's still the goal oriented
and they understand the rules themselves
because they will understand the pain
that the new person is going through and
they will also be able to speak in a
language that resonates and the last one
I want to look at very briefly what
about one
here proficient with expert what does
that look like builds confidence I think
this is one of the most powerful
pairings so remember at the proficient
stage or on your way to proficient
you've made a choice to invest in a
thing okay I want to be I want to go
beyond being a competent JavaScript
program or to go beyond being a
competent distributed systems engineer I
want to really understand how that stuff
works so I mean I'm expressing a
investment in intent and then I work
with an expert who's done that journey
yeah who's super excited about it and so
now what you have is it's our comm
let us spend time right and you go teach
me the ways and it's brilliant so you
can completely nerd out on things so so
why this pattern I find this pattern
super useful for and again I teach this
in teams so rather than me saying oh you
guys should pair together it's let's
understand how learning works let's
skill are likely to collide with each
other okay and then that means that we
can start self-selecting into pairings
for specific situations that are most
likely to be productive but most likely
to be valuable and so a bit of meta
stuff understanding the Dreyfus model is
a skill oh so now you're all novice
greatest modelers okay or those of you
who hadn't come across this before what
will happen then is you'll become an
advanced beginner and you'll go this is
great and you'll start applying it
everywhere and annoying the crap out of
people and then and then eventually
you'll figure out where it works and
then you'll start to get some balance
yeah and then you know that they're kind
of the further stages there are like
what other learning models either and
how else can we help people people
interact with each other so Drake the
squared then next time I want to look at
shallow silos this is an example of a
whole class of things so this isn't
necessarily go do this it'll work but
this is the thing that I noticed
happening in and I'll say this insanely
high performing team there were about
six of us by this point and
the thing I'd always there the mantra I
heard from from agile land is pair on
everything right I'm a huge huge amount
of player programming I'll pair anything
really pair testing pair analysis and
they've said pair promiscuously you
should rotate pairs okay so you should
pair on lots of different things and
that way it reduces your truck factor
you know the number of people that need
to be run over by a truck I heard
recently of a thing called the inverse
truck factor the inverse truck factor is
the number of people in your team that
need to get run over before we can get
any work done most teams most teams have
a non zero truck factor has been my
experience okay so I'm anything and what
what we noticed was this is as a team we
were super super effective we were able
to iterate on ideas very quickly we had
fantastic rapport and communication with
the traders were building trading
systems were embedded in with the
traders and but what would happen if
people had different propensity so there
were a couple of people who were really
into the domain of trading and what does
it mean to write effective algorithms
and and all that kind of stuff there are
people who are like like me I'm really
into how things connect up so almost
like that it didn't need to be a trading
firm it could have been a health care
systems integration and wiring things
off and having messages flying around
the place and all that kind of thing
and then you get people who nerd out on
your user experience and usability and
so what we have was a very complicated
technology trading stack weird lots of
bits in it and people tended to kind of
prefer different areas and so the order
management system in a trading in a
trading stack I won't go into it but
it's a very very complicated bit of
software it's it is quite simple to
describe but there's enormous Lee
complex emergent behavior in it I I
tried building an OMS and on a
management system a couple of times my
head exploded and then I got someone
else my head didn't explode anymore
which is great and then there are some
things I shouldn't try to do so but what
we found is that essentially in the team
the six people tended to fall into three
pairs that would focus on different
areas and so we should rotate people so
we started rotating people and
what I have only Europe rotate people is
people just going to move I mean I can
do this stuff I'm not that interested in
it I'd rather do that thing over there
and when you get people who are doing
work that is like new look the work that
comes out is a bit okay it projects okay
it's a transference thing and so if you
get someone working on something that
they're really excited about they tend
to get something really good at the
other end so we said let's not overthink
what would is will stay in our
effectively silos right so there's these
two expert in here and these two the
expert in this thing at these two the
would have stand up session here to
stand ups every day I talk about stand
ups in a minute but have to stand ups
every day and what would happen is the
silent was only about this height okay I
don't account for your knees so it would
be an outsider then we'd come out of our
silo and come and have a team you know
stand up and then we come back into that
little silo and then do work and that
turned out to work really well so
shallow silos is an example of a
different kind of team set up in terms
of how we allocate work and how we
manage work and how we consume work is a
lotof and particularly the agile space I
see this and I don't know why things are
presented as binary you know you're
you're using story points you're not
using story point you're doing
estimating you're not doing estimating
so there's no estimate thing is like you
know it's like binary estimate no
estimates those are your two choices
whereas generally a lot of these things
are much more nuanced and so the way we
allocate and consume work in a team is
much more nuanced than what we're
pairing and we're rotating and we have
pare stairs and one of rails or people
take individual work and then they're
allocated into silos yeah so shallow
silos an example of somewhere along that
spectrum there are many others and what
could go into a few of them today but
I've got lots more to talk about so just
bear in mind if you're in a team and
you're thinking well some people really
love doing web development
okay do you know what set them up so
they can do excellent web development
give them all the support they need as
long as more than one person knows a
thing then people can take vacation
safely people can rotate in and out of
the team that's okay
all right so I'm an obsessive about
pairing but I'm much much more relaxed
now about
rotating people through different kinds
of work so that's looking at a specific
team now let's look at interactions
between teams so one of the challenges
we had at the trading firm I was in this
team for about a year and after about a
year I changed wrong so I switched into
the motor I was now pairing with the CIO
on essentially an all change journey so
about a year and a half it was really
really really fun time and he's here so
I've got to be very careful what I say
cuz he's in close enough to three things
so one of the things we found we're
really struggling with was people were
basically working in vertical areas so
what happened before was like there was
just no you know no control if you like
so they were kind of fires everywhere
and so he'd come in it's a driver going
to be the head of networking a head
event infrastructure a head of data
center there's going to be a bunch of
heads of things so that then is going to
be responsibility and accountability and
all the fires Pennell it was brilliant
right that's the right thing to do but
then we've got the problem that now
everything is handoffs and so now how do
we make work flow through the
organization so we went from no
structure to structure and now we wanted
to get more kind of link so it's okay
how should we then how should the
delivery team so the team that's
building a product for building a
trading system how should they interact
with Network specialists right network
engineers and we sort of thought will
make you know we could do these
cross-functional teams and when you're
working at that kind of level you have
network engineers who have literally all
they've done for 20 years is nerded out
on different switches right they can
tell you everything about every Rev of
every upgrade of every make of switch
that they've ever seen
and they can tell you about all I learnt
some mad stuff store and for fat versus
pass-through so this is as the bikes for
a packet arrived at a switch do you wait
until you've got the hot packet and then
send it on its way which means you get
more reliable packets because if you get
a partial packet you don't then send it
on or do you send it through a byte at a
time as you get it because that means
you get faster throughput lower latency
but if you get a fragmented packet so
does everyone else
yeah neither one of those is right as
parting says it depends there's
different cases for different situations
and I learnt all this stuff working with
these Network guys ask one of these
network guys if they want to build a
yeah no I'll Sonny's Network guys what
they think about CSS that's their CSS
care face right and so it doesn't work
just a nice build cross-functional teams
so I stole a model that I've seen is
company called object mental about a
hundred years ago early agile very early
agile ponies I've got some they've got
some great online legal folks like
Michael feathers and Bob Martha's work
there and they had a coaching model
where they would have individual coaches
would be on assignment but they
typically went out individually but they
would be buddied up with someone who
wasn't there okay just to keep them sane
so they're checking with them every week
or so now how you doing and they called
it near coaching and fire coaching so
the near coach is embedded in the team
and it wasn't a senior junior thing so
you could reasonably be each other's
near and far coaches yeah but what it
meant was that you had someone with a
different perspective and I thought this
was a really powerful model so we
started doing something like this so for
those specialist teams and we didn't
call them expert team because everyone's
experts at those different things ago
Draper's right but these are specialists
in things like infrastructure datacenter
DBAs whatever it might be and within
those little groups and they're only
little groups maybe four or five of each
you had the kinds of people who loved
being in teams and helping a team build
a product and the kind of people who
loved just nerding out in their
discipline but for the DBA the lead DBA
had literally written books about Oracle
DBA Inge yeah she was awesome and so
we've started building this model where
you would have embedded people in the
teams and they would have a kind of like
they'd be like a mothership they'd go
back to and the mother ships job was to
stay current and to learn stuff and to
be ahead of the game and the guys
embedded in the team's their job was to
implement those ideas for the particular
people but there was like a secondary
role which is they were coaching the
teams so if I needed something network
expertise we get the net one at one of
the roving Network people come and sit
in our team and they'd be connected back
to the gang of court hard core
networking people
and they will be teaching us what we
needed as they were doing it so again
pairing right and so as they're teaching
and we're doing it
our team is now learning enough about
networking to be dangerous
yeah and that meant that next time we
needed them slightly less so they're
raising the bar across all of these
different disciplines and skills so as I
say that DBA is right tuning a database
is something you don't need until you
need it and then you really need it a
lot and then you don't need it again for
ages it doesn't make sense to have an
embedded DBA in a team so we ended up
with this model where people kind of
start in though they were in like a core
team I'm gonna go out on assignments to
different teams and help out and then
they come back and share knowledge that
way which we found to be useful
this was warm welcome it was and this is
something you can all do tomorrow well
not tomorrow you'll be here right but
sometimes the barrier to this is
organizational stuff in fact most often
the barriers organizational stuff a warm
welcome is it when someone joins the
team that is your one and only time to
make one of any opportunity to make a
good first impression okay so what was
your first impression like when you
joined the team or when you joined the
company you rocked up and they weren't
expecting you rocked up and you didn't
have a desk you rocks happen it took you
know ten days before you could even log
in right so warm welcome is this is
really really it got hard really really
caring about the fact that someone's
about to join a team or someone's about
more importantly towards that to join an
organization and laying out the red
carpet making them really really special
like you actually want them to be there
okay this is not a difficult thing to do
so my example of this was a couple of
weeks before I joined this company I got
a phone call saying you're joining a
couple of weeks yes I am what laptop do
you want oh no profs me that what can I
have no one laptops you want anything
right you know my laptop and we're going
Oh not ready for this question and we
chatted a bit line it up then I asking
a pretty spiffy laptop anyway so I
turned up on day one and there's my
laptop on my desk and there is a
unbelievably kick-ass state-of-the-art
developer workstation as well two
massive screens and and there's my login
and my password on a post-it on the desk
um and and they said okay so go right so
I logged in and up comes my mail client
and in my inbox I've got one email it is
welcome and I click on it and there's a
link to a wiki page and I click on the
here's some things you're probably what
I'm going to want to do on day one and
it's a list of things and most of the
list was people I was going to need to
meet you're going to need to meet this
lady because she does with holidays
you'll need to meet this guy because he
does desktop support and you know these
are some people some traders that you're
going to want to talk to and as I'm
these things seem like they're in the
wrong order
change the order oh okay yeah I can do
that to wiki page and then the very last
thing said find out who's joining next
and changed the name at the top right
okay so now the next guy in it was a
chap called Neil and so he came in on
his day one it says welcome Neil and it
is last updated by Dan so there he knows
who the most recent person was right
really where this cost me nothing this
costs exactly nothing to build yeah I
felt so welcomed and so once you feel
that you want to pay that forward and
it's a very very actually look at this
super be effective yeah it makes a
massive impact because now everyone in
that team has been welcomed in that way
there's a corresponding pattern about
when someone leaves the team you know
have a fond farewell but I thought I was
going all by then by Marcin thanks for
coming I was great it's like you know
let's celebrate you know the work you've
done and what you've contributed and
let's wish you well on your next thing
and all that kind of stuff ok very
important who here has a stand up who
doesn't stand ups most of the hands in
the room ok whose stand up looks like
this yesterday I did this today I'm
doing this I haven't got any blockers
yesterday I did this today I'm doing it
everybody blockers
just about it about half and okay so I
think we've largely missed the point of
stand ups so stand up
generally they became and again it's
looking at the history right so the
history of stand ups is this is we used
to have steering okay back in the days
when I would spend am I going to do
release every eighteen months whether i
need to or not yeah and we'd probably
have monthly steering in that monthly
steering we don't beat each other up or
whatever you do I have a monthly
steering then people like my team
divorce is saying okay we're going to
start releasing things in twelve weeks
right not twelve months twelve weeks
we're going to release something in
twelve weeks
I'm not going to fly blind for twelve
weeks we're going to sprint to half way
six weeks and we're going to sprint for
another six weeks and then we're going
to know so that's how the idea of
Sprint's came from whether it was six
weeks of work and the goal was to be
able to once a season
okay that was considered impossible it
isn't have been anointed and so what's
happening is this is I'm now I'm not
I've got this six week period where I
have to have something to show at the
end of it well if we still do our
monthly steering then I'm probably going
to have one if I'm lucky I'll get two of
those in that six weeks that's a bit
rubbish right what if I did weekly
steering well even then that's six data
points I have my six week period
so what I'd probably want to do is go to
almost daily steering so that's what
your stand-up is it's a coordination
exercise at the beginning of the day so
the coaching I give or the advice I give
teams and the advice I try and use
myself is this is think of the
huddle if you like the stand-up it's
like in a game of american football or
we're here so I going to say football
right so you have four downs okay you
have four goes to get ten yards right
and for each of those ahead of each of
those goes will huddle and we have a
conversation and the conversation is
literally what are we going to do for
the next down because as soon as we do
conversation yeah it's a very very
short-term planning exercise but are you
have how's the missus really oh okay
nice and the kids at school yeah great
but no and it's not okay just in that
last thing you pass really badly I think
you should know that
okay and I'm going to measure your
passing no it's not it's right we need
to go forward and how we're going to do
that yeah we don't use this for beating
each other up we don't use this for for
status it's not a serial status meeting
it's a guiding meeting so one of my
favorite movies Dead Poets Society so
Robin Williams between like amazing and
really schmaltzy and this is I think
this is him amazing and he's a teacher
in a school and is he's a really
unconventional teacher it's a very very
stiff boring school and he's outrage of
character and so and he gets all of all
his pupils all these boys and he says
right boys you need to carpe diem you
need to seize the day okay every single
day treat every single day like it's
your last day it's going to be an
amazing amazing experience so seize the
day is how I do stand-up so literally
all we do we get together and we're
asking ourselves is one question what is
the best possible today we can have okay
that's the whole thing what's the best
possible today we can have do you have
any news that might make my day better
or different right well actually Joe I
set up another build server yesterday so
the build should start going a bit
faster and but you might still get any
emails from a different host but don't
worry about it now I'm going to be
moving them all around during the day so
that's useful news that helps me plan my
day better but literally the entire
point of the stand up is what's the best
possible today we can have weather where
the state has happened okay stated
happens by the team caring about state
is happening so one of my favorite team
leads that I've worked with like what
I've and more he he gained the nickname
T boy but his T - oh I like a skater
he's the least t-boy person you've ever
seen however what he would do is this is
every afternoon he would wander round
then he had a little post-it and he
can't buy any say hey I know can I get
you a cup of tea so yeah please every
nothing okay what would you like maybe
yep sure hey getting on I'm just and
what he's actually doing when he's going
round from desk to desk is this yes sure
he's taking the tea orders he's also
checking in on everybody that's where he
picks up status okay so it's less
efficient for him but much more
the team because now I'm seeing someone
where they are you know if Martin's
having a crappy day he's not gonna come
first and off go I'm having a crappy
eternity but I'll sense it right I'll go
to where he's sitting and he's clearly
down he's clearly not his normal
energized bubbly self and so you know
and I'm aware of that I can read that
without even having any words but then I
can say what you're up to
I'm struggling with this thing okay one
minute now I know that that's the thing
that's being struggled with okay so what
he would do then he goes right and of
course then he brings the tea I thought
it only worked once
yeah and and so each day he come a bring
the tea and then so he would start the
stand-up with this I mean it was always
against the board so the you know the
wall because then that's where that's
where the work is so we don't we don't
care about whether it do status of
people right I'm not your mum and I'm
not a policeman so that's okay I trust
that you're going to do good work we
hired smart people and we trust them
what we're looking at is which work is
moving and so he would start the stand
up with and it was never more than two
minutes complete update on the state of
the world and so now the whole team is
like right we know exactly where we are
and this was quite a big team it's about
ten people living and within two minutes
everyone knew everyone was so that was
the meta message there was I don't care
about status or rather you don't need to
now report status let's now have a
standoff about where we want to go today
and it was a really powerful thing and I
think ken Shriver is being misunderstood
I don't have data for this but I have a
sense of this so these three questions
what did you do yesterday what are you
doing today and are you blocked right
these are the three standards stand up
questions right he's using those sorts
of people okay unfortunately you're
totally missing the point
I do apologize the questions are this
what work items moved yesterday what
work items are likely to move today what
were customs are blocked people are
never blocked right if in doubt context
switch if you worried about which
context to switch between have a meeting
right you lonely at work have more
meetings yeah so people don't get
blocked at work gets blocked and so done
right at some talks vanity says you
don't measure the workers you measure
the work items we're measuring the flow
of work through a system and so the
reason to ask what work moved yesterday
is I want all the work to be flowing
through the system and so if there's
things that we thought will work in
process but you know what they're not
being worked on yeah
then they're not working process they're
blocked stuck work that's just ticking
away the clock's ticking which we should
probably be aware of as a team because
now we're making commitments if we can't
follow through
it's only how we're going to do this it
can be fine so what worked me yesterday
what work should I expect to see moving
today because if it isn't that signal
and we can go after that and what work
is blocked because now we can go in and
start on blocking things so who likes
code reviews oh few hands who does code
reviews lots more hands so from that I
surmised the they're putting a lot of
code reviews and not actually not not at
having much fun so I used to be of the
opinion that if you're doing pairing and
you're pairing well we're pairing
effectively that you don't really need
code reviews because the code quality
kind of looks after itself I have
changed that opinion I think code
reviews provide a substantive lis
different thing from just the rigor and
discipline you get from hearing so I've
introduced its own code critique most
because it's a different word for like
knowledge crunching that Erica Evans
uses is basically analysis but when you
say analysis everywhere
when you take code review everyone good
to know so code critique is like think
like a film critic and I think I go
describe a movie and if if you like the
kind of movies they like and they like
this movie you'll probably like it too
it's that kind of thing so code critique
we started doing this and again this
happened at the trading firm one day
this just happened and I just stuck with
me a really really resonated there was a
bunch of people who've been doing work
and it's still only a small team but a
small team can cover a lot of ground
very quickly when they're when they're
allowed to and this chap Neil who is a
team lead at this point here used to he
used to watch the get commit going in
he'd watch the room and a little thing
that would pop up in his in his window
policing people he was just curious okay
and when he's looking for his patterns
in that and so um so one day he noticed
that three of us had been working on
what was ostensibly similar stuff and
hadn't noticed even though we're having
like loads of stand-ups and loads of
coordination it's still possible for
things to fall through the cracks he
said no we're doing the same thing in
different places let's look at all of
them as a team and see what we think so
we got a projector and put all of them
up one after the other and it wasn't
this is good or this is bad it was one
of the trade-offs with you know solution
one solution two solution three what why
did you choose that what choices did you
make what things did you discard I can
see the coat I can coat review code
really easily just by looking at the
code well I can't see when I look at
what I can't see is that you know Adrian
went through five different ideas before
this one okay and this is the one that's
under version control and that's great
but he's sketching with code and if I
want to learn to program like he does I
missed that
and so what we did is we put them up one
at a time and we decided that actually
one of them worked really really well
for sketching things for doing things
quickly but it had some odd behavioral
characteristic so don't stress it and
one of them was really really robust but
probably took a bit more work so don't
use that for sketching because you can't
sketch as fast yeah and so we learnt
different things and what that does is
it creates across the team idioms
okay so idioms are they're a language
construct an idiom is
a turn of phrase that happens to be
there okay but it's one that we all
choose means the same thing let me give
an example my favorite idiom is if you
come from Devon in England there's a
word that means someone who doesn't come
from Devon okay there's a word drakul
okay so a gronckle actually what a
grokken is is anyone who doesn't know
what a drakul is okay so a gronckle is
someone who's not from around here the
very neighboring County some of it has a
word for someone who's not from around
here and that word is in it
okay these are both made up with there
is no etymology to these things right so
but the great thing is that and that is
that that's idiomatic now when you get a
massive language like scarlet a scarlet
is the least opinionated language in the
world so what about code reuse scarlet
so well you've got class-based
inheritance you've got mix ins you've
got a closure over over code over
functions you've got a nigga you goes
yeah sure what do you mean yes sure yeah
we do all of those but okay what about
like I know something like working
producing a sequence of values so yes so
frozen signal values we can have a for
loop we can have iterator we could have
functional like MapReduce and we can
have recursion and Scala goes yeah yeah
we like all of those yeah brilliant so
now if I have a code base with more than
four developers in it how many of those
are more likely to find not just all of
them combinations of them I'm going to
get a for loop with an iterator that
contains a MapReduce because why not
yeah and and so what that means is it
becomes really hard as high cognitive
load looking at different people's code
and so what we need is some sense of
what good looks like here because
there's lots and lots of values of good
someone like closure is a much more
opinionated language it's lit its parens
that's most of the language yeah
so when you see idiomatic closure then
you know most closures of idiomatic
right Python is a good that there's a
word pythonic which means
code written like Python programmers
right there is no Scala ik that's not a
yeah and so what you use a code critique
for is to create those idioms to agree
what we think good looks like around
here and so then if I see something that
isn't that it's probably for a specific
case so if we decide that we're going to
go with and I Map Reduce type functional
expressions for working through for
processing sequences and I find a for
loop the chances are that for loop is
doing something low-latency right
because for loops are faster than
folding but I'm making this up right it
might not be the case but if that could
be the case but the idea is that once
we've got this idea of what what
idiomatic looks like for this code base
when I see something unusual its signal
okay so a really powerful model for code
critique is to have junior people or
less experienced people critiquing more
experienced people's code fool there's a
couple of reasons for this they ask
really good questions like they ask
questions like why did you do that and
their intent with the why did you do
that is explain to me why you did that
the effect of them saying why did you do
that is oh my goodness that's a really
good question they go with it oh okay
that's great yeah now we should never
have done that okay but what it does is
it allows these idioms to emerge in a
safe environment
okay and so again you know as a junior
as a junior in this system or in this
application I can say our Adrian with
your massive brain and your brilliant
coding skills right you've done this
thing that I would never have thought of
why did you do that what other things
did you discard on the way through that
because now I can learn to do those
things too and that would be cool so
what's the message here use code petites
use code reviews there are really
powerful tool don't use them to police
people okay that's an unfair thing to do
and it will create perverse incentives
as well right
and it's also typically what you're
doing is critiquing something after the
fact so it's all like some cost as well
which is which is annoying so use a code
critique as a way for the team to align
for the team to agree idioms
and again you can start to see these
patterns start to combine you can use
code critique as part of a warm welcome
you know hey I know welcome to the team
we're about to look at some code come
and look at it with us
you know you've not seen this
application before you've not seen this
code beta for what do you think and what
have you learned elsewhere and so she's
bringing her knowledge into that team as
well last one I want to look at then is
a hack day I'm sure he's had hack days
is yeah brilliant
loads of people these are really good
fun this is not a hackathon this is not
let's throw off all the traces and and
that's let's have some a hack day though
is it's a day where we're not going to
do regular day job but it's a day with a
theme so I heard about these through
Google a lot of organizations have them
so you'll have a hack day with a theme
on bug crushing days we just go after
the bugs yeah and we pair up when we go
and kill the bugs we might have a hack
day around true clip let's all just
forget what we're doing we're going to
spend an entire day everyone is going to
make this thing faster for any value of
faster okay so you get the whole team
pointing in the same direction or the
whole organization get a bunch of teams
all points in the same direction it's a
super high energized thing and a super
fun thing to do and people think about
this particularly sort of middle senior
managers go all that's wasteful they're
off they're not doing their regular job
I've only ever seen these things provide
enormous enormous value so I'm pretty
much out of time I think or running out
of time so there's a few other patents
that we won't get to today I have been
threatening for the last five years to
to write all these up in a book there's
a lean pub book called software faster
which has 43 of these in it the current
status is that there are forty three
chapters arranged into about ten
sections one of which is team which
we've been looking at today for each of
the chapters they have a pattern name
because that's the thing I've really
been iterating on and there's a kind of
a paragraph in which you know sort of
gives you an overview of the pattern and
then a few bullets of like messages from
this chapter and then what I'm doing is
going through and filling them out very
very slowly so we're up to current
status is 7% I've got about four of them
when it's out there anyway so have fun
with that I think that's all I wanted to
say so think about these things think
about your stand-ups think about how
teams are organized in terms of how they
do work how they pull work how they
consume work think about how well how
best you can get people working on the
kinds of things that they get excited
about because people working on things
that they get excited about is the best
way to get the best out of those people
and the best out of the things they
deliver think about every single and
what's really weird as well is this word
ceremony like are we doing all these
ceremonies ceremony is a pejorative term
ceremony is an insult right when you
talk about something being ceremonial it
means it has literally no purpose there
is no value to it other than it's a
thing you do and so teams proudly say
we're doing all the scrum ceremonies and
I'm like listen to the words you're
using are you getting value out of
planning or are you just losing a day
every two weeks and then coming out of
there and then five minutes later
something changes it anyway doesn't
matter right are you doing estimation
because someone wants heard story points
right do those things help with decision
making would you make decisions
differently any other way are they
effective ways of getting stuff done so
challenge every single thing that you
have as ceremonies and ask yourself
what's the real intent behind this could
we change this thing so we really do get
that value out of it that intent out of
and if not should we maybe just jettison
it you know retrospectives are a great
way for
to pause and reflect every now and then
high-performing teams do that in the
moment okay so do you know what I've
just noticed something we should start
now I still suggest that you pause on a
regular basis there's like a human
cadence if you just go go go go people
get exhausted so pause anyway and
reflect and celebrate and all those
things but again every single one of
these things that even the things I'm
telling you right do not take these
things as law or as true these are
means they may or may not be useful to
you okay they I have seen them be
effective in some contexts I've seen
them completely not working other
context so on that nonspecific note ask
yourself this
how can your team it be more effective
that's your homework question all right
what theme can you do on Monday what
thing can you do so your team can be
more effective thank