How is your software development team structured in terms or organization chart?
I want to know how your current teams are structured in terms of reporting and org chart. If someone can list the names of the different roles used in your orgranization, that would be awesome.
I think I completely confused this question. I also wanted to know what would be the ideal setting, like your diagram of your dream.
a source to share
I work for a small software company; we only have two developers. Before I started writing software, I studied psychology and got an MBA after that, so I can tell you from the literature that the average person can manage 2-7 things with an optimal state of 4-5. So, your best bet is to get groups of 5 or less. If you have 5 teams, one person can manage all 5 of these teams. If you have 25 teams, one person manages each of these teams, and one person manages 5 managers.
Personally, I will always have two programmers working on the same desk. My lead developer and I work on a very large desk. We collide with each other and there are no divisors. We get along well and the ease of cooperation makes us very efficient. I will probably always have 3-4 programmers working simultaneously in the same office. I will keep them facing each other to keep you private and to make eye contact easy and comfortable asking questions.
Also, I will not keep my programmers in the general area. Distraction can be extremely costly for programmers. I love it when they have the opportunity to close their doors and say, "Nobody bothers me today ... I'm in the zone!"
Finally, ideally, developers will work as few projects at a time as possible. Context switches are killers in the development environment. A simple distraction can cost as much as labor productivity. The context switch can be several hours old. Because we are so small, we often work on 5 or 6 projects on the same day. Large companies devote programmers almost exclusively to one project, and this reduces efficiency losses due to context switches.
a source to share
In Microsoft Windows and office organizations, product development teams are (primarily) made up of people from three roles, program management (PM), testers, and developers.
Of course, developers are responsible for development. The test team is responsible for developing functional and related tests and infrastructure; and run tests to find errors. Very little testing is done manually - we spend a lot of time on automation. This includes designing things to make them more easily testable.
The program management role is responsible for communication, coordination and planning. This will mean different things to different teams. But they are the glue that holds everything together.
From the point of view of the organizational chart, everything is very arbitrary. Most managers have between 3 and 9 people reporting them - not too flat, but not too deep. A very bad corporate tree doesn't work very well at Microsoft (that doesn't mean it's bad, but culturally, having more than 9 direct reports is difficult).
a source to share
At my company, we have a very poor management structure. There is no hierarchy in our development team; all software developers are on the same level and report directly to the VP of Software Engineering. Sometimes one of us will be involved to lead a project, but in our company that only means a different set of responsibilities, not encouragement. This is great because it made our development team a meritocracy.
a source to share
We have an attitude towards HR reporting that is different from the teams that do the job. We have three Scrum teams that have multiple product owners, but the people on those teams don't necessarily report to someone on their team. The senior developers (three of us) report to the engineer-engineer and the rest of the other developers (six) report to the two senior developers. Meanwhile, the testers and the SDET report everything to the senior SDET. So, in terms of HR management, there are three middle managers who report to the engineer-engineer, and also one senior developer who does not have reports and our architect. Those fifteen or so people, in turn, are spread across three Scrum teams, which don't necessarily match up with the org chart.Scrum teams are responsible for defining on a daily basis what people should work on, while the relationship with the staff reports is work, any problems people might have, things related to careers, things like that.
a source to share