Career development for software developers is a tricky subject. Most people start their career in a job with a title similar Junior Programmer or Software Engineer I. If this person is lucky, the company has a few next steps defined such as Senior Programmer or Software Engineer II. Unfortunately there is no definition of what is required to be a "senior" programmer or what it takes to achieve Software Engineer II. There is also no correlation between one company's Senior Programmer and another company's Software Engineer III.
At Clearent, we created "developer levels." These levels are gradients through a software developer career lifecycle. We have defined 10 levels that we can use to talk about an individual's career progression. The first 5 levels are focused on gaining individual skills. The second 5 levels are focused on making others great. The rationale for this is that early in one's career, it is important to learn and grow and build a skill set. As a developer advances, it is more important if that developer can help others to grow than master some new skill.
None of the items listed in the levels is a hard-and-fast requirement, but each item points to a type of activity that is necessary. For instance, many levels require an individual to host a lunch-and-learn, code review, or create a wiki document. This activity is meant to push a developer to share knowledge with a broader group. All of these items can be customized for an individual at a manager's discretion.
The levels that we are using are:
|
|
Level1 |
|
Complete the basic katas |
|
Complete a tour
of duty on Prod Support |
|
Describe the
purpose behind our retrospectives |
|
Explain why TDD
is important |
|
Have code
deployed to production |
|
Host a code
review |
Level2 |
|
Complete the intermediate katas |
|
Demonstrate
knowledge of a particular business process |
|
Be able to list
at least 4 of Top 10 OWASP Web Vulnerabilities |
|
Host a
lunch-and-learn or code review |
|
At least one
additional of lunch-and-learn, code review, wiki article |
Level 3 |
|
One year anniversary |
|
Host a
lunch-and-learn or code review |
|
Be able to
articulate and explain each of the SOLID principles |
|
Complete the
advanced katas |
|
Explain the
primary business model |
|
At least one
additional of lunch-and-learn, code review, wiki article |
Level 4 |
|
Write at least one article for
the Wiki |
|
Take part in a
candidate phone screen |
|
Create a tech
blog and write at least one article a month for a year |
|
Be able to draw
a picture of the architecture of the major applications in our system |
|
At least one
additional of lunch-and-learn, code review, wiki article |
Level 5 |
|
Two-year anniversary |
|
Host a
lunch-and-learn on a tech topic new to the company |
|
Lead an
initiative and see it to completion |
|
Create 2 new
basic katas for the kata library |
|
Be the lead on a
business process |
|
At least one
additional of lunch-and-learn, code review, wiki article |
Level 6 |
|
Locate 5 patterns from the GOF
book being used in our code.
Describe our use of them.
Was it correct? |
|
Teach another
member of the team something new.
They should be able to talk intelligently about the topic to a level 6
dev. |
|
Create 2 new
intermediate katas for the kata library |
|
Take part in the
in-person interview of a developer candidate. |
|
At least two
additional of lunch-and-learn, code review, wiki article |
Level 7 |
|
Present a topic at a
developer-focused conference or user group |
|
Create a github
account and commit to an open source project once per month for a year. (May be your own project as long as it
is public) |
|
Three-year
anniversary |
|
Demonstrate the
ability to communicate complex technical topics to non-technical people |
|
At least two
additional of lunch-and-learn, code review, wiki article |
Level 8 |
|
Contribute a pull request to an
open source project on github with more than 20 contributors. The pull request must be accepted. |
|
Pair with an
intern or new developer their first two weeks of work. |
|
Create 2 new
advanced katas for the kata library |
|
Complete a
version of the basic katas in a language you are not familiar with. (The katas may not port exactly, so be
creative.) |
|
At least three
additional of lunch-and-learn, code review, wiki article |
Level 9 |
|
Five-year anniversary |
|
Complete a
version of the intermediate and advanced katas in the language you picked for
the task in level 8. |
|
Write a
recommendation for another developer whom you value and respect. They need not be on this team. |
|
Complete a
version of the basic katas in yet another language that you are not familiar
with. |
|
Demonstrate the
ability to lead a project to completion and coordinate with outside parties |
|
At least three
additional of lunch-and-learn, code review, wiki article |
Level 10 |
|
Dream up and implement a tool,
product, or enhancement to an existing application that, upon completion,
adds to the company's financial bottom line. |
|
Demonstrate the
ability to be a team lead and mentor for both interpersonal and technological
development. |
|
At least three
additional of lunch-and-learn, code review, wiki article |
Hopefully this helps others to think about developer career progression in new ways.