Pairing Tour: The Importance of Communication
These past two weeks, I got the opportunity to pair with several craftsmen for my pairing tour - a two-week period in which I pair with a different 8th Light craftsman each day. Resident apprenticeships at 8th Light conclude with a four week process that is broken up into two parts: pairing tour and final challenges. In these two weeks, I worked on several different codebases and while I did do some coding, I learned more about the disciplines and expectations of a professional developer more than I learned about implementing programming practices and patterns that I had originally anticipated when I first paired with a craftsman a few weeks ago. However, this isn't to be taken as a complaint at all - I have learned so much from these past two weeks that solidified the teachings throughout my apprenticeship that I wouldn't have learned without having the opportunity to pair with several craftsmen. While there were several different things that I learned during my pairing tour with each individual craftsmen, the common lesson that I learned in every session is communication.
Communication
One of the important things I took away from this pairing tour is understanding that as software consultants, craftsmen need to do more than just know the programming languages, patterns and practices, and latest technologies out there to successfully do their jobs. We have the responsibility as professionals to understand the business domain of the projects we take on. This doesn't necessarily mean that we need to know the in's and out's of the business, but we should at least have a deep understanding of the business goals. This requires ample amounts of communication with people like managers, business analysts, testers, and other team members to truly understand why we're writing code and how the business will benefit from it. During these two weeks, I participated in all of the stand-ups, email exchanges, talks, and meetings that the craftsmen were involved in to understand that communication is essential skill to hone as part of our journey to become software craftsmen. You can be the greatest programmer, but if your communication skills are lacking then it becomes very difficult to work in a team and to market your product (you).
Because of the nature of consultancy, craftsmen are placed on new projects and need to quickly get up to speed in order to add value to the systems immediately. During my time with the craftsmen, if there was something that we weren't so sure of, we'd communicate with other team members to make sure we understand exactly what the business needs from a feature that we were implementing. Other times, we'd ask Google and do some exploration to find solutions to problems that we run into that didn't involve the business domain. The important lesson I learned from these situations is that it's okay to not know everything. There isn't always time to sit yourself down and take a nosedive into the entire system to get a deep understanding of how each component works and there may not ever be time for that - and that's okay. It's much more important to understand the business needs and expectations of our clients and the necessary information needed to perform our immediate tasks than it is to dig into the nitty gritty and potentially spiral into a rabbit hole that we don't need to get into.
I have learned a lot in these past two weeks during my pairing tour and it has truly been an invaluable experience to be able to work so closely with the craftsmen at 8th Light.











