Senior Developers
A senior developer has earned that title. They’ve waged wars and won, faced long days and nights, overcome the most obscure of obstacles. Now, for all their troubles they have to deal with you. Wet behind the ears and a danger if left unmonitored. Hardly seems fair, does it?
This is the curse of such a vast wealth of knowledge. They’ve built up so much over the years they can’t possibly apply it all at the same time. They must delegate to be efficient. How do they choose what to pass down the line and to whom? Well that’s all part of their new challenge.
I’ve had some time now as a junior developer and I have been lucky enough to be under the care of a couple of seniors who have made my experience a very pleasant one, considering the mountain of varying knowledge I have acquired in such a short time. I want to point out the characteristics they display that I admire most and deeply appreciate.
Essential traits
Given that the responsibility of overseeing a project or even multiple projects is a stressful one, it is crazy to think that the senior developers of the tech industry also have to essentially baby-sit at the same time. A lot can go wrong even before they have to throw inexperienced developers into the mix. 3 of the most important traits for a successful senior developer to posses, in my opinion, are;
- Attentiveness
- Patience
- Optimism
Let me explain to you, who like me, is the junior developer in this arrangement.
Attentive
I don’t mean they need to be all lovey-dovey and sweep your hair out of you eyes when you talk, I mean they need to pay attention even when it’s from afar. They need to have a good gauge of how you are feeling both in regard to your workload and in life in general. Not necessarily all the details of your every move, but are you happy?
The reason for this is that if you’re not happy, you won’t produce good work which means more work down the line because the code you commit is not good enough or within the deadlines. Simply checking in with you daily is all a good senior will do, but a great senior will take action when needed as they have the experience to be able to do so effectively.
The action does not have to be some grand gesture, sometimes just a few words of guidance or a “don’t worry, I still have days like that” go a very long way in helping an overwhelmed junior developer get a handle on things.
Patient
Often the team’s senior developer is the one that is really face to face with the deadlines. They see the whole project in the “big picture” sense so will also forsee the knock-on effects of a missed deadline before anyone else. Despite this burden, the best senior developers are able to balance the pressure while displaying great patience with their team, affording them the time needed to discover solutions in their own ways and therefore build themselves into stronger developers in the process. It is an investment that will only pay dividends in the future, but of course, our highly esteemed senior knows that already.
A part of this patience is the ability to block the rage and fury of the dreaded (and often agitated) client. They soak up the barrage of questions like “well, why isn’t it done yet?” so that those in their care can keep a clear head and just focus on the task before them. They know that once deployment and delivery is accomplished, all that negative energy will evaporate anyway.
Optimistic
It is important to understand that this does not mean naive optimism. Programming requires an air of pragmatism, and years of thinking like that will lead to a senior developer being so inclined. The optimism I mean is a type of faith. Faith in their juniors to overcome the obstacles they need to, faith that they will ask if they really do get stuck and faith in their own abilities to provide the necessary learning resources and road maps to becoming a capable developer.
It is a type of self control that a father displays when their child first rides a bicycle without stabilizers. As much as they want to step in a protect, they know they must leave the space to fail in order for the kid to grow, to get stronger, better, to develop. They know if they can just hold off, it will pay off.
Some examples
I’ve had a terrible week this past week after having a project I delivered utterly trashed by the client and had to take it almost right back to the drawing board and implement a bunch of (front end) stuff that I am very unfamiliar and very very uncomfortable with. I wasted an entire week, if not more, trying out various JavaScript libraries to get an input form to perform more tricks than a circus and was seriously losing my mind over it. I couldn’t believe it was taking so long and just not progressing as well.
I was angry. At both the situation and myself. My senior dev, however;
- never swept in and bossed me around
- never complained about the amount of time I wasted
- checked in with me regularly
- afforded me the time to explore so many options
As if that wasn’t enough, after about a week and without me even realising, he threw me a totally different small project that was in PHP which I am far more proficient in. I knocked that out in an afternoon, so he fed me a bonus task of dockerizing the application which I also managed relatively quickly. Two things, that if compared side by side with what I was so stuck on, would probably be considered slightly more advanced. It was definitely a morale boost.
The next day, same project and this time just looking into refactoring some SQL queries (which is a favourite of mine) and that had me feeling like bullets would bounce off me. I went back to the JavaScript that was torturing me, deleted the entire branch I’d spent a week tied up in and banged out a perfectly fine working solution in a couple of hours. Thanks to the previous day’s distraction techniques, I didn’t get hung up on the wasted time too!
Thanks to my senior’s attention, patience and faith in me I managed to eventually overcome something that I clearly wasn’t able to do a week ago, plus I have gained the experience that will hopefully help me avoid getting so caught up in a problem in the future.
I’m grateful.
Created Environment
You can see from just that one recent example that you have every right to be jealous of my working environment because my goodness, it is nurturing. Thanks to having this sort of support for the last 2 years, I can confidently say that I am more able as a developer than I should be for the number of years I have had in the industry. I have justifiable confidence because I have worked on real software used by some huge companies because I was not only taught the right stuff but given the opportunity to use that knowledge to build something that is a part of something of real significance.
I look forward to working every day because it is always challenging but never frightening and because I can look back at what I’ve made and been a part of with pride. It is a great team to be a part of.
Results
I won’t repeat that I’ve gained a huge amount of experience in a short time… but I really have. Not only that, though, I really believe that the future of the group I am a part of will be a great one because the next wave of junior developers after me are in for a solid support system and incredible guidance. This team has already achieved some great feats while getting little old me up to speed, so I can only see exponential success on the horizon.