The mess is probably on both sides. The issue is that management doesn't care about IT until everything breaks apart. This means IT is seen as cost and not worth the trouble to do well and keep in house. Then of course everything starts falling apart and it's easier to put the fault on the vendors. Of course IBM has its faults, but I'd guess they are more on the overselling side (we can do everything and cheaper and…
It won't make any difference if they had an inhouse team.
In order to choose a competent vendor, or to hire a competent employee the management itself needs to be sufficiently tech savvy to differentiate between mediocre and good candidates.