IBM would be a lot better off if their quality of work was significantly better. We (a major US manufacturer) have IBM contractors helping us out with an Oracle eBusiness roll-out. The knowledge level of the contractors they send is well below what was promised. I work in middleware/integration and often find that I need to pull up the eBusiness API documentation because they have no knowledge of how to send standard data to the system (e.g. Shipments, Receipts, Inventory Transactions, Orders...). We've been slowly trimming down the number of contractors because it's faster for us to do it ourselves instead of fixing their mistakes. We'll do it right in 9 months versus having them do it wrong in 6 months and we spend another 6-12 months getting it to work properly. I'm sure it would help if we had better requirements (500 line estimate for max shipment notice size turned into actually being 80,000, 20,000 transactions / month from warehouse servers turned into 17 million, and tons of missing specs for required fields), but they wrote the specs.