Development Team Structure – How to Organize

managementteam

I am the manager of a team of 11 software developers who look after my company's web sites / web applications, running up to 4 concurrent projects plus day-to-day support at any time. Within the 11 developers there is a mixture of technical skills, job titles and experience, although the team structure is flat with all 11 developers reporting directly to me.

The whole team having a single manager is starting to prove not to scale very well. I am starting to be spread too thinly so want to reduce my number of direct reports. All the ways I can think to do this have significant downsides:

  • Have junior developers report to senior ones. This reduces the time spent on development by the best technicians.
  • Split the team by software product, e.g. developers 1-6 work on intranet and 7-11 work on external sites, with each section having new team lead (possibly a new job description with more management / mentoring / coaching responsibility than the current senior developers). This adds artificial silos and might make it difficult to get an "intranet developer" to work on an external website if I want them to.
  • Keep the structure flat and add managerial support in the shape of Project Managers / Team Administrators just to take the pressure off. This doesn't solve the problem as the team can't go on growing like this forever.

Is there a standard way of solving this problem which I am missing?

If not, how have others of you solved this problem?

Best Answer

Some quick thoughts:

  • Sub-teams are a good idea: 11 direct reports without any structure is too large for a workable team (you won't have enough time for direct coaching, and team meetings with that many people will tend to be unproductive).
  • Consider separating operations out from development - it's a slightly different skillset and being interrupted by operational issues all day can seriously harm development productivity on projects.
  • As a result of the first two points, I think you should have perhaps 3 subteams - Intranet, External Sites and Operations. The operations guys will deal with all day-to-day issues / maintenance fixes etc. while the two development teams focus on delivering new projects / value to the business.
  • Cycle people between teams on a regular basis. This can be either occasional (e.g. having people do review of code in another subteam), for a project or on a permanent basis. But make sure it is understood that team roles will change whenever there is a business need - nobody "owns" a specific role forever.
  • Don't add more managers/administrators - this is a surefire way to reduce the overall effectiveness / productivity of your teams. Have the most experienced person in each subteam play a team lead / coach role. Make sure that they see their role here as coaching and making the whole team succeed, and make sure that they are equipped to behave in this way rather than act a "task manager".
  • Your role should be focused on external stakeholder management, prioritisation of resources / tasks within the group, and acting as "head coach". You'll need to handle the occasional escalated issue from the sub-teams, but in general you should encourage them to solve problems themselves without coming to you.
  • If you are highly technical yourself you may also choose to play an architect / design assurance role. If not, find someone who can, within the team or elsewhere.....

Also, it's always worth going and (re)reading the Agile Manifesto, and especially the twelve principles.

Related Topic