MS is a big place. It is so big, I really don’t know much about the other parts about the company after five years. There is a huge sales and marketing organization, and though I have friends who work there, I don’t know much about what they do day-to-day or how they are organized. This may sound like typical developer focus, maybe even snobbery, but it isn’t the way I like it, its just the way it is. It’s because the place is so big. At Asymetrix and Visio I knew pretty much everybody–sales, marketing, creative, tech support. The offices were all nearby. The same is true of the different business units: I’ve worked in Office, and I have a lot of interaction with the Avalon team and a few other Windows groups…I have friends in both Research and SQL-land, but I have very little idea of what goes on in MSN, or Gaming.
When I talk to people outside the company, and they ask what it is like to work here, I tell them it depends. Compared to most software companies, Microsoft is more like a whole set of different companies, loosely coordinated…with different cultures, goals and standards. Think of it as mini-Silicon Valley, with some big established companies (Office, Windows, …) and a bunch of startups. Each “startup” has to fight for venture in the form of head count and budget, and get reviewed on their progress up the chain to Bill. For every new product MS ships, at least 9 never see the light of day: and I don’t mean big things like Cairo, I mean little teams of 2 to 5 people who started building a new language compiler, or a an app that spread butter on toast, and after awhile were simply told to go do something else.
It’s a huge strength for MS, but at the price of a lot of chaos and duplication of work. Sometimes I think that Bill’s job is simply to say: “You know, there’s this other team over in building X, they are doing the same thing. Go talk to them.” because he’s the only one who reviews pretty much everything eventually.
All I’m saying, is keep this in mind as I blog.