A program is a collection of related initiatives managed in a coordinated way to obtain benefits not available from managing them individually. A program team is typically organized as a team of teams, called sub-teams or squads. Structures are required to coordinate people, requirements, and technical concerns within the overall program. Where a simple “scrum of scrums” may suffice coordination on small-to-medium sized programs (say up to five or six sub-teams), it quickly falls apart for larger programs. As a result, large programs will find that they need:
- A Product Management (or Product Ownership) strategy where the Product Owners coordinate their activities
- An Architecture (or Architecture Ownership) strategy where the Architecture Owners coordinate their activities
- A Product Coordination (or Management) strategy where the Team Leads coordinate their activities.
- An optional Program Manager/Coordinator, a specialist role, is responsible for coordinating the overall leadership team.
The following structure shows how the Product Owners of each sub-team are also members of the Product Management/Product Owner team for the program. Similar structures, see Large Agile Teams, will also exist for Product Delivery and Architecture as well.