One could argue that we've had problems with scaling up aswell, but I think we are better off than we would have been with a different model...
The programmer team is split in tools, rendering and gamecode (we're a game developer if you hadn't figured that out
) but with a lot of work crossing the borders between the coder teams. Tools and gamecode need to use same dataformats, and the tools use the same rendering engine as the game etc.
I guess the most Agile part of how we work doesn't just relate to the programmers. For a particular feature, we create a "strike-team" that consists of one or two coders, some graphic artists and some designers.
That team is then responsible for making that feature, and once the feature has been completed, the team is broken up and the people in it are put on other strike-teams, implementing the next set of features.