-- This is an enormous company. There's a lot of stuff going on, and it's very easy to tune out the rest of your division. As a result, personal and career growth tools and advice are about as generic and non-specific as possible, and therefore not all that useful.
-- Size makes finding useful information on the company intranet almost impossible. Pages are frequently out of date, and you seem to be redirected to 2-3 other pages before you find anything of use.
-- No two groups seem to use the same technology for source control, access management, requirements management, or just about anything else.
-- For some, it's such a good place to work that it's impossible for anyone else to advance into a technical leadership role, so you end up leaving or creating something new and esoteric to make your mark, which makes it even harder for someone new to figure out what's going on.
-- Benefits (primarily health care) are not as good as other places I've worked.
-- Can be very hard to figure out who your customer really is, or who is using what you work on.
Bottom line:
It's almost impossible to describe the 'good and bad of IBM', because it's such a huge company. IBM has acquired so many other companies in the past few years that you can't really describe the culture of IBM anymore. There are a few unifying pieces, like benefits and the review process, but if you want to work at IBM you will want to talk to a lot of people during your interview to find out more about the specific site you want to work at.