While I don't care about title inflation or title absurdity, I do care about what the people doling out and receiving some of these titles assume that they mean.
One title modifier, in particular, Senior, is important to me, not because I have it, but because without people who embody its Core Principle I wouldn't be where I am today.
I wouldn't be able to help others get here if that principle hadn't been instilled in me.
In an industry where two people can do the same job, but one is an Engineer while the other is a Ninja, I think it's safe to say that our titles are meaningless.
Which is good. You could spend your whole career chasing ever-loftier titles. That way lies madness. Unfortunately, a lot of companies either use title changes in lieu of pay raises, or tie pay to titles in a way that requires doling out new ones or adding modifies (How many of you are a [Title] II or a [Title] III?) to them every 12-18 months.
When I worked for Bank of America, my title was so long that they stripped almost all of the vowels from it and it also featured a hyphen (-) and a semicolon (;). Add to that the fact that basically every full-time employee who writes code is a "Vice President" and you end up with a silly VP title that means absolutely nothing and is impossible to explain to anyone.
I don't have any solution for this insanity in our industry, and it's not really important to me that we change it, but I wanted to make sure that we covered how meaningless we've made all of our titles before I explain why Senior is actually important and why the meaninglessness we've created could lead to an industry-wide problem.
It's also worth mentioning that the Engineer title is ridiculous given the generally ephemeral and fragile nature of what we build and the lack of any oversight or credentialing body, but that's a topic for a different rant.
The Senior Core Principle
A Senior Developer (or Engineer, Ninja, Rockstar, etc.) is not just someone who has more experience or one who is the lead on a team or a project.
The Senior title comes with a vitally important responsibility: to make those around you better Developers.
That responsibility is the Core Principle of the Senior and it is one that should span our entire industry. It is rarely listed in job descriptions, but it should be.
What we see an alarming amount of today is Developers being put into Senior positions as the next logical step in their career progression or as some reward for sticking around. While this won't have a huge immediate impact, it will radiate through the following generations of developers and amplify the effect over time.
When a Senior who embodies the Core Principle teaches the next generation of Senior developers, they go on to embody that principle and instill it in the following generation, too. Life is good.
When a Senior who only has the title doesn't instill that principle in the next generation - or, even worse, instills the idea that Seniors are arrogant and unhelpful - then that idea trickles down and more arrogant, unhelpful Senior Developers will be created. Here there be dragons.
If that eventually becomes the norm, how much more toxic would Developer culture become? How hard would it be for someone to transition into the field? How hard would it be for Junior developers to grow into Senior developers?
If you're a Senior right now: What are you doing to make those around you better Developers?
My Senior Philosophy
My approach to embodying this Core Principle involves several things, but the primary directive is trying to make time for other Developers to ask questions, talk through solutions, vent about clients, ask for code reviews, and ask about career advice.
I always caveat that my code reviews and my advice may not always be the best solution, but they are what I would do and then provide the reasoning behind that decision. I've found that it helps people learn when you show your work, and it also invites the other Developer to question your thought process and provide their own insights on things you might be overlooking.
In the service of making myself and other Developers better at what we do, I organized a few initiatives during my time at Skookum and continue to do similar things at every other place I work.
- Monthly Coding Challenges: Every month we will tackle a new coding challenge and help keep each other motivated in a dedicated
#coding-challengeschannel in Slack. Each challenge is different and allows a wide range of Developers to hone their skills.
- Monthly Developer Presentations: Every month we will invite one of our developers to present a Web-related topic to the rest of the Development Team. Hopefully, this helps Developers iron out presentations for Meetups and conferences while also giving the rest of us some new perspectives.
- Bi-Weekly Video Series: Every 2 weeks we watch a Web-related video and discuss it as a group. This was previously an initiative, but the developer who started it left the company, so a colleague and I resurrected it. This gives us a chance to experience conference talks we would otherwise miss out on and also facilitates conversation between Developers at all levels.