Pros
Ideal environment if any of the following are true: 1) You are a software developer fresh out of college/university and want to learn how to develop software professionally 2) You are a lawyer or are in marketing (except advertising) 3) You are a seasoned corporate animal with experience navigating large organizations Upsides being employed at Microsoft: - Competitive Salaries - Great Benefits - Generally good work/life balance - Lots of resources to learn the "craft" of software development - Big impact on many of the products you can work on (Billion $ products, millions of customers) - You can be compensated greatly for exceptional work ... if you are identified with such an effort - Lots of complex global, legal, competitive experiences to be garnered - Awesome (if you can) to learn from some of the early MS pioneers
Cons
Boiling it down: 1) Many teams lack a competitive flair, with some exceptions (such as internal start-up and Entertainment properties). For well established products, or business units still trying to find their way, you may find the inertia frustrating as you watch smaller competitors come up with cool stuff that actually solves customer problems. 2) It is being populated by the professional corporate types. This is a downside if you yearn to learn why Microsoft was so successful in the early years. Many of those people are either gone, or are scattered throughout the company in very senior roles. As more coroporate animals populate the ranks, you will only learn their methods for posturing and politics. 3) Size is starting to make the company less agile. Relative to other large orgs, Microsoft isn't nearly the biggest. But to manage their portfolio of products they clearly don't need more people. Yet they continue to hire instead of cross pollinating great people. That bloat leads to difficulties in changing strategies or product alignments. They risk having to downsize several years from now, as most companies that grow too fast usually do.