Pros
1. Top benefits packages in IT industry 2. Slightly above average pay for junior/middle level employees. 3. Good work/life balance in traditional product groups 4. There are many very senior developers around from who you can learn a lot (if you are junior) 5. Good place to build up engineering skills. 6.
Cons
1. The organization boundary and political fighting is counter productive. 2. Microsoft strongly favors in-house technology. This is not the most efficient way of building new products in some areas especially online business. For developers, some technology you learn won't apply to other places, although in general the experience is useful. 3. To get bigger things done, you need to climb up the corporate ladder, which is very tough. 4. Microsoft doesn't use its resource efficiently, including developer resources.