Given a 15x strong software development team working on individal projects, and small, medium, and large projects; what is the best way to structure this team and what is the best software development methodology?
Background:
The department was previously made up of:
- CTO
- Support Development Team (1x lead, 2x support devs)
- 4x Developers
The department grew to 10x developers so a decision was made to separate into 2x dev teams of 5x developers each like so:
- CTO
- Team 1 (1x lead/manager, 4x developers)
- Team 2 (1x lead/manager, 4x developers)
The department uses Scrum, each team having its own sprint cycle (synchronized).
Now that the department is much larger, a new restructuring needs to take place. A few problems have been identified:
- Fixed teams are problematic due to individual developer's silos of knowledge
- Promoting developers to lead/admin/line-management roles results in loss of essential developer resource
We also have a PMO consisting of 3x PMs and 2x BA. This team is separated from development (not ranking higher or lower, but aside) and falls under the operations department (COO).
Using Scrum has its problems:
- No dedicated support team means maintenance has to fall into a Scrum team. This doesn't work so well. (A KanBan team could be more appropriate for support).
- The company takes on bespoke work from lots of clients, resulting is mixed release dates, mostly not fitting the sprint-release plan.
My thoughts
- I think a more responsive methodology would work better (but I'm no expert here - I'm a dev/lead), and on per project basis rather than per team.
- I think the development teams need to be more fluid, build per project rather than a fixed Nx developers per team. Line management becomes a problem here. Technical leadership and line management become a problem here due to lack of appropriate resource/time.