tags:

views:

1772

answers:

22

Question

During my career as a software engineer, I have been both the learner and the mentor, and I have noticed that it can be very easy for the mentor to become a crutch to the learner. Rather than teaching the learner to catch fish for themselves, the mentor ends up doing all the fishing (I think I destroyed that analogy - apologies).

How can this be avoided? How can a mentor properly support their charge without the charge becoming overly dependent on the mentor?

A mentor hopes to teach not only the tricks of the trade with regards to programming, but also with regards to resourcefulness and the self-reliance required to research things one doesn't know. However, what tends to happen is that the student just learns to ask the mentor (until persuaded to do otherwise).

In my experience, the student usually uses the mentor as a crutch until rudeness plays its part ("Go do it yourself! You whiny b*tch!" for example), which is obviously not preferential in polite quarters where colleagues are to get along amicably and be encouraged to grow. Does anyone have any other, less demeaning approaches that effectively teach someone the ropes of how to go about finding information for themselves?


Update

Well, there have been some very interesting answers here, so I thought I'd summarize what I see as the most popular approaches and give my take on them. This is in no way the end of this topic as there are many other suggestions that I feel play a part (though to a lesser extent than the ones I mention), I just wanted to summarize what I feel are the pertinent points given so far - if you disagree, I'd love to hear your take on things.

So far, the most popular appear to relate to:

  • Time management
  • Learning from mistakes
  • Recruitment and management

Time Management

The essence of this is to restrict a student's access to their mentor so that the student must carefully select what questions to ask to get the most out of that time. I think that this can be a positive and a negative approach - positive because a good student will realise that they can learn and achieve most things on their own, and negative because a bad or inexperienced student might waste time on something that will not teach them much or instill confidence.

Learning From Mistakes

A lot of answers here took the approach that a mentor should give the student just enough information to get them to a point where they could work out the rest for themselves, right or wrong. For example, ask the student what they think they should do and then provide advice on that approach rather than give them a direct approach. Another example would be to point them to a resource where they might find more information.

I think this approach is by far the most effective in all but the most extreme situations and, when coupled with time management, could very well lead to a successful mentor/student relationship (within the bounds of the law, you understand).

Recruitment and Management

Of course, an important point raised is with a bad mentor or a bad student, no approach is really going to work, which is down to recruitment and management more than anything else. I mean, you don't want to recruit people who are bad at what they do and you don't want to assign tasks to those who don't have the aptitude to complete them, and let's face it, not everyone is good at teaching others even if they are extraordinarily good at everything else.

+4  A: 

Possible solutions

Limit question/interruptions to a few per day. The questioner has to then keep a list of things to ask and quite possibly figures out the answer prior to having to bother/ask the others.

Appropriate questioning from the mentor - every time the learner comes to ask a question. Make the learner think. They will them become used to being asked and be more prepared each time they consult. Eventually they will answer more and more questions themselves.

There is no quick fix.

Tim
I am of no doubt that there is no quick fix, but your suggestions are good. Learning is a time-consuming problem by nature; I think mentors tend to forget that and tend to think that it requires little effort on their part. Your suggestions rightly indicate otherwise. Thanks.
Jeff Yates
+2  A: 

You simply have to find more polite ways to say "go away."

Another approach might be to restrict the times of day the learner has access to you - or even the amount of time per week. Tell them that you're busy and that you need to limit how much time you spend with them. If they are mature, and professional, they should not have a problem with that.

Mike Heinz
Good suggestion - I can see it working in some cases and not in others. As with anything, I'm sure a combination of approaches is the way to go.The politeness of a "go away" is inversely proportional to the pestering of the student :D
Jeff Yates
+3  A: 

This may not work for you, but it worked wonders in my office. Set up sacred time. This is time in which no one is allowed to interrupt any one else's work barring an emergency. This means the "learners" have to do for themselves in that time.

It cannot prevent a determined question, but it usually slows the painfully obvious questions down dramatically, and since it is enforced for every developer it is not seen as rude. Additionally most developers like the concept of having a dedicated time for pure coding or reading slashdot. ;)

We set aside 2 hours a day for this.

grieve
I like this idea, but it only works as long as the boss doesn't need something, right?
Jeff Yates
@ffpf: Fortunately our boss supported it. He also wanted the 2 hours of sacred time.
grieve
+43  A: 

Having dealt with this from both sides, I think the best way to deal with this is not to provide direct answers to the learner, but to show them how you find the answers. So if they come to you with a question about how to do something, instead of telling them how to do it, engage them in the process of finding out how, even if you already know. The process is a little bit longer, but it'll pay off in the long run, as they can find out themselves much easier.

In this way, your domain knowledge as the mentor is used well, because you can more effectively winnow the search and learning process for them, and at the same time, they're learning how to learn more about the topic and be more independent.

McWafflestix
I think in principle, you are dead right, but unfortunately in reality this isn't always the way things go. Deadlines and other pressures lead to the mentoring not always having priority and just handing out an answer is quicker. I'm not saying that's right, but it happens.
Jeff Yates
I think this is an outstanding answer. With regard to deadlines and other pressures, if you have a deadline 1 out of every 10 weeks, do this for 9 weeks, and hand out answers for 1 week and during that week, apologize for not having time so they know it is not "normal" behavior.
Alex B
Agreed. If you don't want to be a crutch, then don't be one. It really is as simple as that. And if you're too swamped to serve as a mentor from time to time, all the better - that's a good opportunity for the newbie to practice those self-reliance skills you've been encouraging him to learn.
Sherm Pendley
No doubt that this answer is spot on, but I think that for many it can be difficult to achieve (for example, not every manager can be convinced that a mentor needs time to spare for the student). It's never as simple as "If you don't want to be a crutch, then don't be one." though I'd like it to be.
Jeff Yates
I don't mean for this to be an absolutist answer; more, it's an ideal to approach. Sometimes, yeah, you'll just tell them the answer; but so long as you understand that that's a suboptimal process, and that you're really not helping them by giving them the answer, then you can work to what's right.
McWafflestix
Whatever approach one suggests it won't work all the time, but if it works most of the time that may be just enough to keep things moving forward which is the important part. Wisdom is knowing when to bend the rules as Barry Schwartz notes in his excellent TED Talk found at http://www.ted.com/talks/lang/eng/barry_schwartz_on_our_loss_of_wisdom.html .
JB King
+1  A: 

Part of the secret could be in showing what the tricks are for finding various answers along with being good at giving tips so that the learner figures it out on their own, e.g. you could recommend someone go over to MSDN to look up a class' members or methods rather than doing the work yourself.

Culture can play a role in this as well. Does the learner want to be a good developer and self-sufficient or do they want to pass the buck of, "Well, I haven't done this before and wanted some help..." which can lead to some ugly political situations. Is there adequate training and processes in play to ensure that some basics are covered in the initial work of a new hire, e.g. where is the documentation of systems, coding styles, process of software development like when is code written, how are designs reviewed?

I think those basics should be covered first, and then the question may become how well is the newbie meeting expectations of understanding the systems and processes that should be part of an annual, or possibly more frequent, review? After all, isn't part of the job fiting in and growing one's skills?

JB King
Some good tips. I think just showing someone MSDN isn't enough - we all know that it can be what you look for that counts so it is also useful to teach how to learn what to look for. Culture is also a important - fostering the right expectations is critical.
Jeff Yates
My main point was that you show them what it is you do the search for and then next time they want the same kind of help you ask them what they should do at various points so that they get the idea that you aren't going to go away and find the answer. This reinforces not coming for help eventually.
JB King
+15  A: 

Same as @Tim. One of my former managers was great at this, he would always start with:

"And what do you reckon you should do?"

Often it turns out the mentoree already has an idea which they may be unsure of sharing.

If that doesn't work, perhaps pair programming, making sure the mentoree drives, and a lot of patience.

toolkit
Yup, one of my good mentors was exactly like that. Occasionally, they'd even let me create my own solution and then identify what the issues were after the fact so I could see why it wasn't correct.
Jeff Yates
Yeah, I've found that to work as well; I actually dislike the approach, though, because it almost inherently comes with the followup question "Well, why aren't you doing that instead of bothering me?" :-)
McWafflestix
Full ack with the patience issue.
boutta
+1  A: 

Here are some of my suggestions:

1) Show them where to find the answer and have them think about it. If you do this enough times, they will get the idea they need to doing better research before asking questions.

2) Give them small hints without telling them the answer directly. Have them congnitively thing before giving a response.

3) Ask them to do more projects that get them up to speed on whatever they need to be learning.

Remember, the goal of a mentor is not to generate more work for yourself. If you are just going to give them the answer then you could do it yourself (which defeats the purpose of that learner). The goal is to teach them how to learn and teach them how to become independent in their research.

j0rd4n
Some good points, but I have to say from experience that even some of the most talented people I've worked with don't get the hints. :D
Jeff Yates
+1  A: 

Call me simple, but once the initial technology transition phase has occured, the learner must be given the opportunity to take over the area without having the teacher looking over the shoulder and being too available.

A simple way is to have the teacher/architect only be available for a scheduled meeting, not watercooler types of discussions. The teacher can have milestones in a project plan or lifecycle to do design reviews, code walkthroughs, architecture, etc. But beyond those milestones, the teacher has to be away enough to let the learner both prove themselves and be given the opportunity to shine.

pearcewg
I apologise for not being clearer, but I was meaning more in general rather than someone learning a particular area in preparation to taking that area over. For example, this is more about teaching skills of software engineering, than developing and maintaining feature X or Y. Good ideas though.
Jeff Yates
+10  A: 

I think the ultimate answer is to hire people who have the "independence gene," that is, a healthy enough ego that they want to be independent contributors themselves, and their personal pride will cause them to exhaust their own resources before bugging others.

Now, this can be taken too far, in that you don't want people who just do their own thing and think they can't learn from others and end up re-inventing the wheel, except this time in a square shape for "improved stability."

Of course, the problem comes when people without that gene are already established on the team and have some skills and knowledge you don't want to lose...

JohnMcG
I agree to some degree although I recall one colleague I mentored who was very independent but we still ended up in the "crutch" situation. I consider myself as much to blame for that as them. This answer poses more points for the question rather than answers, doesn't it? :D
Jeff Yates
I don't think that's enough, and I don't think it's a good solution, actually. I think those types of persons can tend to be "loose cannons", and can actually be detrimental to the process. Certainly, they aren't all, but the chance of them being so is higher with that type.
McWafflestix
I think it's easier to harness a "cowboy" than to put fire in a belly that doesn't have it.Corporate culture is very good at the former, not so good at the latter.
JohnMcG
+1 John - that's no lie.
Erik Forbes
+2  A: 

This is kind of mean, but take a vacation, and loose your cell phone, ( atleast for calls from the office ).

This will force the person to figure it out on their own since you are not there to lean on.

Besides that, I agree with McWafflestix and Tim.

Russ
It's not entirely without merit. I think an overriding message in the answers so far (including yours) is for a mentor to limit their accessibility to force the student to ask questions prudently.
Jeff Yates
I think the inherent problem with the "restriction of access" method is that you run the risk of blowing their productivity for the period when you're not responding to them. They MIGHT learn to be effective on their own; they might just lose interest and motivation, though, too.
McWafflestix
+2  A: 

Give them the tools, resources, point them in the right direction and let them go. Of course, this is task dependent. We called it "Baptism Under Fire" in the military.

As long as the student has some idea of what they should be doing, what they are doing, and thier supervisors have given them the tools and resources to do the job, the individual should only come to you with competent questions, and not questions like "What should I put on next, this or that."

They need to learn what to do when you aren't around, and feel comfortable doing it and makeing competent decisions. At the same time, the mentor needs to have patience and the willingness to teach. If the mentor does not have the willingness, the time, or the patience the mentor needs to inform his manager that the current arrangement isn't going to work. All that will happen is you will get an annoyed 'mentor' and a nervous employee looking for another job and a manager asking "what happened?"

It is also the students job to ask for the resources and tools to do the job. If the supervisor ignores and brushes off questions of this nature, they fail in this capacity, and are just setting themselves and you the student up for failure and might as well stop and rethink what they are doing.

D.S.
I agree. We use "baptism of fire" for the same approach and I think it works well given the right task and resources.
Jeff Yates
+3  A: 

@D Scott, I agree. If the teacher doesn't want to or can't teach you have a break down in the learning process and possibly some deeper problems within in the team.

At the same time, if the teacher is busy, and forgets something, the student needs to at least make an effort to ask, or ask someone else.

I have watched new hires waste two entire days 'sitting around' because their supervisor got them all set up, but forgot to install a piece of software, or a request for access when all they needed to do was just ask someone else. They waited until it became a problem.

Teacher & Student it's a "50/50" relationship.

Potbelly Programmer
No doubt at all that the mentor has a responsibility to the student - my question somewhat assumes that the appropriate mentor has been selected.
Jeff Yates
+1  A: 

If you have the luxury of time, have the learner solve, design, and implement solutions alone or mostly alone, then have a code review. Instead of just saying "this is wrong", "that is wrong", or "do it this way" etc... ask the learner to explain the design decisions regarding the areas you find problematic. Then explain why that part of the code smells, and then have them go back and improve those areas with or without subtle hints as how to make it better. Learning by iterating on the same problem is very powerful. Also often the act of just talking through why they did certain things leads to aha moments in learning the craft.

Daniel Auger
This is a good suggestion. The luxury of time isn't always so important if it's an ongoing project as more often than not, bugs will arise allowing a student to revisit familiar code.
Jeff Yates
+10  A: 

The expression you were looking for is "give a man a fish, and he'll eat for a day; teach a man to fish, and he'll eat for a lifetime", but that's a common misquotation. The correct version is:

Give a man a fish, and he'll eat for a day. Slap a man upside the head with a salmon, and he'll stop asking you for fish.

This is how you avoid becoming a crutch, grasshopper.

MusiGenesis
One critical note - it must be salmon. Bass or haddock won't work.
Kyle Cronin
must ... fight ... urge ... fish ... puns ... bad
MusiGenesis
I wasn't looking to do an exact quote - I just wanted an analogy, but thanks. :)
Jeff Yates
What about a trout?
Erik Forbes
@ffpf: what's an "analogy"? I'm telling you to hit junior developers with a fish.
MusiGenesis
@Erik: for the perfect fish-slap, you need just the right balance of pink and white muscle, coupled with relatively low scaliness to maximize grip and optimize acoustics. While tasty, the trout scores only a 2 on the slapworthiness scale.
MusiGenesis
A: 

The correct quote may be: "give a man a fish, and he'll eat for a day; teach a man to fish, and he'll eat for a lifetime"

But it should be: "give a man a fish, and he'll eat for a day; teach a man to fish, and he'll sit in a boat all day drinking beer."

As to mentoring or teaching, there are usually two distinct stages. The first is "pure teaching" - when the mentor does not yet have the tools to proceed. At that stage, the student really does rely on the mentor to help them out. In teaching, this is usually the first few lectures. Once the student has a few basic tools, then you can move on to the next stage, which often involves problem solving.

During the second (problem solving) stage, it's so easy to ask the mentor to solve the problem, and some mentors make the mistake of "doing the work" = "being a valuable mentor".

Far better at this point is to start most help-request replies with "what have you done so far to solve this". If the student has done nothing, then the first few times the mentor can suggest a few common strategies to begin. However, if in time the student seems to be coming to the student without doing any "homework" first, the there are two good responses to this:

  1. Well, I've shown you what to do, so go away and come back when you have outlined some options and a possible plan or two.

  2. My job is not to do your job, nor to solve your problems. It's time you started doing this work before coming to me. (then go to answer #1).

Basically, once you have provided sufficient mentoring to allow a motivated student to begin working on their own with occasional guidance, you must then be prepared to dish out a bit of "tough love" to encourage them to do just that.

Cheers,

-Richard

Huntrods
I wasn't looking to do an exact quote - I just wanted an analogy, but thanks. :)
Jeff Yates
I like the tough love approach but I think sometimes it can be a little to confrontational.
Jeff Yates
It's all in the approach of the mentor. You are right - done incorrectly it can come across harsh.
Huntrods
A: 

Hi,

not sure if you're talking about a youngster at the beginning of his career. If so, then...

at the beginning, show off your skills because you have to gain respect from the youngster. This is important to keep me motivated in being a mentor for him. In other words: I don't cast pearls before swine :-) Once you decided the youngster is good enough... explain, but not too much. Set the bar one notch higher, mildly congratulate if he succeeded, be highly disappointed if he fails. Tell him is in the average and he should fight back with good code because he's proud. If he's not proud, he's not a developer and should let go :-)

Forget the above if the learner is a nice girl :-) (but it won't happen, isn't it)

Bye

Stefano

kindoblue
Sounds almost like the instructions they give drill instructors in the military - rewards are light, punishments are harsh.
Erik Forbes
Ah, sexism and unattainable goals - perfect.
Jeff Yates
don't forget to insult them on a personal level
Ori Cohen
this post is hilarious on many subtle levels
Alex Baranosky
how about court-martial on failure ?
Gollum
+5  A: 

Never actually type ANYTHING for them. Also, never say word-for-word what they should be coding.

Dano
I agree - giving them the solution is a bad idea. It can be useful, however, to type something for them once in a while - even if it's just a URL.
Jeff Yates
+1  A: 

you can try instituting office hours, and limit your mentor time to an acceptable amount.

you can try wiki-ing up the common questions and using RTFM when you are swamped or get the crutch vibe.

Epu
These seem to be variations on popular suggestions. I like the idea of a wiki-FAQ for newbies.
Jeff Yates
+6  A: 

At the very beginning of my career, I needed to solve a specific programming problem, and I had no clue how to solve it or where to start. I said to my mentor "I don't know how to do [fill in the blank]." He moved my laptop in front of him and said "Neither do I, but I'm a smart guy, I bet I can figure it out." Of course, since my ego was then bruised, I had no choice but to take back the laptop and hunt the answer down myself.

Sometimes it simply takes reminding the mentee he's doing what he does because someone thinks he's smart enough to do it.

David Morton
+1: Often it's enough to say, "I don't know either!", for them to realize that we're not all that different--one way or another someone is going to hack away at it.
Michael Haren
A: 

I just thought of a better answer:

To avoid becoming a crutch, break both of their legs.

Think about it.

MusiGenesis
+1  A: 

The Mentor at my initial job would say : "Ah I have not thought about how to do it. Can you come up with a few suggestions so that we can discuss?"

After I came up with the suggestions: "Hmm...interesting ..can you tell me which one is better"

By this time, I was very much through all the options and would have a fair idea( i still went to him to get the clarification or so).

At the very end , he would (most likely) agree to my suggestions and would say: "You had the capability to get the answer..even before you came to me..didn't you?"

I remember going to him for a couple of time initially like that..may be because I was stuck or may be because I felt he had a solution off the cuff. This changed after the initial couple of months...

schar
A: 

Easy, as the mentor your job is to get the protege to do things for themselves.

The easiest way to do that is to ask them questions back. Never flatout answer questions. Instead ask them questions that will get them to get the answers on their own.

Then you might ask what is the point of being a mentor if you aren't answering questions, but just asking the protege questions? True, you are just asking them questions, but your questions are designed to get them thinking in the right direction.

Essentially your questions are leading them down corridors of understanding. Gently. And it is the protege's responsibility to walk the path. It is the only real way for them to learn and really absorb the material anyway.

Alex Baranosky