I taught theworkshop with Gil Broza last week in Edinburgh. (That's why I was quiet. I was traveling and teaching. No time for writing, blogging or tweeting.)
One of the participants asked me what I thought about scaling agile. Before I could explain about small-world networks, not hierarchies, he said, “I am sure the way you scale agile is out, not up.
Well, blow me over with a feather. He said it more simply than I did.
If you look at my picture of a technical program team, you can see that's how it works.
The technical program team has feature teams alone, if they can be alone. Joe, Tim, and Henry all have stand-alone feature teams.
If they need to be “collected” because they work on related features, they collect themselves. Sally has collected feature teams.
The teams scale out, at the technical level, not up. The technical program team does not have to get to bigger. When I ran programs in the past, I emailed the program team meeting agenda (it was a problem solving meeting) to everyone, and say, “Here are the people I need to attend. Everyone else: let me know if you are attending.”
Now, there's a limit to how big a program can get for the software program or the hardware program. At some point, the it's so hard to coordinate the interdependencies, it's not worth the bigness.
If the teams are delivering small features all the time, you don't need as many people as you think you do. The smaller the batch size, the fewer the people required. Your momentum will be greater. If you don't believe me, think about that for a minute or two.
When you think scaling agile, think out, not up. You use small world networks, and when you say, “think out, not up,” it's a very nice catch-phrase.