-
Thank you. Yes. So, um, for those of you
who were at the last
-
Not Synced
talk, thank you for your loyalty.
I'm gonna talk about technical onboarding
-
Not Synced
training and mentoring now; it's probably
-
Not Synced
not going to be quite as funny.
-
Not Synced
It's a linear talk, unlike our
-
Not Synced
choose-your-own-adventure story last time.
-
Not Synced
Uh. This is originally a joint talk that was
-
Not Synced
given at PyCon. I'm Kate Heddleston;
-
Not Synced
that's my Twitter handle, so you can,
-
Not Synced
you know, tweet thoughts at me.
-
Not Synced
I'm a software engineer at Runscope.
-
Not Synced
We make these sweet shirts that say
-
Not Synced
"everything is going to be 200 OK".
-
Not Synced
Um, if you want one of them, you can come
-
Not Synced
find me afterwards.
-
Not Synced
And Nicole Zuckerman was originally my
-
Not Synced
co-presenter. She's a software engineer at
-
Not Synced
Eventbrite. And I'll let you figure out which
-
Not Synced
one of these two people is her. But
-
Not Synced
basically Nicole and I came together to
-
Not Synced
create this talk because we had similar
-
Not Synced
experiences at separate companies.
-
Not Synced
Nicole went to Hackbright Academy and then
-
Not Synced
went to Eventbrite right afterwards.
-
Not Synced
I went to a small startup out of college
-
Not Synced
and at both of our respective companies,
-
Not Synced
we -- there wasn't any onboarding. I've mostly
-
Not Synced
worked at companies that were smaller than
-
Not Synced
12 people when I joined, so onboarding was
-
Not Synced
not a huge priority. About a year later, I
-
Not Synced
had gained some confidence, many skills,
-
Not Synced
like real-world skills. And I looked back
-
Not Synced
and I thought, there's some things that we
-
Not Synced
can do, even as small startups, to make
-
Not Synced
the onboarding experience better. To make
-
Not Synced
it easier for people to get up to speed at
-
Not Synced
your company without having a huge
-
Not Synced
overhead. Without having to build these
-
Not Synced
massive onboarding programs that they have
-
Not Synced
at large companies.
-
Not Synced
Alright. So, what is onboarding?
-
Not Synced
For the purposes of this talk, onboarding,
-
Not Synced
as a definition, is going to be the act of
-
Not Synced
taking someone from outside of the
-
Not Synced
company, the team, whatever group of
-
Not Synced
people it is, and making them a
-
Not Synced
productive, independent, and confident
-
Not Synced
member of your team. And this sounds
-
Not Synced
really nice, right? If all employees were
-
Not Synced
productive and confident and independent,
-
Not Synced
like, that sounds like a really great
-
Not Synced
engineering environment. Unfortunately,
-
Not Synced
that isn't the case a lot of times. Um,
-
Not Synced
someone shared a blog post with me the
-
Not Synced
other day with their thoughts on
-
Not Synced
onboarding, and he was like yeah, our
-
Not Synced
company is trying to change onboarding so
-
Not Synced
that it's not so much about lighting
-
Not Synced
someone on fire and then telling them to
-
Not Synced
find water and it's a little more
-
Not Synced
welcoming. It's like, that's good.
-
Not Synced
So to go through these three things -
-
Not Synced
productivity, independence, and
-
Not Synced
confidence - Productivity is pretty simple.
-
Not Synced
It's about creating efficient employees.
-
Not Synced
This has to do with giving them the tools
-
Not Synced
to write code, deploy code, understand how
-
Not Synced
features get built. Basically get their
-
Not Synced
jobs done.
-
Not Synced
Independence and autonomy is actually
-
Not Synced
huge. Autonomy, uh, being an autonomous
-
Not Synced
agent is really important to people. The
-
Not Synced
greatest motivations, in fact, come
-
Not Synced
through things that we choose for
-
Not Synced
ourselves. The anecdote that I have for
-
Not Synced
this is in prisons. They discovered that
-
Not Synced
autonomy is really important. So when
-
Not Synced
people are in prison environments, a lot
-
Not Synced
of their rights and abilities to do things
-
Not Synced
are removed. This leads to riots,
-
Not Synced
dissatisfaction, and many things that you
-
Not Synced
would think would happen. So what they do
-
Not Synced
with prisoners is they give them the right
-
Not Synced
to change the channel, and they give them
-
Not Synced
the right to move their furniture around.
-
Not Synced
And this little bit of autonomy, this
-
Not Synced
ability to choose for themselves what they
-
Not Synced
get to do, even though it's very small,
-
Not Synced
reduced prison riots by - significantly.
-
Not Synced
You want to reduce riots at your company
-
Not Synced
by giving people the ability to choose the
-
Not Synced
TV channel.
-
Not Synced
Confidence. Confidence is about creating
-
Not Synced
employees who believe that they are
-
Not Synced
valuable. And the word 'belief' is
-
Not Synced
actually really, really important. So a
-
Not Synced
lot of people think - they might think
-
Not Synced
'arrogance' and they might think
-
Not Synced
'confidence' and they might think a lot of
-
Not Synced
things, but this belief in your value to
-
Not Synced
the company is paramount. And this is very
-
Not Synced
much a human thing. This doesn't really
-
Not Synced
have to do with computers. This just has
-
Not Synced
to do with creating an environment where
-
Not Synced
companies feel as though they can enact
-
Not Synced
change, and that they are capable of
-
Not Synced
enacting change.
-
Not Synced
Oh. This - the belief is really important.
-
Not Synced
Also they did a study. So how many of you
-
Not Synced
have heard of the concept of 'stereotype
-
Not Synced
effect'? Stereotype - do I smell? Okay.
-
Not Synced
So the stereotype effect works like this.
-
Not Synced
There are stereotypes in the world.
-
Not Synced
"Asians are good at math." "Women are bad
-
Not Synced
with computers." And what they've found is
-
Not Synced
that, before tests, tests on things like
-
Not Synced
physics or math, what they'll do is they
-
Not Synced
reminded one group of this stereotype.
-
Not Synced
"Women are bad at math; men are better at
-
Not Synced
math. Asians are better at math than all
-
Not Synced
of those groups." And what they found was,
-
Not Synced
when they reminded people of those
-
Not Synced
stereotypes, people performed to the
-
Not Synced
stereotype. If they didn't tell anyone at
-
Not Synced
all, people performed in a control group
-
Not Synced
setting, and then the third group that
-
Not Synced
they did is that they told people that
-
Not Synced
their ability to do well on the test came
-
Not Synced
from these sort of intrinsic motivators,
-
Not Synced
like if you work hard you'll be good at
-
Not Synced
math, if you think about like your own
-
Not Synced
personal qualities that's helpful, what
-
Not Synced
they saw was that everyone's performance
-
Not Synced
improved and there was actually no
-
Not Synced
difference across these different lines.
-
Not Synced
So stereotype effect is really important.
-
Not Synced
It's this belief that you are good at - at
-
Not Synced
something or not. And what's funny is
-
Not Synced
just being told that you are good at this
-
Not Synced
might actually change your performance.
-
Not Synced
Okay. Why do you care?
-
Not Synced
Um, you're all already here, so you
-
Not Synced
probably care about technical onboarding
-
Not Synced
and training at your company. Maybe you
-
Not Synced
have to hire a bunch of new engineers out
-
Not Synced
of college, maybe you have a bunch of
-
Not Synced
interns coming on board and you're like
-
Not Synced
terrified, because what are you going to
-
Not Synced
do with all of those interns.
-
Not Synced
There's four categories that you should
-
Not Synced
care about when thinking about onboarding.
-
Not Synced
There's the individual, there's the
-
Not Synced
company, there's the team, and then
-
Not Synced
there's also a bonus section on diversity.
-
Not Synced
Onboarding is really important for the
-
Not Synced
individual. The cost of losing an employee
-
Not Synced
can range from tens of thousands of
-
Not Synced
dollars to 1.5-2x their salary. If
-
Not Synced
someone gets off to the wrong foot at
-
Not Synced
your company, if they're not happy, if
-
Not Synced
they never get up to speed, if they never
-
Not Synced
feel autonomous, confident, and productive
-
Not Synced
at your company, you're probably going to
-
Not Synced
lose them. And that's really expensive. So
-
Not Synced
having good onboarding, just getting
-
Not Synced
everyone off to a good start, is really
-
Not Synced
important for individuals. It gets them
-
Not Synced
going upwards like this. It builds their
-
Not Synced
skills, their confidence, their happiness.
-
Not Synced
The next one is the company. Onboarding is
-
Not Synced
really important for the collective
-
Not Synced
productivity of the company, and the
-
Not Synced
anecdote for this one is at LinkedIn. For
-
Not Synced
a while, LinkedIn was actually losing
-
Not Synced
productivity for every engineer that was
-
Not Synced
added to their team. And this was a huge
-
Not Synced
crisis. They actually had to bring in some
-
Not Synced
new executives, some new managers, and
-
Not Synced
they were like, we have to stop hiring.
-
Not Synced
Like, adding engineers to our team is
-
Not Synced
actually decreasing our productivity. This
-
Not Synced
is a nightmare. Uh. What you really want
-
Not Synced
is something more like this. We want every
-
Not Synced
new engineer we add to the team to
-
Not Synced
increase productivity. So LinkedIn had to
-
Not Synced
do this massive reorganization. They had
-
Not Synced
to do a whole bunch of getting rid of some
-
Not Synced
things, adding some things, adding
-
Not Synced
onboarding and training, and basically
-
Not Synced
streamlining everything so that new
-
Not Synced
engineers could come in and be productive.
-
Not Synced
So onboarding and having onboarding early
-
Not Synced
is going to stave off some of these
-
Not Synced
problems that you might run into later.
-
Not Synced
Team. So we talk a lot about technical
-
Not Synced
debt - how many people have talked about,
-
Not Synced
or heard about, the term 'technical debt'?
-
Not Synced
- yeah, you went to build something really
-
Not Synced
fast, you kind of cut corners, and six
-
Not Synced
months later you're like aw crap, we have
-
Not Synced
to rebuild this, we have a lot of bugs,
-
Not Synced
this is completely unmaintainable. Nobody
-
Not Synced
knows how to change this system. Well,
-
Not Synced
similarly there's team debt. If you add a
-
Not Synced
lot of engineers really fast and really
-
Not Synced
thoughtlessly, you can get something like
-
Not Synced
this happening. Everyone's running in a
-
Not Synced
different direction. And since people are
-
Not Synced
the most important component for building
-
Not Synced
software, um, this is really, really
-
Not Synced
detrimental. You want something that's
-
Not Synced
more like this. Obviously.
-
Not Synced
This is my favorite equation that I've
-
Not Synced
ever made up. The story behind this
-
Not Synced
equation, and I have a lot of sports
-
Not Synced
anecdotes, 'cause I played sports for a
-
Not Synced
long time, and I coached sports for a long
-
Not Synced
time. But in college when I was done
-
Not Synced
playing, I actually coached JV girls'
-
Not Synced
swimming and water polo. So - JV girls'
-
Not Synced
water polo, very new to most of the girls.
-
Not Synced
They couldn't swim, they couldn't throw a
-
Not Synced
ball, we're talking like very basic
-
Not Synced
skills. Playing a full game, with like all
-
Not Synced
seven players on the field, was, I mean it
-
Not Synced
was like, you know when you watch like
-
Not Synced
peewee soccer and all the kids kind of
-
Not Synced
like chase the ball around? It's a little
-
Not Synced
bit like that. And so a huge amount of
-
Not Synced
what I did was just basic skills. But the
-
Not Synced
other half was kind of the emotional
-
Not Synced
team-building part. And I told them this.
-
Not Synced
I was like, look. Your ability to win
-
Not Synced
games, and your ability to do well at this
-
Not Synced
sport, even at this very introductory
-
Not Synced
level, is the sum of your talent multiplied
-
Not Synced
by your ability to work together as a
-
Not Synced
team. Some of the people on the team
-
Not Synced
didn't have a lot of natural talent. They
-
Not Synced
were going to have to work really hard to
-
Not Synced
build their skills. But that's fine.
-
Not Synced
Because if they focused a lot on working
-
Not Synced
together, they focused a lot on getting
-
Not Synced
things done as a cohesive unit, they can
-
Not Synced
actually beat teams that had more
-
Not Synced
collective talent, but didn't work
-
Not Synced
together quite as well. And we've actually
-
Not Synced
seen this in software engineering. A lot
-
Not Synced
of, uh, the most popular tools out there
-
Not Synced
were built by teams of less than ten.
-
Not Synced
Gmail, for example, was built by a team of
-
Not Synced
I think like five to seven people? It's
-
Not Synced
maintained by, like, a team of over 400
-
Not Synced
engineers. So you can get a lot done
-
Not Synced
collectively as a small group in terms of
-
Not Synced
productivity, in terms of building really
-
Not Synced
cool products, without having super
-
Not Synced
talented engineers. If they all work
-
Not Synced
really well together, a lot of mediocre
-
Not Synced
engineers can do more than a few talented
-
Not Synced
engineers who are kind of assholes.
-
Not Synced
Alright. The bonus section is diversity.
-
Not Synced
So to illustrate diversity, I have
-
Not Synced
sneetches. The story of sneetches is a Dr.
-
Not Synced
Seuss book. There's the star-bellied
-
Not Synced
sneetches and the non-star-bellied
-
Not Synced
sneetches. And it's this story about the
-
Not Synced
rift that's caused in the community of
-
Not Synced
sneetches based on those who had star
-
Not Synced
bellies and those who did not have star
-
Not Synced
bellies. And I use it to represent
-
Not Synced
diversity because diversity can mean a lot
-
Not Synced
of things. There's the classic ones,
-
Not Synced
there's gender and racial diversity.
-
Not Synced
There's also things like introverts vs
-
Not Synced
extroverts. Um. Communication styles.
-
Not Synced
I don't know. Philosophical backgrounds.
-
Not Synced
Cultural backgrounds that don't have to do
-
Not Synced
with race but have to do with how you were
-
Not Synced
brought up. So diversity can mean a lot
-
Not Synced
of things at companies. And why is
-
Not Synced
diversity critical? And why is onboarding
-
Not Synced
a really useful tool for increasing
diversity?
-
Not Synced
Well, basically what happens is this. If
-
Not Synced
you have no onboarding, people coming into
-
Not Synced
the company are going to rely on the
-
Not Synced
existing social structures to get up to
-
Not Synced
speed. So that means whatever the original
-
Not Synced
group of people is, they probably have a
-
Not Synced
way that they talk about things. They
-
Not Synced
probably have certain social events that
-
Not Synced
they do. They probably look fairly
-
Not Synced
similar. And if someone comes onboard
-
Not Synced
who's like them, who's able to communicate,
-
Not Synced
who's able to go out with them, who's able
-
Not Synced
to connect with this core group based on
-
Not Synced
these existing social structures, they're
-
Not Synced
going to do better than someone who's not
-
Not Synced
like the original group. Because what you
-
Not Synced
have when you have no onboarding is not
-
Not Synced
no onboarding. You have onboarding that
-
Not Synced
relies on the social structures that you
-
Not Synced
have in place. So creating an onboarding
-
Not Synced
program that's slightly more structured,
-
Not Synced
slightly more explicit, will benefit
-
Not Synced
people who are different, people who don't
-
Not Synced
naturally speak the way that people at
-
Not Synced
your company already speak, that don't
-
Not Synced
naturally want to do the types of
-
Not Synced
activities that people at your company
-
Not Synced
wanna do. Because not everyone wants to
-
Not Synced
go out drinking at 10pm on a Tuesday night
-
Not Synced
if you have a really young, party-oriented
-
Not Synced
company. So you want to give everyone
-
Not Synced
a fair chance because there's very
-
Not Synced
talented people who look very different
-
Not Synced
from each other.
-
Not Synced
Who can onboard? Anyone can onboard!
-
Not Synced
This is a team of people carrying a canoe,
-
Not Synced
this is not a group of ants carrying a
-
Not Synced
taco, just to let you know. I draw these
-
Not Synced
myself, by the way. I'm not a very good
-
Not Synced
artist. Um. Anyone can onboard, and in
-
Not Synced
fact onboarding should be a collective
-
Not Synced
effort. This distributes the load.
-
Not Synced
One person alone trying to onboard
-
Not Synced
everyone is gonna burn them out.
-
Not Synced
Similarly, I was talking to someone about
-
Not Synced
mentorship, and someone else was saying,
-
Not Synced
oh, you have to have a lot of experience
-
Not Synced
to mentor. And depending on the type of
-
Not Synced
mentoring you're doing, that's true.
-
Not Synced
But going from junior engineer to senior
-
Not Synced
engineer is not a one-step process.
-
Not Synced
It involves going from junior engineer to
-
Not Synced
less-junior engineer, to less-junior
-
Not Synced
engineer, to maybe mid-level engineer, to
-
Not Synced
slightly more mid-level engineer, to 'hey!
-
Not Synced
oh! I kind of think I get this now!'
-
Not Synced
And so having someone that's very
-
Not Synced
experienced, who can guide the overall
-
Not Synced
path is important, but some of the best
-
Not Synced
people to mentor and train your new junior
-
Not Synced
engineers are going to be the ones who
-
Not Synced
just did it. They're going to still have
-
Not Synced
empathy for what it's like to take
that step.
-
Not Synced
They're going to understand the problems
-
Not Synced
that they're running into. They're going
-
Not Synced
to actually care about what this person is
-
Not Synced
doing, and the more senior you get and the
-
Not Synced
further away from that you get, the less
-
Not Synced
empathy that you have for people. And in
-
Not Synced
fact we all know this. Senior engineers
-
Not Synced
are total curmudgeons. They're like,
-
Not Synced
'everything is going to break and it's all
-
Not Synced
going to hell and I don't know why we care
-
Not Synced
and come into work every day.' And junior
-
Not Synced
engineers are like, 'oh my god, that's
-
Not Synced
awful, I'm so excited about
what I'm doing.'
-
Not Synced
When? Okay. Onboarding starts as soon as
-
Not Synced
the offer is accepted.
-
Not Synced
Basically, onboarding is not just about
-
Not Synced
teaching someone the skills that they need
-
Not Synced
to be successful about your company;
-
Not Synced
it's about bringing another human being
-
Not Synced
into a group of human beings. So: making
-
Not Synced
someone feel welcome. Figuring out how to
-
Not Synced
integrate them into the team. That's going
-
Not Synced
to start as soon as they've decided
to come on board.
-
Not Synced
Onboarding roughly ends when someone is
reliably independent.
-
Not Synced
And this can mean different things to
different companies,
-
Not Synced
and I left it kind of vague on purpose,
-
Not Synced
but the idea for a junior engineer
at least
-
Not Synced
is that we bring them into the company and
-
Not Synced
they're kind of - like our onboarding
-
Not Synced
program is done when they're reliably
independent.
-
Not Synced
We can give them tasks and trust that
-
Not Synced
they're going to come up with
-
Not Synced
a semi-reasonable solution
-
Not Synced
in a semi-reasonable amount of time.
-
Not Synced
And we can manage that effectively.
-
Not Synced
So the how section that we're going to go
-
Not Synced
through now is a little bit
-
Not Synced
philosophically about how to do this,
-
Not Synced
but we're also going to focus on concrete
-
Not Synced
examples and ideas for how you can build
-
Not Synced
the onboarding program at your company.
-
Not Synced
The first thing to think about when
onboarding people
-
Not Synced
is to maximize your return on investment.
-
Not Synced
And this might seem somewhat callous, but
-
Not Synced
at the end of the day why wouldn't you
-
Not Synced
want to maximize your return on
investment?
-
Not Synced
Like you don't want to put a ton of
-
Not Synced
resources into something and get less out
-
Not Synced
of it than you put in. That just doesn't
-
Not Synced
even make sense.
-
Not Synced
It's a really, really common pitfall for
-
Not Synced
mentors, especially first-time mentors.
-
Not Synced
So if you have people onboarding junior
-
Not Synced
engineers at your company and they've
-
Not Synced
never onboarded someone, what you
-
Not Synced
essentially have is you have a
junior mentor
-
Not Synced
onboarding a junior engineer.
-
Not Synced
That you have someone who's never done
-
Not Synced
this before, they don't know what's going
on.
-
Not Synced
I love talking to people who are
first-time mentors.
-
Not Synced
They're like, I'm going to be the best
-
Not Synced
onboarding mentor ever. We're going to do
-
Not Synced
everything together, we're going to take
-
Not Synced
these courses, we're just going to -
-
Not Synced
by the, by time they're done with these
-
Not Synced
three months they're going to know
-
Not Synced
everything I know.
-
Not Synced
And that's highly unrealistic because
-
Not Synced
people only absorb information at
certain rates.
-
Not Synced
Also your expertise has to do with the
-
Not Synced
number of issues that you've seen, and it
-
Not Synced
just takes time. Over time you see more
-
Not Synced
issues, you solve them, you fix them.
-
Not Synced
So people are going to grow at the rate
-
Not Synced
they're going to grow. You can help
-
Not Synced
make that better, you can help focus their
path,
-
Not Synced
but you're not going to make them into a
-
Not Synced
senior engineer overnight.
-
Not Synced
This tends to burn out mentors, so
-
Not Synced
people do this, they burn themselves out
-
Not Synced
in three months because it's exhausting
-
Not Synced
teaching someone, and then they're like,
-
Not Synced
I can't be a mentor again for another
year.
-
Not Synced
And your company's like, well, OK, I guess
-
Not Synced
we can't hire any more junior engineers.
-
Not Synced
Like, we don't have anyone to train them.
-
Not Synced
Instead I like to think of it as
-
Not Synced
bumper bowling.
-
Not Synced
One of the tenets of expertise is that
-
Not Synced
you're able to set boundaries. You know
-
Not Synced
the landscape. You know everything about
-
Not Synced
this arena. So you can set boundaries.
-
Not Synced
You can scope problems. You can figure
-
Not Synced
out exactly what needs to be done, and
-
Not Synced
exactly what doesn't need to be done.
-
Not Synced
Junior engineers, by definition, are not
-
Not Synced
good at scoping. They don't know what the
-
Not Synced
boundaries are. So what you need to do is
-
Not Synced
set them for the junior engineers.
-
Not Synced
Bumper bowling is a great example.
-
Not Synced
You just - you set up the bumpers.
-
Not Synced
It's fine if they just hit the bumper on
-
Not Synced
each side going down. They're still
-
Not Synced
going in that direction, and that's where
-
Not Synced
we want them to go. You don't have to
-
Not Synced
handhold them through the process.
-
Not Synced
You don't have to spend tons of time with
-
Not Synced
them. Instead you can just create an
-
Not Synced
environment where they can kind of mess up
-
Not Synced
and learn on their own, and you can come
-
Not Synced
in and help them grow when that needs to
happen.
-
Not Synced
So the onboarding plan - there's three
-
Not Synced
major categories.
-
Not Synced
There's technical knowledge, company
-
Not Synced
knowledge and process, and personal
development.
-
Not Synced
These are about equal thirds for someone.
-
Not Synced
We tend to think that the technical
-
Not Synced
knowledge is the most important thing, and
-
Not Synced
it's, people think it's like 80% of what
-
Not Synced
engineers do. It's probably about a third.
-
Not Synced
Like, another third is domain knowledge of
-
Not Synced
that company. How do I build a feature at
-
Not Synced
this company. How do I ship code at this
-
Not Synced
company. How do I deploy, given our
-
Not Synced
deployment system. And then personal
-
Not Synced
development. Like the confidence, the
-
Not Synced
autonomy, all of those different things,
-
Not Synced
that's another third. People tend to think
-
Not Synced
that skills - or that confidence follows
-
Not Synced
skills, but in practice it's usually the
reverse.
-
Not Synced
People who are confident will gain skills
-
Not Synced
at a much more rapid rate than people
-
Not Synced
who lack confidence.
-
Not Synced
OK. Week 1. Week 1 should be pretty simple
-
Not Synced
for new engineers. Dev environment setup
-
Not Synced
is really important. The thing that you
-
Not Synced
can do to help new engineers is just
-
Not Synced
automate as many tools as possible.
-
Not Synced
The more automation the better.
-
Not Synced
The more maintainability the better.
-
Not Synced
As engineers, that is one of the best
-
Not Synced
things we can do for people's process, is
-
Not Synced
make sure that a lot of these things are
-
Not Synced
automated. So shipping code as well.
-
Not Synced
If shipping code is really well-automated,
-
Not Synced
and it's super easy for you to ship code,
-
Not Synced
it's going to be easy to bring someone,
-
Not Synced
even someone who's junior, on board,
-
Not Synced
and get them to a place where they can
ship code.
-
Not Synced
So for dev environments, again, automation.
-
Not Synced
Have the last person who set up the
-
Not Synced
dev environment help the new person.
-
Not Synced
They know all the pitfalls. They just
-
Not Synced
did it. They just had to go through
-
Not Synced
setting up their development environment.
-
Not Synced
You don't need a senior engineer, you
-
Not Synced
don't need someone who knows a lot about
-
Not Synced
some other random thing. It's just dev
-
Not Synced
environment setup. So the last person who
-
Not Synced
joined does dev environment setup.
-
Not Synced
Have them ship small changes as soon as
possible.
-
Not Synced
If you can have someone deploy on the
-
Not Synced
first day, that's awesome. That means you
-
Not Synced
have really good automation tools.
-
Not Synced
Third, journaling and note-taking.
-
Not Synced
Have them start taking notes. Three things
-
Not Synced
that they learned this week. For junior
-
Not Synced
engineers, this is going to be really
important.
-
Not Synced
They're probably not going to know a lot
of things,
-
Not Synced
and you're going to be surprised at what
-
Not Synced
they do and don't know, so having them
-
Not Synced
take notes that you can talk about once a
-
Not Synced
week is really great.
-
Not Synced
And then finally, a social event. And a
-
Not Synced
social event's actually a really good
-
Not Synced
activity, even for people who are not
-
Not Synced
junior. A social event's just: we're gonna
-
Not Synced
hang out, I'm going to learn everyone on
-
Not Synced
my immediate team's name, because if I
-
Not Synced
want to ask a question, it's really nice
-
Not Synced
to know that person's name. And I'm going
-
Not Synced
to feel more comfortable talking to other
-
Not Synced
people on my team. Because a huge amount
-
Not Synced
of work that you need when you're new,
-
Not Synced
regardless of level, is just the ability
-
Not Synced
to go talk to someone else on your team.
-
Not Synced
Alright. Week 2. Week 2 you can start
-
Not Synced
throwing more information at your new
engineer.
-
Not Synced
The first week is so overwhelming
-
Not Synced
a lot of times that things just go in one
-
Not Synced
ear and out the other. So I recommend
-
Not Synced
doing history of the company and team map
-
Not Synced
second week. So history of the company -
-
Not Synced
where does the company come from,
-
Not Synced
why was it started, who were the founders,
-
Not Synced
what was the reason that it got here,
-
Not Synced
what were some of the pitfalls that
-
Not Synced
happened along the way, why do we target
-
Not Synced
the markets that we target. And a
team map,
-
Not Synced
which seems really simple, but just giving
-
Not Synced
them a map - like, this is Bob, Bob sits
-
Not Synced
over there, Bob is really good at redis,
-
Not Synced
he deals with all of our asynchronous
-
Not Synced
task queues, um, so go talk to him about
-
Not Synced
that. Or, like, so-and-so is really good
-
Not Synced
at building fully-fledged future products.
-
Not Synced
They have a great design sense, but
-
Not Synced
they're also good at building front-end
-
Not Synced
features. So knowing those things is super
-
Not Synced
helpful to new engineers.
-
Not Synced
Shadowing and code labs are good
-
Not Synced
activities to get started the second or
-
Not Synced
third week. Shadowing is what it sounds
-
Not Synced
like. Have them sit down with someone
-
Not Synced
who's more senior, either mid-level or
-
Not Synced
senior, whatever you want to do, and watch
-
Not Synced
what that other person does. What kind of
-
Not Synced
keyboard shortcuts do they use? What type
-
Not Synced
of bash commands do they use? What does
-
Not Synced
that bash command do? Why are they doing
-
Not Synced
all of the things that they're doing? They
-
Not Synced
can learn and absorb a lot of information
-
Not Synced
just by watching other people for an hour,
-
Not Synced
either once a week or every day if you
-
Not Synced
want to be really aggressive.
-
Not Synced
Code labs are something that was started
-
Not Synced
at Eventbrite. Basically it's like a
-
Not Synced
new engineer AMA. So it's a safe space -
-
Not Synced
emphasis on the word safe, no judgment,
-
Not Synced
your questions are not stupid - it's
-
Not Synced
totally fine if they want to ask concepts
-
Not Synced
that might seem really beginner, but
-
Not Synced
they can just ask one of the engineers
-
Not Synced
at your company anything. So you can
-
Not Synced
rotate the engineers, people with
-
Not Synced
different expertise can come in, but
-
Not Synced
really what you want for the person
-
Not Synced
running a Code Lab is someone who makes
-
Not Synced
people feel safe. Again, if people are
-
Not Synced
terrified of asking questions they're not
-
Not Synced
going to ask questions.
-
Not Synced
Week 3. Now we start to get into some
-
Not Synced
of the higher-level stuff. One-on-ones,
-
Not Synced
goal-setting, feedback, presentations.
-
Not Synced
One-on-ones. Most companies have totally
-
Not Synced
bought into the idea that you need to do
-
Not Synced
these now, but weekly one-on-ones are
-
Not Synced
really important. Emphasis on weekly.
-
Not Synced
Having channels for feedback, for easy
-
Not Synced
communication, is so important. If
-
Not Synced
someone runs into an issue, the overhead
-
Not Synced
for telling someone who's more senior
-
Not Synced
about this problem that they've run
-
Not Synced
into is really high. Having to schedule a
-
Not Synced
meeting to give someone bad news is one
-
Not Synced
of the worst things that anyone has to do.
-
Not Synced
So creating these channels for constant
-
Not Synced
feedback is really important. Even if
-
Not Synced
every week they're like, 'I'm doing great,
-
Not Synced
there's nothing to talk about!'
-
Not Synced
That's totally fine. This is still
-
Not Synced
a really good thing to do.
-
Not Synced
Goal-setting and feedback: it might seem
-
Not Synced
really silly and simple and kind of like,
-
Not Synced
second-grade - what are your goals
for this?
-
Not Synced
But people are goal-oriented, and they do
-
Not Synced
really well if they set goals. 'In the
-
Not Synced
next three months I would like to learn
-
Not Synced
more about how to build features in
-
Not Synced
JavaScript. In the next six months, I'd
-
Not Synced
really like to learn how to build the API
-
Not Synced
layer for the features that I've built
in JavaScript.'
-
Not Synced
Presentations. The best way to learn
-
Not Synced
something is to teach it. This has been
-
Not Synced
proven over and over again. So, force your
-
Not Synced
new engineers to do five-minute
-
Not Synced
presentations on topics. 'I want you to
-
Not Synced
present on regular expressions. Tell us
-
Not Synced
everything that you can figure out about
-
Not Synced
regular expressions, do a short
-
Not Synced
presentation about them, teach us regular
-
Not Synced
expressions.' And by the end of that
-
Not Synced
presentation, they'll know how to use
-
Not Synced
regular expressions. By the way, I gave
-
Not Synced
this talk at RailsConf, which is ruby, and
-
Not Synced
I totally didn't even think about what I'd
-
Not Synced
written on this slide here, but multiple
-
Not Synced
people at the end came up and they were
-
Not Synced
like, you do know that that was in Python,
-
Not Synced
right? I was like, yeah, Python is
awesome.
-
Not Synced
They notice.
-
Not Synced
Alright. Week 4. Week 4 is review
concepts,
-
Not Synced
check in regular, regularly, elective
-
Not Synced
shadowing, and start co-piloting,
-
Not Synced
co-piloting a larger project. So basically
-
Not Synced
now you're just kind of setting, getting
-
Not Synced
set into a rhythm. You want to be able to
-
Not Synced
check in with them, you want them to feel
-
Not Synced
as if they can talk to you, shadowing can
-
Not Synced
become elective, hopefully they have
-
Not Synced
enough confidence now to say, oh I want to
-
Not Synced
shadow that person and learn that thing,
-
Not Synced
and go set it up for themselves.
-
Not Synced
Co-piloting a larger project is kind of
-
Not Synced
like driver's ed. They can do this with
-
Not Synced
someone who's much more senior, but the
-
Not Synced
senior person really has an emergency
-
Not Synced
brake on their side, so they can give them
-
Not Synced
tasks - Actually, the way I, the way I
-
Not Synced
like to do it is, if you put them with
-
Not Synced
someone who's more senior, they do all
-
Not Synced
of the grunt tasks. The senior person
-
Not Synced
doesn't want to do, I don't know, all of
-
Not Synced
these grunt tasks that are too trivial
-
Not Synced
for them, but just work that has to get
-
Not Synced
done, but that is really valuable learning
-
Not Synced
for someone who's junior. They've never
-
Not Synced
seen any of it before. So it's exciting.
-
Not Synced
So then you have these really great
-
Not Synced
pairings of someone who's very senior
-
Not Synced
and someone who's very junior, and the
-
Not Synced
junior person's running around doing all
-
Not Synced
the grunt work and super-excited about it,
-
Not Synced
and the senior person is thrilled that
-
Not Synced
they don't have to do the grunt work any
more.
-
Not Synced
Alright. Beyond. If onboarding has gone
-
Not Synced
well, hopefully this comes and it's really
-
Not Synced
easy. You just check in on progress, you
-
Not Synced
tailor projects and code labs to their
-
Not Synced
needs, you start doing formal
apprenticeships,
-
Not Synced
and you start doing assessment, and
-
Not Synced
hopefully those assessments are positive.
-
Not Synced
Apprenticeships - that has to do a little
-
Not Synced
bit with what I talked about. Just being
-
Not Synced
taken under someone's wing. The best way
-
Not Synced
to learn is from imitating someone who's
-
Not Synced
really good at something. In fact they
-
Not Synced
find that that's true with athletes.
-
Not Synced
Athletes who are put under someone who's,
-
Not Synced
like, really good and much more
-
Not Synced
experienced at the sport will learn it at
-
Not Synced
a faster rate. So just put them around
-
Not Synced
people who are good at this that they can
-
Not Synced
watch and imitate and follow. If you put
-
Not Synced
them with someone who has bad practices,
-
Not Synced
and I've seen this happen, and it's a pet
-
Not Synced
peeve of mine - if you put them with
-
Not Synced
someone who's senior but who has really
-
Not Synced
bad practices, and that junior person
-
Not Synced
picks up those bad practices, and you
-
Not Synced
punish that junior person for the bad
-
Not Synced
practices that they picked up from the
-
Not Synced
person that you paired them with, that
-
Not Synced
is a really bad experience. So a lot of
-
Not Synced
times we let senior engineers get away
-
Not Synced
with behavior that we wouldn't let junior
-
Not Synced
engineers get away with. Be cognizant
-
Not Synced
of that. So know what bad practices some
-
Not Synced
of your engineers might be passing on to
-
Not Synced
junior engineers, and don't punish them
-
Not Synced
for it. Just explain to them why that's
-
Not Synced
bad, or put them with someone who has a
-
Not Synced
really good practice in that area.
-
Not Synced
Assessment is really important. People's
-
Not Synced
trajectories are gonna be wildly
different.
-
Not Synced
Some people are gonna do awesome and
-
Not Synced
they're gonna shoot straight up, some
-
Not Synced
people are gonna plateau, some people
-
Not Synced
are gonna be really up and down. So having
-
Not Synced
a plan for assessment is important.
-
Not Synced
As we've said before, technical ability
-
Not Synced
is not the only category to assess.
-
Not Synced
There's confidence, there's code quality,
-
Not Synced
communication, judgment, and technical
-
Not Synced
knowledge. Judgment is one of the bigger
-
Not Synced
ones. It's slightly more difficult to
assess,
-
Not Synced
but if you can hire people who have great
-
Not Synced
judgment, you can trust them to do things,
-
Not Synced
even if they're really junior, that are
-
Not Synced
going to be good. And the example of this
-
Not Synced
is one of my friends at Hearsay Social,
-
Not Synced
the last company I was at, she worked in
-
Not Synced
support for a long time. And she taught
-
Not Synced
herself engineering on the side. So when
-
Not Synced
she first started engineering, by every
-
Not Synced
definition she was very junior at
-
Not Synced
engineering. But she knew the product
-
Not Synced
inside and out. She knew the customers
-
Not Synced
inside and out, and she knew exactly what
-
Not Synced
needed to be built in any given situation.
-
Not Synced
In other words, she had excellent
judgment.
-
Not Synced
So I could give her tasks, tasks that, I
-
Not Synced
mean, they were pretty simple but she
-
Not Synced
might take a little bit longer on, but
-
Not Synced
when she came back to me with the feature
-
Not Synced
that she had built, I was like, yes, This
-
Not Synced
exactly solves the problem that we wanted
-
Not Synced
to solve. This is awesome. You've saved us
-
Not Synced
all time. Conversely, engineers with bad
-
Not Synced
judgment will build terrible things very
-
Not Synced
quickly for your site, and then you're
-
Not Synced
like, no no, please don't merge that, and
-
Not Synced
you're like, taking code out. So judgment
-
Not Synced
is something that's really really great if
-
Not Synced
you can find it in someone, and it's hard
-
Not Synced
to assess, but I recommend that as
-
Not Synced
something to look for in junior engineers.
-
Not Synced
Alright. The main takeaways. Onboarding
-
Not Synced
aims to make new team members confident,
-
Not Synced
productive, and independent. If you focus
-
Not Synced
on these three things, and you really try
-
Not Synced
to get people to that place, you're gonna
-
Not Synced
have successful engineers most of the
time.
-
Not Synced
It benefits everyone in the long run. The
-
Not Synced
individual gains skills, the company is
-
Not Synced
more productive, the team is more
productive,
-
Not Synced
and diversity is better at your company.
-
Not Synced
And finally anyone can be involved in
-
Not Synced
onboarding, so you don't have to be super
-
Not Synced
senior. Getting everyone involved will
-
Not Synced
spread out the load, it will make it
-
Not Synced
easier to onboard new engineers, and for
-
Not Synced
startups who don't have resources, it's
-
Not Synced
going to make it possible to hire junior
-
Not Synced
engineers. And since there's two ways to
-
Not Synced
get great engineers at your company,
-
Not Synced
stealing them or making them, it's good to
-
Not Synced
have channels for making engineers.
-
Not Synced
And that's it!