Software development is a really particular industry, I have never seen an area that combines technology and artisanal work like this. What is even funnier is that even developers forget this facet or maybe never notice it.
We are used to seeing software development and immediately think about cutting-edge technology, industrialization, and all that cleanness and perfection that is often described in some of our science fiction classics. A second look into the area shows us that even in the more industrialized software factory, development keeps being a very artisanal work.
Artisans are known for creating products with expertise, high attention to detail, and without fearing putting their hands in the dirt. Software developers, or at least the good type, treat every piece of software as a delicate vase that they are giving form while they refine it… But today, I don’t want to dive extremely deep into every similitude and lose myself in the analogy, I want to talk about something that artisans and developers have in common, but sometimes, we forget or take for granted: mentorship.
I remember my early days studying software development. We used to talk a lot about how easy it is to find resources for learning new technologies for free on the web and how becoming an autodidact was a must for every dev. Some years, several JavaScript frameworks and many bugs later, I can look back and see that we weren’t too far from reality but that was just half true. Yes, we must be able to learn by ourselves. Still, we usually need somebody who points us in the right direction, someone who teaches us not the solution to the problem but a general methodology to solve problems. We have to be able to learn by ourselves, but we need mentors and eventually, when the time is right, we will need to be a mentor for someone else.
Why do I need a mentor?
While I’m writing this, I have a little more than 6 years of experience in the industry. I have had the honor of knowing great professionals that have served me as mentors in different moments of my life. Some of them were my teachers, other coworkers, university teammates, or even people from my local community of developers. Mentors come in a wide range of packings but they always help you to walk in the right direction.
Something that I must highlight is that I’m not just talking about receiving a block of code to solve a problem or taking a peek at your code to check how you are implementing things. Those things are great, actually awesome, nevertheless, I talk about having someone to talk about career development, high-level archetypes for some kind of problem, promising technologies, and receiving advice about that.
I’m talking about having someone who helps you to see the big picture. The problem with any new software developer is that they can be too short-sighted and are often taken by trends. There’s always a new framework, a new technology, or a new language. Trends can get messy, and being guided by trends can get us in a never-ending loop of superficial knowledge about everything without foundations of nothing.
Why do I need to be a mentor?
After understanding why people need mentors in almost every stage of their career, it’s simple to see why the world needs more mentors, but something that can be hard to realize is the reason why I should be the mentor that people around me need; in particular, if I haven’t had a mentor. My answer to that thinking is that you have to be a mentor because you need to be a mentor. As dumb and simplistic as it sounds being a mentor is a need because it helps us to grow.
I’m convinced about the idea that mentoring someone makes both, mentor and apprentice, grow as a professional and maybe even as a person. When you have to mentor someone, your dominion over the topic is put on trial, so you have to walk the extra mile in order to be able to answer the questions when they arrive. When you have to mentor someone, you become some kind of leader, and not the bossy kind, but the organic one that people enjoy working with. So, why do I need to be a mentor? Because I have to keep growing.
Conclusion
Finally, I have to present a disclaimer about me and the concept of “developers as artesian” which is not a concept of mine, I’m pretty sure someone said it before, probably the guys from Etsy who have a pretty nice blog that you should check. It’s called Code as craft and talks about how they arrived at some of the solutions they have implemented.
Once more, mentoring is a relationship that produces growth in two ways. Mentors and apprentices can grow from that interaction, and that’s something that we should do (and prepare for) more intentionally. Let’s be the mentor we needed when we started.