< Return to Video

DjangoCon 2014- Technical Onboarding, Training, and Mentoring

  • 0:09 - 0:14
    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!
Title:
DjangoCon 2014- Technical Onboarding, Training, and Mentoring
Description:

more » « less
Video Language:
English
Duration:
28:24

English subtitles

Incomplete

Revisions