Occasionally I see software developers referring to themselves as “senior”. I don’t really like the use of this term too much as I believe it means nothing.
“Hi, I’m a senior developer”
All I heard was “hi”, then some other words, then “developer”. We don’t need to negotiate status.
Don’t get me wrong, seniority can mean a specific thing inside of an organization – maybe there are pay grades expected by a union or a specific set of expectations and responsibilities that can be divided into different roles. And for lack of creative job titles, we end up with things like analyst I/II/III, or junior/intermediate/senior developer.
But in the context of the industry, or when you are comparing yourself to your peers, what does senior mean? Is it how long you’ve been working, or maybe how much you know? If only length of employment could correlate to competency or if we could measure knowledge, surely we could standardize. But in an industry as vast as this, we don’t all learn the same things and simply attain different levels of mastery.
If you’ve been a called a senior developer in one company, is it below you to go work as a junior in another company where the bar is set a bit higher?
After some experience and moderate success, it could be easy to start looking around us and think, “Surely in comparison to my peers I must be senior”. After all, they don’t even know what a monad is. Pfft, juniors!
But when we think of our level, who should we really be comparing ourselves to? Why are we comparing ourselves to the programmer who sits in the cubicle down the hall, the crazy DBA, or the guy who doesn’t want to learn new stuff anymore because he’s got it all figured out? If that’s the standard, then it’s pretty depressing.
We should always be comparing ourselves to some of the more impressive people in the industry. The ones that did things and made everyone take notice. The people that changed the way we thought about things or created businesses that forever changed the state of human technology. People like Alan Turing, Edsger Dijkstra, programmers like Bjarne Stroustrup, Linus Torvalds, or John Carmack. Or those who are pushing for quality and structure like Martin Fowler, Kent Beck, or Bob Martin. Let’s not forget those who gave us consumer technology and created industry giants like Steve Jobs or Bill Gates.
When I compare myself to these people, I’ve got a long way to go. I try to think of myself as just another developer who needs to work at pushing myself to learn new things. And you can learn something new from anyone — don’t think that you can only learn from people with more experience than you. Open your mind and just try to get better. Don’t focus on status or rest on your achievements. Don’t get stuck in habits just because they worked before. Continue to self-analyze and observe the way others do things – you just might pick up something new.
There was a great post by Scott Hanselman recently on feeling like a phony and a podcast to go with it. These described quite well the way I’ve felt and, quite honestly, the way I want to feel. I’ve learned to accept it. It’s part of me. Feeling like a phony gives me motivation to keep learning and keep ego in check.
So cheers to the catcher in the rye, feeling like a phony, and trying hard not to be one.