When we embrace the concept of skillset diversity amongst disciplines, it provides opportunity for people to share knowledge and teach others irrespective of years of experience.
The democratization of learning in software development continues to be one of my favorite things. Coupled with meetups and communities which allow for people to learn from others results in a great learning environment. There were several people who strongly invested in me as I was first learning to code; they answered what I felt were silly questions, reviewed my code, and encouraged me to continue pushing forward. This aspect of the community was essential to my learning experience and becoming the developer that I am today.
Previously, I considered mentoring something that was primarily relegated to senior developers; the additional experience and leadership roles make this a logical conclusion. Until recently, this resulted in my mental exclusion of less experienced developers being able to assume a role of mentorship. In order to provide valuable mentorship a person would need to have substantial experience to build on. However, this is a narrow perspective and a manifestation of scarcity mentality.
Measuring experience strictly on years of experience as a linear progression is a shortsighted metric. Experience spans over many disciplines and translates across practices. The development of soft skills does not directly correlate with technical skills. Even within the category of technical skills there can be multiple verticals with varying experience in each. When we embrace the concept of skillset diversity amongst disciplines, it provides opportunity for people to share knowledge and teach others irrespective of years of experience. A newer developer may have unique perspectives from the changing landscape of tools and processes. They also may have additional empathy or ability to break down core concepts of a process since they are closer to the learning experience. These unique perspectives can provide benefits to others and should not be discouraged or excluded.
Embracing the opportunity to mentor others and contribute to their learning journey is a passion of mine. It is an excellent way to give back to the community that has been influential in my ability to transition careers. There have been 4 core perspectives that have been beneficial to me as I pursue being available to mentor others.
Practice empathy: Empathy is essential to engaging with people; this is amplified in any situations in which there may be perceived or actual hierarchy. In the context of mentoring, this can manifest itself as being patient in the learning progress and when someone is struggling with something that may be apparent to you. Recognizing the struggle of their learning and being able to provide compassionate feedback or direction has a substantial impact. The antithesis to this is acting indignant to someone not being able to solve a problem or struggle to learn a concept. Avoid using phrases such as "Read the freaking manual", "just", "clearly", and other language which can be interpreted as condescending. This creates insecurity and psychological barriers which detract from growth.
It's ok to defer to others: Mentoring does not require knowing everything about a variety of topics or even one topic. There is a plethora of things to know, and we cannot be masters of them all. This is the root reason for specialization. If presented with a question or situation where you lack experience, it is acceptable to say you are unsure of the best response or are even unqualified. Ideally, this would be accompanied by offering to help seek resolution of the issue together or be able to refer them to someone else who may be better qualified to guide them in this particular scenario. This expression of vulnerability can help establish confidence and cultivate the relationship. Pretending to know the answers to a scenario can portray insecurity or hubris, which may damage the relationship and overall reputation. This vulnerability also helps to establish and maintain a healthy learning culture, which may in turn help allay some levels of imposter's syndrome.
Make few assumptions and break concepts down: Within the technical realm, there is an abundance of jargon and domain knowledge. General concepts may translate across disciplines, but jargon and some concepts may be specific to that domain. Asking open ended questions provide the ability to communicate about particular concepts and align people on common understanding. Asking questions such as, "What is your understanding about concept X?" or "What approaches have you considered to solve this problem?" allow for discussion and are non-presumptuous. Questions which evoke a yes or no response shut down conversation and potential avenues to confirm common understanding. These binary questions are also be more likely to be interpreted as condescending or lacking empathy. Text based communication magnifies this concern due to the difficulty in conveying body language and tone.
Balance providing answers with providing direction: One of the pitfalls that I need to continue to balance is when to provide guidance vs actively help solve a problem. Both provide value in different circumstances, and weighing out which may be better continues to be an elusive quandary. Providing direction entails asking questions on what steps have been taken thus far and trying to step through what processes may be the best course to move towards resolution. Outright solving the problem for the person can have negative impacts on their learning or retention of what happened. The end goal of this approach is to help unblock someone to resolving a problem by providing some insight on where they may want to look. I believe that this is the best approach for many purposes. However, there may be times where a more direct approach is warranted and solving the issues through some hands on pair programming may be a very valuable experience as well. Strategies to avoid pitfalls of outright solving the problem may include: thoroughly explaining the process that you are taking, not taking sole control of the keyboard in a pair programming session, and asking the other person what steps they think should be taken next.
Mentoring is a beneficial part of anyone's journey. The process to get over my self doubt in my value as a mentor to other developers has been worth pushing through and is an invaluable experience to help give back to the community. A community where knowledge is shared freely and in a healthy manner is a place where people can flourish.