Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The team structure outlined previously gives the basics for forming and managing a large group of developers. It also allows the team to scale outwards or inwards depending on new requirements being introduced or having features move out of scope. The key takeaways from this model are the following:
Break the solution down into functional groups or subsystems. Assign and manage deliverables based on these groupings.
For projects that require common infrastructure, create a separate team that is responsible for creating and managing this. Ensure that the design for any common components is well defined and used by other functional teams.
Assign developers to either a functional team or to the common infrastructure team. Assigning developers to more than one team is often problematic as it forces them to split time for multiple deliverables.
Rotate developers across teams when deliverables are complete. This encourages cross-group collaboration and decreases "knowledge silos."
Encourage a regular build cycle. This will help to keep the project on track and gives the team members regular code check-in dates that must be met.