Rethinking the Developer Career Path
I've come back to this talk by Randall Koutnik a number of times since I found it. The ideas are both rational and powerful.
I am particularly fond of
"You need to mentor juniors or it is your fault that they are failing."
"We have failed as an industry"
What does Senior mean (surveyed)
- From Minnesota (funny bit about title inflation in Minnesota)
- Year of experience
What should Senior mean?
We need new words
- Give engineers a path forward
- Describe the work we do
Solution Implementer: Given solutions, produces code. (Junior)
Problem Solver: Given problems, produces solutions (Mid)
Problem finder: Given context, discovers and prioritizes problems (Senior)
Watch the video. It's not so much about renaming these roles, but about describing the expectation at each level and providing a clear understanding of what it means to move from one to another. Eliminating the notion of whether someone is Junior or Senior based on title and then basing it on the quantifiable actions of an engineer just seems like a much better way.
And the impact of such a change seems obvious to me. The job description no longer says just vaguely - "Junior". It says Solution Implementer. And we can actually describe what that means without using punitive language.
- Dear Candidate, You will be implementing solutions. You will be the executor of the solution.
- Dear Interviewer, Please make sure the candidate can implement a solution.
- Dear New Employee, Please implement these solutions, pay attention to how they were designed and the problems they solve. After a while we'd like you to start producing solutions of your own.