Technology Blog Posts by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 

What Is a Program Team?

A program team is a group of people who work together across an entire program, not just one project. Think of a program as an umbrella that covers several related projects. A program team sits under that umbrella, so everyone who belongs to it is automatically visible and available across all the projects underneath.

This is different from a project team, which only applies to a single project. A program team saves you from adding the same people, with the same roles, to every project in the program one by one.

You will find program teams on the Program Detail page, in a section simply called Teams. The section title always shows the current count, for example "Teams (3)", so you know at a glance how many teams exist. Each team is shown as a row with its name and the list of members, so you never see the same person listed twice in one team.

Mustameer_Khan_0-1783672918030.png

 

Why This Makes Your Life Easier

If you have ever managed the same group of people across five different projects, you already know the pain: add someone to Project A, then remember to add them to Project B, then C, then realize you forgot D, and now someone is missing from a meeting invite because their name was never entered there. Program teams exist to make that problem go away.

Here is what actually changes for you:

  • Set it up once. Define your team at the program level, and it shows up in every project under that program automatically. No more re-entering the same names five times.
  • Everyone follows the same structure. Because teams are built from a shared set of roles, every project in the program looks and feels consistent, which makes onboarding new people, or just finding who owns what, much easier.
  • Nobody works off an outdated list. When membership lives in one place, you are not stuck wondering whether Project C has the current team while Project A is three names behind.
  • Changes stay under control. A program team is always edited from the program level, so there is one clear place to make updates, instead of five different places that might drift apart.
  • It keeps up when things move. If a project switches programs, its teams update on their own, so you are never staring at the wrong list.

Put simply, program teams take a job you used to do over and over, project by project, and let you do it once.

Mustameer_Khan_1-1783672953552.png

 

Getting Started: The Basics

Finding Program Teams

Go to the Program Detail page and look for the Teams section, just below the General Info section. If you do not see a Create button, it simply means your user does not have permission to create teams. Viewing and creating are two separate permissions, so it is normal for some users to see teams but not be able to add new ones.

Mustameer_Khan_2-1783673035236.png

 

Creating Your First Program Team

If you have the right permission, creating a team is straightforward:

  • Click Create in the Teams section toolbar. A creation screen opens beside your program details.
  • Enter a Name (required, up to 100 characters) and, optionally, a Description (up to 5000 characters).
  • Move on to add Team Members (covered next).
  • Click Save. You will see a confirmation message, and the new team appears immediately in the program's team list.

Two rules to keep in mind: the team name cannot be left empty, and it must be unique within the program (the system is not case-sensitive, so "Finance Team" and "finance team" count as the same name). If you break either rule, a clear error message tells you exactly what to fix.

Mustameer_Khan_3-1783673193995.png

 

Building Up Your Team : Assigning Members

When you build or edit a team, you choose how you want to work with members. Both views show the same data, just organized differently, and switching between them keeps everything in sync.

By Role View (the default)

Each row represents a predefined role from the program's role template. Roles that were custom-created are marked with a small person icon so you can tell them apart from standard roles.

  • Type a name into a role's input field to search for and select an existing user.
  • Type an email address instead if you want to invite someone who is not yet in the system. They will receive an invitation, and a message strip will list all pending invitations so you can track them.
  • Remove someone by deleting their token from the row.

Mustameer_Khan_9-1783673621769.png

 

By User View

Switch to this view using the segmented button if you prefer to think in terms of people rather than roles. Each row is one person, and the column next to them is a multi-select list where you assign one or more roles to that person.

  • Click Add to create a new row for another person.
  • Remove a row with the X button next to it.

A good habit at this stage: before switching between By Role and By User, make sure there are no unresolved errors (for example, an unmatched name or a missing role). The system will block the switch and show you exactly what needs fixing first.

Mustameer_Khan_4-1783673224266.png

 

Common Mistakes and How the System Helps You

The screen is designed to catch problems early, so you rarely lose work:

  • An empty team name or a duplicate name is rejected with a clear message before you can save.
  • A role input that is neither a matched user nor a valid email address is flagged as invalid input on that specific row.
  • An empty user row, a duplicate user, or a user with no role assigned in the By User view is each caught with its own specific message.
  • If you start typing changes and then try to navigate away without saving, a Discard Changes prompt appears so you never lose work by accident.

 

Getting More Advanced: Editing and Managing Teams

Editing an Existing Team

Open any team from the program's team list, then click Edit. The editing screen looks and behaves just like the creation screen: update the name or description, add or remove members, or change role assignments.

One feature worth knowing well is deactivating a role. Turning a role's switch off removes all its current members, so the system shows a warning dialog first, naming the role you are about to deactivate. If you are confident this is something you will do often, you can tick "Don't ask again" to skip the confirmation for the rest of your session. Cancelling the warning simply snaps the switch back on with nothing removed. Reactivating a role later is just as easy.

Mustameer_Khan_5-1783673252003.png

 

How Program Teams Show Up Inside Projects

This is where the real business value becomes visible day to day. Any project that belongs to a program will show that program's teams mixed into its own Teams tab, both in Project Overview and in Project Setup. They look like part of the project's team list, but they are clearly owned by the program.

From the project side, clicking on a program team opens the same team detail screen, but in read-only mode. There is no Edit or Delete button. Instead, an information strip explains that this is a program-level team and gives you a direct link to the program detail page, where you can make changes if you have the right permission.

This is a deliberate design choice: it keeps team management centralized at the program level, while still giving everyone visibility from wherever they are working.

One more thing worth knowing: if a project's program assignment changes (it moves to a different program, or is unassigned entirely), its Teams tab refreshes automatically. The old program's teams disappear and the new program's teams appear, so what you see always matches the project's current program.

Mustameer_Khan_6-1783673308627.png

Mustameer_Khan_10-1783673712420.png

 

Expert Moves

Turning a Project Team Into a Program Team

If you already built a strong team at the project level and want to reuse it across the whole program, you do not have to rebuild it from scratch. From a project's Crew Detail page, click Copy, and choose Program as the destination instead of Project. The existing project team is copied as a new program team, and you are taken straight to its detail page. This requires a specific copy permission, so if you do not see Program as a destination option, that is why.

Mustameer_Khan_7-1783673335693.png

 

Automating with the API

For customers and partners who want to manage program teams programmatically, SAP Cloud ALM exposes program teams through the same Projects API used for other project management objects. This opens the door to automation, integrations, and bulk operations beyond what the user interface offers.

The available endpoints cover the full lifecycle of a program team:

  • GET /programs/{programId}/teams retrieves all teams belonging to a given program.
  • POST /programs/{programId}/teams creates a new program team.
  • GET /programTeams/{teamId} retrieves a single program team by its ID.
  • GET /programTeams/{teamId}/roles retrieves all roles defined for a given program team.
  • PATCH /programTeams/{teamId}/programRoles/{roleId} replaces the members assigned to a specific role on a program team.

Together, these endpoints let you read a program's teams, create new ones, inspect their roles, and update role membership, all without opening the user interface. This is particularly useful for organizations that want to keep program team membership in sync with an external HR or resourcing system, or that need to set up teams in bulk when a new program is launched.

Mustameer_Khan_8-1783673362426.png

 

Deleting a Program Team

Deletion is only available from the program side, never from a project. Click Delete on the team detail page, confirm in the dialog that shows the team name, and the team is removed. The program's team list and its count update immediately. Cancelling the dialog leaves everything untouched.

Mustameer_Khan_11-1783673834923.png

 

Permissions at a Glance

Program teams are controlled by five separate permissions, so different people in your organization can be given exactly the level of access they need:

Action

Permission needed

View program teams from a project

hasProgramTeamDisplayAuth

Create a program team

hasProgramTeamCreateAuth

Edit a program team

hasProgramTeamEditAuth

Copy a project team to a program

hasProgramTeamCopyAuth

Delete a program team

hasProgramTeamDeleteAuth

 

Role Collections and Role Templates

Out of the box, SAP Cloud ALM ships one ready-to-use role collection called Program Administrator. Assigning it to a user gives that person the ability to manage and display programs and program teams in Project Management, without any extra setup.

Behind the scenes, this out-of-the-box role collection is built from a set of role templates that SAP provides for program-related access: Program Administrator, Program Manager, Program Team Manager, and Program Viewer. Each template covers a different level of access, from full management down to read-only viewing.

If Program Administrator does not exactly match how your organization wants to split responsibilities, you are not limited to it. Customers can build their own custom role collections by combining these role templates in whatever way fits their needs, for example a collection that only grants Program Viewer plus a couple of other unrelated permissions. The key point to remember: Program Administrator is the only program-related role collection that comes ready-made; anything else is assembled by your own administrators from the available role templates.

Mustameer_Khan_0-1783674374969.png

Mustameer_Khan_1-1783674393546.png

 

Quick Reference: The Business Rules

  • A team name must be unique within its program, regardless of capitalization.
  • Every user in the By User view needs at least one role assigned.
  • No duplicate users are allowed within the same team.
  • Inviting someone by email who is not yet in the system is supported; they receive an invitation.
  • Editing and deleting are only possible from the program side. From a project, program teams are always read-only.
  • If a project's program assignment changes, its list of visible program teams updates automatically.

 

Program Teams in Task Management

Program teams are not just something you set up and manage on the program side. They also become directly usable on individual tasks, right alongside project teams. This is where end users experience the real day-to-day value: staffing a task no longer means picking only from the project's own team.

Selecting a Team on a Task

Open any task and go to the Additional Information tab. You will find a Team field, and when you open its dropdown, the list is grouped into two sections: Project Teams and Program Teams. Both are shown together in the same dropdown, so you can pick whichever one actually has the person you need, without leaving the task.

Once you pick a team, for example a program team, the Assigned Role field right below it updates to match. If you chose a program team, the role list switches to show Program Roles (roles such as ABAP Expert, Change Manager, or Communications Lead defined at the program level) instead of the project's own role list. This keeps the role you assign consistent with the team you picked.

After the team and role are set, the Responsible field becomes a dropdown of the actual people who belong to that team. If your team is a program team, you will see the members of that program team, ready to select directly. The same logic applies to the Reviewer field: it also draws its list of people from whichever team, project or program, is currently selected on the task.

In short, once you assign a program team to a task, both Responsible and Reviewer can be filled with people from that program team, exactly the same way they would be filled from a project team.

Mustameer_Khan_0-1783673933607.png

 

Filtering Tasks by Team

The same project-and-program combination is available when you filter your task list, not just on individual tasks. Open Adapt Filters on the Tasks list, and you will find a Team filter field. Clicking it shows the same grouped list: Project Teams first, then Program Teams, with a (Not Assigned) option at the top for tasks that have no team set yet.

This means you can filter your entire task list by a program team just as easily as by a project team, for example to see every task currently assigned to a specific program-level team across a project. It is a quick way to get a cross-project view of workload for a program team, without having to check each project one by one.

 

Mustameer_Khan_5-1783674102028.png

 

Available Directly in List View and in the Spreadsheet

You do not need to open each task individually to make use of this. The same Team dropdown, with Project Teams and Program Teams grouped exactly as described above, is available inline in the Items list view. Click the Team cell on any row and the dropdown opens right there, with a search box at the top and a (Not Assigned) option, so you can assign a program team to a task without leaving the list.

The same capability now also extends to spreadsheet-style editing. When you export tasks to the spreadsheet view, both the Team and the Assigned Role columns support program teams and program roles, the same way they support project teams and project roles. This means you can bulk-assign program teams and program roles across many tasks at once in the spreadsheet, then upload the changes back, instead of updating tasks one by one.

 

Mustameer_Khan_2-1783674019277.png

Mustameer_Khan_3-1783674037505.png

 

Mass Edit Support

The same grouped Team dropdown, Project Teams and Program Teams together, is also available when you use Mass Edit to update several tasks at once. Select multiple tasks, open Mass Edit, and the Team field lets you choose a program team (or keep each task's existing value using the < Keep Values > option) exactly the same way as on a single task. This means a whole batch of tasks can be reassigned to a program team in one action, instead of updating them one at a time.

Mustameer_Khan_4-1783674070172.png

 

What This Means for You Day to Day

This is the payoff from everything above, in practice. Say someone on your program is only staffed at the program level and never sat on any single project team. Before, that person would have been invisible on tasks. Now you can make them Responsible or Reviewer just like anyone else, and their workload still shows up when you filter or track progress. You are not juggling two different systems for two kinds of people, project staff and program staff. It is one list, one way of assigning work, no matter where someone actually sits.

 

Summary : Get Started

Program teams let you set up who works on what once, at the program level, and have it show up the same way across every project underneath. You do not need to master everything on day one. Start small: open the Teams section, create your first team, and assign people by role. Once that feels natural, try the By User view, get comfortable with deactivating roles, and when you have a project team you like, copy it up to the whole program instead of rebuilding it.

The payoff is real: less retyping the same names into every project, fewer moments where one project has the right people and another does not, and one place you can trust for who is actually on which team.

1 Comment
Labels in this area