I want to know how your current teams are structured in terms of reporting and org chart. If anyone can provide the names of the various roles used in your orgranization, that will be awesome.
I guess I totally messed up with this question. I also wanted to know what would be the ideal setup, kinda like your dream org chart.
I work for a small software company; we only have two developers. Before I started writing software, I studied psychology and I got an MBA after that, so I can tell you from extant literature that the average person can manage 2 - 7 things with the optimal being 4- 5. So, your best bet is to get to groups of 5 or fewer. If you have 5 teams, one person can manage all 5 of those teams. If you have 25 teams, one person manages each of those teams and one person manages the 5 managers.
Personally, I will always have two programmers working at the same desk. My lead developer and I work at a very large desk. We face each other and there's no divider. We get along really well and the ease of collaboration makes us very efficient. I'll probably always have as many as 3 - 4 programmers working in the same office at a time. I'll keep them facing each other so you still get privacy and so that making eye contact to ask questions is easy and comfortable.
Also, I won't keep my programmers in a common area. Distractions can be extremely costly for programmers. I like them to have the ability to close their doors and say, "nobody bug me today . . . I'm in the zone!"
Finally, ideally, developers would work on as few projects at a time as possible. Context switches are killer in a development environment. A simple distraction can cost as much as an hours worth of productivity. A context switch can be several hours. Because we're so small, we often work on 5 or 6 projects in the same day. Larger companies dedicate programmers almost exclusively to one project and this cuts back on the efficiency losses due to context switches.