User Story Overlap Awareness
Copado’s User Story Overlap Awareness feature allows you to periodically check whether the metadata or Git metadata you add to your user stories has any potential conflicts. The metadata tracked by the Overlap Awareness feature is included in the User Story Metadata object. For each metadata component you add to a user story a User Story Metadata record is created.
To enable this feature, all you need to do is flag he Index Metadata checkbox on the Project record:
Once you enable this checkbox, Copado will start indexing metadata for all the user stories linked to this project. User stories that do not have a project or whose project doesn’t have this checkbox enabled won’t be evaluated.
If you want a particular user story to be excluded from this process, you can enable the Stop Indexing Metadata checkbox on the user story:
How Does It Work?
A scheduled batch process evaluates all the user stories that are associated with an indexed project. When a potential conflict is found, the status of the User Story Metadata record for each potential conflict against each user story is updated and marked as Potential Conflict.
You will find the indexed metadata in the User Story Metadata related list on the user story layout:
You can click on any user story metadata in the related list to see a list of user stories that share the same metadata component:
You can also create a pull request between the feature branches of user stories with potential conflicts in order to review if changes are mergeable or have conflicts. If there are conflicts, you can start a discussion with the developer/admin/business user that has ownership of the other user story to discuss and agree on how the conflict should be resolved.
The status of each user story metadata component can be updated by clicking on the drop-down menu icon next to each record:
You can also update the status of all the user story metadata components at once by selecting a status from the Mark All As drop-down list:
The available statuses are Potential Conflict, Under Review, Conflict Resolved, On Hold and Back Promoted. However you can define custom values and add them to the Status field of the User Story Metadata object.
Metadata Index Update
The metadata index for each user story is updated automatically whenever a metadata component is added or committed on the user story.
You can schedule periodic updates of your metadata index by scheduling an Apex class called 'IndexMetadataJob'. To schedule it go to Setup > Custom Code > Apex Classes and then click on Schedule Apex. Choose a name (e.g. metadata index), select the class IndexMetadataJob and set the period as needed:
To execute the index metadata job manually follow these steps:
- Open the Developer Console -> Debug -> Open Execute Anonymous Window.
- Copy and paste the following line of code:
Id batchJobId = database.executebatch(new copado.IndexMetadataJob(), 50);
- Click on Execute.
The execution of the job usually takes between 1 to 5 minutes depending on the amount of user stories you have. After this time has passed, you can rerun the report to update the values, and you will find the updated User Story Metadata related list within every user story.
You can also track the execution of the job by going to Setup -> Environment-> Jobs -> Apex Jobs.
You can create a report based on the User Story and User Story Metadata objects.
Below you can see an example of a report that shows the user stories where the same metadata components are included:
You can add custom filters to the report and customize it depending on your needs. For instance, you can exclude user stories with status Completed.