Today a technical fellow (a very senior individual contributor, or IC) and I gave a talk to our org titled “What’s My Manager Thinking? A guide to working better with leadership and leading as an individual contributor.” It was fun, and among the questions we didn’t have time to answer was this one: “Can you talk through a bit more on what made you switch back to IC?” So I thought I’d write down my reasons for why I made my choices to switch into and out of lead roles. This is NOT a post about what I’ve learned or what a manager is thinking. But I’ll write those too someday. This post ended up effectively being a continuation of my career post, Blathering About My Career.
So, my journey.
IC -> Lead. I made it to Principal level at Microsoft without being a manager (lead), but became a lead soon after. Up to that point I had wondered if I should try being a lead, because I liked helping people, but never jumped in. I had been quite happy as one of the most senior devs on my teams, helping those around me without having to do the manager work. What made me take the lead role was that we had a re-org; we created a new team doing work I knew well. (Fundamentals: perf, battery, memory, reliability, etc.) Too much work for one person, and the team needed to learn all of the skills I had. So I agreed to lead the team, because I could have the perfect world of getting to teach a group of people how to do the stuff I loved, without having to do all of the dirty work myself.
Team 1: WP fundamentals. I led a team of 5 (it was really 7 because I put my wing around the testers associated with my dev team, so we worked as a unit) on the Windows Phone commercialization team for a year or so. Over all, this was a happy time; my team was learning but happy, and we had modest ambitions. Then as Windows Phone dwindled, ownership of WP was moved into the newly combined Windows/Windows Phone/Xbox org, which was working on producing Windows 10 for all three products at once.
Team 2: Windows memory/storage. Lucky for me, at the same time, the Windows fundamentals team was looking for a lead who knew Windows Phone, so I moved there. They put me in charge of memory and storage footprint, primarily for Windows Phone. I led a team that started at 7 people. For me this was an extraordinarily stressful time. In contrast with my previous small team that had modest goals and simple tools, this was a big team with ambitious goals and large systems. Plus the people and OS and tools were all new to me. I was learning a wide ambiguous area in a hurry, in charge of holding a line the rest of the Windows org didn’t care a lot about (memory and storage are free, right?). I was afraid of failing, and on top of it all, over three years my team of 7 dwindled down to 2. Looking back, there were definitely some things I could have done better, but I don’t blame myself entirely for those people leaving. I also know, now, that a lot of my stress was heaped on because the team shrank so drastically while the charter stayed the same. I should have fought for more people instead of soldiering on as I was.
Lead -> IC. Now, 2 reports + 1 lead is too small for a team. Something needed to change. My manager and I decided to merge my team with one of my peers’ teams. My peer lead was very accommodating and willing to let ME lead the new merged team, but at this point I had been too stressed for too long, and I was also the only expert around in doing all the ongoing work we had around budgeting and reducing storage footprint for Windows. In order to achieve our goals, I had effectively been operating as both an IC and a lead (and not doing either particularly well) for a while at that point. So I gratefully let him lead the new team, and went back to being an IC full time. This was a relief; I could stop worrying about screwing up other people’s careers, and just work on Windows footprint. Plus I had new teammates who could help get the work done. I did this for about a year.
IC -> Lead (looking for my mojo). At around that point, I was waking up to the fact that that though my stress levels were greatly reduced, I still wasn’t happy. My learning was starting to plateau, but more than that, I was missing something. I did some interviewing inside Microsoft, but the two teams I was interested in (a kernel dev role on IOT, and a QA/telemetry lead role on Minecraft*) didn’t work out. Declined a couple of opportunities to move to other teams that weren’t going to give me what I was missing. Importantly, I was open with my manager about the fact that I was not satisfied. He suggested that I take over leading a different peer team, on reliability. The lead of that team was interested in becoming an IC again, and my manager thought it might re-spark my enthusiasm. I hadn’t done a lot of work on reliability, and importantly, I didn’t know enough to be able to fall back into getting stuck doing the IC work. It was also a pretty high-powered team (lots of principal and senior devs who could handle the tech themselves). So I agreed.
* As an aside, the Minecraft team really should have hired me to work on their QA/telemetry. Man, do they have quality issues, and my kids and I joke that it’s my fault every time the game glitches or crashes. But they didn’t have budget for a Principal dev.
Team 3: Windows reliability. I led that team for about a year. I was able to ramp up on reliability, help the team through some pretty common people/process issues, and run some recruiting and D&I initiatives on the side too. Overall I felt very good about what I was able to accomplish. This was night and day better than my stressful experience of the past. But at the end of that year, I still hadn’t filled that missing gap in my heart. I started writing down other teams and products I might consider working on – where I’d fit, and what might feel fulfilling. What was it that made the IOT/Minecraft jobs tempting? I was starting to realize that what I was missing was a love for my product: I didn’t love Windows like I loved Windows CE and Windows Phone in my past. I wanted to work on devices again. There’s something about flashing a new build onto a piece of hardware you can pick up and love. Once again, I was open with my manager about how I was feeling.
More mojo-hunting, Lead -> IC again.
A recruiter from Oculus came to me. A previous co-worker from the Windows CE / Phone days had given my name as someone they might try to hire. They were building a new OS for AR/VR devices, and some of my old friends were on that team. Going to a small team of friends and building an OS from the ground up was tempting. For the first time in my career, I considered leaving Microsoft. But there were two big problems. First, I morally cannot bring myself to work for Facebook until they get serious about tackling the privacy and social issues they are creating. Second, building an OS from the ground up does not sound like wise strategy in an age when Linux, Chrome OS, Android and Windows are all available as options.
So I politely demurred, and instead looked up who I knew on the HoloLens team at Microsoft. I asked an old friend if he knew of any jobs. And it turned out, he needed an IC who knew reliability and telemetry. I just wanted to work on HoloLens – lead, IC, didn’t matter – put me in, coach! So I told my manager and him that I was very interested. I had an intern working for me at the time, and didn’t want to move during his internship, so we decided to take it slowly over a couple of months.
At this point, a dev manager from the Windows fundamentals team also left. That made me ask myself: did I instead want to try being a dev manager (manager of managers)? To challenge myself and learn more about the role, I applied. My own manager encouraged me to check it out, and my prospective new manager on HoloLens supported me checking out my options as well. It was a stretch, though, because they were looking for a partner-level person to fill the role, and I was nowhere near partner. The process was a bit humorous because the interviewers were my own manager and two other people I knew very well from my D&I initiatives. In the end I did a lot of thinking about what the role was, and whether I’d be happy doing it. It was tempting because I had built up a lot of influence across the fundamentals team, which I was using to help support the women’s diversity initiatives as well as some leadership initiatives. I didn’t want to walk away from that, and in fact could start taking it further into the rest of the Windows team. But it came back to that missing hole – the one that would still be there because I still didn’t love Windows. I was afraid I’d feel fulfilled for a year or so, then go back to being unhappy. But jumping into a dev manager role was a commitment. I didn’t want to do the team a disservice by either leaving after a short time or staying and being unhappy / unmotivated. So I took my name out of the running, and sent my new manager on the HoloLens team a note saying I was all-in on moving.
Now, life as an IC.
For the next year I did IC dev work on HoloLens / Mixed Reality, building up a pipeline for telemetry and for processing crashes. And the missing hole was filled. I briefly considered taking a dev manager role that came open in Mixed Reality, but it wasn’t the right time for me since I was too new, and it didn’t work out. I was happy doing my IC work, and proud of what I’d gotten done in a year.
I recently made another change, to another IC role in Mixed Reality. In this case it was motivated by the huge product challenges we have ahead in making our devices compete in the consumer space. We need apps, and to get apps we need developers, so we need a great developer platform. I wanted to learn how to build AR apps and I wanted to get involved in talking to our developer audience – as I used to do in the Windows CE days. I chose to jump to a team that is doing some innovative work that I know nothing about. I would have taken either a lead or IC role here; in fact a lead role would have let me have more immediate impact, since I can lead a team while learning the tech. But here I am, newbie developer throwing away all I knew and starting over, just because this team is doing cool stuff that’s important. After 21 years at Microsoft, that doesn’t stress me out. If I mess up they can fire me, and I’ll just spend more time on projects for myself. I have faith that I’ll learn to do something useful, though I assure you, I am quite useless at the moment. ๐
Final thoughts.
Would I consider being a lead again? Yes, definitely. Would I consider being a dev manager someday? Yes, definitely.
Am I happier as an IC? Probably. Life is simpler – I have nobody’s career to worry about other than my own, and I no longer worry about that.
But I don’t just live my life for myself. I still care very much about being a force to lift others around me – via not just D&I efforts, but by being here and supporting people. As an IC, you have to focus so much energy on the tech, it leaves less to put into other people. So jumping to a lead or dev manager role would give me more freedom to invest in other people. But, you know what, I can still do a lot of that as an IC too. And if I do a little less tech work and more people work, what are they going to do, fire me? ๐
One thought on “There and Back Again: going back and forth between manager and IC”