Sunday 1:10 p.m.–1:40 p.m.
Technical on-boarding, training, and mentoring.
- Audience level:
This is a talk about how to make junior and new engineers into independent and productive members of your engineering team faster and cheaper. We will focus on python specific resources and libraries that will help you create a simple but effective on boarding program, and talk about case studies of companies that have had success using these techniques.
**Note**: We know this talk has limited ties to Python, although in the technical material section we will make it very Python specific. However, the nature of on-boarding an employee will always be somewhat language and tool agnostic because it involves more people problems and dynamics than technical problems. Even so, we believe that technical on-boarding is extremely important topic for the python community (and all other technical communities). **Abstract Intro** With the increase of code academies training new engineers there is an increase in junior engineers on the market. A lot of companies are hesitant to hire too many young engineers who need training because they lack sufficient resources to get them up to speed. This is a talk about how to make junior engineers into independent and productive members of your engineering team faster and cheaper. We will focus on python specific resources and libraries that will help you create a simple but effective on boarding program, and talk about case studies of companies that have had success using these techniques. **Understanding beginners vs. experts.** This part is important because in any line of teaching, coaching, or mentoring its important to understand how to get a student/employee to the next level. That means both understanding the technical subjects they need to learn, but also understanding the soft skills they need to work on such as confidence, tenacity, or communication. Understanding these goals will help get engineers up to speed faster and cheaper. **Onboarding Plan:** The general theme of the onboarding plan is this: “You’re not giving new engineers answers, you’re telling them where to go when they have questions.” The onboarding plan will cover 3 ways to help new engineers know where to go when they have questions and get up to speed faster: technical material, mentors, and team relationships. 1. **Technical material.** This can include reading material, documentation, and source code. In the python community, there are a lot of resources available to help give engineers a better understanding of how to use python and what the standards and best practices are. We will provide a catalog of the materials that already exist and how you can use these materials to help engineers answer questions they have without taking up the time of developers around them. Being able to navigate the wealth of information out there will additionally serve to help engineers feel more independent and confident in their own ability to solve problems. 2. **Mentors.** While people in the technology community general believe mentorship is good, there’s a lot of confusion about how to choose mentors for different engineers. There are a few guidelines when choosing mentors that will help with this process. The first guideline, the last person who learned something is the best person to teach it. I.e. the best person to help a new engineer set-up their development environment is the last engineer to join the company. Rather than having an engineer who’s been at the company longer try and walk new engineers through these tasks, simply assign the person who most recently learned it since it will be freshest in their mind. 3. **Team relationships.** It’s important to integrate a new engineer into the team as quickly as possible from a social standpoint. Regardless of what the company culture is, making sure that new engineers feel comfortable with their team is critical to their confidence and ability to ask questions of different people. If a new engineer feels comfortable with more people on the team, then they will feel comfortable spreading questions around to different teammates. If they feel comfortable with only one person, then there’s less of a chance that they’ll utilize the resources of the whole team. 4. **Environment.** Making sure the environment encourages questions, experimentation, and failure is important. It’s not enough to simply say that you believe in those things, the environment has to actively support that behavior at all times. **Case Studies of Companies:** **Hearsay Social** - I did onboarding at Hearsay Social for several years while the company was small. At Hearsay we had limited resources for onboarding new engineers and most people didn’t have time to take on a new person full-time. Additionally, if the new engineer was junior we needed to get them to a place where they were independent enough to work on their own as quickly as possible. 1. In order to get them integrated into the team as fast as possible, we had a social gathering within the first week of them joining so they could get to know their teammates and feel welcome. 2. We would have the last engineer to join the team help the new engineer setup their development environment. This engineer also walked them through the catalog of technical resources and documentation they could reference whenever they had a question about a tool or a coding convention. 3. New engineers were paired with a social peer mentor so they could ask questions about the team culture and other non-technical elements of the company. Finally, junior engineers would be paired with someone more experienced for their first big project. In addition to mentors, each engineer also had an engineering manager. **Eventbrite** - Eventbrite has been onboarding junior engineers out of Hackbright Academy in the past year and has some new techniques they’ve learned to get engineers up to speed quickly. 1. You don't need to be an expert in order to help a new engineer out with something- having other relatively new engineers helping your new one get started takes load off the sr people and helps both teacher and student. Student feels like they're not SO behind, teacher learns the material they're covering even better. THis is particularly useful when setting up the dev environment; have the most recent addition to the team assist in dev env setup. 2. Buddy system- unrelated to teaching, but bringing new eng on board culturally 3. Code labs- a hour set aside for new eng to ask questions about code, and usually lead into topics like django's ORM 4. An environment where it's OK to ask questions 5. Short, medium, long term goals- explicit ones- i.e. tracing a web request in django (short term goal).