Thursday, March 31, 2005

Mentoring - Some points

My journey, through the software world has been a long and a winding one. I have gathered bits and pieces of skills, through a process of great struggle, by spending long hours, by failing and falling and then getting up again.

So I felt that one of the ways that I can give something back to the software community was by mentoring / guiding someone. Helping someone to avoid the struggle that I had gone through.

This also complemented the idea of reuse (here reuse of experience). And then, Agile Methods very strongly recommended mentoring as a learning tool also.

My first few attempts at mentoring were greatly successful and I actually started imagining myself as a great Mentor. Then the disaster struck. My last attempt at mentoring turned out to be a total disaster. No matter what I tried, what I did, how much time I spent, nothing worked. Finally I had to abandon the project after 4 months of struggle and with huge loss of time invested. This thing has actually shaken my confidence so much that I guess this would be my last attempt at mentoring someone for some years to come.

But then I took some learning from the whole process and that is what finally counts.

* Mentoring is more than just passing of knowledge, it is passing of experience and this whole exercise is futile if either is not comfortable working with the other.

* Attitude is the most important attribute. Rest other things don’t matter as much. The person being guided should have willingness and interest towards learning. He / she should be ready to take efforts to extract learning out of the mentor and should be ready to work for it.

* Educational background does not matter, some of the best I have worked with had no computer science as a background, and some of the worst actually were from a comp science background.

* Choose the people you want to mentor carefully. Scan more on attitude and anything else. Not everybody can be mentored.

* What happens if the whole thing does not workout? Should you abandon or should you continue? I feel at this point once should try to put some process around the whole activity. The whole activity might not remain as mentoring, but at least the project might get completed.

This is where I feel Agile methods fail. It assumes the ideal situations and ideal people (programmers with great attitude and great aptitude). In reality such people are rare. I guess this is where I can see the birth of process heavy frameworks (ISO, CMM) from Deming’s original idea, which I felt were more agile in nature.

Being on a cynical side, Agile methods are for smart people and smart people are rare.

No comments: