Pros
Wide range of experience in different industries. Opportunity to work with some very talented and diverse people. My experience has been that there is some slow time at the end of projects that you can take advantage of after a grueling project (but not always).
Cons
There are some incompetents at IBM, who are very hard to get rid of, and very frustrating to work with. It's hit or miss when management addresses performance issues with these types of employees. Formal training is lacking in my job category. You are expected to find time to complete the computer-based training while you are more than 100% utilized on your project(s). Promotion criteria is nebulous, and not communicated well. There are so many "corporate procedures" to follow that you get lost with what's truly important while you are trying to do your day-to-day work.