post on this exact topic by Frontside.
At first glance it just seemed like a more complicated checklist. Yet there is one key differentiation: they accept that a senior developer does not need to complete every item on their tracks. There are options a developer can take that best fit their own preferences for how they want to grow in their career.
I’m a little skeptical of the approach because of how complex it seems at first. My worry is that a developer could spend an inordinate of time trying to understand the triangles. As with the checklist, they could spend more time focused on the attributes in each triangle instead of focusing on the work in front of them.
Still, the idea is different enough from a regular checklist that I’m really intrigued. If anyone else has tried it, I would love to hear how it went!
Another interesting concept suggested was that software developers should be licensed. The idea is it is impossible to have a consistent standard for what makes a senior developer without having a… standard for the profession.
It makes sense and it is an idea worth discussing. A lot of caution needs to be taken with this approach though. Who gets to decide what goes into the standard? A vote among all software developers? Who gets considered to be a software developer? Should it be a body of experts? How do you define who an expert actually is?
More importantly, any standard would need to account for the fact that there are very many different kinds of software developers. Working for NASA is going to be very different from working on a mobile tower defense game. Working on a social network will be very different than building software for medical devices. Working for a startup with no customers will be different than working for a company with thousands of customers. Technical debt is less of a concern if you don’t have product-market fit.
Professional licenses is a fun thing to discuss, but a great deal of caution needs to be made if it ever gets put into practice.
Many interpreted my post to advocate for developers who work independently and don’t need to ask for help. I actually disagree with this. A senior developer should be capable of doing work independently, but software development is a team effort. They should know when they should ask for help, but be able to function without it if necessary.
People sent me two great ideas that go hand in hand with this:
- Senior developers have encountered lots of different problems
- Senior developers have the ability to identify gaps in their own knowledge
One great quote on Hacker News in response to this: Once problems are complex enough there isn't much that can be done as a solo ninja.
The last and most important response I received was the need to actually have quantifiable metrics. They didn’t appreciate my quick dismissal of the idea. Just because judging a programmer by the lines of code they write is ridiculous does not mean all quantifiable metrics are ridiculous.
This topic deserves a blog post on its own. For now I can sum up my opposition to the idea with the following statement: Once you tie quantifiable metrics to raises and promotions, you remove the incentive for a developer to maximize value for the business. You replace it with the incentive to meet your metrics. I have not met or heard of anyone who has actually had success creating metrics that correlate to maximizing business value.
UPDATE 2017-01-22: You can read the post on quantitative metrics here.