I’ve been thinking about this topic a fair amount recently catalyzed by a combination of getting older myself, some of the people I’ve worked with now and in the past, and where I see myself in them.
I think that sometimes the prevalence of youth in positions of power in the industry is over-stated by a few high profile entrepreneurs, however I will say I can’t think of many other industries in which someone with 5 years of experience in one job out of college might honestly consider adding “senior” to their title.
Now I’m not completely opposed to the idea on its face. After all, being at your job for a long time in and of itself shouldn’t imply seniority. Just because you have time to learn doesn’t mean you’re using it, there is no intrinsic reason that youth precludes ability, and the idea that age independent of any actual valuable input should continue to result in more pay and better positions is pernicious and wrong-headed.
On the other hand, there is something to be said for experience combined with programming ability. Having the experience of maintaining code you wrote, or someone else wrote, for a number of years teaches you a lot. Having the experience of interacting with customers over the years does too. It teaches you something about the bigger picture, the long haul. More importantly it teaches you things that you then see younger, smart, but green developers ignoring (I know. Get off my lawn).
I understand the feeling that motivates one to add the “senior” label prematurely and I agree that much of what passes for seniority is simply age, but there is real value to experience and we shouldn’t be so short sighted as to ignore it.
For the record, Mike does not refer to himself as a senior anything in either his professional or personal life.
I’ve recently gone back to writing Java and one thing that’s really struck me again is how JUnit (and XUnit frameworks in general) don’t do much to encourage clean tests. Don’t get me wrong, I’m all about unit testing, but a lot of junit tests aren’t very helpful.