---
title: How to Set Up Your Company's Apprenticeship
teaser: 'Here''s what we''ve learned running an apprenticeship program for designers
  and developers over the past four years.

  '
tags: playbook,apprenticeship
author:
- Chad Pytel
- Dan Croak
published_on: 2015-02-13
---

We've run a three-month [apprenticeship] for designers and developers
since 2011.
We've talked with other organizations
about how to set up their own apprenticeships.

[apprenticeship]: https://thoughtbot.com/playbook/our-company/apprenticeship

This article shares what we've learned.
We've also published material from our
and other companies' apprenticeships
at [apprentice.io].

[apprentice.io]: https://www.apprentice.io

![Pair programming](https://images.thoughtbot.com/scenes/pair-programming.png)

## People love to mentor

A concern we've heard is "who will mentor?"
Our experience has been that this is the easiest part.
Designers and developers love to share their
knowledge, tools, and techniques.
It's very satisfying to help someone else acquire new skills.

Put the word out within your organization.
You might be surprised at how many people respond enthusiastically.

## Prepare the mentors

Your people have product design, software engineering,
and a variety of other soft and hard skills.
They're less likely to have formally mentored others before.

So before your mentors get an apprentice,
put them through some kind of basic training.

For example,
have them read [Apprenticeship Patterns][patterns]
or [Search Inside Yourself][inside].
Have them watch [Emotional Intelligence and Feedback][eq].
Require that they've previously pair programmed
for at least 100 hours.
Share your [Mentor Handbook on GitHub][mentorhandbook].

[mentorhandbook]:https://github.com/thoughtbot/apprenticeship/blob/master/markdown/mentor-handbook.md
[patterns]: http://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382
[inside]: http://www.amazon.com/Search-Inside-Yourself-Unexpected-Achieving/dp/0062116932
[eq]: http://vimeo.com/76762772

Those ideas are geared toward attuning the mentor
to the needs of their future apprentice.
Beyond technical skills,
empathy and creating a cycle of open, honest feedback
are the most important skills for a mentor.

## Prepare the apprentices

If you're assigning reading or videos to mentors,
consider assigning the same homework to apprentices.
It gives everyone the same foundation and a common language.

## Same interview process, different evaluation criteria

We've had success interviewing our apprentices
using the same process as our full-time designers and developers,
but with different evaluation criteria.
For example, we ask the same Ruby on Rails questions
in the technical interview.

A major benefit of this approach is that
we often have people apply for the full-time position
who end up being a better fit for the apprenticeship.
So, we don't need a separate set of questions,
or a "re-do" if we discover halfway through the interview process
that the candidate is a better fit for the other position.

For apprentices, we're not looking for perfection on every technical detail
in that interview.
They need to reach a certain baseline,
but once that is met,
other evaluation criteria play an important role.
Were they able to problem solve something they've never seen before?
Did they seem determined? Curious? Positive? A fast learner?

Our critical question is:

> Can we imagine this person being a great full-time hire three months from now?

## Three months

Our apprenticeship program is three months long.
It's proven to be
long enough for the apprentice
to learn the missing skills needed for the full-time job,
short enough for high-quality apprentices to be willing to take less pay
than their other options,
and long enough for the company to evaluate them for the full-time job.

## Rotate mentors

A different mentor and project for each month
allows the apprentice to see
multiple styles and project stages,
and keeps everyone energized.

We also found that it helps apprentices accelerate faster.

Apprentices will progress so quickly
that they, their mentor, and the team around them,
won't realize how far they've come.
Rotating to a new mentor and project
breaks existing perceptions
and allows the apprentice to start over from where they are now,
as opposed to where they were 30 days ago.

For this same reason,
when someone is promoted from apprentice to designer or developer,
we always try have them rotate to a new team.
We've found that despite everyone's best efforts,
they will still be viewed as an Apprentice
if they stay on the team.

## You will get a lot of applicants from bootcamps

A common applicant we have is someone who
is going through [Dabbler, Immersive, and Apprenticeship phases][phases],
having taught themselves using a MOOC like Khan Academy or Treehouse,
then gone through a bootcamp like Dev Bootcamp, Turing, or Flatiron School.

[phases]: http://nuts.redsquirrel.com/post/71635922955/3-phases-of-beginner-software-developers

An apprenticeship program is the ideal next step for many bootcamp graduates.
They are going from a highly immersive learning environment
into the job world.
To make the transition, they often need structured mentoring
that an apprenticeship offers.

We have been fortunate to have established apprentice.io when we did.
It is more tenured and well-known than other apprenticeship programs.
We feel that has helped us hire the top tier of bootcamp graduates.
With that caveat, we can highly recommend to
any company with an apprenticeship program
that they interview bootcamp graduates.
You will end up with extremely talented teammates.

## Help switchers see themselves as apprentices

We receive about 600 apprentice applicants.
As a small company, we're not able to keep up with the flow
and are constantly looking for ways to raise the bar.

While bootcamp graduates are one common applicant archetype,
another successful archetype is someone who is switching skills or platforms.

For example, a senior PHP developer with
a computer science degree
might want to reset their skills in Rails, TDD, and JavaScript MVC frameworks.
Or, a senior web designer might want to learn design for iOS.

Barriers to getting these folks in the door
include their existing pay,
job title,
and perceived stigma of being an apprentice.
Our experience is that there are people out there
who are humble enough to not let that stop them.
Those people are exactly the kind of teammate we want to work with.
They help keep us in a beginner's mindset.

Our best advice is to try to make the landing page for your apprentice program
cover many possible backgrounds while being clear it is not for true beginners.

The majority of our apprentices
have left their job working as a full-time developer or designer
to come to apprentice at thoughtbot.

## Pair program... a lot

Apprenticeships are all about hands-on practice
with someone more experienced than you.
Pair programming is the perfect technique for both seeing
how the mentor works
and doing the work with feedback from that mentor.
Many apprentices and their mentors choose to pair program
the majority of their time.

We don't require 100% pair programming, though.
Sometimes the apprentice needs to break off
to study a concept in solitude to
gain a deeper understanding of it and its details.

## Weekly retrospectives

While the mentor and apprentice are working constantly with each other
throughout the week
and giving feedback along the way,
we still find it helpful to set aside a regular time each week
for an honest discussion about the past week and plans for next week.

This regular meeting creates a framework for establishing open communication
and helps ensure that any problems are addressed.

## The apprentice needs to state their goals

A good apprentice is someone who is aware of
their current strengths and weaknesses.
They are able to explicitly state that they need, or want,
to focus on certain areas.

Those goals help the company match them up with the right mentors,
and helps the mentor keep the apprentice on the path to achieving their goals.

## Do it

These things aren't difficult to do.
Don't hesitate: set up your apprenticeship today.

Your company will be more dynamic and interesting as a result.
