While browsing job offers in software development, you can often encounter words like “junior”, “middle”, “regular”, “senior”, “lead” or “principal”. What do they actually mean? Correct answer, as usual, is: it depends. The idea of job grades, pay grades, tiers or seniority levels seems to be quite subjective, depending on job market situation, country, company, technology and if HR people have a good day or not. Let’s explore the subject and try to find some answers. I will reach for some metaphors and analogies to help with this endeavor.
Assuming that software development is a single monolithic skill, which is a thick approximation, we can ask an essential question – how to grade one’s skill. There are quite a few approaches, let’s dive into some of them.
Typical corporate breakdown you can find out there, is “junior” / “middle” / “senior”. Many companies add another level above, usually called “lead”, “principal” or “staff” and sometimes a level below, like “intern”. One corporation had once a 13 level job grade scale, with 6 being junior, 7 typical developer, 8 – so called “sub component architect”, 9 being full-fledged architect and 13 being CEO or something. I have no idea who was at level 1-5 there, maybe they were artificially created to make us feel better. Some companies further divide their levels, like “senior 1” and “senior 2”. Another company I worked for, had once a contest regarding name for the level above senior. There was a very popular idea: “Oberführerprogrammer”, but somehow management didn’t approve…
Medieval craftsmanship is a good metaphor for software development, as I wrote in reviews of two books, first by Pete McBreen and second by Sandro Mancuso. One would typically start as an Apprentice without that much of a practical skill, but perhaps with some academic background. After some time, one becomes Journeyman – competent and able to work on their own, but clinging to people more advanced in the field. After few years, Journeyman becomes truly independent, very proficient and highly skilled Craftsman. And finally, traveling the path of constant improvement, at some point one can be called Master.
Martial arts usually have grading system. In Japanese arts, not only martial ones, practitioners start with kyu (student) grades and proceed to dan (master) grades. Kyu range may vary greatly depending on art, but since I practice Aikido, I will use similar system. One starts from 6th kyu (5th in some federations) and with each exam the number goes down by one, up to 1st kyu. Then there is a black belt examination, passing which grants rank of 1st dan. Further dan ranks go up, where 2nd dan is usually a junior teacher, 4th dan is experienced one and 6th dan is senior instructor, or Shihan. By the way, Steven Segal holds rank of 7th dan in Aikido, one of the highest among non-Japanese. Living students of Morihei Ueshiba, the founder of Aikido, are usually ranked 8th or 9th dan. Keep in mind, that I will refer to this scale considering professional point of view, so assuming that one would be a “full time martial artist”, whatever it would mean, not a hobbyist.
Skill Framework for the Information Age
SFIA organization defines Skill Framework for the Information Age in seven levels, independently for each of four attributes – autonomy, influence, complexity and business skill. To get some grasp, let’s focus on levels description in regard to complexity. Capital letters distinguish keywords associated with each level.
Level 1, FOLLOW: “Performs routine activities in a structured environment. Requires assistance in resolving unexpected problems”.
Level 2, ASSIST: “Performs a range of work activities in varied environments. May contribute to routine issue resolution”.
Level 3, APPLY: “Performs a range of work, sometimes complex and non routine, in a variety of environments. Applies methodical approach to issue definition and resolution”.
Level 4, ENABLE: “Work includes a broad range of complex technical or professional activities, in a variety of contexts. Investigates, defines and resolves complex issues”.
Level 5, ENSURE, ADVISE: “Performs an extensive range and variety of complex technical and/or professional work activities. Undertakes work which requires the application of fundamental principles in a wide and often unpredictable range of contexts. Understands the relationship between own specialism and wider customer/organizational requirements”.
Level 6, INITIATE, INFLUENCE: “Has a broad business understanding and deep understanding of own specialism(s). Performs highly complex work activities covering technical, financial and quality aspects. Contributes to the implementation of policy and strategy. Creatively applies a wide range of technical and/or management principles”.
Level 7, SET STRATEGY, INSPIRE, MOBILIZE: “Leads on the formulation and implementation of strategy. Applies the highest level of leadership skills. Has a deep understanding of the industry and the implications of emerging technologies for the wider business environment”.
Paper role playing games handbooks often consists of the setting part, which describes the background of the game, history, geography, important themes and fictional elements like super powers, fantasy races and creatures or advanced technology. The second part is the mechanics, or the system. It describes character creation process, abilities, social background, advantages, disadvantages, attributes like strength or agility and finally skills like piloting, medicine, fencing or computer programming. Those usually come with some kind of levels which have a certain meaning and value. Since I talked about Vampire the Masquerade in Halloween special episode, let’s take a look on how typical White Wolf games mechanics define skill levels (with an example of archery skill from Vampire: Dark Ages).
● Novice. Basic knowledge and /or techniques (your father showed you how)
●● Practitioner. Solid working knowledge and /or techniques (you practiced regularly on village green)
●●● Professional. Broad, detailed knowledge and / or techniques (you could find a work as forester)
●●●● Expert. Exceptional depth of knowledge and / or techniques (you could make extra money at the archery competitions at local fairs and tournaments)
●●●●● Master. Unsurpassed depth of knowledge and / or techniques. A leader in the field (Robin Hood or William Tell)
●●●●●● Legend. This level appears in Vampire: Dark Ages and is considered to be inhuman (you could put an arrow through your enemy’s eye on a moonless night)
We could continue with this, there are military ranks, academic titles and many more. But I feel, that we got enough. Equipped with those metaphors / examples, we will try to align them, define some reasonable levels and explore their meaning in the second part of this article, next week. Stay tuned.
3 responses to “Seniority in Programming: Part One”