Do I have to get into management to be successful at Microsoft? That, along with the review model and work:life balance, is a very common question I get from interview candidates and current Microsoft employees. Based on what I’ve seen over the years I don’t think you have to get into management to be a success. A lot of people go that route and later regret it because they haven’t thought through what it all means. It’s a different job that requires a different skill set that can take many years to learn. You won’t jump in and be an immediate success. There will be bumps along the way. I’m hoping this post prepares you for some of them.
I’m not a Microsoft spokesperson. I’m just a dev manager sharing my thoughts. I’ve been a lead at Microsoft since 2005 and have led teams that range from 5 to 30 people on a bunch of different products. I learned a ton from the school of hard knocks and a couple of great mentors. I never took a management class before I became a lead. I was AWFUL when I first started. I cringe thinking about my early mistakes. After 8 years I feel like it is time to share some of my thoughts and help those out there struggling with the decision on whether or not they should get into management.
At Microsoft there are two career paths: individual contributor (IC) and management. Microsoft has structured the career model to encourage both paths and doesn’t pressure people one way or the other. The level bands are: SDE, SDE II, Senior, Principal & Partner. Most people start off on the IC track and are given the choice to fork off into management once they get to the Senior or Principal band. Both paths share the same level bands, but the competencies change. ICs are generally going to focus more on depth of technical knowledge and managers are going to focus more on technical breadth and collaboration. You don’t have to take the management path to be a success. There are plenty of Principal and Partner level ICs at the company.
Choosing the right path is hard. But the good thing is that you can go back and forth between the two paths. I know people that have gone back and forth many times throughout their career. Sometimes because they wanted to and others because they were forced to. Like I mentioned in my work:life balance post, it’s all about seasons. Sometimes you want to learn a new technical skill or go deep into something and other times you want to learn how to manage people or products. Pick the role for a season and be open to changing if it doesn’t work out or if you want a change of pace.
You can fail at being a lead and pick yourself up again and go back to being an IC and vice-versa. Don’t ask yourself “What do I want to do for the rest of my career?” Instead ask yourself “What do I want to do for the next season of my career?” That could be a year or it could be 5 years. It’s up to you what you want to do. Most people, if they set their minds to it, can be fine leads. But if their heart isn’t into it or if they get into it for the wrong reasons then they will likely fail. Remember that you can always switch back and try again down the road.
Lots of people join Microsoft at the SDE or SDE II level bands. I tell them to not even worry about whether or not they should become a lead. They have many years to go before they are even allowed to be a manager. I tell them to work on being a technical leader, because all ICs need to be technical leaders anyway. Once your technical leadership skills have matured AND you are a Senior, then you can start to think about it. Otherwise don’t stress over it. Prove yourself as an IC technical leader and go from there. If you are an SDE or SDE II and have your heart set on being a lead, then discuss it with your manager and they can hopefully set you up to be in explicit technical leadership roles to give you more years of practice. I’ve done that and it has helped.
I’ve mentored many people who want to get into management and the first question I ask is: “Is anyone following you now?” If not then they aren’t ready to be a lead. The best response I can get after I promote someone to a lead role is “Aren’t they already a lead?” That means that are already seen by the team as a leader.
Sometimes I’ll ask other people on the team if they could work for the person I’m thinking about making a lead. If the answer is no, then I drill into why and get that feedback to the person who wants to be a lead. For my teams, promoting someone to a lead should be a big celebration that most of the team supports. If the majority of the team doesn’t think the person should be a lead then it is going to be a very hard uphill battle for them and for me. I’d rather push the promotion out a bit and let the person mature before pulling the trigger.
Why do you want to be a lead? Is it because you think that is what you need to do to get ahead. Wrong. Is it because you want to have a bunch of mini-mes that can implement all your ideas? Wrong motive. Is it because you want to mentor, encourage and support a team to help them reach their full potential? Getting closer.
Decide to be a lead because you think you’d love it and you’d serve yourself and your company better for doing so.
Do you have to be the most-liked person in the room? If so, then you’ll struggle as a lead. Sometimes you will do things that you know are right that will make you unpopular with some folks. Those situations should be addressed with open, honest and respectful communication, but they will come up. Prepare yourself for some awkward situations where you aren’t the most popular person in the room. It’s okay. It will pass and hopefully whatever made you unpopular will turn into a very big plus later down the road when it all works out as you had hoped.
Are you good at going into a deep hole for 14 hour chunks of time for weeks at a time and coming out with a masterpiece? Don’t you love that? Well, then you probably won’t be successful as a lead at Microsoft. (Probably not a good agile dev either, but that’s a different topic). I have yet to meet a lead that codes as much as they did when they were an IC. Yes, most leads still code, but it isn’t their primary focus.
Do you feel like you have many good years of hard-core coding left in you? If so, then do us all a favor and don’t become a lead. There are so many other things that go into being an effective lead that if you spend days in a cave your team and the product will suffer.
How are your interpersonal skills? Be honest. Do you like interacting with people? Do people like interacting with you? You will spend many hours talking with your folks as a team and individually. Some will bore you. Some will be engaging. You have to put energy and time into each relationship to figure out what makes these people tick.
Sometimes you are going to just click with your folks and other times you won’t. You have to be able to carry a conversation with someone you don’t click with because they are on your team and they are looking to you for guidance. It’s tough. I’ve been there. But, I’m still here.
You have to be good at recognizing when something is wrong with your folks. You have to be able to read people’s expressions, demeanor and posture to figure out if they’d like you to dig into something they aren’t saying. That’s a complex topic and I don’t have it all figured out, but it is a skill that needs to be learned.
Are you good at recognizing talented people? To be an effective lead you need to be interviewing for a long time before you can make a final hire/no-hire decision. You need to be bold enough to give someone a no-hire and send them home. Even after your entire team gave them a hire. The most expensive and regretful thing you can do is make a bad hire. I’ve done it. It’s painful. If you want to be a lead then get interviewing now. Get very good at asking the right questions. You will ask those questions over and over again and you’ll want to be able to distinguish a good answer from a great answer.
Being a lead isn’t going to make you any more money than being an IC. A Principal IC developer makes the same amount of money as a Principal Lead.
As an engineer in today’s world you are already making enough money to live off of. Your motivation in life shouldn’t be to make more money it should be to do more of what you love. A potential few more dollars here and there isn’t going to change your lifestyle, but being a lead when you really want to be an IC will destroy you.
There are a ton of management training courses out there, but none of them prepare you for real-world management. I will promote people into leadership positions, but only after they have proven to be a technical leader. I give them trial runs. I set them up for success and let them fail. They learn from the trial and, if they want to, they give it another go.
A trial run may include being the feature lead on an area of the product with a couple of devs that they lead. Or it may be a new product where they are assigned a few vendors to help them. The idea is to see if they can swing it as a technical leader.
Go through a couple of complete product development cycles as an IC. Feel the joy and pain of releasing software as a member of the team before you try and lead one. There are so many things to learn and then teach from time management to deployment to capacity planning to support. A lead needs to be good at them all and know how to teach the skills to their teams. Baby steps.
You have an employee on your team that isn’t meeting expectations. Do you have it in you to talk to them about their performance and provide them with practical guidance on how they can improve? If not, then you aren’t ready. You can’t just tell them they aren’t doing it right. You have to give them concrete feedback with examples to back it up.
You must be able to either help them get better or help them find a new job. It doesn’t happen often, but you might someday have to let someone go. Do you have what it takes to tell someone you like that they aren’t a fit for the job?
My style is to give direct feedback early and often. Sometimes people don’t like it. But most of the time they do. Some of them didn’t speak with me for days because they didn’t like what I had to say. But I held my ground and let them digest the message. In every case the people come back to me, after some introspection, and thank me for the feedback and had a plan for how they are going to turn things around.
The best thing you can do as a manager is give feedback to your folks. It’s tough. But essential to great leadership. And don’t save it up for a big reveal at review time. Give consistent direct feedback early and often that is both constructive and encouraging.
Yes, you should have your own management style. But your preferred style won’t fit every situation. Here are some good words of advice when I was just getting started: Learn to adapt your style based on the situation. In a nutshell, when given a task, people can possess or lack the necessary competence and commitment to complete it. It is up to you as a manager to figure out what the person needs in any given situation and adjust your style. Sometimes you are directing every step and other times you are encouraging and supporting. You can find out more about Situational Leadership here.
Don’t be in a hurry to get into management. It’s better to take your time, build a following as a technical leader, develop your style and then become an official lead. It is better to learn and develop your technical leadership chops before you have to take on people management. It’s better to do something amazing as an individual contributor to earn the respect of those around you. It’s better to enjoy where you are and be totally content with what you are doing. Jump in too early and you might get in way above your head and struggle for years. Sometimes that can be a good, but a slow ramp into management to test the waters and prove yourself has been more successful for me and the people I have promoted to leads.
Special thanks to John Kurlak, Jim Gale and James Trott for reviewing this post. They have been awesome at reading through my epic posts and have provided very valuable feedback. I owe them a couple of tacos.