Many people start with the assumption that at scale you must start with effective Agile teams before trying to get them to work together. This has not been borne out by evidence.
As Ron Jeffries put it in one of his blogs “most of your teams may not really be Agile at all. Until all your individual teams can really do what Agile teams do, using all those XP practices that SAFe does wisely recommend, it’s not time to start directing them with a large process. It’s time to get them trained and experienced in doing software right. After they can do it, you’ll find that most of them don’t need all that top down large process after all. The large process is trying to compensate for the problem rather than fix it.”
While I think there is merit to this thinking, I do not agree the best way to achieve scale is always by getting the teams working well. As with most things, an approach depends upon the situation you are in. If the types of projects you are working on don’t require teams of more than 30-50 folks, I’d probably take Ron’s approach, because SAFe is likely too big for them. But many projects are too big or complex to unwind. In this case, looking at the big picture and getting teams to deliver in 2-week cycles may be the right approach.
The (Sometimes) Danger of Starting at the Team. Spinning up Scrum teams in isolation is not that hard to do. Much of the bad Scrum out there is due to the teams are not in isolation and they are being overloaded with work. When a team starts out with Scrum and learns to be effective, they are basically learning how to optimize themselves. When teams need to work together, sometimes one team needs to slow down in order to optimize the results of all of the teams working together. However, if they’ve been used to focusing on themselves then they may not wan to do this.
The (Sometimes) Advantage of Starting at the Program Level. When a program is being managed by looking at the whole, managing the amount of work that needs to be done, and doing planning events that coordinate dependencies between teams, teams are often in a better environment in which to learn Agile. They are not being inundated with work because of the management of Work-in-Process. Furthermore, they are clear of their responsibilities to other teams and of other teams to them. It is often easier to train teams in Agile when they are in a good ecosystem.