Teaching
Great Expectations: Power-Charging Apprenticeship Programs

Summarized using AI

Great Expectations: Power-Charging Apprenticeship Programs

Louisa Barrett • December 01, 2017 • New Orleans, LA

In her talk at RubyConf 2017, Louisa Barrett discusses the essential elements of establishing effective apprenticeship programs in software development. She emphasizes that while apprenticeships are valuable for onboarding new talent, they require careful planning and commitment from an organization to ensure a successful experience for both the apprentice and the team.

Key Points Discussed:
- Value of Apprenticeships: Apprenticeships are vital for teams as they introduce new perspectives and reenergize the work environment. They are worthwhile despite initial investments in time and resources.
- Team Buy-in: It is crucial for the entire team, especially management, to understand and support the purpose of an apprenticeship, viewing it as an educational relationship where everyone benefits.
- Three Phases of Planning: Barrett outlines three essential planning phases:
1. Before Starting: Clarify motivations behind launching the program and ensure complete team buy-in.
2. Hiring: Focus on finding candidates with potential rather than experience. Look for traits like curiosity, engagement, and communication skills.
3. During Apprenticeship: Establish structured progress tracking, regular evaluations, and a curriculum that accommodates different learning speeds. Incorporate a transparent rubric to help apprentices self-assess.
- Onboarding: Provide a clear onboarding process, including access to resources, documentation, and expectations for performance.
- Creating a Supportive Environment: Foster an atmosphere where apprentices can learn through trial and error without the fear of failing, encouraging them to own their learning experiences.
- Handling Endings: Be respectful and supportive during the transition when an apprenticeship ends, whether it propels the apprentice into a new role or concludes their journey. This reflects positively on the team.

In conclusion, Barrett insists that with proper planning, clear communication, and team involvement, any organization can establish a fulfilling apprenticeship program that benefits both the apprentice and the company. She encourages all teams to consider implementing such programs as a way to cultivate talent and enrich their working environment.

Great Expectations: Power-Charging Apprenticeship Programs
Louisa Barrett • December 01, 2017 • New Orleans, LA

RubyConf 2017: Great Expectations: Power-Charging Apprenticeship Programs by Louisa Barrett

Apprenticeships are a great way to ramp up a newbie, but these programs are much tougher to successfully implement than many organizations expect. It is a surprisingly large investment to guide someone through the ups and downs of their first gig as a developer, and if you aren't prepared it can be a bad experience for everyone involved.

Let's dig into what makes a robust and empowering apprenticeship, from full team buy-in to setting clear learning goals to providing a clear path to the optimum final outcome: a new full time junior developer and a team dedicated to investing in education.

RubyConf 2017

00:00:10.639 Okay, so it is 2:40, so I'm going to go ahead and get started. I'm going to be talking about power-charging apprenticeship programs today.
00:00:17.609 And you are probably wondering, who is this lady? Hi, I'm Louisa Barrett.
00:00:23.820 I work at the Turing School of Software and Design. I am the founding instructor and I'm currently the director of the front-end engineering program.
00:00:33.690 That means that I work with this guy. So I don't know if you're familiar with Turing, but this is Jeff Kazmir, our founder.
00:00:39.480 He's not here today, so I can pick on him a little bit. So back to me.
00:00:45.180 Now, since then on the front-end team, I like design, I like code, and I also like teaching.
00:00:55.949 That means that I basically spend my days helping people learn about typography, JavaScript, and, if you will excuse my French, CSS.
00:01:03.650 I am extremely bad at Twitter, but this is my Twitter handle.
00:01:08.939 It's really embarrassing how bad I am at Twitter, so just don't judge me.
00:01:14.520 Um, so I'm a front-end person. I am at a Ruby conference, so that's weird. Why am I here?
00:01:27.240 Firstly, I am extremely good at Ruby, as you can tell. Hey, this is mostly jokes. I'm good at it. Okay, woo!
00:01:40.530 All right, anyway. So what I'm actually here to talk about is apprenticeship.
00:01:46.320 For the last couple of years, my whole job has been figuring out the best and most repeatable techniques to get people ramped up to junior developer skill levels quickly and consistently.
00:02:06.030 Obviously, I'm working in a school, so I'm in a more education-based environment, but that's essentially what an apprenticeship is.
00:02:18.330 It's just in a little bit more of a business-minded format rather than an education-based format.
00:02:32.220 I do this a lot; this is my job, and I just wanted to talk to you about it.
00:02:38.700 Part of that is because my background is in design. I was a designer for a very long time.
00:02:49.890 I've been in the creative industries for many years before I switched over to writing code.
00:02:55.739 It was really interesting to me coming from the creative industry, where apprenticeships and internships are part of the game.
00:03:01.470 It's a little bit expected that you will have had some sort of apprenticeship or internship before your first real job.
00:03:10.859 Often, because it's a creative industry, those internships or apprenticeships are unpaid.
00:03:16.079 This is often because of reasons like gaining experience or being passionate about it, which is a load of crap.
00:03:22.200 But it was really interesting coming into software development because the mindset around them is very different.
00:03:34.290 They were a little less common, and I think people took them more seriously.
00:03:40.310 Part of the reason for that is because there's an expectation of fair compensation for work in this industry.
00:03:46.919 That's a fantastic thing, right? It's great! It means that people take it more seriously.
00:03:53.790 However, that also means that there are potentially fewer opportunities to get your foot in the door in an apprenticeship-type situation unless you're at a large organization with more wiggle room and funding.
00:04:10.319 The thing is, apprenticeships are really valuable to teams. They provide great experiences for both the apprentice and the team they're working with.
00:04:21.810 The biggest thing is to structure them correctly and be mindful of how you're putting them together.
00:04:27.080 Setting up a successful apprenticeship is not impossible. It is not scary, and they really are worth it.
00:04:39.669 It's so energizing to have somebody new to the industry as part of your team. They are incredibly motivated, really excited, and fun to work with.
00:04:50.960 They see things from new perspectives and different angles, making it all really exciting.
00:05:02.479 Yes, all of you could build a successful apprenticeship program, and your team will be significantly stronger for it.
00:05:15.310 If you think that an apprenticeship program seems like a high-risk time and money vacuum, and you're wondering if that investment will pay off, yes, it will.
00:05:29.449 In my experience, the benefits to the team and to the general company ecosystem are substantial.
00:05:36.529 Bringing on an apprentice is a great way to reenergize a team.
00:05:41.870 Even if you have just a team of senior people, bringing on someone brand new can add a lot of joy and fun to the group that you may not expect.
00:05:55.719 Remember, this isn’t a forever thing for either party. An apprenticeship is a term thing; someone’s going to grow out of it.
00:06:13.909 They’re going to become a junior developer, then a mid-level person, and eventually a senior position down the road.
00:06:25.849 So, they are super motivated, they know there’s a light at the end of the tunnel, and they’ll be working hard to improve.
00:06:36.620 Investing in them at this stage in their careers is beneficial for both you and them, and it will pay off quickly.
00:06:43.430 In conclusion, you absolutely can have an apprenticeship program.
00:06:48.530 They will make your team better, and you'll have a lot of new and funny jokes!
00:06:53.539 So, the plan is that you should have one!
00:07:00.169 Before you get started, the very first thing to do is to ensure that your whole team, so top-down, understands the point of an apprenticeship.
00:07:12.770 It is an educational learning relationship, meaning you are bringing someone on who is there to learn from you.
00:07:20.389 You've committed to teaching them for a set amount of time.
00:07:25.729 We’re going to discuss some strategies that will help teams plan and prepare for a successful apprenticeship program.
00:07:31.969 There are three phases of planning that I'll be talking about today.
00:07:38.659 First, what to do before you start an apprenticeship—like systems and processes to have in place.
00:07:44.569 Second, how to hire for an apprenticeship—finding the right candidate and hiring the right person.
00:07:49.969 Lastly, what to do during the apprenticeship—how to keep someone on track, ensure they're making progress, and keep everything running smoothly.
00:07:55.250 With that in mind, let's dive right into what to do before you start an apprenticeship.
00:08:00.740 Like most things worth doing, this will take a little bit of work to put together, and that's okay. It's similar to when you start a new client project or software project; it requires planning.
00:08:14.840 Before you begin interviewing candidates, you should invest about five to ten percent of your time upfront.
00:08:20.330 This will help ensure that you have clear goals and a game plan to execute throughout your program.
00:08:28.190 The work you put in should begin even before you start thinking about interviewing candidates.
00:08:34.699 This effort will pay back tenfold once you actually bring someone on to your team.
00:08:41.089 So something to consider before you get started is to clarify the reasons behind initiating a program.
00:08:47.660 This is really about understanding the motivations driving you to start a program like this.
00:09:02.189 There isn't necessarily a wrong motivation or a right motivation, but different motivators will impact how you approach a program.
00:09:11.160 Understanding why you're bringing on an apprentice is crucial to set the right tone.
00:09:16.680 The reasons might range from purely educational, like wanting to help someone get a foothold in the industry,
00:09:24.810 to financial needs where a smaller company needs more hands on deck, needing someone whose skills are not at a high level yet.
00:09:32.880 Both are valid reasons, but being clear with your team and the apprentice about your motivations will align expectations.
00:09:40.620 Additionally, this clarity will ensure that your planning and execution are aligned.
00:09:46.650 Make sure that you approach carefully, hire strategically, and develop an actionable curriculum that sets your team for success.
00:09:55.920 Before hiring anyone, ensure you have buy-in from your entire team.
00:10:00.410 This top-down buy-in means that everyone—especially management—needs to understand the reasoning behind the apprenticeship program.
00:10:10.410 Your team should also be on board, understanding that this is an initiative they're excited about.
00:10:22.050 Being on the same page about how time and energy are allocated for this program will help streamline the process.
00:10:30.680 The clearer you are about the path to success for the apprentice, the easier it will be for the team to say yes.
00:10:39.420 So here are some strategies to help communicate your plan effectively.
00:10:46.560 Make your case by having a defendable business and team-building reason for why adding this position will benefit everyone.
00:10:55.730 Be explicit and direct about everyone's responsibilities when you bring someone new on board.
00:11:02.760 This clarity will help your team understand your plan better and provide stronger support.
00:11:10.930 It’s crucial to have management understand the value of this program.
00:11:15.340 Presenting a strong case for this will ultimately lead to better support and cooperation across the team.
00:11:23.110 You will need someone to own this apprenticeship, acting as the primary mentor.
00:11:30.020 Ensure key team members have adequate bandwidth in their schedules.
00:11:35.920 It’s vital to address any scheduling issues upfront so that your team doesn’t feel overloaded.
00:11:42.650 Remember, teaching can make your team stronger. The act of explaining concepts to a beginner sharpens the skills of the whole team.
00:11:50.540 Bringing someone junior provides opportunities for seasoned professionals to refine their knowledge and teaching skills.
00:11:58.580 Bringing someone in who lacks exposure encourages the rest of the team to think critically about their processes.
00:12:08.650 Be clear about how the apprentice's time will be spent and how they’ll ramp up to become more billable alongside their training.
00:12:16.450 Initially, they won't be billable, but as they progress, they should contribute more to the team's output.
00:12:24.170 Now let’s talk about backwards planning, which will happen concurrently with your team buy-in conversations.
00:12:32.129 This is essentially curriculum planning. It helps you make a strong case for why the apprenticeship is achievable and sets a game plan for structure.
00:12:46.270 Backwards planning involves figuring out where the apprentice needs to end up by the end of the program.
00:12:55.470 From there, you work backward to create a structured process that leads them there step by step.
00:13:03.010 This involves creating super-short curriculums that break down the skills and competencies needed by the end of the program.
00:13:10.050 Start at the most significant picture view and work from there towards granularity.
00:13:18.720 List the skills and competencies you want them to master and create a plan of action each week.
00:13:27.740 Evaluate what success looks like at each stage of the apprenticeship.
00:13:34.560 You will also need to recognize that not everyone learns the same skills at the same pace.
00:13:42.370 Having a plan ready for when someone starts falling behind is essential, as each individual will have strengths and weaknesses.
00:13:52.620 Be clear about how someone can assess their skills and improve.
00:14:00.930 It’s important that everyone is on the same page, both your team and the apprentice.
00:14:06.240 Tracking progress after the apprentice starts is also an important phase.
00:14:15.960 This can be tricky because you have several aspects that need attention.
00:14:22.170 Having a clear rubric allows you to measure progress against concrete benchmarks.
00:14:28.560 This can include a tiered scoring system or ranking process from novice to expert.
00:14:35.260 Whatever system you choose, it should be straightforward to understand.
00:14:42.170 Use clear steps explaining how to advance from one level to the next.
00:14:49.490 Be mindful of language; the way you phrase things matters greatly, particularly in a learning environment.
00:14:56.890 Using encouraging language helps foster a positive experience while learning.
00:15:05.450 For example, at Turing, we have a simple four-level progression ranging from novice to exceptional.
00:15:16.540 This helps the apprentice understand their progress and what is expected of them.
00:15:24.370 Similarly, breaking down more intricate skills like version control into steps will facilitate learning.
00:15:33.450 This level of transparency empowers apprentices to self-assess their understanding.
00:15:39.830 This self-assessment means they are not entirely reliant on your guidance to navigate their progress.
00:15:49.070 Once you have everything set up, you can invite your apprentice to start.
00:15:56.880 At this point, ensure your preparations are solid—team buy-in, game plan, and clarity on goals.
00:16:02.750 The next task is to find the right apprentice. This process is not very different from hiring for a developer position.
00:16:10.470 The difference is that you’re investing in a future prospect rather than a proven candidate.
00:16:17.220 It will require a bit of finesse, as you are searching for someone with potential instead of someone with an established track record.
00:16:27.800 A significant part of my job is quickly assessing who has the right personality and attitude to succeed.
00:16:35.660 It requires someone who can navigate a less supported environment and thrive.
00:16:43.380 Most companies have a structure around evaluating candidates for roles, which is essential for apprentices as well.
00:16:50.280 Consider your goals for the apprentice and where you want them to land at the end of the program.
00:16:58.220 Do you want someone hotshot from the start, or someone who can dive deeply into your codebase and stay with you for a while?
00:17:05.700 These choices will dictate how you approach your hiring.
00:17:12.820 Consider group dynamics when selecting your apprentice.
00:17:19.320 There’s a concept called the 10-80-10 rule. Groups will typically have the top 10% of high achievers, a middle 80% of stable workers, and a bottom 10%.
00:17:29.740 Focus on hiring from the top and middle groups based on your long-term goals.
00:17:36.330 Your hiring should reflect the qualities you desire in an apprentice.
00:17:44.770 Engagement, curiosity, and a willingness to investigate on their own are crucial traits.
00:17:52.529 Look for apprentices who can find ways to make learning fun, which will enhance their experiences.
00:18:02.250 Also, value loyalty—those who stay the course during difficult times.
00:18:10.360 An apprentice should be vocal and honest, willing to communicate openly with you.
00:18:18.060 They should have high standards and be dedicated to the work assigned.
00:18:24.560 Grit and good-natured attitudes will contribute positively during their learning.
00:18:32.040 You’ll want to ensure candidates can demonstrate these traits in interviews.
00:18:39.890 Pay attention to their responses—are they providing examples from personal experience or just telling you what they think you want to hear?
00:18:46.990 Use situational questions and seek real examples that reflect their experience.
00:18:53.980 Many hiring processes overlook code challenges, but this is crucial for apprentices.
00:19:01.340 Knowing where their skills stand on day one will help shape your training and support.
00:19:08.550 Keep your end goals in mind; what does success look like for your apprentice?
00:19:16.280 You prefer someone who can contribute to the team long-term versus only through the program.
00:19:23.830 Be mindful during your hiring process to gauge appropriately and ensure alignment.
00:19:31.540 Once you've done all your planning and hired the right person, it's time to bring everything together.
00:19:40.270 Onboarding someone entering the industry can differ from someone already established.
00:19:47.680 Create a central location for important links and documents so everyone is on the same page.
00:19:55.410 This could be a Google Doc, a calendar, or another shared platform that makes information accessible.
00:20:02.560 Include necessary resources, such as which repos they will access and the onboarding tools they’ll need.
00:20:10.080 Outline communication channels they should join, whether it’s Slack or any other messaging application.
00:20:18.720 Also, include details about meetings they need to attend so they aren’t left in the dark.
00:20:24.810 Make sure they have a syllabus and schedule.
00:20:32.960 The syllabus should map out expectations and clearly outline learning targets, resources, and assignments.
00:20:43.270 Providing checks for understanding is essential, as this will ensure everyone is on the same page.
00:20:50.780 Regular evaluations of progress during the apprenticeship is important.
00:20:57.820 Have a rubric to measure skills that allow for tracking both qualitative and quantitative progress.
00:21:04.070 Assignments will be necessary—they need to contribute toward gaining experience and competence.
00:21:12.200 You could create a project—what I call a breakable toy—owned by the apprentice.
00:21:19.120 This allows them to code safely without the fear of breaking a production application.
00:21:28.150 Encouraging a fun atmosphere where they can explore and learn is crucial.
00:21:40.210 An apprenticeship should be a safe space for trial and error—failures are part of the learning process.
00:21:51.180 Encourage them to keep trying, and when they fall short or break something, guide them in fixing it without doing the work for them.
00:22:03.270 Let them own the challenges while supporting them along the way.
00:22:10.360 What if the worst happens? What if you hired someone you felt was a good fit, but things started going sideways?
00:22:17.900 It’s better to be upfront about the situation and recognize when things aren’t working.
00:22:23.170 Sometimes, apprenticeships may drag on longer than they should, which doesn’t help anyone.
00:22:33.250 If it's not working out, don't hesitate to be honest about that. Call a spade a spade.
00:22:41.310 The ending of an apprenticeship says a lot about your team. Handle endings gracefully.
00:22:48.950 Being respectful and supportive during the transition period helps maintain a positive reputation.
00:22:57.110 Thank the people who have assisted you throughout this journey.
00:23:11.020 For self-mentorship, there are several great resources and open-source curriculums available.
00:23:19.390 Many schools provide accessible course curriculums, such as Spark Box, which offers clear paths to follow.
00:23:27.120 This backward planning strategy remains valuable as you determine the skills you want to develop.
00:23:34.780 Taking small, consistent steps forward will ultimately lead to progress.
00:23:41.320 As for the value of apprentices working in cohorts, it often mirrors the benefits seen in traditional education systems.
00:23:51.350 Having a group of individuals at similar levels can foster collaboration and a supportive environment.
00:23:59.200 On the other hand, sole apprenticeships can challenge individuals, pushing them to engage with others despite their apprehensions.
00:24:06.620 Having a network of apprenticeship peers can be beneficial, and I encourage forming supportive cohorts.
00:24:15.210 Internal biases can influence hiring decisions; structure your interview process to accommodate diverse experiences.
00:24:22.210 Create an atmosphere where all voices can emerge through effective outreach.
00:24:30.920 Ensure that expectations regarding billable work versus non-billable work during the apprenticeship are well communicated.
00:24:39.230 Initially, more focus should be on non-billable tasks as they learn, but should shift toward contributing to billable work over time.
00:24:48.420 By the end of apprenticeship, they should be performing like a junior developer.
00:24:55.869 Thank you for your attention!
Explore all talks recorded at RubyConf 2017
+83