Over the festive break I sent out this tweet.
I would fire the “senior” engineers for being over levelled. Senior engineers jobs are to mentor and build up the engineers below them. If they find that a burden then they need to re-evaluate their seniority. https://t.co/f0G5TtumRE— David Burns (@AutomatedTester) December 22, 2017
The, now deleted, quoted tweet went along the lines of “If you have 3 senior engineers earning $150k and a junior developer breaks the repository is it worth the $60k for having a junior”. The original tweet, and then similar tweets that came out after that shows that there seems to be a disconnect on what some engineers, and even managers, believe a senior engineer should act like and what it really takes to be a senior or higher engineer.
The following is my belief, and luckily for me its also the guide I am given by my employer, is that seniority of an engineer is more to do with their interpersonal skills and less to do with their programming ability. So what do I mean by this? The answer is really simple.
A senior developer or senior engineer should be able to build up and mentor engineers who are “below” them. A senior engineer should be working to make the rest of their team senior engineers. This might actually mean that a senior engineer might do less programming than the more junior members in a team. This is normally accounted for by engineering management and even by project management. The time when they are not programming is now filled with architectural discussions, code reviews and general mentoring of newer members. These tasks might not be as tangible as producing code but it is just as important.
Whether you are on an management track or individual contributor track, the further you go up the more it is dependent on you doing less coding and more making sure that you raise everyone up with you. This is just how it all goes. After all “A raising tide raises all ships”.