Three Months at Microsoft
Last week marked three months that I’ve been working at Microsoft.
As I’ve discussed before, making the decision to leave Mozy for Microsoft was not an easy one. Let’s face it: I’m not exactly a spritely youth anymore. I’ve worked at a lot of different companies — and when I say “different,” I also mean, “different from each other:” Small companies you’ve never heard of (Spillman Technologies), large companies you’ve surely heard of (IBM), companies whose politics continue to keep them from succeeding (Novell), companies who manage to succeed in spite of the politics (Mozy), and companies that just frankly exist only as dark, ghostly nightmares in the frightening nether regions of my mind (Enterasys Networks). Yet as different as these places are from each other, one thing mostly remains the same: the process of creating software is the same everywhere.
So that makes a decision to leave hard. Since the process of creating software is the same everywhere, it is the intangibles that end up mattering, such as whether you like your boss, whether you get a nice computer or monitor, how comfortable your chair is, etc. When you consider leaving, you wonder what unidentified intangibles you’ll be giving up and what you’ll be getting, and whether you will feel like this was a good trade a year later.
Leaving Novell for Mozy was like this for me. I got many, but not all, of the intangibles I expected when I went to Mozy. I gave up all of the intangibles I expected I’d give up from Novell, like five weeks of paid vacation and a beautiful window office on the 7th floor looking directly north to Mount Timpanogos. Some things at Mozy ended up being worse than I expected, e.g. the 5% pay cut last spring. Of course, I do realize that it is not Mozy’s fault that I didn’t get all the intangibles I expected; I set that expectation, not them; I failed to assess the situation accurately.
Nonetheless, as I contemplated leaving Mozy for Microsoft, I thought about this. “Well, software engineering is the same everywhere. So since the in-and-out of the job function is mostly the same, I wonder what intangibles I’m gaining and what I’m giving up?”
Well, I failed to assess the situation accurately again. I made one key error: Software engineering is NOT the same everywhere.
In particular, it is not the same at Microsoft. At Microsoft, software engineering is more… uh… yeah: more.
More better.
Have you ever worked for Microsoft? If you haven’t, you don’t know anything about us. I know you think you do. You don’t.
Never in my career have I ever worked in any organization that took software engineering as seriously as Microsoft does. I was very surprised to see how seriously we consider things like security and software quality. I’m aware of the reputation Microsoft has received over the years for bugs and security issues. Maybe things are different now, or maybe that whole thing was just a function of being the world’s largest, most powerful, and most widely used software company. At any rate, I can tell you from personal experience that security and quality are very important here — important enough that we will delay shipment if we don’t feel like it meets our standards. While this may seem obvious, I’ve never seen this commitment to quality permeate throughout an organization like it does here.
It has been incredibly refreshing to see a company take software engineering as seriously as I do. I love that I’m free to require explanation or justification from my management when I don’t understand something. I love that I’m supported in insisting on perfection in software design, code, and process to the degree that I can help us deliver it. I love that people can communicate with me honestly and openly without worrying about my feelings, and that I can do the same with them, because, unlike some places I’ve worked, there is an undercurrent of trust and mutual respect between me and all of my peers wherein we know and believe that, despite having different opinions, we are each talented and capable professionals with the best interests of the company at heart. I love being surrounded by incredible talent that makes me feel both humbled to be a part of the group and inspired to improve myself every day. I love working for a company where, instead of feeling like my career has topped out and has nowhere else to go, I feel I have broad, wide-open vistas of learning and advancement just laying before my feet; opportunities sitting before me just waiting for me to seize them.
I had no idea a software company could be that much better than what I’d experienced in the past. It is really awesome. It may not be for everybody. Not all software engineers care enough about delivering quality software that they will do whatever it takes — write unit tests, participate in code reviews, follow rigorous and time-consuming processes, be a small fish in a big pond — in order to do it. But if you care about delivering quality software, like I do, I must say I highly recommend us.
After only three months I find myself saying something I never thought I’d say: I love working at Microsoft. I really do. Intending absolutely no negative to any other company I’ve worked for (with the exception of Enterasys Networks, I have fond memories of great talent, great people, and great product deliveries at every company), working at Microsoft is unlike anything else I’ve ever experienced.



