An interview candidate recently asked me what I thought of the Microsoft employee review model. I don’t hate it and I don’t love it. I personally tend to not stress about things I can’t change. I’m more passive than others when it comes to these types of things because I’d rather spend my energy on engineering work. The bottom line is that an engineer shouldn’t have to worry about the review model. Idealistic? Yep, but, as you will read below, there are some things you can do to set yourself up for success regardless of the current review model. When people ask me what I think of the review model, I usually start by flippantly asking “You got a better way to review 100k people?”, we laugh and then I get into what I really think. I’ve tried my best to summarize it all below and I might come back later to add more. Follow me on twitter if you want to get the updates.
I’ve been at Microsoft as an FTE since 2004 and since then the review model has changed 3-4 times. Actually when I joined it was good to get a “5” and bad to get a “1”. Now it is the opposite. I’ve been a lead since 2005 and have had to learn these new models, teach my people about what it all means and hand out the reviews. 99% of the time it is a great experience because I’ve been fortunate enough to be on very high performing teams and I’m a strong believer in “no surprises”. Meaning that all my people know how they are doing (good or bad) long before the mid-year and annual reviews. Like I said earlier, you shouldn’t have to worry about it and here’s how I think you can minimize the stress around it.
It all starts with what you produce or how you are adding value. The first thing we look at when talking through our people is the “what”. It’s less about checking off boxes and more about the big fish that you fried. If you aren’t doing your absolute best and churning out a bunch of engineering work then you should be honest with yourself and be okay getting an average review. Take a look around at all the work people of the same level are doing. How do you compare? If you take a few minutes and think about it you could probably do more, but it’s not about doing more. It’s about doing what is right and what is needed. That comes with time, so don’t worry if you are at a stage in your career where you don’t know what is right. Observe others around you, preferably more senior people, and do what they do. It’s more than checking in code. Review others code. Influence designs. Bring new ideas. Push people to be their best. Be a technical leader.
I was fortunate enough to find a manager I can trust back when I joined Microsoft as a contractor in 2003. I’ve moved around Microsoft quite a bit since then and have had a few different managers. But, there’s a reason why I’m back to working for him again today. He says what he means and means what he says. I would accept any review that he gives me because there is a level of trust there. If he thinks that I’m doing an average job then I probably am. If you currently have a manager that you can’t trust then try to build the trust or change jobs. It’s that important. Stop here and be honest. Can you trust him? If not, then fix it.
I cringe when a manager says they manage someone’s career and I cringe even harder when I hear someone say their manager isn’t managing their career. It’s the person’s own responsibility to figure out what they want to do with their career and use the resources that Microsoft provides to help them get there. Managers have lives too and they definitely can’t be spending all their time managing someone else’s career. After all, they have their own career to manage.
A truly good manager provides help, guidance and support towards their direct reports career aspirations. I will have the career discussion with my people, but it is always me asking what they want to do with their career and how I can help. Sometimes I’ll nudge people in a certain way or the other based on their strengths, but I never “manage” their career and you shouldn’t expect your manager to either.
Your review is the result of many discussions with you, your manager, your manager’s peers, your manager’s manager, your manager’s peers and eventually all the way up to Ballmer. Every one of those people have a say in your review. A manager will make a recommendation for your review and then you are discussed in relation to all your peers and a collective decision is made. If there is any contention then someone will eventually will make a call, usually the manager two levels above the people being discussed, so that would be your skip-level manager.
Don’t be visible for visibilities sake, but make sure people know who you are and what you have accomplished. Your manager can help you get that visibility, but it’s best when you do such amazing work that people don’t have to promote it. The best discussions about people are the ones we skip over because everyone in the room knows the amazing work they have done and agrees with your manager’s recommendation. Be that guy.
I try very hard to build a team of people of the same mindset, but every now and then you end up working someone with an agenda other than collective software development. Don’t be that guy. I have a very hard time handing out a good review to someone that everyone can’t stand. There are ways to influence without being a jerk. Ask around. See if you are a jerk. Most of the time you don’t realize it. You can still be a hard-hitting-push-it-forward type engineer, just don’t leave dead bodies along the way.
You do a lot in a year and it is hard to recall everything when it comes time to write your review. Make sure you have a way to keep track of all your successes. Some use OneNote, some use email. Whatever it is…take a weekly or monthly inventory of everything you have accomplished. Write it down and send it to your manager. When it comes time to write your review all you have to do is go back to your accomplishment log.
Make sure your manager understands what you are doing and can communicate that to a room full of his peers. You are in trouble if, when it comes time to discuss your accomplishments, your manager says you “did something with some api” but you really “re-implemented your services endpoint that is consumed by the entire company to return OData endpoints on top of WebApi”. He has no idea what you did and can’t explain it. It’s not his fault. It’s yours. You haven’t educated him enough to talk intelligently about what you have accomplished. Most of the time engineers work for even more technical people, so this isn’t a problem, but if it is for you then spend some time explaining what you have done. Write it down. Send it to him. At least they’ll be able to read it to their peers.
There’s the official route through the Microsoft internal tools and then there’s the “hey, how am I doing?” informal approach. I prefer informal, but it’s good to do both. The official feedback is definitely reviewed and used when determining how someone fits into the review model. I usually over subscribe and try to get feedback from as many people as possible…even if I think the feedback won’t be glowing. It’s a great way for people to express themselves without the awkwardness of a difficult face to face conversation. Take all the feedback to heart, because the perception of how you are is as important as how you think you are. Make sure you ask your manager to see the feedback. They don’t always willingly offer it up.
Getting back to the “no surprises” comment I made earlier. “Early and often” is how I like to give feedback to my team and to my peers. I don’t wait for them to ask. I don’t feel like I’m doing my job as a manager if I’m not helping people see their blind spots and encouraging them in their strengths. I have my own blind spots, every one does, and finding a person that will point them out will be HUGE for your career and personal growth.
Many people constantly nag their manager to find out how they are ranking or if they are going to get a promo. These things should be discussed, but not every week. Set aside some time to discuss with your manager and then get back to doing amazing work because without that piece there’s nothing. Don’t linger on the fact that you “only got a 2” when you think you should have gotten a better review. Honestly that’s a great number – it means that you are doing better than the majority of people at Microsoft. It might not be what you expected, but have that discussion with your manager and try to get more insight into it.
If you have all of the above in place, most importantly doing amazing work and having a manager you can trust, then you really need to let go and trust that it will all work out. Your performance will be affected if you linger on it. Use that energy to do more amazing work. Feel good about what you have accomplished and don’t depend too much on how an organization evaluates you.