-
KATE HEDDLESTON: Hi everyone.
-
Welcome to my talk. I'm Kate Heddleston
-
and this is Technical Onboarding,
-
Training and Mentoring.
-
So I'm a software engineer out of San Francisco.
-
I do mostly contract work now. Full stack,
web
-
apps. And I work with a lot of really
-
early-stage start ups. And this was originally
written as
-
a co-presentation with Nicole Zuckerman. She's
a software engineer
-
at Eventbrite. And she couldn't be here today
because
-
she is vacationing in Italy. So I feel not
-
bad for her at all.
-
All right. So she's the one on the right.
-
I'm the one on the left. And, and Nicole
-
attended a Code Academy called Hack Brite
Academy, which
-
I teach at one day a week. And we
-
came together to write this talk because we
work
-
at separate companies and had experiences
at these separate
-
companies that were fairly similar.
-
So, when I was right out of college, I
-
joined a small start up. I was the sixth
-
engineer, twelfth person, and I worked there
for a
-
time and it grew a lot, and after awhile,
-
I reached a certain level of proficiancy.
I looked
-
back and I thought, I could have gotten here
-
a lot faster with just a little bit of
-
help and a little bit of structure.
-
And so, I turned around and created the Onboarding
-
program at my company. And Nicole had a similar
-
experience at Eventbrite, and so she has been
doing
-
a lot of work there with onboarding. So we
-
wrote this presentation and submitted it.
It's important to
-
note that this presentation was written specifically
with junior
-
engineers in mind. However, about 90 to 90%
of
-
what I say can very, very easily be adapted
-
to people who are more experienced.
-
All right. What is onboarding? So for the
purposes
-
of this talk, onboarding is the process of
taking
-
someone from outside of the group, outside
the company,
-
outside the team, and making them a productive,
independent
-
and confident member of the team.
-
And I picked these three characteristics because
I think
-
they're, they're incredibly important. Productivity
seems a bit self-explanatory.
-
It seems kind of like, the goal that we're
-
focusing on. Like, of course we would like
productive
-
engineers. And it's about creating efficient
employees.
-
Independence, and another word for independence
is autonomy, is
-
about creating engineers that can operate
in your organization
-
without needing a ton of oversight, that can
make
-
decisions and understand your company structure
well enough to
-
not have the overhead of having to go ask
-
four levels of management for something.
-
Also, independence and autonomy speaks to
this, this need
-
that we have to have some control over our
-
own destiny. I was reading an article recently
and
-
it was talking about the need for autonomy,
and
-
it was citing inmates in prisons. So, in a
-
lot of prisons, inmates are allowed to choose
the
-
channel. They're allowed to rearrange their
furniture. And they
-
found that this drastically reduced rebellions
within prisons. So,
-
independence is important, cause you don't
want your engineers
-
to rebel. But it's also important because
feeling independent
-
and autonomous helps people feel motivated
and invested in
-
what they're doing.
-
Finally, confidence I think is the most important
of
-
the three. Confidence is about creating employees
who believe
-
that they are valuable. It's not about the
actual
-
act of creating employees that are valuable.
The study,
-
which is at, the links are at the bottom
-
actually, that I was reading about recently,
they split,
-
this was a gendered study, but what they found
-
didn't really have to do with gender.
-
They split the participants into six groups.
Three groups
-
of men, three groups of women. So there was
-
a control and two test groups for each gender.
-
And, for one of the groups of men, they
-
told them, they're doing some sort of spatial
reasoning
-
activity, they told them, men are really good
at
-
spatial reasoning. You should be good at this
task.
-
That group performed significantly better
than the control. The
-
next group of men they told, men are really
-
bad at spatial reasoning. You'll be bad at
this
-
task. And that group performed significantly
worse than the
-
control. And they found the exact same thing
with
-
women.
-
And so what this means is that confidence
actually
-
affects how well people perform. So confident
people will
-
perform better in a measurable way.
-
So why do you care? I assume that everyone
-
here cares because you came to my talk. But
-
I would like to convince you that you should
-
care now. You should care immediately, and
that you
-
should start building an onboarding program
at your company
-
as soon as possible.
-
And I'm gonna talk about four things in this
-
session. I'm gonna talk about the individual
who's joining
-
the company, the company that they are joining,
the
-
specific team within the company that they
are becoming
-
a member of, and then there's a bonus category,
-
which is diversity.
-
So, the individual. What can go wrong if you
-
don't have onboarding? Or basically if you
don't have
-
investment in your employees?
-
Attrition is something that most companies
and most of
-
us are terrified of. And for a good reason.
-
Attrition can cost thousands of dollars per
employee. Up
-
to 1.5 to 2x their salary. And it's not
-
that people quit specifically because your
company does or
-
not have onboarding. People quit for a meriad
of
-
reasons. The number one is actually that they
are
-
dissatisfied with their managers. But onboarding
can address a
-
lot of the issues that people ultimately quit
for,
-
or quit because of, and it can address them
-
really early.
-
So getting someone up to speed so that they're
-
confident, they have this upward trajectory,
they're building their
-
skill set early, is going to set them up
-
for success in the long term, so that eight
-
months to twelve months down the road, they
aren't
-
leaving because they never felt like they
were part
-
of the team. Or they never felt like they
-
were contributing. Address this early at onboarding
is one
-
of the best ways to do that.
-
For the company. Companies care hugely about
the productivity
-
of their employees. This is a graph of productivity
-
decreasing as you add new engineers to the
team.
-
And, anecdotally, this actually happened at
LinkdIn not too
-
long ago. Every engineer that they added to
their
-
team decreased their overall productivity
and ultimately affected the
-
company's bottom line.
-
So, when their new SVP of engineering came
on
-
board, Kevin Scott, he had to do a whole
-
bunch of work revamping their organization,
building onboarding. And
-
this is, I mean, LinkdIn is thousands of people
-
at this point. So this is a huge amount
-
of work. To try to get the graph to
-
look like this. To try to get each new
-
employee to add value to the company. And
this
-
doesn't have to do with the employees. It's
not
-
like they're hiring engineers that are then
negative in
-
their value. It has to do with their process,
-
and onboarding is one of the great ways to
-
make sure that you're taking a good look at
-
your process.
-
This speaks to something I like to call team
-
debt. How many of you have heard of the
-
concept of code debt? A lot of people. Yeah,
-
we talk about that a lot as engineers. How
-
if you build something fast and don't think
about
-
it, you accrue this code debt, and over time
-
you have to go back through your code base,
-
take a look at things, rewrite them, and ultimately
-
address that.
-
Well, the same thing happens with people.
So if
-
you aren't doing a good job investing in your
-
employees, if you're not onboarding them,
if you're not
-
training them, you're going to accrue team
debt. And
-
I've seen this a lot. I've talked to a
-
lot of companies that are starting to get
into
-
the hundreds of people range. They're starting
to hit
-
a hundred engineers. And they're like, oh
my goodness,
-
we need onboarding. We need, we need to get
-
these people up to speed. And at, at four
-
hundred people, I mean, yeah. You've accrued
a huge
-
amount of team debt.
-
Every person that you add and try to onboard
-
is going to be increasingly difficult. Your
code base
-
is quite large at that point. You have a
-
lot of teams. And so going and making all
-
of those onboarding materials at a hundred
people is
-
way harder than starting when you're smaller
than a
-
hundred people and then maintaining it incrementally.
-
The third aspect is the immediate team that
the
-
engineer joins. So there's a saying that you
don't
-
know something until you teach it. And this
is
-
absolutely true for your company's culture
and code process.
-
So if you don't know how to explain to
-
a new engineer what your company's culture
is or
-
how you ship code or how you decide what
-
features are built or who approves things,
who reviews
-
things, then you don't actually know it yourself.
And
-
that's a massive red flag for your company
if
-
you can't explain your process.
-
Additionally, when people join small teams,
small teams fundamentally
-
change every single time you add a new person
-
to them. So iterating your team's process
to the
-
new engineer is not just important for them,
it's
-
also important for your existing engineers,
so that you
-
get something that looks a little bit more
like
-
this, where everyone is on the same page.
-
And because the team changes every time you
add
-
people to it, you're gonna have to reiterate
this
-
to everyone pretty much every time you add
a
-
new employee.
-
So, something about me, I love sports anecdotes.
I
-
played sports for most of my life. And when
-
I was done playing sports, I coached JV girls
-
water polo at a high school nearby. And I
-
used to have these really deep, philosophical
team meetings
-
with them, and I'd come in with these posters,
-
and one day I came in with this, a
-
poster with this written on it. They always
just
-
sat there and kind of rolled their eyes at
-
me, like.
-
But, I was trying to explain to them that
-
their ability to win games was not wholly
dependent
-
on their skills. These girls were beginners.
They didn't
-
really know how to throw. They didn't really
know
-
how to swim. They basically didn't have the
skill
-
set necessary to play water polo. But, they
were
-
playing all these games. And so I wanted them
-
to understand that their skill set was important,
but
-
team work was more important, so they could
actually
-
beat teams that were theoretically more skilled
than them
-
but didn't work together as well as they did
-
if they all banded together, because teamwork
is a
-
multiplication factor.
-
And this is true in engineering as well. Your
-
productivity as an engineering team is the
sum of
-
the engineering talent that you have multiplied
by how
-
well you work together. So if your team is
-
working well together, that's great. If not,
your team
-
can actually pull itself apart. And, anecdotally,
a lot
-
of, a lot of products have been built by
-
teams that are less than ten or five people.
-
So Gmail is a really great example. It was
-
built by a team of less than five. And
-
now that it's successful it's maintained by
a team
-
of over four-hundred, I think.
-
So our bonus category, diversity. How many
of you
-
have read Dr. Seuss's book about sneetches?
Yeah? It's
-
a great, it's a childrens' poem, like all
of
-
his books are. But it's about this community
of
-
sneetches. And sneetches are what I have drawn
there.
-
And at some point, some sneetches start developing
stars
-
on their bellies. And it's the story about
kind
-
of the rifts that happen in the community
as
-
a result of some sneetches having stars on
their
-
bellies and some sneetches not.
-
But I like to use sneetches to represent diversity,
-
cause diversity can mean a lot of things.
It
-
can be gender diversity, it can be racial
diversity,
-
it can be introverts versus extraverts as
far as
-
diversity goes. So communication styles. But
the idea is
-
that onboarding is gonna be really critical
if you
-
want to hire people who are different from
each
-
other in any way.
-
This is pretty typical in tech. Companies
are started
-
by a small group of people, and it's homogenous.
-
The phenomenom is called homophaly. We tend
to associate
-
and like to be around people who are like
-
ourselves. So companies tend to get started
as homogenous
-
groups.
-
If you don't have any onboarding, the people
who
-
are most likely to be successful joining your
organization
-
are people who are like the existing group.
This
-
is because they likely share similar communication
styles, interests
-
and hobbies. There might be tacit acceptance
because they
-
look the same as the rest of the group.
-
So what you're doing is you're relying on
homopholy
-
and the existing social structure for peoples'
success at
-
the company and onboarding.
-
And what you don't want to have happen is
-
something like this. You hire someone new
who's different,
-
and they feel socially ostracized upfront.
Not for any
-
particular malicious reason, but just because
they're different. They
-
communicate differently. And so what you want
is you
-
want an explicit onboarding structure that
helps bring people
-
into the fold, that helps people become a
part
-
of the team in some sort of systematic way
-
so that everyone who joins, no matter how
different
-
they are from the existing group, has a solid
-
chance at being successful.
-
So, hopefully now you guys are all convinced
that
-
onboarding is super important.
-
Who at your company can onboard?
-
So anyone of your team can onboard. This is
-
not a, senior engineers have to be paired
with
-
junior engineers. They can learn the most.
In fact,
-
going back to sports analogies, some of your
best
-
people to onboard are going to be people,
kind
-
of like if a freshman athelete were to join
-
a team, the sophomore athletes might be the
best
-
people to help them out.
-
This is because they have the most empathy
for
-
what they're going through. They also experienced
it the
-
most recently, so they have relevant information
and stories.
-
So your sophomore engineers might be some
of your
-
best onboarders at the company, in addition
to the
-
expertise of your senior engineers.
-
When?
-
So onboarding can start as soon as an offer
-
is accepted. I'm going to talk about an onboarding
-
plan coming up soon, and we're gonna talk
about
-
from the start date to what I call reliable
-
independence, which is where this person can
build things
-
and build features to an adequate level and
be
-
left on their own to the same degree as
-
other engineers on the team.
-
All right. How?
-
So, the how category I'm gonna talk about
some
-
concepts to think about, when you're thinking
about how
-
to onboard others. And then I'm gonna launch
into
-
a four-week plan that goes through some of
the
-
specific things that you can do with engineers.
-
So, first off, the concepts. It's pretty straight
forward.
-
You want to maximize your return on investment.
You
-
don't really want to be putting more into
engineers
-
than you're getting out of them. And most
people
-
don't really want more put into them than
they're
-
giving back. That's kind of a strange dynamic.
-
So, a really inefficient but really common
way that
-
people try to onboard is this, like, hand-holding
model.
-
New onboarding mentors are really prone to
this. They
-
think, I'm gonna be the best onboarding mentor
ever.
-
We're gonna do everything together. We're
gonna do all
-
of these code tutorials. They're gonna watch
me code
-
every day, and by the time we're done with
-
three months, they're gonna know everything
that I know.
-
And, in addition to being inefficient, because
this is
-
a huge time sink, it's also unrealistic. People
do
-
not become senior engineers in three months.
You need
-
time. You just, you just do. And so this
-
burns people out and also disappoints them.
-
A more efficient way to think abou things
is,
-
my example is bumper bowling, which is pretty
much
-
the only way I should be allowed to bowl.
-
But, you set up an environment that's constrained,
where
-
they're able to play freely. They're able
to go
-
off and do what they want, come back and
-
ask questions. But you don't have to handhold
them
-
through things.
-
And so the way you do this with a
-
technical environment is automation is huge.
So, automating the
-
development environment, automating deploy.
Having a lot of testing
-
for your code base, however you decide to
do
-
that. Whether it's TDD or not. Will help these
-
junior engineers have a safe space to learn
and
-
grow and play.
-
One of the important things to think about,
too,
-
when setting up this environment is that scoping
is
-
critical. One of the tenants of expertise
is the
-
ability to scope. So, if you're an expert,
you
-
understand the landscape incredibly well.
So you're able to
-
set these really well-defined boundaries.
Junior engineers, by definition,
-
are not good at scoping because they don't
know
-
the landscape.
-
So, when you're thinking about giving them
projects and
-
you're thinking about setting up their environment,
make sure
-
to set boundaries for them and then slowly
move
-
them out as they know more about what's going
-
on. Because they won't be able to set those
-
boundaries for themselves.
-
So, kind of three onboarding categories that
map to
-
the productive, independent, confident thing
I was talking about
-
earlier are technical knowledge, company knowledge
and process, and
-
personal development. I mention this because
people think that
-
onboarding has to do with technical knowledge.
They seem
-
to think that that's 90% of what's going on.
-
I'd say it's actually about a third, and it's
-
actually the easiest third, because you can
go to
-
the internet and find a ton of tutorials on,
-
on Ruby and how to learn Rails and how
-
to use Rails and blog posts about how to
-
use any number of technology out there.
-
The harder category, which is another third
of what
-
they need to know, is the company knowledge
and
-
process. And this is really, really important
for them
-
being independent. They can't be independent
if they don't
-
know how to operate within the company's infrastructure.
This
-
is harder because most companies don't write
this down.
-
So it's in someone's head somewhere, and the
junior
-
engineer, or the new engineer, is tasked with
going
-
and extracting it from whoever on the team
knows
-
this. So the more explicit you can be about
-
your company knowledge and process, the better.
-
And then third, personal development. That
has to do
-
with confidence, career trajectories. Again,
this is, this is
-
important because confident people are willing
to reach. They're
-
willing to be outgoing and they're willing
to try
-
new things. They also perform better.
-
OK. So now I'm gonna talk about a fairly
-
specific plan. This was written with junior
engineers in
-
mind. So some of the tasks are very specific
-
to junior engineers, as is the time frame.
A
-
lot of these things will be relevant for people
-
with more experience. The time frame just
might be
-
more condensed.
-
So, for week one for a junior engineer, it's
-
all about shipping code and kind of getting
to
-
know their immediate team. So dev environment
setup is
-
critical for anyone joining an engineering
team. The last
-
person who joined the company is going to
be
-
the best person to get them up to speed
-
on their dev environment, because they are
the one
-
who knows the most about how to set up
-
a dev environment. Someone who started two
years ago
-
is probably not going to know the ins and
-
outs of getting started.
-
Additionally, you should have a goal about
how quickly
-
you want someone's dev environment to be set
up
-
so that they can reasonably ship code. So
like
-
a config file, for example, or something static.
A
-
great goal is the first week. An awesome goal
-
is the first day. And, if you want to
-
try to match, I think it's Debian in the
-
opensource world, their goal is five minutes,
which is
-
probably a little bit of a reach. But I'd
-
say the first day is a fantastic goal. If
-
someone can be set up with their dev environment
-
and able to ship a config file the first
-
day, that means that you have pretty great
automation
-
and a really great onboarding process.
-
The next thing is shipping code. You should
ship
-
small changes and you should teach junior
engineers to
-
ship small changes as early as possible. So,
give
-
them a task as soon as they've got their
-
dev environment set up and they're ready to
go.
-
Maybe have them fix a bug or rewrite tests
-
or a small feature that's really well-scoped,
so that
-
they can ship something and be productive
and part
-
of the team as soon as possible. This is
-
great both for your onboarding process, but
also it
-
helps them feel valuable, which, as we talked
about
-
earlier, is really key.
-
Journaling and note-taking. People will naturally
do this. We
-
don't memorize all of the commands that we
need
-
to know, and so we'll write them down. Just,
-
just give them a central place to do it.
-
Talk to them about it. Ask them about three
-
things they learned that day or that week.
Just
-
kind of put a communication structure around
the fact
-
that they're probably already taking notes.
It will help
-
you understand what's confusing for them and
it will
-
help them remember things.
-
And then, finally, have a social event. And
do
-
this for any engineer that joins your team.
No
-
one should join a company and sit off in
-
the corner alone, not knowing their immediate
team mates.
-
Have some sort of coffee. Have everyone sit
together
-
at lunch. Go out for dinner or drinks. It
-
doesn't matter what it is. They just need
to
-
put names to faces and feel comfortable asking
questions
-
of, at least, their immediate team. Like,
you know,
-
the five people that they work with. If they
-
want to ask someone where a pen is, or
-
the bathroom, or they don't know something
really simple
-
and they feel uncomfortable asking, that's
gonna be a
-
bad experience right off the bat. And this
one
-
is so easy. It's just a gimme.
-
All right. Week two. Week two is more about
-
the context of the company, and also starting
to
-
have them shadow and, and learn from more
senior
-
engineers. So, you should tell them the history
of
-
your company. The history of your company
hopefully is
-
a pretty interesting story. The history of
your company
-
is also something they're not really gonna
be able
-
to absorb the first week. They aren't gonna
know
-
the characters in, in the story as well as
-
they will the second week. So who are the
-
founders? Why did they make this company?
Who are
-
the people that were hired early on? It actually
-
is probably gonna tell you a lot about your
-
process and your culture as well.
-
Additionally, a team map is fantastic. So
if you
-
have some place where you can put everyone's
picture
-
and name, generally what they do and what
they
-
work on, if you can make it a seating
-
chart, even better, or put their names above
their
-
computers. People are gonna forget someone's
name. They're gonna
-
forget that that guy they talked to five times
-
is Andy. And they're gonna be embarrassed
to ask
-
just like I always am when I forget someone's
-
name after talking to them for five times.
-
Code labs and shadowing. So code labs are
something
-
that Eventbrite started doing, and this is
a really
-
awesome idea. It's basically a safe space
for an
-
hour once, twice, three times a week, however
many
-
times, where they can ask someone that's more
senior
-
any kind of question they want. So you can
-
have a code lab for an hour that's on
-
frontend development. Or a code lab for an
hour
-
on dev ops. And the most important thing about
-
these code labs is actually not the topic.
It's
-
that it's safe. So when you're thinking about
picking
-
engineers to run these code labs, think about
picking
-
engineers who are going to create a safe space
-
for these junior developers to ask questions.
Feeling stupid
-
when asking questions is pretty typical, especially
when you're
-
new. You want some place where they don't
feel
-
that way.
-
Shadowing is also a great way to get people
-
up to speed. This actually is a great thing
-
to do at any level. But pair them with
-
someone who's more senior. Have them sit with
them
-
for an hour a day or a week. And
-
just watch their process. How do they build
code?
-
How do they get things done? What tools do
-
they use? One of the things to think about,
-
though, when pairing people for shadowing,
is that we
-
will forgive a lot of bad habits in more
-
mid-level or senior engineers that we won't
forgive in
-
junior engineers.
-
So I've seen this happen a lot where junior
-
engineers are following someone who's more
senior, and they're
-
doing a great job, actually, of picking things
up.
-
They're learning a ton. And some of the things
-
they're learning are not so good. And so they
-
end up getting punished for these habits that
they
-
learned directly from a senior engineer. So
make sure
-
that you take a look, whenever you see someone
-
doing something, who's new or young, take
a look
-
at where they learned that from. If they learned
-
it from someone else, try to just encourage
them
-
to go in the right direction.
-
There's nothing worse, when you're new, than
spending all
-
this time following someone, learning something,
and then later
-
being told that you're doing it wrong. You're
like,
-
well then why did I follow this person around?
-
All right. Week three is a lot about communication.
-
Goal-setting. Feedback. Presentations. So
for a junior engineer, at
-
this, up to this point, you've probably been
doing
-
a lot of high-touch interactions. You've probably
been working
-
with them fairly constantly. By week three
you can
-
start scaling back. Give them more independence.
Give them
-
more free time. But set up weekly one-on-ones.
This
-
is a structured, expected thing where they
can give
-
you feedback. Maybe they can spend ten minutes
talking
-
about something they learned this week. You
can start
-
doing goal-setting.
-
Which, by week three, hopefully they have
a better
-
idea of what they want to do next. Maybe
-
not what they want to do with their whole
-
life, but maybe next they want to focus on
-
frontend. They want to get really, really
good at
-
implementing features for users. Or maybe
they absolutely love
-
dev ops and infrastructure and they want to
work
-
more on that.
-
So you can start setting these short and long-term
-
goals so that they feel like they're moving
forward.
-
Feedback is also really important. Give feedback
early. Give
-
feedback often. Some of the biggest complaints
that people
-
have about their managers is that they don't
get
-
any feedback from them. So, as engineers,
we tend
-
to be fairly critical and a little bit cynical,
-
which I think is healthy. But when you're
giving
-
feedback to someone, especially if they're
junior, remember, they
-
don't know what they're doing well, either.
They actually
-
don't, they don't really have a good idea
of
-
what they're doing that's good or bad.
-
And I'll give you another sports analogy.
When I
-
was coaching, so I'm coaching beginners. Absolute
beginners. And
-
I'm standing on the pool deck, kind of yelling
-
things at them. And they'd go to do, like,
-
they'd go to throw the ball, like they'd go
-
to shoot and they'd drop their elbow, and
I'd
-
yell don't drop your elbow! And it look like
-
these kids hit a brick wall. They would just
-
stop and sink in the water and look at
-
me. Which I realized was exactly not the behavior
-
that I wanted from them. What I wanted them
-
to do was I wanted them to keep their
-
elbow up.
-
So I thought about this for awhile, and then
-
I decided to just start yelling at them all
-
the things that I wanted them to do. So
-
I took the words no and don't out of
-
my vocabulary, which is a really, really fun
game,
-
if anyone wants a hobby. So I started yelling
-
things at them like, keep your elbow up. Keep
-
your hips up. And I saw the most amazing
-
thing happen. They all started doing exactly
what I
-
wanted.
-
They started, they started moving forward
faster. They were
-
excited. They felt confident. And there was
no, there
-
was nothing except that I just took all of
-
these negative words and negative phrases
out and told
-
them what I wanted and they did it. So,
-
when you're thinking about yelling things
at your junior
-
engineers, try yelling at them what you want
them
-
to do as opposed to what you don't want
-
them to do.
-
Presentations are also really great for communication.
We don't
-
program in vaccuums. We often work on teams.
We
-
need to be able to communicate technical concepts
to
-
other people in a really clear and concise
way.
-
So make them practice. Give them a topic once
-
a month, a technical topic, maybe it's regexes,
maybe
-
it's the ORM layer, and have them give a
-
five to ten minute presentation to the rest
of
-
the team on it.
-
Week four. Week four, you're gonna continue
scaling back.
-
You want them to be independent. You want
them
-
to be autonomous. So you're gonna continue
taking yourself
-
out. Review concepts. Check in regularly in
your one-on-ones.
-
You can start to tell them things like, if
-
you hit a bug, I want you to research
-
things for an hour before you come talk to
-
me. So set really clear expectations, but
have them
-
go off on their own. Have them do research
-
on their own. Have them get used to that
-
feeling of hitting your head up against a
wall
-
because you're super frustrated with a problem.
This is
-
good. They need to learn those things.
-
Also, make shadowing elective. Let them choose
who they
-
want to shadow and when. So start off-loading
decisions
-
about what they do to the engineer. Also,
have
-
them start co-piloting a larger project with
someone else.
-
The concept is kind of like drivers' ed in
-
the U.S. In drivers' ed in the U.S., you're
-
paired with an instructor who actually has
a break
-
on their side, so if you decide to careen
-
on a cliff or something, they can hit the
-
breaks and stop you. So pair them with someone
-
who still has enough control that they can
stop
-
them from doing anything that's really dangerous,
but they're
-
also working on bigger projects now and learning
from
-
someone who's more senior.
-
Beyond. So, keep checking in on goals. Keep
talking
-
to them. Make sure you have really structured
channels
-
for communication. Start tailoring their projects,
code labs, et
-
cetera to their progress. And this is the
part
-
where you can start doing things like informal
apprenticeships
-
and assessing their progress. Although you
should be assessing
-
it this whole time.
-
Apprenticeship is a concept that has worked
for many
-
thousands of years in many, many different
trade industries.
-
So, blacksmithing, roof-thatching, I don't
know. But at this
-
point, they should know more specifically
what they're gonna
-
want to work on long-term. So have them be
-
an apprentice to someone who's more senior
at this.
-
So if they want to do dev ops, they
-
can go work on the dev ops team with
-
a more senior engineer, and they might do
a
-
lot of grunt-work tasks. They might do a lot
-
of the things that no one else wants to
-
do at this point. But they're learning. And
as
-
they learn and they grow they get more involved
-
tasks, and they get to solve more exciting
problems.
-
Assessment. So you're gonna see wildly different
trajectories with
-
people. And hopefully the more systematic
your process gets,
-
the more you're able to deal with this. But
-
some people are just gonna take off running
and
-
they're gonna be fine. Other people are gonna
have
-
ups and downs. And so you're gonna want to
-
have some sort of way of assessing how they're
-
doing. And when someone's not doing the way
you
-
expect, the answer isn't always they're a
bad programmer.
-
In fact, we came up with five assessment categories.
-
Confidence, code quality, communication, judgement,
and technical knowledge. And
-
this is just a start. If someone is afraid
-
to ship code, they might lack confidence.
And so
-
helping to bolster their confidence will see
huge results.
-
Additionally, if they're building features
that don't make sense,
-
they might lack judgment. And in order to
have
-
good judgment, you need a lot of context about
-
who uses your product and why. So maybe they
-
should go spend more time working with customer
support
-
and answering support tickets so that they
can learn
-
how people use the product so they have better
-
judgement. Sometimes they just need to learn
more about
-
a particular tool, and that one's pretty easy.
-
OK. Hopefully you guys have had a fair number
-
of take-aways. Hopefully you now know about
the concept
-
of team debt. You're thinking about doing
an onboarding
-
plan now. But, if you take away only three
-
things, I hope you take away these three things.
-
First off, the goal of onboarding is to make
-
people confident, productive, and independent.
Reliably independent. And so
-
that can have to do with their level. But
-
it's not about making someone into a senior
engineer
-
overnight.
-
Second, onboarding benefits everyone in the
long run. It
-
benefits the individual joining, it benefits
your company's bottom-line,
-
it benefits the productivity of the team,
and it's
-
also great for diversity.
-
And finally, anyone at your company can be
involved
-
in onboarding. So, as I said before, some
of
-
your best onboarders are not gonna be senior
engineers.
-
They're gonna be the people who were just
junior
-
engineers themselves.
-
OK. So, start improving your onboarding process
now. There's
-
actually a code repository, or not code, but
just
-
a GitHub repository that has some assessment
rubrics. It
-
has the plan in a lot more detail. It
-
also has some tools for, for learning, like,
online
-
tools for learning Ruby and Rails. And if
you
-
have questions, feel free to ask them now.
If
-
you are terrified of yelling questions out
in a
-
pubilc forum, which I absolutely am, you can
come
-
find me later. I'll also be around for the
-
rest of the conference. So thank you.