Background:
I am a product manager for a medium size web hosting company and we offer a variety of complementary services besides just webhosting.
Today our company has about a dozen 3-6 developer teams each working on different facets of webhosting (i.e. DNS registration, shared hosting, cloud computing, dedicated servers, resales, etc.).
We've grown very organically and as a result the user interface greatly reflects the organization of our company as opposed to the organization of content which our client would find intuitive.
In addition to this problem, many of the backend systems fall in the domain of each team, but need to be used by other teams as well. For example DNS registration services needs to be used by the shared hosting team on their panel. Another example, web hosting features like one-click web application installers are developed by the shared hosting team, but we also want to make them available to dedicated hosting customers.
FYI, we have a programming environment which is heavily focused on agile methodologies and extreme programming (XP).
Question:
For those of you who have corporate work/programming environments similar to mine, what solutions/advice do you have for making this arrangement work so that we can improve the user experience and coordination and sharing of code, while also allowing the teams to remain independent?
i.e. has anyone here used Scrum of Scrums. If so what advice do you have for implementing it?
Any alternative solutions to a scrum of scrums?