It's hard to believe, but I've been at Microsoft for a year now. As much as I can't believe how much has happened in my personal life in the last year, and how much time that seems to have involved, the time at work went really fast. People ask me all of the time what it's like, and really, it took me a long time to really form an opinion.
First of all, there's one big theme you'll find whenever I talk about Microsoft: It's too big to draw any truly universal conclusions about it. Think about it... something like 88k people (plus contractors and vendors) work for the company, spread out all over the world, in diverse businesses that range from consumer to business, video games to spreadsheets, phones to search engines. It's kind of silly when someone suggests that because they think Windows sucks, the whole company sucks.
So to that end, I can tell you what my time has been like, and what my opinions are, and sometimes make observations, but for the most part my experience isn't necessarily something that is common to anyone else.
To give you some context, I work as an SDE II (software development engineer) in Server and Tools Online. We're the folks who bring you MSDN and TechNet, and all of the online applications that are associated with those properties (forums, profile), plus CodePlex, Connect, galleries and likely other things I don't recall). We also have things like asp.net and silverlight.net (the Web sites) in our org. It's not a huge organization relative to the amount of traffic we see, and I'm consistently impressed with how much work we get done. In fact, if you look at the org chart, I'm only six degrees from Steve Ballmer. (Suck it, Kevin Bacon!)
Our size and leadership allow us to be relatively agile, both in the literal and figurative sense. We release frequently, and each release has several iterations. I think the most public example of this is what the CodePlex guys do, which you can observe via their blog. It's not some kind of religious agile/XP/scrummy thing, exactly, as we tend to do what feels right. It's a lot like my experience in coaching volleyball, in that I have a system for play, but I have to adapt it to the people and situations I encounter for it to make sense. For example, we pair when it feels like a good idea, but not all of the time. Most of our teams work out of team rooms, which is very opposite from the office-for-everyone culture that the company was founded on. My team is spread between four adjacent offices, but generally it works out pretty well. We have relatively few meetings.
As for my own job satisfaction, it had its ups and downs in the last year, in large part from my own doing. Moving and adjusting to a new place, after living 36 years in the same region, was a constant distraction. Having a child (with the awesome paid four weeks off) was also something that hurt my ramp up time. It took way too long to feel like I was contributing, but I take responsibility for that. It's been much better in the last six months, and I'm really enjoying myself now.
The nature of the work has varied a great deal. Shortly after I started, we built the new profile system that is, so far, common to the forums and galleries. While the app isn't particularly complicated, it was neat to work on something that was so huge in scale. You'd be surprised that solid fundamental design went a long way toward being able to scale. Much of our time was spent improving the forums, which were built by a previous team. Most of that work was on the back end, and despite some pain, I think we made some solid strides. Honestly, that work was less fun for me than I expected, but given my long history with forum apps in general, I suppose I was burned out on the genre. For the last month or two, we've been working on something totally new, but I'm not sure I can talk much about it yet. Rest assured, you'll see some things about it in the near future. Working from scratch on something big, with newer tech like Azure, is pretty exciting.
In terms of people, I love coming to work every day. My co-workers tend to be mostly younger than me, but given all of the new babies and what not, we have a lot to talk about. It's a fairly tight social group, and we tend to go to lunch as a group most days. People are just generally likable. I have a no-bullshit manager who makes expectations clear. There's somewhat of a cultural divide between us and the program managers in terms of social interaction, but they're generally good people as well.
Much is made about the review process at Microsoft, and the things you hear are often negative. I've been through it once now, and I thought it was relatively fair. I suppose this depends a lot on who your manager is, and as I said, mine is pretty straight forward. Not only were expectations clear, but I think it should also be obvious about what to expect if you have any self-awareness at all. I'm not sold on stack ranking as a positive way to motivate people, but I also haven't been around long enough to form a solid opinion. Have people been "screwed" in this system? In a company this big, I'm sure it happens. Maybe I'm naive, but I think those are exceptions, not the rule.
One of the greatest things about Microsoft is the unprecedented access you get to everything it does. There are constantly breakfast and lunch seminars, talks on far out research projects, product fairs and even internal conferences. There are so many opportunities to find out what's going on around the company, and a ton of learning to be had.
And if that weren't enough, you also get to see products grow up right in front of you. I've already participated in two beta programs (Mac Office 2011 and Xbox Kinect), and that was pretty fascinating. It's especially neat when you get free stuff, like a Kinect sensor. You also may get chances to use the very latest builds of new products, depending on what your job is. If you develop Web junk, like I do, it's also pretty cool to network and chat with people on the various product teams.
We've had a ton of morale events in the last year, and I have to admit that they're just enough to really cause me to further enjoy the company. They vary from simple things like free movies, to giant launch picnics, to go-kart racing, to a beautiful day putting around a mini-golf course at a too-rich-for-me country club. And of course there's ample opportunity for adult beverages at some of these things, and I jokingly said that I only really have a drink while at work. I can't seem to live that comment down.
Overall, I really like working for the company. I think long-term career development is going to be a challenge to me, because I'm still not sure what that will look like. Prior to joining the company, I was moving away from heads-down coding, so I'd like to get back on that track. That probably means trying to ascend to managing positions in dev areas, or maybe program management (which is a ridiculously nebulous term). I'm sure I'll figure it out.
Looking beyond my own experiences, I have a lot of things to tell friends and relatives about what the company is not. While I'm not an apologist for the things that Microsoft does poorly, I admittedly get a little annoyed when people make silly generalizations. People with blogs are the worst. So let me clear some things up, at least from my perspective.
First off, yes, people have iPhones, and no, people aren't shy about having them. I would guess that at least 1 in 3 employees have an iPhone, and Android phones have a strong presence as well. In the US, we'll be able to get Windows Phones starting later this week, but given the demand, who knows how long that will take, or what the adoption rate will be.
And while we're on the subject of Apple gear, wait for it... many of us use Macs. Some of us even have them as our work laptops. I would say that Macs probably run Windows better than most computers, in fact. But my point is that avoiding "not invented here" syndrome is a company mandate. We also use a ton of open source software in our apps in my group. Heck, CodePlex is an open source project host!
There are certainly people at the company who are hardcore, anti-everyone-but-us, who won't use anything without the Microsoft logo on it. While I admire that kind of dedication, I don't think it helps the company. The best way to understand your competition is to understand its appeal, and there's no better way to do that than use the stuff. Of course, pundits seem to think we compete with everything that everyone else makes, but I suppose that's a different problem.
There's a cultural shift underway in various parts of the company that feel a lot more like followers of Rework than those stuck in the 90's days of shrink-wrap software. That's exciting. I wasn't there, but I can't imagine that the Microsoft of ten years ago could have started from scratch on something like Windows Phone and turn it around so quickly, or push out new versions of frameworks (ASP.NET MVC, Silverlight, etc.) on a frequent basis. As time goes on, I can only imagine that less and less time will be spent on things that, deep down, we know don't matter.
So that's one year in the books. I really dig this company, wins, flaws and all. I look forward to many more.
No comments yet.