A big part of any job is the people you work with. Tech is no different, in that, the members of your team, who you spend a big chunk of your day with, play a huge role in how happy or sad you are in your career. Working with devs who are KIND is probably one of those things I completely and totally lucked out on! It has also given me some insight into how I want to see myself evolve and grow as a software developer.
So getting back to the title what do I mean when I say kind? Well, I love lists and I have one for this one too:
On my first ever job I was always full of questions ALL THE TIME. Everything was new and I had a bunch of learning to do (which is also what made work so much fun). My colleagues never made me feel like there was no time for my never ending questions. But in exchange for that, (and to be mindful of everyone’s time) it is always a good idea to make sure the other person has a minute before just walking up to them with “Hey I have a question”. Another thing I would like to add here is, when you have a question, it doesn’t get better than a good sweeping search on Google.
Sometimes it is hard to get things right in one go. And more often than not the most patiently explained answers are the ones that have stuck with me for the longest. It helps to make sure what you are explaining, gets across to the receiving end, patiently. There is also the possibility that there is something you could potentially be over-looking that would reveal itself in due course of a patient and calm conversation!
Clear and simple answers go a long way
“A” caused “B” which is why we have this code that does “C” and oh that is why we need “”ZZZ” for which we already have a story in the backlog. And lets assume the dev you are talking to is not familiar with alphabets (there goes 15 minutes of both your time). Keeping something very simple is probably one of the hardest things to do but becomes a necessity eventually. That brings me to my next suggestion:
Say it in your head first
Piggy backing on (3), simple examples and simple words go a long way in hammering home any concept. If possible one could try saying it in one’s head before actually saying it out loud. This will help you refine what you are going to say. It helps cut out on irrelevant information to keep things concise and to the point. Examples always help me grasp a concept more quickly. Sometimes it also helps to provide some background and jump right into code!
“Give a man a fish, and you feed him for a day. Teach a man to fish, and you feed him for a lifetime”. When I mentored for the first ever time I was not the best at context switching (I am still not but I think I have gotten a better at this though). So when my mentee had a question on something she was working on, while I was working on something completely unrelated and I knew the exact answer to what she was asking, I was like “Hey maybe you could try this and the reason that might work is because of this”. I did not think much of it at that time, but later when I was at the receiving end of something similar it hit home. Guiding someone to get to the answer they seek is probably one of the most simple, yet powerful things we can do for each other! I enjoy digging for answers (though you will see me fumble and fret through out the whole “figuring out” period). Added bonus: You learn so much more in the process and you never know what might come in handy later on!
If you are in tech, learning and continuing to grow is a part of your everyday job! With that said I always appreciate extra reading material and additional references that may not always be directly related to what I am working on at that moment. It helps me get close to “Keeping up” which I enjoy as well 🙂
Code reviews etiquette
I always find it helpful to ask vs demand. There is a difference between “Hey is this why this is here?” or “Could we change this to that? What do you think?” vs “Change this”. The former makes me think while the latter kicks in defense as the first instinct.
Its OK to be wrong
We all make mistakes. We are humans. But I believe what makes us more human is the ability to say “Yep you are right and I stand corrected”. Also, making a mistake once is probably good because that also means, chances are you will hardly get it wrong again! I understand and realize there is a lot that goes behind saying that. But I also believe it doesn’t hurt to try 🙂
Embrace being challenged
Given there are innumerable ways to implement something in code, coupled with how quickly one can form and hold on to opinions, makes tech so awesome and scary at the same time. With that said, I have always found it helpful to keep in mind that everyone has something unique they bring to the table (One could always argue that that is not ALWAYS true but I guess assuming it is, is not a bad starting point). It is a good idea to be open, to not just being asked questions, but also to being challenged. Such conversations can go sideways real fast but I firmly think there is a good chance they could be had in a way beneficial to both parties if everyone were just willing to listen to understand and not listen to challenge 🙂
As a new person on a team, it helps to have project documentation to refer to. How to set the project up? What tools do I need? Where are the links to all the things I need access to? I will take this one step further and also say it helps to work with well documented code (this works the same across the board for all devs irrespective of how long you have been on a certain team. I have had embarrassing moments where it took me longer to figure out how a block of code worked, than the time it took me write it in the first place.). So make sure to add all relevant documentation to help people who come after you! Documentation is something all of us enjoy all the time! But I like to think of it as a long term investment where the more time one spends on it the less time anyone on the team will need to spend on on boarding new devs!
Everyday is a chance to learn something new. A cool feature , a new architectural pattern, a new technology, a new language etc etc. But everyday is also a chance to be kind and to make a difference in someone’s day, however small or big. So, as developers let us all try to make a collective effort to be kind and nice to one another🙂