When problems arise (often) in integration projects (all of them) a lot of time and energy is spent arguing who’s at fault. This is as about as useful as arguing whose side of the boat has a leak.
It’s common for Team Upstream and Team Downstream to test their systems in isolation. However, the problems lurk in international waters, between teams. We must test the integration. Integration testing is like voting, do it early and do it often.
Traditionally, groups are brought together through marriage. In lieu of this, we’ve had a lot of success sending emissaries to work with other teams. This doesn’t mean endless meetings. It means joining forces and working together, reducing the us and them mentality.
We may be told that our responsibility ends with our system boundary, stay out of international waters. We may be told that it will all just work if we build it to spec. The reality is that we need to make sure the entire system works across all teams.
Current thinking is that our brains are geared towards living in small family groups, in competition with others. This distorts our view of other teams, causing us to presume they are either malicious or incompetent. We even dehumanise them, giving them nicknames like Team Downstream, instead of recognising them as fellow people doing the same job as us.
As the elders say: you must test the integration (and take these mushrooms!)