Comment It doesn't have to be terribly complicated (Score 1) 112
I've been managing teams of developers for well over 15 years, periodically assigning smaller teams from project to project. There are quite a few moving parts but it can be managed by one or more managers. It's not unusual that I'm both manager and co- developer on a given project, a DBA for another, and solely admin for yet another.
Some components must be common across all projects, namely task management and time tracking (where applicable). It's wildly helpful if code versioning is also centrally managed and integrated into task management.
Messaging between individual team members should be consistent across teams but groups isolated by project so as not to create cross-project noise.
Reporting and accountability tracking are crucial, as well as monitoring of individual performance (from commits) vs time and customer budgets. That's probably the most complex system I had to build to manage my teams: staying within customer budgets, developer available bandwidth and accountability.
I built everything based on mostly open sourced components and tied them together with my own code based on rapidly evolving needs as customers arrived and left over the years. There are purchased apps and services out there that provide comprehensive albeit expensive solutions.