Tuesday, October 19, 2010

Mentorship Apprenticeship Program

In the previous post I wrote that as part of our next Software Craftsmanship meetup I will establish and start the enrollment process for a Mentorship Apprenticeship Program.

Since then I received quite a few emails and questions regarding the program and decided to summarize the answers in a Q&A form.

What does the Mentorship (Apprenticeship) program stand for?
How does the Mentorship (Apprenticeship) program work?
How a Mentee finds/chooses a Mentor?
What is the Mentor's responsibility?
What is the Mentee's responsibility?
What is the minimum period of the Mentorship (Apprenticeship) Program?
Can a MenteeMentor leave in the middle of the Mentorship (Apprenticeship) program?
What happens at the end of the Mentorship (Apprenticeship) program?
Can a Mentee and a Mentor to be from different companies?
Should a Mentee and a Mentor have the same technological background?

Q: What does the Mentorship (Apprenticeship) program stand for?

A: We all find ourselves looking for a Mentor to guide us throughout our work. Software Development is a hard profession to master and having a Mentor who can teach us, review our decisions (code, design, architecture) and throw light on different technological/management matters will no doubt enhance our knowledge, skills and capabilities. Moreover, it is my strong belief that such a program will be of benefit to the software development community as a whole.

Q: How does the Mentorship (Apprenticeship) program work?

A: A Mentee will select a Mentor who should accept the mentee as his apprentice, and the mentor will act as his guide for a minimal Mentorship (Apprenticeship) period.

Q: How a Mentee finds/chooses a Mentor?

A: As a part of our Software Craftsmanship in Israel Community, I will maintain a list of Mentors. The list will be constructed primarily based on the community feedback. A Mentee will approach a Mentor from the list based on the community feedbacks and his best impressions from the Mentor's capabilities, publications and etc... Should the Mentor be available, both the Mentee and the Mentor will commit to each other for at least a minimal mentorship (apprenticeship) period.

Q: What is the Mentor's responsibility?

A: A Mentor will:
  • Provide Technical Guidance and Feedback.
  • Provide Reading Sources.
  • Review and Build Career Paths.
  • Hold Code Reads, Code Reviews and Pair Programming.
  • Conduct Architecture and Design Reviews.
  • Review Management Decisions and Advise Management Dilemmas
  • Anything else that will be agreed between the Mentor and the Mentee.
  • Provide feedback to the community.

Q: What is the Mentee's responsibility?

A: A Mentee will:
  • Learn, Learn, Learn.
  • Provide feedback to the community.

Q: What is the minimum period of a Mentorship (Apprenticeship) Program?

A: Four (4) months. Each Mentee and Mentor may together decide at the end of the period whether they wish to extend the period which, in my opinion, should be longer.

Q: Can a MenteeMentor leave in the middle of the Mentorship (Apprenticeship) program?

A: The whole purpose of the mentorship (apprenticeship) program is the commitment that both the Mentee and the Mentor make towards each other. If you cannot commit, I suggest you do not enroll in the program. I suppose that there will be exceptions, but those will be exceptions to the rule.

Q: What happens at the end of the Mentorship (Apprenticeship) program?

A: At the end of the mentorship (apprenticeship) program a Mentee can choose another Mentor. Eventually (after being in several mentorship programs) a Mentee will be ready to become a Mentor himself.

Q: Can a Mentee and a Mentor to be from different companies?

A: In my opinion, not only is that possible, but also advisable.

Consider, what is there to gain:
  • Other techniques, technologies and approaches.
  • An objective view that teaches and directs, without any fixations on the solutions and approaches being applied within your company.

But, what about intellectual property (IP), will you ask?

At least from my point of view (and I have seen quite a lot of solutions from different companies), most of the issues, ideas and code aren't original, nor patentable. The architectures and the designs are pretty much the same, the issues and even the implementations are often identical and most of them are very well known and in the public domain. Companies like Facebook, eBay, Twitter and etc... freely talk about their architectural decisions and implementations; So, why we should we be different?

Nevertheless, there might be some unique business rules or algorithmic ideas being employed by a company and in such a case, please don't discuss those. Use your best judgment and if in a doubt, refrain from any discussion of those points. There will be still plenty of issues to deal with.

Q: Should a Mentee and a Mentor have the same technological background?

A: Not necessarily. It totally depends on the Mentorship (Apprenticeship) program's intention. If a Mentee wants to learn a different stack of technologies - then that might make sense. But if a Mentee wants to increase his knowledge of the current stack, it makes sense to approach a Mentor with the same technological background.

No comments:

Post a Comment