As a professional tester and trainer, one thing I know for sure is that many people mistakenly believe that getting training is the same thing as learning. Think about the last time you really internalized a major lesson in your life. I'll bet that the lesson learned came not from a book or a class, but from your own experience or from someone taking the time to show you personally and repeatedly how to do something.
In this article, we'll explore one of the oldest and most effective ways to learn and to transfer learning - mentoring and apprenticeships. If you think this is something you already know about, I'm sure you do. However, don't tune out just yet.
I have been teaching and encouraging other testers to develop the mentoring/apprentice practice for the last three years, but I would like to thank my friend Lloyd Roden of Grove Consultants in the U.K. for his excellent presentation at StarWest 2005 recently that crystallized my thinking on this topic.
What Happened to This Concept?
Back when I first started programming in a real company with a real computer (about 1978), I was assigned to work under a programmer with about 15 years experience. He checked my work, showed me faster and better ways to do things and also chided me when I did something lazy or stupid. One experience in particular stays in my mind. I was coding a certain program that required that I read multiple records and store them in program storage. Instead of building an internal array, I was using another approach. My mentor told me to write a two-dimensional array instead of my method. I asked him "why?" After telling me how much more efficient this method was, he added, "Plus, you don’t want to be a Level 1 Programmer forever."
Many skills and professions have applied the mentoring/apprentice concept for many, many years. Not only trades, such as carpenters and electricians, but also doctors, lawyers, architects and other professions have successfully imparted their skills, experience and wisdom to others through the mentoring/apprentice relationship. In fact, in the early days of IT the practice of mentoring and apprenticeships were also common practice.
I have some theories about how we lost this practice in many IT shops. My main theory is that now it is possible to learn how to code and get substantial experience in the comfort of your own home. The problem with the easy access to tools and information on the web is that the human interaction in an apprenticeship is lacking. Because of this, people may never learn from the experience of those who have been down trails before us.
The bottom line is that organizations that practice mentoring and apprenticeships grow people faster and deeper than those who don’t!
What About Testing?
I think we have erroneously minimized the value of informal on-the-job training in favor of formal training. While it is true that we may pick up some bad information and habits from on-the-job training, we shouldn’t discard the practice altogether.
Testing is one of those disciplines that can be practiced in many ways. There is no "right" way to test - it depends on the situation. In addition, there are a lot of terms used in non-standard ways. However, there are many experienced testers who have the right knowledge to pass along to less experienced testers. This experience can help a tester know what the best approach might be in a given situation.
There is something about the creative search for bugs in software that really benefits from the experience. It is one thing to go through a bug taxonomy in a training class, but another to know which types of bugs to test for in a certain application because you have been burned by them in the past. Or, perhaps a mentor could show you a great kind of test case because they have been burned by a defect.
For example, I like to look for relationships in the data and in interfaces. I also like to look for values that can be stressed at high levels. This is because my experience tells me that interactions and limits are situations where I find problems. I can say that in a class, but it is more powerful to sit next to a beginning tester and show them first-hand.
The Difference Between Mentoring and Coaching
Mentoring is often one-on-one while coaching is many times one-to-many relationship. Both roles are valuable, just different. A coach knows each person on the team, what motivates them, and where they add the greatest value to the team.
A coach can also be a mentor. Many people who have played sports have developed personal relationships with a coach whom they also see as a mentor to them. However, in those cases the mentoring relationship grew from the coaching relationship.
Although coaching is valuable, helpful and very much needed, we will not focus on the coaching model in this article. We’ll save the coaching role for a future article.
Qualifications for a Testing Mentor
To avoid passing along incorrect information, be careful whom you select for a mentor. If you want to be a mentor to someone, these are some things to have in your background:
In-depth Experience, Knowledge and Wisdom
This is the prime reason a mentor is chosen. The mentor must not just be ahead of the apprentice in terms of these things, but they should be significantly ahead. Look for those people who are respected and who have contributed to the testing profession.
The mentor must have time to spend with one or more apprentices. Although the time requirement is not excessive, there must be a priority on the mentoring relationship.
Motivation to Share Your Experience and Knowledge
Good mentors have a deep desire to share their knowledge. However, a good mentor is also in demand and can only spend their valuable time with the people who will make the best of it.
Willingness to Learn
Yes, mentors must also be continual learners. In fact, a mentor may at times learn from the apprentice. To teach something, you must learn it first.
Some apprentices are slow learners. The mentor must be able to correct an apprentice when needed, but also show patience when honest mistakes are made. The learning often happens when a mistake is made and the mentor can take advantage of the teachable moment.
Qualifications for a Testing Apprentice
Here are things I look for in an apprentice:
Willingness to Learn
This is probably the primary criteria for being an apprentice. If the apprentice thinks they know it all, the mentoring relationship will likely fail. An apprentice must be teachable.
Willingness to Try New Things
Part of learning is to try new things, even when you don’t see how they may work, or if they cause you to leave your comfort zone. This involves being able to take a risk at times.
Freedom to Question and Challenge
It's OK to question the mentor. A good mentor will welcome the challenge. The apprentice should be prepared for a healthy debate.
How to Get Started
Don’t See This as a Big Push or Program.
These types of approaches often fail because they are like blind dates. Encourage people to find a mentor and to be a mentor, but keep it at the "try it for yourself" level.
Don’t Force People Into the Mentor/Apprentice Relationship
The mentor/apprentice relationship is something that can't be forced, but rather should be the result of a professional relationship.
Qualify the Mentors
Not everyone is cut out to be a mentor. Apply the criteria for mentors as described above. It's also a good idea to start slowly by mentoring one person at first for several months before mentoring additional people.
Check Progress in Three Months
The mentor and apprentice should have a frank discussion about how the relationship is working. If no lessons are being learned or there are personality issues, then it's in everyone’s best interests to graciously end the mentoring relationship. This is also an opportunity to reflect on why the mentoring relationship didn't work out. This could be an indication that either the mentor or the apprentice needs to mature or change.
Expand as People Try It
Build on the successes from informal mentoring. Use these success stories to encourage others to try either becoming or finding a mentor.
Focus on the Benefits
There are so many benefits in mentoring and apprenticeships - long term learning, focused learning, just-in-time learning, that these should be easy to define.
A Simple Exercise
An exercise that I like to do is to have people in a group setting simply write 2 or 3 professional skills or attributes they exhibit well and have extensive experience in doing. Then, have people pair off with someone else (who has also defined their best skills) and have them spend about 5 to 10 minutes each sharing some details of how they do one of the skills or how they developed one of the attributes.
After the exercise, ask people these two questions: "How many people learned something new?" and "How many people felt energized by sharing your knowledge with someone else?" My experience is that most people raise their hands on both questions. The thing I like about the exercise is that it shows how easy and energizing it is to mentor someone. Also, it shows how easy it can be to learn from someone else's experience.
Many trades and professions have applied the concept of mentoring and apprenticeships over the years. For some reason, in IT (and testing, especially) we have lost the practice of mentoring and apprenticeships. That is unfortunate but can be reversed. You don't need permission to be a mentor or an apprentice! Take it upon yourself to either become or find a mentor. The sooner you do it, the faster you will grow in your own skills and abilities.