Pros
The personal offices, free insurance, nice morale events - all used to be-s...
Cons
No interesting relevant prouts to work on. Very political - all TECHNICAL decisions are made on the basis of how to please the upper ups who are usually - to put it mildly - less technically savvy. What is valued is so called "visibility" rather than true quality of work. And the most ironic of all - while Microsoft is giving the customer one of the best development technologies and environments in the world, it greatly lagging behind in using it for its own products. Management is dominated by the "old school" people who worked in the company at 90s and sometimes in 80s. They invested tremends amount of time in old times coding skills and greatly resent if not always openly resent the use of moving forward with technology and skills coming up with ridiculous excuses to justify it.