Software developers and engineers have rarely been in higher demand. Organizations’ need for technical talent is skyrocketing, but the supply is quite limited. As a result, software professionals have the luxury of being very choosy about where they work and usually command big salaries.
In 2020, the U.S. had nearly 1.5 million full-time developers, who earned a median salary of around $110,000, according to the Bureau of Labor Statistics. Over the next 10 years, the federal agency estimates, developer jobs will grow by 22% to 316,000.
But what happens after a developer or engineer lands that sweet gig? Are they able to harness their skills and grow in interesting and challenging new directions? Do they understand what it takes to move up the ladder? Are they merely doing a job or cultivating a rewarding professional life?
To put it bluntly, many developers and engineers stink at managing their own careers.
These are the kinds of questions that have gnawed at me throughout my 25 years in the tech industry. I’ve long noticed that, to put it bluntly, many developers and engineers stink at managing their own careers.
It’s simply not a priority for some. By nature, developers delight in solving complex technical challenges and working hard toward their company’s digital objectives. Care for their own careers may feel unattractively self-promotional or political — even though it’s in fact neither. Charting a career path may feel awkward or they just don’t know how to go about it.
Companies owe it to developers and engineers, and to themselves, to give these key people the tools to understand what it takes to be the best they can be. How else can developers and engineers be assured of continually great experiences while constantly expanding their contributions to their organizations?
Developers delight in solving complex challenges and working hard toward their company’s objectives. Care for their own careers may feel unattractively self-promotional or political — even though it’s in fact neither.
Coaching and mentoring can help, but I think a more formal management system is necessary to get the wind behind the sails of a companywide commitment to making developers and engineers believe that, as the late Andy Grove said, “Your career is your business and you are its CEO.”
That’s why I created a career development model for developers and engineers when I was an Intel Fellow at Intel between 2003 and 2013. This framework has since been put into practice at the three subsequent companies I worked at — Google, VMWare, and, now, Juniper Networks — through training sessions and HR processes.
The model is based on a principle that every developer can relate to: Treat career advancement as you would a software project.
That’s right, by thinking of career development in stages like those used in app production, developers and engineers can gain a holistic view of where they are in their professional lives, where they want to go and the gaps they need to fill.
Step 1: Functional specification
In software development, a team can’t get started until it has a functional specification that describes the app’s requirements and how it is supposed to perform and behave.
Why should a career be any different? In my model, folks begin by assessing the “functionality” expected of someone at their next career level and how they’re demonstrating them (or not). Typically, a person gets promoted to a higher level only when they already demonstrate that they are operating at that level.