Pros
- A lot of smart people still work there - Huge variety of products to work on, and internal movement is encouraged - Benefits package is excellent - Especially coming out of college, there are a lot of opportunities to learn and advance All of the above apply mostly to technical people (developers, mostly). If you're not a developer, the biggest pro is that MS will pay you for doing absolutely nothing.
Cons
- Senior management behaves stupidly very consistently. - MS is acquisition crazy, despite the fact that the acquisitions have _never_ worked. - Review process is increasingly arbitrary and random, as well as a huge waste of time. Employees and managers fill out extensive forms "documenting" their "performance", which are actively ignored -- usually the review decisions are made before anything is submitted. - MS is increasingly populated by useless people. Many organizations are so dominated by PMs that they are completely paralyzed -- they have an unlimited number of people who can distract developers while only a limited supply of developers themselves. - Marketing is way too large and way too influential. -