I recently bumped into some discussions about career paths within Engineering organizations, specifically Agile teams. Examples can be found here and here.

Here is a short summary:
The steps in these ladders follow the following pattern:

  1. Junior Software Engineer
  2. Intermediate Software Engineer
  3. Senior Software Engineer
  4. Staff Software Engineer
  5. Principal Software Engineer
  6. Distinguished Software Engineer
  7. Fellow

Note that none of these steps are classic management roles. That’s a completely different ladder. This is a pure engineering ladder. These types of ladders are used at very large companies like Microsoft and Google, where the highest levels are considered as equivalent to executive management (VP and SVP level) and are compensated accordingly. I have not formed my opinion yet on how – or whether – this maps well to smaller companies. However, today I wanted to touch in on a different topic, the inclusion of leadership and industry impact in these ladders. For the discussion today, the important aspects are the following:

  • The transition from Senior Software Engineer to Staff Software Engineer generally involves a leadership based step.
  • The transition to Principal generally involves industry impact or that the engineer is indispensable to the company
  • The transition to Distinguished involves large company impact
  • Fellow is reserved for those that impact the industry as a whole and have profound impact on the company.

I find the most important strategy is to allow people to continue to grow within their profession (and rewarding them for that), without fundamentally changing the role. The links above touch on that, but only make the distinction between engineering and management, still expecting the more senior roles to deal with leadership and industry impact.

The classic career track had a point where the engineer “graduated” from building things, and moved to management, starting to lead people, and no longer effectively being an engineer. Thankfully most organizations today are realizing this is not a healthy track. However, as we can see above, these tracks still include other things which might be problematic. In particular, I find it a bit suspect to put leadership and industry impact as a cumulative step in such a ladder.

As an example, you could have a very young and inexperienced engineer who is gifted at teaching, coaching, or facilitating, and could fulfill an engineering lead position quite well. Such a role is anyway best filled not by the best developer, but by someone who is so lacking in hubris that they understand that the collective experience of everyone around them will completely outshine them, and their role is to bring everything into focus. Great leaders are not necessarily great craftsmen.

Another example, conversely, you could have a very senior engineer who is vitally important to your company who has no interest or skills in the teaching/coaching regard, but is still a great team member. They want to stay a craftsman. They have no interest in industry accolade. In this picture, they are barred from ever going higher than Senior (Staff, Principal and higher are out of reach), unless they decide to diffuse their time into things which might not be best for them or for the company. Great craftsmen are not necessarily great leaders.

I generally lean in the direction of at least two engineering tracks: Craftsman and Leader. One model would be to have them identical up to and including Senior Engineer, then split into the two tracks. The Leader track would focus on things like staff, industry, and impact, while the Craftsman track would focus on craftsmanship, teamwork and personal improvement. The Leader track expands up and out, while the Craftsman track focuses down and in.

You don’t want all your strikers becoming sportscasters, coaches, and consultants. You still need them scoring goals.