First, a manager is not a super-engineer. Rarely are super-engineers good managers, and rarely are exceptional managers really good engineers.
Second, we need to separate management from leadership, and this razor does it really well: leadership scales effort, management extracts value.
Super-engineers have some natural leadership because they can scale their brains by adding others with clear explanations, mentoring, and leveraging others. However, this also is why you can have great team leadership on products that go nowhere because there is no one managing to figure out how to extract the value from the amazing technical feats your scaled and well-led team is accomplishing.
Teams with lots of management but little leadership feel like optimizing to get blood from a stone, because micromanagement is the antithesis of scaling effort, as it's about micro-optimizing extracting value on a linear, monotonic basis without any scale. But that's just the anti-pattern. Great management is when you have customers who are happy and interested in what you are doing because you've managed to extract value from your team and made them that way. You've given customers the thing that empowers them in their own organizations because you understand the factors that go into your product, and how to balance them so that what comes out is valuable to others.
Third, to transition to management, find a role to do pure management in a domain that isn't your top skill, where you can focus on the aggregate value instead of getting sucked into solving the problems themselves. This is counter-intuitive, but most important things are, so if you are a good programmer, don't start with managing developers. Do ops or better, a customer success/support team. Product is cool and interesting, but it's still an IC role, management means extracting value from teams. The path to CTO means managing teams and departments, so find something unsexy (like customer support) and take that on.
Alternatively, join a small company or startup and take over one of their teams, or get a 6-12mo contracting gig as a project manager with resource accountability. Long comment, and YMMV, but consider these dynamics on your quest.
In my experience, usually how this plays out is:
1. Establish yourself has a high performing SSE. You need to build this reputation both on your direct team and department, but ideally across the org broadly.
2. Make it known you wish to become a manager at some point in the future. Have conversations with your direct manager, but also consider having conversations with other managers and leaders in the organization broadly. Ask them how they made the transition and what advice they would have for you.
3. Try to take on as much manager-like responsibilities as you can. This could include: a. Mentoring and helping onboard new employees b. Informally overseeing the activities of some employees (interns or junior employees can be a great place to start) c. Figure out if your organization offers some type of future manager training. Enroll in that. d. Getting involved with interviewing. e. Offer to take on special projects outside of your day to day work.
4. At some point when you have done the majority of steps 1-3, sit down with your manager and put together a written plan. Some companies will have great competency models or career frameworks that you can leverage, but many don't. If you fall into the later camp, check out online resources for companies that have published their engineering manager competencies. Use those to inform your plan and cite them in the document.
5. Get agreement from your manager on this plan and then execute.
6. Never stop working on your management skills. Being a people manager is a huge responsibility. Its deeply personal and you have a huge impact on the day to day welfare of your employees.
Edit: some engineering manager reference career frameworks http://www.engineeringladders.com/EngineeringManager.html Square: https://assets.ctfassets.net/1wryd5vd9xez/6bDnTwb4H7bfiFvg55... Dropbox: https://dropbox.github.io/dbx-career-framework/m3_engineerin...
In an ideal world, accumulating more leadership responsibilities in your current company is a smoother way to get to management. This usually means something like IC -> team lead -> eng. manager.
Bear in mind that different companies may have different set of expectations from their eng. manager when it comes to technical knowledge or being hands on. This is also influenced by the size of the company and where it's at in its growth. It's no surprise that at startups an eng. manager may end up being (much) more hands-on.
I believe it's extremely difficult to be a great IC and great eng. manager at the same time. As they require different sets of skills, it must be extremely difficult to develop both sides equally. Where I work we want our eng. managers to be people managers. Their teams have Tech Leads that Eng. Managers can rely on for technical parts.
So like others say, do it within the same company. You already know people, you know the culture, you know the processes, you can focus all your attention on learning how to be a manager. And it's quite a different role than being a developer.
That said, changing companies can enable rapid evolution. It'll (potentially) make it easier to be the manager you want to be, as opposed to the manager they think you'll be. In many cases it's likely better to do it where you are, but wanted to advocate for the benefits of the alternative, it's not guaranteed to be worse.
My path involved switching to a combo IC & manager at a place where I was an experienced IC, but my skill as a manager didn't really develop until I switched companies.
1. Your existing relationships will factor into your work. You might carry over existing biases. Your rapport with your peers will decide how much successful your decisions on running the team are met with early on. This is also a double edged sword since you might find it difficult to make harder decisions as a leader and a good colleague might not be always a good employee.
2. Advantage on solving existing problems since you have faced them as an IC and now may have the necessary knowledge, power and contacts to solve them. Do be careful to identify if they are solvable first as these problems may appear very different from the point of view for a manager.
3. You might feel the need to solve a coding problem or architect a new feature since you might have exposure or knowledge on the same, but you would have to play a different role in it since you are no longer a contributor but a manager.
1) Sponsorship/Mentorship. Will your current manager or another manager in the company champion your transition to a manager? Becoming a manager requires a lot of mentorship and coaching. Does HR at your company provide support? Is there a Senior Manager or Director that will mentor you?
2) Levelling. Does your company have a career ladder? Are there Staff Engineer levels? Have you reached this level as an IC? I personally would not sponsor an IC to become a manager if they haven't reached the Staff level. Staff Engineer is a sideways promotion to Manager. Senior Staff Engineer is sideways to Senior Manager.
3) Switching Companies. You should apply for a Staff Engineer position at a new company. During the interview process make it clear that you want to transition to a manager. During the negotiation phase, build a 6 month transition plan with the hiring manager.
4) Read. Read a lot. You should read all of the canonical management books.
https://www.amazon.com/High-Output-Management-Andrew-Grove-e... https://www.amazon.com/Managers-Path-Leaders-Navigating-Grow... https://www.amazon.com/Hard-Thing-About-Things-Building/dp/0... https://www.amazon.com/Making-Manager-What-Everyone-Looks/dp...
I went went from senior to tech lead while changing companies to work for the same manager, and then from tech lead to manager within the same company. Have since switched to EM at other companies. I've never seen an example of someone going from IC in one company -> EM in another company.
If you are in the latter situation, think about all the team/people/product/project management activities you've performed in the past and use that to build your narrative. You don't have to be an EM to have/demonstrate those skills. You should definitely apply and interview elsewhere...it can't hurt. Worst case, you get some practice and you get a better idea of what your industry is looking for in an EM. Best case, you get the job :)
If you have the option to try it internally, I echo the dozens of other posts here that say it'll be the easier route. Much much easier. Getting to the interview stage at another company will be hard and like I said you'll be competing against stronger candidates. On top of that you'll be going into a role you have nearly zero knowledge about and any inexperience you have will be magnified because of it. If you're like me and there's no management positions available at your company, search elsewhere as a last resort.
EDIT: Oh another thing: the only reason I'm even being considered is due to past experience as a lead developer. If you haven't had any lead positions on your resume, it'll be even harder if not impossible at most places.
Given there is a lot of fluidity in the market now, some team will lose their EM. Ask for the opportunity to lead that team. Offer to do the job without a title change. Then ask for title 6-12 months in. It’s easy for your boss to give you a role without a title change due to org dynamics.
Figuratively, The Move has become a dangling carrot that they know you will follow thru happily just for a bite.
Not saying this will 100% (or any% really) happen --- elusive as they seem, decent middle-upper management do exist --- even then, you would be in no position to refuse tasks that would only serve to distract you from your goals. Also, your employer's time frame in mind for you might be e.g. 5+ years, and they may or may not communicate this expectation honestly to you.
Having both 1st/2nd-hand experiences of dangling-carrot-equivalent events, I must say that it's very important to be comfortable figuring out what is the actual expectation from the above, and have actionable plans. It is awkward, but at the end of the day you have to know better to avoid getting distracted.
As the senior developer I'd designed most of the in-house tooling and trained most of the staff, then laid out team structures and project workflows. Over time our clients became more sophisticated and I found myself drawn more to pre-sales architecture / engineering / estimating, hiring, performance management, etc.
I was given the title of CTO, and more of my time was spent on product strategy, aligning technical strategy with business goals etc. Lots of spreadsheets, lots of modelling and planning. This would have been fine but I never was fully able or allowed to let go of my previous role. I was still the "guy" when it came to build systems, git merge conflicts, server issues, etc, and the company could never justify replacing my old role while I was still on the books.
This was stressful mainly because of context switching and workload. I was happiest when I could focus on one role or the other for extended periods. Having to wear both hats eventually wore me down, as it was hard to constantly keep the big picture in mind while having to focus on minute details like which version of SASS we should be running across our projects, or manning the support helpdesk after hours.
Switching to a new company lets you walk into a new role without the history - you might be less likely to be chased up to provide critical support or jump on the tools while you're trying to wrap your head around a 5-year digital transformation strategy for a federal contract. I switched to freelancing though so I can't speak to making the switch from experience, just what it was like to move up within a company.
Your mileage may vary, and as others commented it comes down to company culture.
Generally I think you will have better luck within the same company.
With that said, shameless plug: if you are a senior-level IC who may be interested in getting a foot into management, we're hiring :)
Our company: bractlet.com
My email: brian at bractlet dot com
We're helping solve climate change through energy efficiency, and need talented folks to help us scale our systems and business to the next level.
My current manager made the switch from IC -> management a few years back. Internally, he was able to leverage the long relationships he had to get appropriate mentoring. He also had the trust/support of the team he was managing, giving him a large cushion to try out/experiment not worry so much about failure.
If you have no management experience, it may be hard to convince another company that you have the appropriate background.
Try to make sure you understand the difference between a senior technical role and a manager, I received promotions and took them without thinking much about the consequences- it’s an opportunity to think about what role and career path you would prefer, and those big decisions don’t appear all the time.
Think about how the manager role operates in your company as companies differ e.g. company A the manager may be completely off the tools and company B they may still do technical work here and there.
To go the management route you’ve got to really want to help others, and be their buffer from the rest of the leadership and wider org that want to bombard them with too much work and bad requests.
Also, manage a coop student or intern. One of the reasons companies hire them is to give their ppl management experience, so take advantage of that.
I did both of these things, and my company made me a manager 2 years earlier than when I thought I'd try to transition into management.
And after 6 months I decided I didn't really like management that much, and they graciously let me transition back to IC, haha.
It probably helps if your company is growing, has a healthy management culture, and great career progression options for ICs and Mgmt. If that's not the case, switch companies.
Recently I came across some Technical Manager jobs but the commute and lack of WFH post Covid was a deal breaker. I didn’t think they existed for someone without management experience but they do.
One thing to avoid is being called a manager but not having any reports, dotted line “reports.”
If you're OK taking on those problems, go for it. If not, you're essentially rolling the dice - you may end up with a situation that's better or worse.
Starting my own company instead.
I’m speaking from my own experience and a few others I’ve seen do not.
For many, this is a very challenging transition. But I tell everyone under 30, you need to learn management skills before 40 so you can make the transition as early as possible. Talent eventually will side with younger people.
this is easier first.