The more you integrate products the more that product A's operation relies on how well product B works. A bug in product A can cripple product B.
That's pretty obvious, but what's less obvious is that you have to be able to trust everyone involved in the integrated products. If you can't trust the developer, or the code, of product B then product A may be doomed. If you're integrating products so that they use the same data then you not only have to worry about the developers, but the operators as well.
On Monday an application stopped working. It's part of our Intranet, but it displays human resources data, and it ties into our accounting system. It turns out that the accounting department had not opened a new period in the system, which broke everything.