Pros
Smart people, many tough problems to solve, significant software engineering challenges, never boring, your work has a world-wide impact, and you are empowered to make a difference for customers. Plenty of opportunity to add value in the software development process, as a solid engineering leader, and as a subject matter expert. You won't be a big fish in a little pond here; if you're looking to stretch yourself and work, everyday, with people smarter than you, then this is the place to be. Microsoft has a soul, a lot of diversity, and they reward based on contribution... you can be successful here!
Cons
layers of middle management can impede progress, senior management entrenched and protecting their position -- not advocating innovation if at all risky, some groups want you to sell your life to the company