Pros: excellent benefits
Cons: less than average salary, poor work-life balance
IBM has been putting adherence to release schedule ahead of software quality for decades. Not specifically quality as far as the customer is going to see, but internal quality in the way software is engineered. They have built up decades worth of technical debt.
Each time they would take short-cuts in the code in order to try to meet the release schedule, they essentially added a tax to all future releases. The code became more difficult/expensive to maintain and enhance. Now that they are finally recognizing that the business and software models which served them well up through the 90s are no longer serving them well, they have enormous hurdles to overcome both from a technical, codebase perspective, as well as from on internal culture perspective.
Combine the hurdles that they have with the declining-revenue-induced layoffs underway, which reduces the workforce skillbase they need to renovate their offerings, and IBM looks to be a company which will struggle for some time. And let's face it, companies that are struggling are less pleasant to work for than companies which are not.