The goal is semi-autonomous, self-organizing, cross-functional teams dedicated to a particular product or service.
Most companies require a two-step process to get to this network/hierarchy structure. They should be done in parallel or sequentially as appropriate (discussed in subsequent posts).
One step is to identify the dependencies across the current teams. This will immediately increase the collaboration and efficiency of these teams. But this is mostly accommodating the real problem – having the dependencies and handoffs in the first place. Making these dependencies visible lays the foundation for the second step - improving team formation to reduce the dependencies and handoffs. This reduces multi-tasking and waste arising from delays in the workflow.
Ironically, teams can become more Agile not by teaching them how to work with each other but by having them not to need to work with each other.