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