Agile was originally meant for small teams. Is it less effective when teams are large? Why?
Teams of more than 10 people are too large for any software development project. As Linda Rising and Esther Derby pointed out in "Singing the Songs of Project Experience: Patterns and Retrospectives" (Cutter IT Journal, September 2003), communication becomes too difficult with more than 10 people on a team. Managers are often tempted to add people to meet tight deadlines, but having too many may stop progress completely. It's like the old saying, "Nine women can't have a baby in one month."
Large projects may require multiple teams, but each team should have 10 or fewer members. Each team should have their own sub-project they can work on independently. The teams can communicate with mechanisms such as the Scrum of Scrums, where the Scrum Masters from each team meet daily to identify and address impediments. A continuous integration process shared by all the teams is a must, ensuring all components of the application work together properly.
Agile on a large scale is the same as Agile on a small team, but it may require roles a one-team project doesn't need. In some large projects I've experienced, we added positions such as project managers to help coordinate among teams, and with teams developing related systems. Use retrospectives to identify whether an additional person is needed to facilitate communication with other teams.
It's worth noting that a small team that is allowed to self-organize and is given time to learn can design an architecture over time, supported by automated regression tests, which allow them to deliver new features quickly. I was a tester on a team for almost nine years that never had more than four developers and three testers. Our customers were amazed by the amount of value we could deliver each iteration, and our competitors simply couldn't believe it!
Many large, global corporations follow Agile principles and values successfully in their distributed software development organizations. Keeping teams small and allowing them to self-organize, while providing technology and people to ensure coordination, are the keys to success of "Agile in the large."