Sychronization to Jira Align of a Jira team field using the Select List (Cascading) option can set an incorrect team.
Summary
If there is a requirement to use a Jira custom team field of type Select List (Cascading) to manage Stories into Teams under Parents and a method is needed to be able to configure a Jira Story to not set a Jira Align Team until a Child Team is set in Jira, then a specific configuration may be needed.
If a Jira user creates a story and does not set the Child Team or sets the Child Team to a value that is not configured in Jira Align (JA) then there are situations where it is possible that the resulting JA story can be linked to an unwanted team. This article gives more detail about the behaviour and solutions to the requirement
The behavior provided below was confirmed by the Product and Development teams as expected.
Environment
Jira Align
Solution
To explain the behavior, details of the configuration in Jira and Jira Align are needed.
Jira Settings:
The Jira configuration is the same as that discussed in Syncing the Team Field Between Jira Software and Jira Align except for the custom field, should be the type “Select List (Cascade)” and this field must be added to the required to Create and Edit screens of the Story Issue Type in the Jira Instance, results should look like the screenshot bellow where CPPOrgTeam1 is the Parent Team and AleOrgTeams 1 to 4 are the Child teams (configured in the cascaded select List)
Jira Align Settings:
Under Settings / Administration > Jira Settings > Jira Setup > Team custom field > Configure or Settings / Administration > Jira Settings > Manage Custom Fields
- Locate the "Sync Jira Team Values with Jira Align Teams" section
Select the "Jira Project" to be mapped
Select "Custom Field Type" as "Dropdown"
For "Dropdown Custom Field ID", enter the ID of the custom field from Jira, using the format customfield_nnnnn (where nnnnn is the numeric ID of the Jira field. For how to get the ID itself please review : How to find any custom field's IDs | Jira | Atlassian Documentation
In the rows below (adding enough rows for your Jira teams), set:
Jira Team Value = Should match those configured as parents list of the Jira field.
Child Team Value = Should match those configured under the specific parent in the Jira Field
- Jira Align Team = Jira Align team that will be mapped
The behavior of team assignment is given by the logic listed below:
If the Jira Story has both Parent and Child teams set, then we match these choices to set the team where the Parent Team matches "Jira Team Value" and the Child Team matches "Child Team Value". The sprint of the story is set by the sprint mapping (in Jira Management > Jira Sprints ), setting Unassigned Backlog if no sprint is set in Jira.
If the Jira Story has no assigned sprint, has only the Parent Team set, with no Child team, then we take the first team (in top-to-bottom order) as configured in JA where the Parent Team matches "Jira Team Value".
- If the Jira Story has an assigned sprint has the Parent Team set, with no Child Team, then we use the originBoardID of the Jira Sprint to set the team based on the entry configured in Jira Management > Jira Boards, with the JA Sprint being set by the sprint mapping in Jira Management > Jira Sprints (with Unassigned Backlog being set if no sprint mapping exists)
- If the Jira Story has no assigned sprint, has the Parent Team set, and the Child Team is set to something that is not configured in JA, then no team or sprint will be set in the JA story
- If the Jira Story has an assigned sprint, has the Parent Team set, and the Child Team is set to something that is not configured in JA, then we use the originBoardID of the Jira Sprint to set the team based on the entry configured in Jira Management > Jira Boards, with the JA Sprint being set by the sprint mapping in Jira Management > Jira Sprints (with Unassigned Backlog being set if no sprint mapping exists)
Therefore, this results in scenarios such as the ones listed below
Story configuration in Jira | JA Team Mapping Settings / Administration > Jira Settings > Jira Setup > Team custom field > Configure | Team Assignment of Story in Jira Align | Sprint Assignment in Jira Align |
---|---|---|---|
Parent and Child Team values both set, for example :
No sprint assigned | Parent and Child team values are both mapped in JA | Story assigned to JA team mapped to Child Team 1 | Unassigned Backlog |
Parent and Child Team values both set, for example :
Sprint assigned | Parent and Child team values are both mapped in JA | Story assigned to JA team mapped to Child Team 1 | Sprint set as per mapping in Jira Management > Jira Sprints (if no mapping exists set to Unassigned backlog) |
Only Parent Team Set, Child Team left blank, for example:
No sprint assigned | Parent and Child team values are all mapped in JA | Story assigned to the JA team that matches the Parent Team and is first in the list as configured in the JA Team mappings, so if the mappings are:
then JA Child Team 1 will be set | Unassigned Backlog |
Only Parent Team Set, Child Team left blank, for example:
Sprint assigned | Parent and Child team values are all mapped in JA | Story assigned to the JA team based on the originBoardId of the Jira Sprint (using the entry in Jira Management > Jira Boards to map the team) so if the originBoardID of the Jira Sprint is matched to JA Child Team 2 then this team is set. | Sprint set as per mapping in Jira Management > Jira Sprints (if no mapping exists set to Unassigned backlog) |
Selecting a non-JA mapped child team value, for example:
No sprint assigned | Parent Team value is mapped, chosen Child Team value is not mapped (but other Child Team values are mapped) | No Team is assigned to the story in Jira Align. | Unassigned Backlog |
Selecting a non-JA mapped child team value, for example:
Sprint assigned | Parent Team value is mapped, chosen Child Team value is not mapped (but other Child Team values are mapped) | Story assigned to the JA team based on the originBoardId of the Jira Sprint (using the entry in Jira Management > Jira Boards to map the team) If the originBoardID of the Jira Sprint is matched to JA Child Team 2 then this team is set. | Sprint set as per mapping in Jira Management > Jira Sprints (if no mapping exists set to Unassigned backlog) |
In case of a configuration conflict, The JA custom field mapped team will overrule the board team mapping (Under Administration > Jira Management > Jira Boards)
As a solution to not setting a team on a Jira Align Story there are two options:
- Configure a 'holding' Child Team in Jira that is not mapped into Jira Align and make sure the Jira users do not assign the stories to Jira Sprints,
- Configure a 'holding' Child Team in Jira that is mapped into Jira Align using the option "Select One" for the Jira Align Team as per the bellow screenshot. Note: this is the recommended option as it avoids user error