Not every senior developer is cut out to be a manager. In fact, many aren't. That's not a dig at developers. Rather, it's a recognition of the role's nature.
Many programmers select the field because they want to be individual contributors, not managers. Even those interested in mentoring others — say, as a software architect or lead developer — may not want to be a developer manager.
Yet, either by external or internal pressures, top software developers are often forced into leadership roles they don't want. Sometimes, they fear plateauing if they don’t move into management. Other times, IT leaders push the move so they can bring in less expensive replacements with similar skills.
Regardless of the reason, the result is the same: unhappy leaders, disaffected direct reports, and less effective product development teams.
The management mistake
As a programmer by trade and a mentor to Yeti's junior developers, this problem hits close to home. I've seen programmer peers grudgingly accept management responsibilities and regret it. They fell short of expectations because the "promotion" felt like something they should do instead of something they were passionate about.
These friends followed a career path that's familiar to many software developers. Initially, they were elevated to project development leads, which might sound like a senior developer role. But instead of continuing to hone their coding skills (as they thought they'd be doing), they found themselves constantly checking on teammates and providing project updates to superiors. Success, previously based on their own skills and motivation, suddenly required them to extract effort from their peers.
Too often, that becomes a vicious cycle. With less time to code, they get less of their own work done. With less work to show, their sense of value suffers, which causes them to work even harder to balance their own challenges with those of the team. Eventually, they either revert back to being an individual contributor, quit entirely, or learn to see their team's success as a yardstick for their own.
That's a cycle developers without management dreams don't need to struggle through. Yes, some aspire to tackle it, but management simply isn't right for many technical team members. It's the responsibility of IT leaders such as myself to nurture them along whatever career path — including nontraditional options — they may have in mind.
Software developer career paths
What, exactly, can developers do when they're ready to move up? In my experience, they tend to gravitate toward one of the following upper-level technical or leadership roles:
Software architect. This role is typically the end game for technically focused developers. Although titles differ by company, it involves making critical software architecture choices for the team.
Software architects often mentor junior developers, but they don't have direct reports. They are serious problem solvers, many with a decade or more of specialized software expertise or generalized experience across several different stacks.
To support software developers pursuing this career path, encourage them to stay up-to-date with new technologies. Even specialists should exhibit some understanding of the full software development stack, and even generalists should have in-depth knowledge of one or more popular languages.
Lead developer. Sometimes referred to as a developer manager, this role is for developers with strong time management and interpersonal skills. Lead developers are a sort of bridge between nontechnical and technical team members. They delegate work to direct reports while keeping communication lines open with company leaders.
Try assigning interested developers small, self-managed projects. Can they hold themselves accountable to deadlines? If they succeed, hand them assignments that require delegation. Can they communicate clearly with others? How do they evaluate direct reports' performance?
Depending on the company, this role could be exclusively management, or it could be a combination of management and coding. Regardless, those pursuing it need to understand that people management requires a distinctly different skill set than coding does.
Senior technical project manager. While not as common as the prior two, developers with strong resource planning and budgeting skills can ascend to this role. Technical project managers work closely with stakeholders and involved teams to keep the project on track and on budget. Candidates should be enthusiastic, efficient, organized, design-minded, and able to thrive under pressure.
How can today's managers prepare developers for technical project management? With careful oversight, let them plan projects, allocate resources, and manage timelines. Encourage interested employees to shadow a project manager, who'll likely appreciate their technical knowledge.
One of the toughest -- yet most rewarding -- parts of management is helping direct reports discover their futures. Inform developers of their options, observe their skills, and suggest paths they might be suited for. But whatever you do, don't push them. That's how people end up in roles they don't want, and, ultimately, that's how technical teams topple over.
Rudy Mutter is an EVP of tech and founding partner at Yeti. He found his passion for technology as a youth, spending his childhood developing games and coding websites. Rudy now resides in the Yeti Cave where he architects Yeti’s system and heads up project production. Follow Rudy on Twitter.