1 00:00:09,151 --> 00:00:14,081 Thank you. Yes. So, um, for those of you who were at the last 2 99:59:59,999 --> 99:59:59,999 talk, thank you for your loyalty. I'm gonna talk about technical onboarding 3 99:59:59,999 --> 99:59:59,999 training and mentoring now; it's probably 4 99:59:59,999 --> 99:59:59,999 not going to be quite as funny. 5 99:59:59,999 --> 99:59:59,999 It's a linear talk, unlike our 6 99:59:59,999 --> 99:59:59,999 choose-your-own-adventure story last time. 7 99:59:59,999 --> 99:59:59,999 Uh. This is originally a joint talk that was 8 99:59:59,999 --> 99:59:59,999 given at PyCon. I'm Kate Heddleston; 9 99:59:59,999 --> 99:59:59,999 that's my Twitter handle, so you can, 10 99:59:59,999 --> 99:59:59,999 you know, tweet thoughts at me. 11 99:59:59,999 --> 99:59:59,999 I'm a software engineer at Runscope. 12 99:59:59,999 --> 99:59:59,999 We make these sweet shirts that say 13 99:59:59,999 --> 99:59:59,999 "everything is going to be 200 OK". 14 99:59:59,999 --> 99:59:59,999 Um, if you want one of them, you can come 15 99:59:59,999 --> 99:59:59,999 find me afterwards. 16 99:59:59,999 --> 99:59:59,999 And Nicole Zuckerman was originally my 17 99:59:59,999 --> 99:59:59,999 co-presenter. She's a software engineer at 18 99:59:59,999 --> 99:59:59,999 Eventbrite. And I'll let you figure out which 19 99:59:59,999 --> 99:59:59,999 one of these two people is her. But 20 99:59:59,999 --> 99:59:59,999 basically Nicole and I came together to 21 99:59:59,999 --> 99:59:59,999 create this talk because we had similar 22 99:59:59,999 --> 99:59:59,999 experiences at separate companies. 23 99:59:59,999 --> 99:59:59,999 Nicole went to Hackbright Academy and then 24 99:59:59,999 --> 99:59:59,999 went to Eventbrite right afterwards. 25 99:59:59,999 --> 99:59:59,999 I went to a small startup out of college 26 99:59:59,999 --> 99:59:59,999 and at both of our respective companies, 27 99:59:59,999 --> 99:59:59,999 we -- there wasn't any onboarding. I've mostly 28 99:59:59,999 --> 99:59:59,999 worked at companies that were smaller than 29 99:59:59,999 --> 99:59:59,999 12 people when I joined, so onboarding was 30 99:59:59,999 --> 99:59:59,999 not a huge priority. About a year later, I 31 99:59:59,999 --> 99:59:59,999 had gained some confidence, many skills, 32 99:59:59,999 --> 99:59:59,999 like real-world skills. And I looked back 33 99:59:59,999 --> 99:59:59,999 and I thought, there's some things that we 34 99:59:59,999 --> 99:59:59,999 can do, even as small startups, to make 35 99:59:59,999 --> 99:59:59,999 the onboarding experience better. To make 36 99:59:59,999 --> 99:59:59,999 it easier for people to get up to speed at 37 99:59:59,999 --> 99:59:59,999 your company without having a huge 38 99:59:59,999 --> 99:59:59,999 overhead. Without having to build these 39 99:59:59,999 --> 99:59:59,999 massive onboarding programs that they have 40 99:59:59,999 --> 99:59:59,999 at large companies. 41 99:59:59,999 --> 99:59:59,999 Alright. So, what is onboarding? 42 99:59:59,999 --> 99:59:59,999 For the purposes of this talk, onboarding, 43 99:59:59,999 --> 99:59:59,999 as a definition, is going to be the act of 44 99:59:59,999 --> 99:59:59,999 taking someone from outside of the 45 99:59:59,999 --> 99:59:59,999 company, the team, whatever group of 46 99:59:59,999 --> 99:59:59,999 people it is, and making them a 47 99:59:59,999 --> 99:59:59,999 productive, independent, and confident 48 99:59:59,999 --> 99:59:59,999 member of your team. And this sounds 49 99:59:59,999 --> 99:59:59,999 really nice, right? If all employees were 50 99:59:59,999 --> 99:59:59,999 productive and confident and independent, 51 99:59:59,999 --> 99:59:59,999 like, that sounds like a really great 52 99:59:59,999 --> 99:59:59,999 engineering environment. Unfortunately, 53 99:59:59,999 --> 99:59:59,999 that isn't the case a lot of times. Um, 54 99:59:59,999 --> 99:59:59,999 someone shared a blog post with me the 55 99:59:59,999 --> 99:59:59,999 other day with their thoughts on 56 99:59:59,999 --> 99:59:59,999 onboarding, and he was like yeah, our 57 99:59:59,999 --> 99:59:59,999 company is trying to change onboarding so 58 99:59:59,999 --> 99:59:59,999 that it's not so much about lighting 59 99:59:59,999 --> 99:59:59,999 someone on fire and then telling them to 60 99:59:59,999 --> 99:59:59,999 find water and it's a little more 61 99:59:59,999 --> 99:59:59,999 welcoming. It's like, that's good. 62 99:59:59,999 --> 99:59:59,999 So to go through these three things - 63 99:59:59,999 --> 99:59:59,999 productivity, independence, and 64 99:59:59,999 --> 99:59:59,999 confidence - Productivity is pretty simple. 65 99:59:59,999 --> 99:59:59,999 It's about creating efficient employees. 66 99:59:59,999 --> 99:59:59,999 This has to do with giving them the tools 67 99:59:59,999 --> 99:59:59,999 to write code, deploy code, understand how 68 99:59:59,999 --> 99:59:59,999 features get built. Basically get their 69 99:59:59,999 --> 99:59:59,999 jobs done. 70 99:59:59,999 --> 99:59:59,999 Independence and autonomy is actually 71 99:59:59,999 --> 99:59:59,999 huge. Autonomy, uh, being an autonomous 72 99:59:59,999 --> 99:59:59,999 agent is really important to people. The 73 99:59:59,999 --> 99:59:59,999 greatest motivations, in fact, come 74 99:59:59,999 --> 99:59:59,999 through things that we choose for 75 99:59:59,999 --> 99:59:59,999 ourselves. The anecdote that I have for 76 99:59:59,999 --> 99:59:59,999 this is in prisons. They discovered that 77 99:59:59,999 --> 99:59:59,999 autonomy is really important. So when 78 99:59:59,999 --> 99:59:59,999 people are in prison environments, a lot 79 99:59:59,999 --> 99:59:59,999 of their rights and abilities to do things 80 99:59:59,999 --> 99:59:59,999 are removed. This leads to riots, 81 99:59:59,999 --> 99:59:59,999 dissatisfaction, and many things that you 82 99:59:59,999 --> 99:59:59,999 would think would happen. So what they do 83 99:59:59,999 --> 99:59:59,999 with prisoners is they give them the right 84 99:59:59,999 --> 99:59:59,999 to change the channel, and they give them 85 99:59:59,999 --> 99:59:59,999 the right to move their furniture around. 86 99:59:59,999 --> 99:59:59,999 And this little bit of autonomy, this 87 99:59:59,999 --> 99:59:59,999 ability to choose for themselves what they 88 99:59:59,999 --> 99:59:59,999 get to do, even though it's very small, 89 99:59:59,999 --> 99:59:59,999 reduced prison riots by - significantly. 90 99:59:59,999 --> 99:59:59,999 You want to reduce riots at your company 91 99:59:59,999 --> 99:59:59,999 by giving people the ability to choose the 92 99:59:59,999 --> 99:59:59,999 TV channel. 93 99:59:59,999 --> 99:59:59,999 Confidence. Confidence is about creating 94 99:59:59,999 --> 99:59:59,999 employees who believe that they are 95 99:59:59,999 --> 99:59:59,999 valuable. And the word 'belief' is 96 99:59:59,999 --> 99:59:59,999 actually really, really important. So a 97 99:59:59,999 --> 99:59:59,999 lot of people think - they might think 98 99:59:59,999 --> 99:59:59,999 'arrogance' and they might think 99 99:59:59,999 --> 99:59:59,999 'confidence' and they might think a lot of 100 99:59:59,999 --> 99:59:59,999 things, but this belief in your value to 101 99:59:59,999 --> 99:59:59,999 the company is paramount. And this is very 102 99:59:59,999 --> 99:59:59,999 much a human thing. This doesn't really 103 99:59:59,999 --> 99:59:59,999 have to do with computers. This just has 104 99:59:59,999 --> 99:59:59,999 to do with creating an environment where 105 99:59:59,999 --> 99:59:59,999 companies feel as though they can enact 106 99:59:59,999 --> 99:59:59,999 change, and that they are capable of 107 99:59:59,999 --> 99:59:59,999 enacting change. 108 99:59:59,999 --> 99:59:59,999 Oh. This - the belief is really important. 109 99:59:59,999 --> 99:59:59,999 Also they did a study. So how many of you 110 99:59:59,999 --> 99:59:59,999 have heard of the concept of 'stereotype 111 99:59:59,999 --> 99:59:59,999 effect'? Stereotype - do I smell? Okay. 112 99:59:59,999 --> 99:59:59,999 So the stereotype effect works like this. 113 99:59:59,999 --> 99:59:59,999 There are stereotypes in the world. 114 99:59:59,999 --> 99:59:59,999 "Asians are good at math." "Women are bad 115 99:59:59,999 --> 99:59:59,999 with computers." And what they've found is 116 99:59:59,999 --> 99:59:59,999 that, before tests, tests on things like 117 99:59:59,999 --> 99:59:59,999 physics or math, what they'll do is they 118 99:59:59,999 --> 99:59:59,999 reminded one group of this stereotype. 119 99:59:59,999 --> 99:59:59,999 "Women are bad at math; men are better at 120 99:59:59,999 --> 99:59:59,999 math. Asians are better at math than all 121 99:59:59,999 --> 99:59:59,999 of those groups." And what they found was, 122 99:59:59,999 --> 99:59:59,999 when they reminded people of those 123 99:59:59,999 --> 99:59:59,999 stereotypes, people performed to the 124 99:59:59,999 --> 99:59:59,999 stereotype. If they didn't tell anyone at 125 99:59:59,999 --> 99:59:59,999 all, people performed in a control group 126 99:59:59,999 --> 99:59:59,999 setting, and then the third group that 127 99:59:59,999 --> 99:59:59,999 they did is that they told people that 128 99:59:59,999 --> 99:59:59,999 their ability to do well on the test came 129 99:59:59,999 --> 99:59:59,999 from these sort of intrinsic motivators, 130 99:59:59,999 --> 99:59:59,999 like if you work hard you'll be good at 131 99:59:59,999 --> 99:59:59,999 math, if you think about like your own 132 99:59:59,999 --> 99:59:59,999 personal qualities that's helpful, what 133 99:59:59,999 --> 99:59:59,999 they saw was that everyone's performance 134 99:59:59,999 --> 99:59:59,999 improved and there was actually no 135 99:59:59,999 --> 99:59:59,999 difference across these different lines. 136 99:59:59,999 --> 99:59:59,999 So stereotype effect is really important. 137 99:59:59,999 --> 99:59:59,999 It's this belief that you are good at - at 138 99:59:59,999 --> 99:59:59,999 something or not. And what's funny is 139 99:59:59,999 --> 99:59:59,999 just being told that you are good at this 140 99:59:59,999 --> 99:59:59,999 might actually change your performance. 141 99:59:59,999 --> 99:59:59,999 Okay. Why do you care? 142 99:59:59,999 --> 99:59:59,999 Um, you're all already here, so you 143 99:59:59,999 --> 99:59:59,999 probably care about technical onboarding 144 99:59:59,999 --> 99:59:59,999 and training at your company. Maybe you 145 99:59:59,999 --> 99:59:59,999 have to hire a bunch of new engineers out 146 99:59:59,999 --> 99:59:59,999 of college, maybe you have a bunch of 147 99:59:59,999 --> 99:59:59,999 interns coming on board and you're like 148 99:59:59,999 --> 99:59:59,999 terrified, because what are you going to 149 99:59:59,999 --> 99:59:59,999 do with all of those interns. 150 99:59:59,999 --> 99:59:59,999 There's four categories that you should 151 99:59:59,999 --> 99:59:59,999 care about when thinking about onboarding. 152 99:59:59,999 --> 99:59:59,999 There's the individual, there's the 153 99:59:59,999 --> 99:59:59,999 company, there's the team, and then 154 99:59:59,999 --> 99:59:59,999 there's also a bonus section on diversity. 155 99:59:59,999 --> 99:59:59,999 Onboarding is really important for the 156 99:59:59,999 --> 99:59:59,999 individual. The cost of losing an employee 157 99:59:59,999 --> 99:59:59,999 can range from tens of thousands of 158 99:59:59,999 --> 99:59:59,999 dollars to 1.5-2x their salary. If 159 99:59:59,999 --> 99:59:59,999 someone gets off to the wrong foot at 160 99:59:59,999 --> 99:59:59,999 your company, if they're not happy, if 161 99:59:59,999 --> 99:59:59,999 they never get up to speed, if they never 162 99:59:59,999 --> 99:59:59,999 feel autonomous, confident, and productive 163 99:59:59,999 --> 99:59:59,999 at your company, you're probably going to 164 99:59:59,999 --> 99:59:59,999 lose them. And that's really expensive. So 165 99:59:59,999 --> 99:59:59,999 having good onboarding, just getting 166 99:59:59,999 --> 99:59:59,999 everyone off to a good start, is really 167 99:59:59,999 --> 99:59:59,999 important for individuals. It gets them 168 99:59:59,999 --> 99:59:59,999 going upwards like this. It builds their 169 99:59:59,999 --> 99:59:59,999 skills, their confidence, their happiness. 170 99:59:59,999 --> 99:59:59,999 The next one is the company. Onboarding is 171 99:59:59,999 --> 99:59:59,999 really important for the collective 172 99:59:59,999 --> 99:59:59,999 productivity of the company, and the 173 99:59:59,999 --> 99:59:59,999 anecdote for this one is at LinkedIn. For 174 99:59:59,999 --> 99:59:59,999 a while, LinkedIn was actually losing 175 99:59:59,999 --> 99:59:59,999 productivity for every engineer that was 176 99:59:59,999 --> 99:59:59,999 added to their team. And this was a huge 177 99:59:59,999 --> 99:59:59,999 crisis. They actually had to bring in some 178 99:59:59,999 --> 99:59:59,999 new executives, some new managers, and 179 99:59:59,999 --> 99:59:59,999 they were like, we have to stop hiring. 180 99:59:59,999 --> 99:59:59,999 Like, adding engineers to our team is 181 99:59:59,999 --> 99:59:59,999 actually decreasing our productivity. This 182 99:59:59,999 --> 99:59:59,999 is a nightmare. Uh. What you really want 183 99:59:59,999 --> 99:59:59,999 is something more like this. We want every 184 99:59:59,999 --> 99:59:59,999 new engineer we add to the team to 185 99:59:59,999 --> 99:59:59,999 increase productivity. So LinkedIn had to 186 99:59:59,999 --> 99:59:59,999 do this massive reorganization. They had 187 99:59:59,999 --> 99:59:59,999 to do a whole bunch of getting rid of some 188 99:59:59,999 --> 99:59:59,999 things, adding some things, adding 189 99:59:59,999 --> 99:59:59,999 onboarding and training, and basically 190 99:59:59,999 --> 99:59:59,999 streamlining everything so that new 191 99:59:59,999 --> 99:59:59,999 engineers could come in and be productive. 192 99:59:59,999 --> 99:59:59,999 So onboarding and having onboarding early 193 99:59:59,999 --> 99:59:59,999 is going to stave off some of these 194 99:59:59,999 --> 99:59:59,999 problems that you might run into later. 195 99:59:59,999 --> 99:59:59,999 Team. So we talk a lot about technical 196 99:59:59,999 --> 99:59:59,999 debt - how many people have talked about, 197 99:59:59,999 --> 99:59:59,999 or heard about, the term 'technical debt'? 198 99:59:59,999 --> 99:59:59,999 - yeah, you went to build something really 199 99:59:59,999 --> 99:59:59,999 fast, you kind of cut corners, and six 200 99:59:59,999 --> 99:59:59,999 months later you're like aw crap, we have 201 99:59:59,999 --> 99:59:59,999 to rebuild this, we have a lot of bugs, 202 99:59:59,999 --> 99:59:59,999 this is completely unmaintainable. Nobody 203 99:59:59,999 --> 99:59:59,999 knows how to change this system. Well, 204 99:59:59,999 --> 99:59:59,999 similarly there's team debt. If you add a 205 99:59:59,999 --> 99:59:59,999 lot of engineers really fast and really 206 99:59:59,999 --> 99:59:59,999 thoughtlessly, you can get something like 207 99:59:59,999 --> 99:59:59,999 this happening. Everyone's running in a 208 99:59:59,999 --> 99:59:59,999 different direction. And since people are 209 99:59:59,999 --> 99:59:59,999 the most important component for building 210 99:59:59,999 --> 99:59:59,999 software, um, this is really, really 211 99:59:59,999 --> 99:59:59,999 detrimental. You want something that's 212 99:59:59,999 --> 99:59:59,999 more like this. Obviously. 213 99:59:59,999 --> 99:59:59,999 This is my favorite equation that I've 214 99:59:59,999 --> 99:59:59,999 ever made up. The story behind this 215 99:59:59,999 --> 99:59:59,999 equation, and I have a lot of sports 216 99:59:59,999 --> 99:59:59,999 anecdotes, 'cause I played sports for a 217 99:59:59,999 --> 99:59:59,999 long time, and I coached sports for a long 218 99:59:59,999 --> 99:59:59,999 time. But in college when I was done 219 99:59:59,999 --> 99:59:59,999 playing, I actually coached JV girls' 220 99:59:59,999 --> 99:59:59,999 swimming and water polo. So - JV girls' 221 99:59:59,999 --> 99:59:59,999 water polo, very new to most of the girls. 222 99:59:59,999 --> 99:59:59,999 They couldn't swim, they couldn't throw a 223 99:59:59,999 --> 99:59:59,999 ball, we're talking like very basic 224 99:59:59,999 --> 99:59:59,999 skills. Playing a full game, with like all 225 99:59:59,999 --> 99:59:59,999 seven players on the field, was, I mean it 226 99:59:59,999 --> 99:59:59,999 was like, you know when you watch like 227 99:59:59,999 --> 99:59:59,999 peewee soccer and all the kids kind of 228 99:59:59,999 --> 99:59:59,999 like chase the ball around? It's a little 229 99:59:59,999 --> 99:59:59,999 bit like that. And so a huge amount of 230 99:59:59,999 --> 99:59:59,999 what I did was just basic skills. But the 231 99:59:59,999 --> 99:59:59,999 other half was kind of the emotional 232 99:59:59,999 --> 99:59:59,999 team-building part. And I told them this. 233 99:59:59,999 --> 99:59:59,999 I was like, look. Your ability to win 234 99:59:59,999 --> 99:59:59,999 games, and your ability to do well at this 235 99:59:59,999 --> 99:59:59,999 sport, even at this very introductory 236 99:59:59,999 --> 99:59:59,999 level, is the sum of your talent multiplied 237 99:59:59,999 --> 99:59:59,999 by your ability to work together as a 238 99:59:59,999 --> 99:59:59,999 team. Some of the people on the team 239 99:59:59,999 --> 99:59:59,999 didn't have a lot of natural talent. They 240 99:59:59,999 --> 99:59:59,999 were going to have to work really hard to 241 99:59:59,999 --> 99:59:59,999 build their skills. But that's fine. 242 99:59:59,999 --> 99:59:59,999 Because if they focused a lot on working 243 99:59:59,999 --> 99:59:59,999 together, they focused a lot on getting 244 99:59:59,999 --> 99:59:59,999 things done as a cohesive unit, they can 245 99:59:59,999 --> 99:59:59,999 actually beat teams that had more 246 99:59:59,999 --> 99:59:59,999 collective talent, but didn't work 247 99:59:59,999 --> 99:59:59,999 together quite as well. And we've actually 248 99:59:59,999 --> 99:59:59,999 seen this in software engineering. A lot 249 99:59:59,999 --> 99:59:59,999 of, uh, the most popular tools out there 250 99:59:59,999 --> 99:59:59,999 were built by teams of less than ten. 251 99:59:59,999 --> 99:59:59,999 Gmail, for example, was built by a team of 252 99:59:59,999 --> 99:59:59,999 I think like five to seven people? It's 253 99:59:59,999 --> 99:59:59,999 maintained by, like, a team of over 400 254 99:59:59,999 --> 99:59:59,999 engineers. So you can get a lot done 255 99:59:59,999 --> 99:59:59,999 collectively as a small group in terms of 256 99:59:59,999 --> 99:59:59,999 productivity, in terms of building really 257 99:59:59,999 --> 99:59:59,999 cool products, without having super 258 99:59:59,999 --> 99:59:59,999 talented engineers. If they all work 259 99:59:59,999 --> 99:59:59,999 really well together, a lot of mediocre 260 99:59:59,999 --> 99:59:59,999 engineers can do more than a few talented 261 99:59:59,999 --> 99:59:59,999 engineers who are kind of assholes. 262 99:59:59,999 --> 99:59:59,999 Alright. The bonus section is diversity. 263 99:59:59,999 --> 99:59:59,999 So to illustrate diversity, I have 264 99:59:59,999 --> 99:59:59,999 sneetches. The story of sneetches is a Dr. 265 99:59:59,999 --> 99:59:59,999 Seuss book. There's the star-bellied 266 99:59:59,999 --> 99:59:59,999 sneetches and the non-star-bellied 267 99:59:59,999 --> 99:59:59,999 sneetches. And it's this story about the 268 99:59:59,999 --> 99:59:59,999 rift that's caused in the community of 269 99:59:59,999 --> 99:59:59,999 sneetches based on those who had star 270 99:59:59,999 --> 99:59:59,999 bellies and those who did not have star 271 99:59:59,999 --> 99:59:59,999 bellies. And I use it to represent 272 99:59:59,999 --> 99:59:59,999 diversity because diversity can mean a lot 273 99:59:59,999 --> 99:59:59,999 of things. There's the classic ones, 274 99:59:59,999 --> 99:59:59,999 there's gender and racial diversity. 275 99:59:59,999 --> 99:59:59,999 There's also things like introverts vs 276 99:59:59,999 --> 99:59:59,999 extroverts. Um. Communication styles. 277 99:59:59,999 --> 99:59:59,999 I don't know. Philosophical backgrounds. 278 99:59:59,999 --> 99:59:59,999 Cultural backgrounds that don't have to do 279 99:59:59,999 --> 99:59:59,999 with race but have to do with how you were 280 99:59:59,999 --> 99:59:59,999 brought up. So diversity can mean a lot 281 99:59:59,999 --> 99:59:59,999 of things at companies. And why is 282 99:59:59,999 --> 99:59:59,999 diversity critical? And why is onboarding 283 99:59:59,999 --> 99:59:59,999 a really useful tool for increasing diversity? 284 99:59:59,999 --> 99:59:59,999 Well, basically what happens is this. If 285 99:59:59,999 --> 99:59:59,999 you have no onboarding, people coming into 286 99:59:59,999 --> 99:59:59,999 the company are going to rely on the 287 99:59:59,999 --> 99:59:59,999 existing social structures to get up to 288 99:59:59,999 --> 99:59:59,999 speed. So that means whatever the original 289 99:59:59,999 --> 99:59:59,999 group of people is, they probably have a 290 99:59:59,999 --> 99:59:59,999 way that they talk about things. They 291 99:59:59,999 --> 99:59:59,999 probably have certain social events that 292 99:59:59,999 --> 99:59:59,999 they do. They probably look fairly 293 99:59:59,999 --> 99:59:59,999 similar. And if someone comes onboard 294 99:59:59,999 --> 99:59:59,999 who's like them, who's able to communicate, 295 99:59:59,999 --> 99:59:59,999 who's able to go out with them, who's able 296 99:59:59,999 --> 99:59:59,999 to connect with this core group based on 297 99:59:59,999 --> 99:59:59,999 these existing social structures, they're 298 99:59:59,999 --> 99:59:59,999 going to do better than someone who's not 299 99:59:59,999 --> 99:59:59,999 like the original group. Because what you 300 99:59:59,999 --> 99:59:59,999 have when you have no onboarding is not 301 99:59:59,999 --> 99:59:59,999 no onboarding. You have onboarding that 302 99:59:59,999 --> 99:59:59,999 relies on the social structures that you 303 99:59:59,999 --> 99:59:59,999 have in place. So creating an onboarding 304 99:59:59,999 --> 99:59:59,999 program that's slightly more structured, 305 99:59:59,999 --> 99:59:59,999 slightly more explicit, will benefit 306 99:59:59,999 --> 99:59:59,999 people who are different, people who don't 307 99:59:59,999 --> 99:59:59,999 naturally speak the way that people at 308 99:59:59,999 --> 99:59:59,999 your company already speak, that don't 309 99:59:59,999 --> 99:59:59,999 naturally want to do the types of 310 99:59:59,999 --> 99:59:59,999 activities that people at your company 311 99:59:59,999 --> 99:59:59,999 wanna do. Because not everyone wants to 312 99:59:59,999 --> 99:59:59,999 go out drinking at 10pm on a Tuesday night 313 99:59:59,999 --> 99:59:59,999 if you have a really young, party-oriented 314 99:59:59,999 --> 99:59:59,999 company. So you want to give everyone 315 99:59:59,999 --> 99:59:59,999 a fair chance because there's very 316 99:59:59,999 --> 99:59:59,999 talented people who look very different 317 99:59:59,999 --> 99:59:59,999 from each other. 318 99:59:59,999 --> 99:59:59,999 Who can onboard? Anyone can onboard! 319 99:59:59,999 --> 99:59:59,999 This is a team of people carrying a canoe, 320 99:59:59,999 --> 99:59:59,999 this is not a group of ants carrying a 321 99:59:59,999 --> 99:59:59,999 taco, just to let you know. I draw these 322 99:59:59,999 --> 99:59:59,999 myself, by the way. I'm not a very good 323 99:59:59,999 --> 99:59:59,999 artist. Um. Anyone can onboard, and in 324 99:59:59,999 --> 99:59:59,999 fact onboarding should be a collective 325 99:59:59,999 --> 99:59:59,999 effort. This distributes the load. 326 99:59:59,999 --> 99:59:59,999 One person alone trying to onboard 327 99:59:59,999 --> 99:59:59,999 everyone is gonna burn them out. 328 99:59:59,999 --> 99:59:59,999 Similarly, I was talking to someone about 329 99:59:59,999 --> 99:59:59,999 mentorship, and someone else was saying, 330 99:59:59,999 --> 99:59:59,999 oh, you have to have a lot of experience 331 99:59:59,999 --> 99:59:59,999 to mentor. And depending on the type of 332 99:59:59,999 --> 99:59:59,999 mentoring you're doing, that's true. 333 99:59:59,999 --> 99:59:59,999 But going from junior engineer to senior 334 99:59:59,999 --> 99:59:59,999 engineer is not a one-step process. 335 99:59:59,999 --> 99:59:59,999 It involves going from junior engineer to 336 99:59:59,999 --> 99:59:59,999 less-junior engineer, to less-junior 337 99:59:59,999 --> 99:59:59,999 engineer, to maybe mid-level engineer, to 338 99:59:59,999 --> 99:59:59,999 slightly more mid-level engineer, to 'hey! 339 99:59:59,999 --> 99:59:59,999 oh! I kind of think I get this now!' 340 99:59:59,999 --> 99:59:59,999 And so having someone that's very 341 99:59:59,999 --> 99:59:59,999 experienced, who can guide the overall 342 99:59:59,999 --> 99:59:59,999 path is important, but some of the best 343 99:59:59,999 --> 99:59:59,999 people to mentor and train your new junior 344 99:59:59,999 --> 99:59:59,999 engineers are going to be the ones who 345 99:59:59,999 --> 99:59:59,999 just did it. They're going to still have 346 99:59:59,999 --> 99:59:59,999 empathy for what it's like to take that step. 347 99:59:59,999 --> 99:59:59,999 They're going to understand the problems 348 99:59:59,999 --> 99:59:59,999 that they're running into. They're going 349 99:59:59,999 --> 99:59:59,999 to actually care about what this person is 350 99:59:59,999 --> 99:59:59,999 doing, and the more senior you get and the 351 99:59:59,999 --> 99:59:59,999 further away from that you get, the less 352 99:59:59,999 --> 99:59:59,999 empathy that you have for people. And in 353 99:59:59,999 --> 99:59:59,999 fact we all know this. Senior engineers 354 99:59:59,999 --> 99:59:59,999 are total curmudgeons. They're like, 355 99:59:59,999 --> 99:59:59,999 'everything is going to break and it's all 356 99:59:59,999 --> 99:59:59,999 going to hell and I don't know why we care 357 99:59:59,999 --> 99:59:59,999 and come into work every day.' And junior 358 99:59:59,999 --> 99:59:59,999 engineers are like, 'oh my god, that's 359 99:59:59,999 --> 99:59:59,999 awful, I'm so excited about what I'm doing.' 360 99:59:59,999 --> 99:59:59,999 When? Okay. Onboarding starts as soon as 361 99:59:59,999 --> 99:59:59,999 the offer is accepted. 362 99:59:59,999 --> 99:59:59,999 Basically, onboarding is not just about 363 99:59:59,999 --> 99:59:59,999 teaching someone the skills that they need 364 99:59:59,999 --> 99:59:59,999 to be successful about your company; 365 99:59:59,999 --> 99:59:59,999 it's about bringing another human being 366 99:59:59,999 --> 99:59:59,999 into a group of human beings. So: making 367 99:59:59,999 --> 99:59:59,999 someone feel welcome. Figuring out how to 368 99:59:59,999 --> 99:59:59,999 integrate them into the team. That's going 369 99:59:59,999 --> 99:59:59,999 to start as soon as they've decided to come on board. 370 99:59:59,999 --> 99:59:59,999 Onboarding roughly ends when someone is reliably independent. 371 99:59:59,999 --> 99:59:59,999 And this can mean different things to different companies, 372 99:59:59,999 --> 99:59:59,999 and I left it kind of vague on purpose, 373 99:59:59,999 --> 99:59:59,999 but the idea for a junior engineer at least 374 99:59:59,999 --> 99:59:59,999 is that we bring them into the company and 375 99:59:59,999 --> 99:59:59,999 they're kind of - like our onboarding 376 99:59:59,999 --> 99:59:59,999 program is done when they're reliably independent. 377 99:59:59,999 --> 99:59:59,999 We can give them tasks and trust that 378 99:59:59,999 --> 99:59:59,999 they're going to come up with 379 99:59:59,999 --> 99:59:59,999 a semi-reasonable solution 380 99:59:59,999 --> 99:59:59,999 in a semi-reasonable amount of time. 381 99:59:59,999 --> 99:59:59,999 And we can manage that effectively. 382 99:59:59,999 --> 99:59:59,999 So the how section that we're going to go 383 99:59:59,999 --> 99:59:59,999 through now is a little bit 384 99:59:59,999 --> 99:59:59,999 philosophically about how to do this, 385 99:59:59,999 --> 99:59:59,999 but we're also going to focus on concrete 386 99:59:59,999 --> 99:59:59,999 examples and ideas for how you can build 387 99:59:59,999 --> 99:59:59,999 the onboarding program at your company. 388 99:59:59,999 --> 99:59:59,999 The first thing to think about when onboarding people 389 99:59:59,999 --> 99:59:59,999 is to maximize your return on investment. 390 99:59:59,999 --> 99:59:59,999 And this might seem somewhat callous, but 391 99:59:59,999 --> 99:59:59,999 at the end of the day why wouldn't you 392 99:59:59,999 --> 99:59:59,999 want to maximize your return on investment? 393 99:59:59,999 --> 99:59:59,999 Like you don't want to put a ton of 394 99:59:59,999 --> 99:59:59,999 resources into something and get less out 395 99:59:59,999 --> 99:59:59,999 of it than you put in. That just doesn't 396 99:59:59,999 --> 99:59:59,999 even make sense. 397 99:59:59,999 --> 99:59:59,999 It's a really, really common pitfall for 398 99:59:59,999 --> 99:59:59,999 mentors, especially first-time mentors. 399 99:59:59,999 --> 99:59:59,999 So if you have people onboarding junior 400 99:59:59,999 --> 99:59:59,999 engineers at your company and they've 401 99:59:59,999 --> 99:59:59,999 never onboarded someone, what you 402 99:59:59,999 --> 99:59:59,999 essentially have is you have a junior mentor 403 99:59:59,999 --> 99:59:59,999 onboarding a junior engineer. 404 99:59:59,999 --> 99:59:59,999 That you have someone who's never done 405 99:59:59,999 --> 99:59:59,999 this before, they don't know what's going on. 406 99:59:59,999 --> 99:59:59,999 I love talking to people who are first-time mentors. 407 99:59:59,999 --> 99:59:59,999 They're like, I'm going to be the best 408 99:59:59,999 --> 99:59:59,999 onboarding mentor ever. We're going to do 409 99:59:59,999 --> 99:59:59,999 everything together, we're going to take 410 99:59:59,999 --> 99:59:59,999 these courses, we're just going to - 411 99:59:59,999 --> 99:59:59,999 by the, by time they're done with these 412 99:59:59,999 --> 99:59:59,999 three months they're going to know 413 99:59:59,999 --> 99:59:59,999 everything I know. 414 99:59:59,999 --> 99:59:59,999 And that's highly unrealistic because 415 99:59:59,999 --> 99:59:59,999 people only absorb information at certain rates. 416 99:59:59,999 --> 99:59:59,999 Also your expertise has to do with the 417 99:59:59,999 --> 99:59:59,999 number of issues that you've seen, and it 418 99:59:59,999 --> 99:59:59,999 just takes time. Over time you see more 419 99:59:59,999 --> 99:59:59,999 issues, you solve them, you fix them. 420 99:59:59,999 --> 99:59:59,999 So people are going to grow at the rate 421 99:59:59,999 --> 99:59:59,999 they're going to grow. You can help 422 99:59:59,999 --> 99:59:59,999 make that better, you can help focus their path, 423 99:59:59,999 --> 99:59:59,999 but you're not going to make them into a 424 99:59:59,999 --> 99:59:59,999 senior engineer overnight. 425 99:59:59,999 --> 99:59:59,999 This tends to burn out mentors, so 426 99:59:59,999 --> 99:59:59,999 people do this, they burn themselves out 427 99:59:59,999 --> 99:59:59,999 in three months because it's exhausting 428 99:59:59,999 --> 99:59:59,999 teaching someone, and then they're like, 429 99:59:59,999 --> 99:59:59,999 I can't be a mentor again for another year. 430 99:59:59,999 --> 99:59:59,999 And your company's like, well, OK, I guess 431 99:59:59,999 --> 99:59:59,999 we can't hire any more junior engineers. 432 99:59:59,999 --> 99:59:59,999 Like, we don't have anyone to train them. 433 99:59:59,999 --> 99:59:59,999 Instead I like to think of it as 434 99:59:59,999 --> 99:59:59,999 bumper bowling. 435 99:59:59,999 --> 99:59:59,999 One of the tenets of expertise is that 436 99:59:59,999 --> 99:59:59,999 you're able to set boundaries. You know 437 99:59:59,999 --> 99:59:59,999 the landscape. You know everything about 438 99:59:59,999 --> 99:59:59,999 this arena. So you can set boundaries. 439 99:59:59,999 --> 99:59:59,999 You can scope problems. You can figure 440 99:59:59,999 --> 99:59:59,999 out exactly what needs to be done, and 441 99:59:59,999 --> 99:59:59,999 exactly what doesn't need to be done. 442 99:59:59,999 --> 99:59:59,999 Junior engineers, by definition, are not 443 99:59:59,999 --> 99:59:59,999 good at scoping. They don't know what the 444 99:59:59,999 --> 99:59:59,999 boundaries are. So what you need to do is 445 99:59:59,999 --> 99:59:59,999 set them for the junior engineers. 446 99:59:59,999 --> 99:59:59,999 Bumper bowling is a great example. 447 99:59:59,999 --> 99:59:59,999 You just - you set up the bumpers. 448 99:59:59,999 --> 99:59:59,999 It's fine if they just hit the bumper on 449 99:59:59,999 --> 99:59:59,999 each side going down. They're still 450 99:59:59,999 --> 99:59:59,999 going in that direction, and that's where 451 99:59:59,999 --> 99:59:59,999 we want them to go. You don't have to 452 99:59:59,999 --> 99:59:59,999 handhold them through the process. 453 99:59:59,999 --> 99:59:59,999 You don't have to spend tons of time with 454 99:59:59,999 --> 99:59:59,999 them. Instead you can just create an 455 99:59:59,999 --> 99:59:59,999 environment where they can kind of mess up 456 99:59:59,999 --> 99:59:59,999 and learn on their own, and you can come 457 99:59:59,999 --> 99:59:59,999 in and help them grow when that needs to happen. 458 99:59:59,999 --> 99:59:59,999 So the onboarding plan - there's three 459 99:59:59,999 --> 99:59:59,999 major categories. 460 99:59:59,999 --> 99:59:59,999 There's technical knowledge, company 461 99:59:59,999 --> 99:59:59,999 knowledge and process, and personal development. 462 99:59:59,999 --> 99:59:59,999 These are about equal thirds for someone. 463 99:59:59,999 --> 99:59:59,999 We tend to think that the technical 464 99:59:59,999 --> 99:59:59,999 knowledge is the most important thing, and 465 99:59:59,999 --> 99:59:59,999 it's, people think it's like 80% of what 466 99:59:59,999 --> 99:59:59,999 engineers do. It's probably about a third. 467 99:59:59,999 --> 99:59:59,999 Like, another third is domain knowledge of 468 99:59:59,999 --> 99:59:59,999 that company. How do I build a feature at 469 99:59:59,999 --> 99:59:59,999 this company. How do I ship code at this 470 99:59:59,999 --> 99:59:59,999 company. How do I deploy, given our 471 99:59:59,999 --> 99:59:59,999 deployment system. And then personal 472 99:59:59,999 --> 99:59:59,999 development. Like the confidence, the 473 99:59:59,999 --> 99:59:59,999 autonomy, all of those different things, 474 99:59:59,999 --> 99:59:59,999 that's another third. People tend to think 475 99:59:59,999 --> 99:59:59,999 that skills - or that confidence follows 476 99:59:59,999 --> 99:59:59,999 skills, but in practice it's usually the reverse. 477 99:59:59,999 --> 99:59:59,999 People who are confident will gain skills 478 99:59:59,999 --> 99:59:59,999 at a much more rapid rate than people 479 99:59:59,999 --> 99:59:59,999 who lack confidence. 480 99:59:59,999 --> 99:59:59,999 OK. Week 1. Week 1 should be pretty simple 481 99:59:59,999 --> 99:59:59,999 for new engineers. Dev environment setup 482 99:59:59,999 --> 99:59:59,999 is really important. The thing that you 483 99:59:59,999 --> 99:59:59,999 can do to help new engineers is just 484 99:59:59,999 --> 99:59:59,999 automate as many tools as possible. 485 99:59:59,999 --> 99:59:59,999 The more automation the better. 486 99:59:59,999 --> 99:59:59,999 The more maintainability the better. 487 99:59:59,999 --> 99:59:59,999 As engineers, that is one of the best 488 99:59:59,999 --> 99:59:59,999 things we can do for people's process, is 489 99:59:59,999 --> 99:59:59,999 make sure that a lot of these things are 490 99:59:59,999 --> 99:59:59,999 automated. So shipping code as well. 491 99:59:59,999 --> 99:59:59,999 If shipping code is really well-automated, 492 99:59:59,999 --> 99:59:59,999 and it's super easy for you to ship code, 493 99:59:59,999 --> 99:59:59,999 it's going to be easy to bring someone, 494 99:59:59,999 --> 99:59:59,999 even someone who's junior, on board, 495 99:59:59,999 --> 99:59:59,999 and get them to a place where they can ship code. 496 99:59:59,999 --> 99:59:59,999 So for dev environments, again, automation. 497 99:59:59,999 --> 99:59:59,999 Have the last person who set up the 498 99:59:59,999 --> 99:59:59,999 dev environment help the new person. 499 99:59:59,999 --> 99:59:59,999 They know all the pitfalls. They just 500 99:59:59,999 --> 99:59:59,999 did it. They just had to go through 501 99:59:59,999 --> 99:59:59,999 setting up their development environment. 502 99:59:59,999 --> 99:59:59,999 You don't need a senior engineer, you 503 99:59:59,999 --> 99:59:59,999 don't need someone who knows a lot about 504 99:59:59,999 --> 99:59:59,999 some other random thing. It's just dev 505 99:59:59,999 --> 99:59:59,999 environment setup. So the last person who 506 99:59:59,999 --> 99:59:59,999 joined does dev environment setup. 507 99:59:59,999 --> 99:59:59,999 Have them ship small changes as soon as possible. 508 99:59:59,999 --> 99:59:59,999 If you can have someone deploy on the 509 99:59:59,999 --> 99:59:59,999 first day, that's awesome. That means you 510 99:59:59,999 --> 99:59:59,999 have really good automation tools. 511 99:59:59,999 --> 99:59:59,999 Third, journaling and note-taking. 512 99:59:59,999 --> 99:59:59,999 Have them start taking notes. Three things 513 99:59:59,999 --> 99:59:59,999 that they learned this week. For junior 514 99:59:59,999 --> 99:59:59,999 engineers, this is going to be really important. 515 99:59:59,999 --> 99:59:59,999 They're probably not going to know a lot of things, 516 99:59:59,999 --> 99:59:59,999 and you're going to be surprised at what 517 99:59:59,999 --> 99:59:59,999 they do and don't know, so having them 518 99:59:59,999 --> 99:59:59,999 take notes that you can talk about once a 519 99:59:59,999 --> 99:59:59,999 week is really great. 520 99:59:59,999 --> 99:59:59,999 And then finally, a social event. And a 521 99:59:59,999 --> 99:59:59,999 social event's actually a really good 522 99:59:59,999 --> 99:59:59,999 activity, even for people who are not 523 99:59:59,999 --> 99:59:59,999 junior. A social event's just: we're gonna 524 99:59:59,999 --> 99:59:59,999 hang out, I'm going to learn everyone on 525 99:59:59,999 --> 99:59:59,999 my immediate team's name, because if I 526 99:59:59,999 --> 99:59:59,999 want to ask a question, it's really nice 527 99:59:59,999 --> 99:59:59,999 to know that person's name. And I'm going 528 99:59:59,999 --> 99:59:59,999 to feel more comfortable talking to other 529 99:59:59,999 --> 99:59:59,999 people on my team. Because a huge amount 530 99:59:59,999 --> 99:59:59,999 of work that you need when you're new, 531 99:59:59,999 --> 99:59:59,999 regardless of level, is just the ability 532 99:59:59,999 --> 99:59:59,999 to go talk to someone else on your team. 533 99:59:59,999 --> 99:59:59,999 Alright. Week 2. Week 2 you can start 534 99:59:59,999 --> 99:59:59,999 throwing more information at your new engineer. 535 99:59:59,999 --> 99:59:59,999 The first week is so overwhelming 536 99:59:59,999 --> 99:59:59,999 a lot of times that things just go in one 537 99:59:59,999 --> 99:59:59,999 ear and out the other. So I recommend 538 99:59:59,999 --> 99:59:59,999 doing history of the company and team map 539 99:59:59,999 --> 99:59:59,999 second week. So history of the company - 540 99:59:59,999 --> 99:59:59,999 where does the company come from, 541 99:59:59,999 --> 99:59:59,999 why was it started, who were the founders, 542 99:59:59,999 --> 99:59:59,999 what was the reason that it got here, 543 99:59:59,999 --> 99:59:59,999 what were some of the pitfalls that 544 99:59:59,999 --> 99:59:59,999 happened along the way, why do we target 545 99:59:59,999 --> 99:59:59,999 the markets that we target. And a team map, 546 99:59:59,999 --> 99:59:59,999 which seems really simple, but just giving 547 99:59:59,999 --> 99:59:59,999 them a map - like, this is Bob, Bob sits 548 99:59:59,999 --> 99:59:59,999 over there, Bob is really good at redis, 549 99:59:59,999 --> 99:59:59,999 he deals with all of our asynchronous 550 99:59:59,999 --> 99:59:59,999 task queues, um, so go talk to him about 551 99:59:59,999 --> 99:59:59,999 that. Or, like, so-and-so is really good 552 99:59:59,999 --> 99:59:59,999 at building fully-fledged future products. 553 99:59:59,999 --> 99:59:59,999 They have a great design sense, but 554 99:59:59,999 --> 99:59:59,999 they're also good at building front-end 555 99:59:59,999 --> 99:59:59,999 features. So knowing those things is super 556 99:59:59,999 --> 99:59:59,999 helpful to new engineers. 557 99:59:59,999 --> 99:59:59,999 Shadowing and code labs are good 558 99:59:59,999 --> 99:59:59,999 activities to get started the second or 559 99:59:59,999 --> 99:59:59,999 third week. Shadowing is what it sounds 560 99:59:59,999 --> 99:59:59,999 like. Have them sit down with someone 561 99:59:59,999 --> 99:59:59,999 who's more senior, either mid-level or 562 99:59:59,999 --> 99:59:59,999 senior, whatever you want to do, and watch 563 99:59:59,999 --> 99:59:59,999 what that other person does. What kind of 564 99:59:59,999 --> 99:59:59,999 keyboard shortcuts do they use? What type 565 99:59:59,999 --> 99:59:59,999 of bash commands do they use? What does 566 99:59:59,999 --> 99:59:59,999 that bash command do? Why are they doing 567 99:59:59,999 --> 99:59:59,999 all of the things that they're doing? They 568 99:59:59,999 --> 99:59:59,999 can learn and absorb a lot of information 569 99:59:59,999 --> 99:59:59,999 just by watching other people for an hour, 570 99:59:59,999 --> 99:59:59,999 either once a week or every day if you 571 99:59:59,999 --> 99:59:59,999 want to be really aggressive. 572 99:59:59,999 --> 99:59:59,999 Code labs are something that was started 573 99:59:59,999 --> 99:59:59,999 at Eventbrite. Basically it's like a 574 99:59:59,999 --> 99:59:59,999 new engineer AMA. So it's a safe space - 575 99:59:59,999 --> 99:59:59,999 emphasis on the word safe, no judgment, 576 99:59:59,999 --> 99:59:59,999 your questions are not stupid - it's 577 99:59:59,999 --> 99:59:59,999 totally fine if they want to ask concepts 578 99:59:59,999 --> 99:59:59,999 that might seem really beginner, but 579 99:59:59,999 --> 99:59:59,999 they can just ask one of the engineers 580 99:59:59,999 --> 99:59:59,999 at your company anything. So you can 581 99:59:59,999 --> 99:59:59,999 rotate the engineers, people with 582 99:59:59,999 --> 99:59:59,999 different expertise can come in, but 583 99:59:59,999 --> 99:59:59,999 really what you want for the person 584 99:59:59,999 --> 99:59:59,999 running a Code Lab is someone who makes 585 99:59:59,999 --> 99:59:59,999 people feel safe. Again, if people are 586 99:59:59,999 --> 99:59:59,999 terrified of asking questions they're not 587 99:59:59,999 --> 99:59:59,999 going to ask questions. 588 99:59:59,999 --> 99:59:59,999 Week 3. Now we start to get into some 589 99:59:59,999 --> 99:59:59,999 of the higher-level stuff. One-on-ones, 590 99:59:59,999 --> 99:59:59,999 goal-setting, feedback, presentations. 591 99:59:59,999 --> 99:59:59,999 One-on-ones. Most companies have totally 592 99:59:59,999 --> 99:59:59,999 bought into the idea that you need to do 593 99:59:59,999 --> 99:59:59,999 these now, but weekly one-on-ones are 594 99:59:59,999 --> 99:59:59,999 really important. Emphasis on weekly. 595 99:59:59,999 --> 99:59:59,999 Having channels for feedback, for easy 596 99:59:59,999 --> 99:59:59,999 communication, is so important. If 597 99:59:59,999 --> 99:59:59,999 someone runs into an issue, the overhead 598 99:59:59,999 --> 99:59:59,999 for telling someone who's more senior 599 99:59:59,999 --> 99:59:59,999 about this problem that they've run 600 99:59:59,999 --> 99:59:59,999 into is really high. Having to schedule a 601 99:59:59,999 --> 99:59:59,999 meeting to give someone bad news is one 602 99:59:59,999 --> 99:59:59,999 of the worst things that anyone has to do. 603 99:59:59,999 --> 99:59:59,999 So creating these channels for constant 604 99:59:59,999 --> 99:59:59,999 feedback is really important. Even if 605 99:59:59,999 --> 99:59:59,999 every week they're like, 'I'm doing great, 606 99:59:59,999 --> 99:59:59,999 there's nothing to talk about!' 607 99:59:59,999 --> 99:59:59,999 That's totally fine. This is still 608 99:59:59,999 --> 99:59:59,999 a really good thing to do. 609 99:59:59,999 --> 99:59:59,999 Goal-setting and feedback: it might seem 610 99:59:59,999 --> 99:59:59,999 really silly and simple and kind of like, 611 99:59:59,999 --> 99:59:59,999 second-grade - what are your goals for this? 612 99:59:59,999 --> 99:59:59,999 But people are goal-oriented, and they do 613 99:59:59,999 --> 99:59:59,999 really well if they set goals. 'In the 614 99:59:59,999 --> 99:59:59,999 next three months I would like to learn 615 99:59:59,999 --> 99:59:59,999 more about how to build features in 616 99:59:59,999 --> 99:59:59,999 JavaScript. In the next six months, I'd 617 99:59:59,999 --> 99:59:59,999 really like to learn how to build the API 618 99:59:59,999 --> 99:59:59,999 layer for the features that I've built in JavaScript.' 619 99:59:59,999 --> 99:59:59,999 Presentations. The best way to learn 620 99:59:59,999 --> 99:59:59,999 something is to teach it. This has been 621 99:59:59,999 --> 99:59:59,999 proven over and over again. So, force your 622 99:59:59,999 --> 99:59:59,999 new engineers to do five-minute 623 99:59:59,999 --> 99:59:59,999 presentations on topics. 'I want you to 624 99:59:59,999 --> 99:59:59,999 present on regular expressions. Tell us 625 99:59:59,999 --> 99:59:59,999 everything that you can figure out about 626 99:59:59,999 --> 99:59:59,999 regular expressions, do a short 627 99:59:59,999 --> 99:59:59,999 presentation about them, teach us regular 628 99:59:59,999 --> 99:59:59,999 expressions.' And by the end of that 629 99:59:59,999 --> 99:59:59,999 presentation, they'll know how to use 630 99:59:59,999 --> 99:59:59,999 regular expressions. By the way, I gave 631 99:59:59,999 --> 99:59:59,999 this talk at RailsConf, which is ruby, and 632 99:59:59,999 --> 99:59:59,999 I totally didn't even think about what I'd 633 99:59:59,999 --> 99:59:59,999 written on this slide here, but multiple 634 99:59:59,999 --> 99:59:59,999 people at the end came up and they were 635 99:59:59,999 --> 99:59:59,999 like, you do know that that was in Python, 636 99:59:59,999 --> 99:59:59,999 right? I was like, yeah, Python is awesome. 637 99:59:59,999 --> 99:59:59,999 They notice. 638 99:59:59,999 --> 99:59:59,999 Alright. Week 4. Week 4 is review concepts, 639 99:59:59,999 --> 99:59:59,999 check in regular, regularly, elective 640 99:59:59,999 --> 99:59:59,999 shadowing, and start co-piloting, 641 99:59:59,999 --> 99:59:59,999 co-piloting a larger project. So basically 642 99:59:59,999 --> 99:59:59,999 now you're just kind of setting, getting 643 99:59:59,999 --> 99:59:59,999 set into a rhythm. You want to be able to 644 99:59:59,999 --> 99:59:59,999 check in with them, you want them to feel 645 99:59:59,999 --> 99:59:59,999 as if they can talk to you, shadowing can 646 99:59:59,999 --> 99:59:59,999 become elective, hopefully they have 647 99:59:59,999 --> 99:59:59,999 enough confidence now to say, oh I want to 648 99:59:59,999 --> 99:59:59,999 shadow that person and learn that thing, 649 99:59:59,999 --> 99:59:59,999 and go set it up for themselves. 650 99:59:59,999 --> 99:59:59,999 Co-piloting a larger project is kind of 651 99:59:59,999 --> 99:59:59,999 like driver's ed. They can do this with 652 99:59:59,999 --> 99:59:59,999 someone who's much more senior, but the 653 99:59:59,999 --> 99:59:59,999 senior person really has an emergency 654 99:59:59,999 --> 99:59:59,999 brake on their side, so they can give them 655 99:59:59,999 --> 99:59:59,999 tasks - Actually, the way I, the way I 656 99:59:59,999 --> 99:59:59,999 like to do it is, if you put them with 657 99:59:59,999 --> 99:59:59,999 someone who's more senior, they do all 658 99:59:59,999 --> 99:59:59,999 of the grunt tasks. The senior person 659 99:59:59,999 --> 99:59:59,999 doesn't want to do, I don't know, all of 660 99:59:59,999 --> 99:59:59,999 these grunt tasks that are too trivial 661 99:59:59,999 --> 99:59:59,999 for them, but just work that has to get 662 99:59:59,999 --> 99:59:59,999 done, but that is really valuable learning 663 99:59:59,999 --> 99:59:59,999 for someone who's junior. They've never 664 99:59:59,999 --> 99:59:59,999 seen any of it before. So it's exciting. 665 99:59:59,999 --> 99:59:59,999 So then you have these really great 666 99:59:59,999 --> 99:59:59,999 pairings of someone who's very senior 667 99:59:59,999 --> 99:59:59,999 and someone who's very junior, and the 668 99:59:59,999 --> 99:59:59,999 junior person's running around doing all 669 99:59:59,999 --> 99:59:59,999 the grunt work and super-excited about it, 670 99:59:59,999 --> 99:59:59,999 and the senior person is thrilled that 671 99:59:59,999 --> 99:59:59,999 they don't have to do the grunt work any more. 672 99:59:59,999 --> 99:59:59,999 Alright. Beyond. If onboarding has gone 673 99:59:59,999 --> 99:59:59,999 well, hopefully this comes and it's really 674 99:59:59,999 --> 99:59:59,999 easy. You just check in on progress, you 675 99:59:59,999 --> 99:59:59,999 tailor projects and code labs to their 676 99:59:59,999 --> 99:59:59,999 needs, you start doing formal apprenticeships, 677 99:59:59,999 --> 99:59:59,999 and you start doing assessment, and 678 99:59:59,999 --> 99:59:59,999 hopefully those assessments are positive. 679 99:59:59,999 --> 99:59:59,999 Apprenticeships - that has to do a little 680 99:59:59,999 --> 99:59:59,999 bit with what I talked about. Just being 681 99:59:59,999 --> 99:59:59,999 taken under someone's wing. The best way 682 99:59:59,999 --> 99:59:59,999 to learn is from imitating someone who's 683 99:59:59,999 --> 99:59:59,999 really good at something. In fact they 684 99:59:59,999 --> 99:59:59,999 find that that's true with athletes. 685 99:59:59,999 --> 99:59:59,999 Athletes who are put under someone who's, 686 99:59:59,999 --> 99:59:59,999 like, really good and much more 687 99:59:59,999 --> 99:59:59,999 experienced at the sport will learn it at 688 99:59:59,999 --> 99:59:59,999 a faster rate. So just put them around 689 99:59:59,999 --> 99:59:59,999 people who are good at this that they can 690 99:59:59,999 --> 99:59:59,999 watch and imitate and follow. If you put 691 99:59:59,999 --> 99:59:59,999 them with someone who has bad practices, 692 99:59:59,999 --> 99:59:59,999 and I've seen this happen, and it's a pet 693 99:59:59,999 --> 99:59:59,999 peeve of mine - if you put them with 694 99:59:59,999 --> 99:59:59,999 someone who's senior but who has really 695 99:59:59,999 --> 99:59:59,999 bad practices, and that junior person 696 99:59:59,999 --> 99:59:59,999 picks up those bad practices, and you 697 99:59:59,999 --> 99:59:59,999 punish that junior person for the bad 698 99:59:59,999 --> 99:59:59,999 practices that they picked up from the 699 99:59:59,999 --> 99:59:59,999 person that you paired them with, that 700 99:59:59,999 --> 99:59:59,999 is a really bad experience. So a lot of 701 99:59:59,999 --> 99:59:59,999 times we let senior engineers get away 702 99:59:59,999 --> 99:59:59,999 with behavior that we wouldn't let junior 703 99:59:59,999 --> 99:59:59,999 engineers get away with. Be cognizant 704 99:59:59,999 --> 99:59:59,999 of that. So know what bad practices some 705 99:59:59,999 --> 99:59:59,999 of your engineers might be passing on to 706 99:59:59,999 --> 99:59:59,999 junior engineers, and don't punish them 707 99:59:59,999 --> 99:59:59,999 for it. Just explain to them why that's 708 99:59:59,999 --> 99:59:59,999 bad, or put them with someone who has a 709 99:59:59,999 --> 99:59:59,999 really good practice in that area. 710 99:59:59,999 --> 99:59:59,999 Assessment is really important. People's 711 99:59:59,999 --> 99:59:59,999 trajectories are gonna be wildly different. 712 99:59:59,999 --> 99:59:59,999 Some people are gonna do awesome and 713 99:59:59,999 --> 99:59:59,999 they're gonna shoot straight up, some 714 99:59:59,999 --> 99:59:59,999 people are gonna plateau, some people 715 99:59:59,999 --> 99:59:59,999 are gonna be really up and down. So having 716 99:59:59,999 --> 99:59:59,999 a plan for assessment is important. 717 99:59:59,999 --> 99:59:59,999 As we've said before, technical ability 718 99:59:59,999 --> 99:59:59,999 is not the only category to assess. 719 99:59:59,999 --> 99:59:59,999 There's confidence, there's code quality, 720 99:59:59,999 --> 99:59:59,999 communication, judgment, and technical 721 99:59:59,999 --> 99:59:59,999 knowledge. Judgment is one of the bigger 722 99:59:59,999 --> 99:59:59,999 ones. It's slightly more difficult to assess, 723 99:59:59,999 --> 99:59:59,999 but if you can hire people who have great 724 99:59:59,999 --> 99:59:59,999 judgment, you can trust them to do things, 725 99:59:59,999 --> 99:59:59,999 even if they're really junior, that are 726 99:59:59,999 --> 99:59:59,999 going to be good. And the example of this 727 99:59:59,999 --> 99:59:59,999 is one of my friends at Hearsay Social, 728 99:59:59,999 --> 99:59:59,999 the last company I was at, she worked in 729 99:59:59,999 --> 99:59:59,999 support for a long time. And she taught 730 99:59:59,999 --> 99:59:59,999 herself engineering on the side. So when 731 99:59:59,999 --> 99:59:59,999 she first started engineering, by every 732 99:59:59,999 --> 99:59:59,999 definition she was very junior at 733 99:59:59,999 --> 99:59:59,999 engineering. But she knew the product 734 99:59:59,999 --> 99:59:59,999 inside and out. She knew the customers 735 99:59:59,999 --> 99:59:59,999 inside and out, and she knew exactly what 736 99:59:59,999 --> 99:59:59,999 needed to be built in any given situation. 737 99:59:59,999 --> 99:59:59,999 In other words, she had excellent judgment. 738 99:59:59,999 --> 99:59:59,999 So I could give her tasks, tasks that, I 739 99:59:59,999 --> 99:59:59,999 mean, they were pretty simple but she 740 99:59:59,999 --> 99:59:59,999 might take a little bit longer on, but 741 99:59:59,999 --> 99:59:59,999 when she came back to me with the feature 742 99:59:59,999 --> 99:59:59,999 that she had built, I was like, yes, This 743 99:59:59,999 --> 99:59:59,999 exactly solves the problem that we wanted 744 99:59:59,999 --> 99:59:59,999 to solve. This is awesome. You've saved us 745 99:59:59,999 --> 99:59:59,999 all time. Conversely, engineers with bad 746 99:59:59,999 --> 99:59:59,999 judgment will build terrible things very 747 99:59:59,999 --> 99:59:59,999 quickly for your site, and then you're 748 99:59:59,999 --> 99:59:59,999 like, no no, please don't merge that, and 749 99:59:59,999 --> 99:59:59,999 you're like, taking code out. So judgment 750 99:59:59,999 --> 99:59:59,999 is something that's really really great if 751 99:59:59,999 --> 99:59:59,999 you can find it in someone, and it's hard 752 99:59:59,999 --> 99:59:59,999 to assess, but I recommend that as 753 99:59:59,999 --> 99:59:59,999 something to look for in junior engineers. 754 99:59:59,999 --> 99:59:59,999 Alright. The main takeaways. Onboarding 755 99:59:59,999 --> 99:59:59,999 aims to make new team members confident, 756 99:59:59,999 --> 99:59:59,999 productive, and independent. If you focus 757 99:59:59,999 --> 99:59:59,999 on these three things, and you really try 758 99:59:59,999 --> 99:59:59,999 to get people to that place, you're gonna 759 99:59:59,999 --> 99:59:59,999 have successful engineers most of the time. 760 99:59:59,999 --> 99:59:59,999 It benefits everyone in the long run. The 761 99:59:59,999 --> 99:59:59,999 individual gains skills, the company is 762 99:59:59,999 --> 99:59:59,999 more productive, the team is more productive, 763 99:59:59,999 --> 99:59:59,999 and diversity is better at your company. 764 99:59:59,999 --> 99:59:59,999 And finally anyone can be involved in 765 99:59:59,999 --> 99:59:59,999 onboarding, so you don't have to be super 766 99:59:59,999 --> 99:59:59,999 senior. Getting everyone involved will 767 99:59:59,999 --> 99:59:59,999 spread out the load, it will make it 768 99:59:59,999 --> 99:59:59,999 easier to onboard new engineers, and for 769 99:59:59,999 --> 99:59:59,999 startups who don't have resources, it's 770 99:59:59,999 --> 99:59:59,999 going to make it possible to hire junior 771 99:59:59,999 --> 99:59:59,999 engineers. And since there's two ways to 772 99:59:59,999 --> 99:59:59,999 get great engineers at your company, 773 99:59:59,999 --> 99:59:59,999 stealing them or making them, it's good to 774 99:59:59,999 --> 99:59:59,999 have channels for making engineers. 775 99:59:59,999 --> 99:59:59,999 And that's it!