On our 4th Software Craftsmanship meet-up I have introduced the Mentorship / Apprenticeship program.
Since then, I have received 2 great apprentices to mentor.
In the following series of posts I would like to summarize our mutual experiences (questions, debates and learning processes) for the benefit of the community.
During the first meeting we discussed the following topics:
We talked about each others experience: what we learned from that experience and what we didn't :) [A hint: We all learned that we want to become software craftsmen :)]
What does Software Craftsmanship stand for?
I reviewed the basic Software Craftsmanship ideals and values and we discussed their impacts on our professional lives. [An example for such a value is: Deliberate Practice]
What are the objectives of the Mentorship program?
Each apprentice prepared a list of his objectives and after a short review, we discussed how to meet them. [An example for an objective is: Enhance Unit Test Knowledge]
Paradigms and Principles:
I prepared a list of paradigms and principles that each apprentice should learn. We reviewed the list and the reasons why those paradigms/principles are important. [Some examples of the principles: Refactoring or OO Design Principles]
We exchanged our RSS feeds in order to enrich our learning sources.
We discussed miscellaneous issues that varied from development, career paths and social media. [For example, we discussed whether a software engineer should have a blog and if yes, then what to post about]
All in all those were very nice first meetings... Now we are looking forward to sink our teeth into some Object Oriented Principles/Code Smells and Unit Tests. Each apprentice will review (on his own time) an open source project which we will analise together later on, in order to demonstrate and learn the principles.