The recent Academy class is well into their apprenticeship phase. They've been encouraged to build upon the foundation laid and grow personally and professionally. Part of that has been to do some reading and reflect on what they have read and its application to their journey as a Software Craftsman. Braxton Plaxco has provided some of his insights gained from reading about Apprenticeship Patterns.

Apprenticeship Patterns

The book Apprenticeship Patterns by Dave H. Hoover & Adewal Oshiney is a wonderful book for any aspiring software craftsman. It teaches the patterns needed to get a solid foothold in a world that is always changing. Working at RoleModel has allowed me to apply many of these patterns throughout my apprenticeship. Three of these patterns have been quite useful so far and they are: Find Mentors, Kindred Spirits, and Sweep the Floor.

Find Mentors

"Whether a beginner starts out with a training course or is self-taught, the first step on the path to software craftsmanship is finding a craftsman to apprentice himself to."

– Pete McBreen, Software Craftsmanship, p. 96

In the pursuit of becoming a software craftsman there are many blind alleys that one could go down. The guidance of a master craftsman can help the aspiring young apprentice, such as myself, to navigate these alleys and grow in their craft. At RoleModel I was blessed with the opportunity to work under one of its Senior Software Craftsman, Tim Irwin. He has helped me to improve in many areas in my life spanning more than just that of code quality. He has helped to ask the correct questions such as 'How would I go about figuring this out on my own?' and 'What resources do I need to complete this task?' instead of 'Can you help me do this?' (i.e. can you do this for me?) He has taught me how important it is to have strong soft skills. Soft skills are the ability to communicate well with clients and others, and are often neglected in the software development world. By guiding me through interactions with our clients I feel that my soft skills are steadily improving.

The ability to work with a good mentor has given me a definite edge in my growth as a craftsman and has been a great encouragement in my growth as an individual.

Kindred Spirits

"Nothing is more powerful than a community of talented people working on related problems."

– Paul Graham, Hackers & Painters

It can be intimidating at times working solely with a mentor, that's why interacting with other people within my skill range has been very beneficial while exploring new avenues. It has become quite a source of enjoyment in my side projects. Kyle, Jeremy, and I have our own Skype channel (dubbed CowChat because every message posted has been piped through cowsay first) in which we talk about our ideas for pet projects, as well as posting an occasional pun. It has been very encouraging to have colleagues to share ideas and grow with. I am also looking into contributing to an open source project. I think it will give me a chance to expand my skills and join a part of a larger community.

Sweep the floor

"In the craft tradition, newcomers start as apprentices to __ __a master craftsman. They start by contributing to the __ __simpler tasks, and as they learn and become more __ __skilled, they slowly graduate to larger, more complex __ __tasks."

– Pete McBreen, Software Craftsmanship.

In the book, Apprenticeship Patterns, the author retells a story of an apprentice who, in trying to find his place on the team, took on the menial task of sweeping the floor. When first joining a team it is good to find ways to begin providing value immediately. The way to do this is often not through actually sweeping the floor, but by taking on tasks such as: test automation, refactoring code, removing technical debt, and that task, "who shall not be named", that has been put on the back-burner for so long because no one wants to do it. It's funny, at RoleModel I actually did end up sweeping the floor. I was given the opportunity to take on some of the DevOps and SysAdmin tasks. The server room was in need of attention so I removed all of the excess material, swept and cleaned it, had shelves ordered, and organized the equipment. It was humbling to take on this task, carrying boxes up stairs while everyone else was sitting together in the main room coding, but I also felt a sense of accomplishment that I was able to improve something in the company.

In Conclusion

"I have no special talent, I am only passionately curious"

– Albert Einstein

Apprenticeship Patterns is filled with many patterns for tackling the tough situations craftsmen will face as they begin their journey. As you quickly learn you can not throw all the patterns at a given situation, but rather you have to apply and adapt the relevant patterns to fit your needs. That being said I would recommended this book, for anyone regardless if they plan on pursuing a career in software development. It has patterns applicable to all areas of life, and I plan to seek opportunities to apply them as I continue to nurture a healthy sense of curiosity in my life.