I recently completed the book Team of Teams by Stanley McChrystal, a retired Army General and former commander of the Joint Special Operations Task Force, operating in Iraq. It's the story of how he transformed that command in order to more effectively execute their mission.
The book explores the ideas of complicated and complex. I kept thinking about the Cynefin framework, though McChrystal does not specifically mention it in the book. The book starts by talking about the work of Fredrick Taylor around the start of the 20th century (complicated). He then gives some examples of complex problems. My favorite was the introduction of the cane toad in Australia.
The book then goes into how McChrystal moved his command away from a strict command structure and to a team of teams structure. This change made them more resilient, allowing them to more effectively respond to the enemy. McChrystal makes a point to show how efficient and resilient are on opposite ends of a spectrum, and being resilient was more important than being efficient. The move to a team of teams was done by cross-pollinating individuals across teams. There was also a liaison program to work with external organizations.
The parallel between Team of Teams and John Kotter's book Accelerate are interesting. Both recognize the hierarchy can't support today's environment. McChrystal saw the team of teams as a way to be more resilient so that the organization could respond quicker to threats. Kotter viewed it as a way to implement strategy. In both cases, the hierarchy remains, but it is supported by the teams.
The agile world is catching on as well. The Scrum@Scale guide references McChyrstal's book when describing the Scrum of Scrums. I've been trying to build this with my teams. For example, shifting from a status meeting where people report to the manager one at a time while everyone else has their nose in their computer to everyone interacting and building a shared consciousness. The first step, banning computers from meetings so people pay attention.
Another idea I'm trying is similar to how Spotify uses guilds to share across teams. I'm bringing together developers from across all the teams to discuss technical topics of their choice. We kicked off the initiative by creating an operating agreement, identifying the topics of interest, and picking a topic for the next meeting. I believe this can lead to a number of outcomes: a better shared understanding of the department's work, the ability to move developers more effectively from one team to another to meet changing priorities, and improving skills across all the teams...again, along the line of team of teams.
I recommend Team of Teams for anyone that is working with more than one team and trying to figure out how to create a resilient organization that can keep up with a rapid pace of change.