Pros
1. People are really smart and often very hard working, you feel very nice working with these people. 2. Benefits are really nice. Salary is also good. 3. The breadth of products that Microsoft has - Native Apps (Office), OS (Windows), SQL, Cloud services (Azure), Search engines (Bing), Dev tools (VS), Compilers and runtimes (CLR), languages (ASP, C#, VB). In short there is a lot to learn and perform. If you don't like something you can move to a different team. 4. Also you sometimes get to work with great research teams in MSR and often on cool and new stuff.
Cons
Due to the size of the company all divisions are different. Infact coding/engineering practices, tools, computer languages used differ from team to team. Collaborating between teams is now being encouraged but could be better. If a project goes hot or red then work life balance could go for a toss otherwise for me it is acceptable.