I wanted to write some thoughts on career progression for new hires at Microsoft. Up front I should probably say that I am not trying to sell folks on Microsoft, but trying to tell it like it is. Folks who know me often accuse me of being too honest. What I would say to people looking to enter the job market for the first time is that you are being marketed to—that means that you have to learn to separate the claims from the realities. I think that is something I hope to do over the coming months.
It is performance review season at Microsoft so everyone is busy with that process. It is also a time of year when people take a step back and think about where they are heading in their careers and what they should think about in terms of career goals over the next year or three. A member of our team that is going through her first review stopped me in the hallway today and wanted to chat for a minute. A question on her mind is “what should I expect out of my career in the next five years”. In other words, what is the typical first 5 years like at Microsoft.
Of course my first response as a manager is to say “no career is typical”. I think that is a normal manager reaction to trying to avoid making specific commitments in the hallway 🙂 It is also a truism at Microsoft–no career path is typical and certainly nothing comes without hard work and solid execution.
We hire a lot of folks straight from college in the Office team. The first 5 or 6 years can be exciting, but is also challenging, so a new hire needs to be committed to learning and growing with the organization. So the first rule is “be prepared to learn”. As someone wrote me last week, “what if you’re not happy with your first assignment, then what?” This is a common concern since sometimes your first assignment doesn’t sound quite what you thought it would be. This is especially true if you are unfamiliar with the whole area and it doesn’t sound like a familiar college course (databases, languages, etc.) In most software development, when it comes right down to doing the work there are a lot of details that are a lot deeper and perhaps less “science” than college courses.
Once you have that first round product cycle experience (generally in the first couple of years in Office where our full product cycles are 20-30 months—it might sound long but that is a topic for another missive I’d love to fire off, “the myths and realities of internet time”) people tend to follow one of two paths. First you can choose to stick with the same group working on a different area perhaps. This is probably the most common as people develop expertise and interests. Surprisingly, most members of our team self-select to stay working on the same product area the second time around.
The second path is one where you choose to work on another technology, either in Office or somewhere else at Microsoft. Of course at Microsoft you have the opportunities to work on an amazing breadth of software from the living room to the board room. Most people who want something different also look at other parts of Office. At each product cycle we have an open and systematic opportunity for people to move across the team. This process is one where people are encouraged to move and to talk freely about the opportunities. In fact, at the start of a release it is not uncommon for 25-30% of the team to seek out new technologies to work on (and new managers to work for).
During the course of these first two product cycles I believe the most significant core learning takes place in terms of being a contributing engineer to end-user software development. Whether you are program management, software design engineer in testing, or development every day is a learning experience. You learn all the core skills with close mentoring—your manager will work with you on a daily basis on your specs, your code, your test plans. You will have peer review of your work. And at Microsoft you have the opportunity through our open mentoring program to receive a mentor from any part of the company. It is during this time that if you are performing exceptional work you will receive promotions through the career ladder system. This system is described in our intranet with detailed examples of the skills required and the inputs your manager (and his/her manager) have in terms of evaluating your accomplishments. You are eligible for promotion throughout the year (unlike some companies that only allow one time per year). While nothing is typical, as an example, a strongly performing developer hired from college might expect to be promoted in 12-24 months, and then again in about the same time period. A lot of this of course depends on the team and how your performance stands out relative to them—performance is not measured in isolation.
A key thing is about how your own work changes during this time. The first thing that changes is your scope. When you first start you will have something to do that is narrow and you will have your manager helping you every day. Believe me the first time you do a checkin it a super stressful time—after all your work is on the way to being used by 400 million people. Whether it is code or a web service, the thought of a ton of folks using your code can really keep you up at night. Over time as you master the overall system you will learn about how the components interact—how does your work impact macros and solutions, localization, corporate desktop management, and of course there is a ton to learn about security, quality, performance. So your first checkin will be probably localized to one file, but over time you will find yourself checking in code in many places (or writing specs, testing areas, etc.) In fact, if you work on shared code in Office you will own features/code/tests that cover all of the “Office System”.
After you have gained the experience at contributing at the right level you will start to be asked to take on broader responsibilities. One example might be mentoring interns for the summer where you would have an intern that you are required to “manage”. Perhaps one of the most exciting things for me is to see someone I remember as an intern transitioning to the role of an intern mentor for the summer. We had quite a few folks this summer who were interns 2 or 3 summers ago. It is great to see people moving along through their own careers. It also makes me feel old!!
At this point people do start to decide “is management for me or not”? This is a natural question and why our career progression recognizes that not everyone wants to be a manager. In fact, even our managers must contribute to the code/specs/tests of shipping products, so being a manager does not let you off the hook. But should you want to be in management, it will actually become pretty natural and you will see that the opportunities will arise and at the start of a cycle you will soon enough find yourself what we call a “lead” or first line manager. I started managing folks about 4 years into Microsoft. In hindsight I probably wasn’t quite ready and I was definitely shaky. Fortunately my first reports were forgiving. Whether you are a manager or not the progression through the career ladder is possible (in other words promotion is not tied to management, but related to your technical aptitude, ability to work independently, and as always the business need). The key thing of course is that Microsoft is hiring people all the time so the need continues to grow for senior people, whether managers or not, who understand how to build real-world software.
Once you reach this part of your career, perhaps that magic first 5-6 years of experience, you become much more “in charge” of your own career as you have the experience and understanding of what you are looking for. You probably established a network or at least some contacts in other parts of the company and so exploring also begins. It is also the case that for the folks that came up with the best designs or wrote the best code, it is amazing how quickly word spreads and you will definitely be sought out by others.
The short answer to the question this note posed is that the first 5 or so years of a career at Microsoft are a huge learning experience. But not a trial by fire, but a way of “drinking from a fire hose, but with supervision” You’re surrounded by people who have experience and more importantly empathy for you and are super motivated to help you to learn how to contribute to our products. And even more importantly we are super interested in tapping your creativity and energy at solving the challenges our customers face by building great software.