Author: Doug Bradbury
An apprenticeship is a guided learning experience, not merely an instructional classroom. There will certainly be times for teaching, but the ultimate goal is to graduate a life-long learner. The apprentice must become self-directed.
Your primary role is that of a mentor. You come alongside the apprentice. You show them by example what being a crafter is. You ask guiding questions and help the apprentice.
An apprenticeship is like two hikers in the woods.
Imagine you are hiking down a forested trail with your apprentice. Imagine yourself walking beside the apprentice, not out in front. All of a sudden, you stop. Your apprentice stops with you. You both stand in silence. The apprentice is confused, wondering why you've stopped. Then all of a sudden, a deer crashes out of the forest, onto the trail right in front of you, then scurries off in the other direction.
After the deer is gone, you explain to your apprentice what you saw and heard that alerted you to the deer's presence. You show the footprints, the scat, and encourage the apprentice to keep an eye out.
Next, imagine you come to a fork in the trail. You are familiar with these woods, you know that one trail leads you back home, and the other adds 5 miles to your trip. A teacher would pull out a map, show the apprentice your current location, and show which trail to take. But you are not a teacher, you are a mentor. Instead, you ask the apprentice to decide. "Which way should we go?" Then, if the apprentice asks for a map, you provide the map. If the apprentice takes off down the longer path, you continue to walk alongside them.
Imagine your apprentice chose the long way. When you manage to get where you are going, you raise the question. "I wonder where that other path went." Then you might pull out the map and show the apprentice how to read it. Not only will the apprentice have gained some knowledge, but they also have 5 extra miles of weariness to where the lesson "Check your map at every crossroads" really sets in.
Through the entire day's hike, you've kept the apprentice safe. You've always known exactly where you were and how to get back home. At any moment, you could taken charge and avoid any danger.
Mentoring another is not a task to take lightly. Another person is trusting you to show them the right things and to help them start a journey that will affect the rest of their career. To have another person trusting you in that way and depending on you that much is no ordinary responsibility.
Vocation is the idea of doing the work that one was meant to do. Mentoring an apprentice is helping that person to find their vocation. It goes a little bit beyond the responsibilities of a job, because you are in the position to have a profound effect on the direction of a person's future.
As a mentor, you will often need to play many different roles for the benefit of the apprentice. At times you may wear the hat of a customer, placing pressure on the apprentice to complete tasks in the committed time frame. At other times, you may need encourage the apprentice as an athletic coach would.
The key is to deliberately choose the roles you will play. Approach every interaction asking yourself the questions "What hat do I need to put on?" "What role can I play to help my apprentice take the next step forward?" Be prepared to be firm in some situations and gentle in others.
It is easy to tell someone they did a good job. It makes them happy, and you feel good for making them happy. It is much more difficult to tell someone they are doing a bad job. Feelings can be hurt, and intentions can be misread. In both cases, it is not enough to just say "nice work!" or "you screwed up!"—the most effective feedback is specific.
Consider a code review. Saying the code is good overall may make an apprentice feel good, but it doesn't help them focus on where they did particularly well. By calling out specific methods that are well-factored, or pointing to classes that are well-named, the apprentice gains understanding of what "good" code actually is, and can replicate it.
On the flip side, saying code is bad isn't helpful on its own. Instead, by calling out lines of code that are duplicated or untested directly, the apprentice sees what "bad" code is, and can avoid it the next time.
Do not wait to give feedback. The impact of the conversation will be much more effective when details are fresh, and it will help you avoid holding minor incidents against an apprentice later.
As a mentor, one of the worst situations you can be in is having a different opinion of the apprenticeship's progress than that of the apprentice. If things are not going well, don't wait to tell them until months later. Deliver it now and save yourself a painful conversation.
Praise or criticize for the right reasons. If your apprentice is doing something that goes against the principles you are trying to teach, explain why and reinforce the big picture. If your apprentice is doing very well in one area but it's not critical for the success of apprenticeship, don't praise too highly. You can tell them they are doing a great job in that area, but remind them of the end goal and ask them to focus their efforts there.