Automation For Jira - How to create a rule that calculate ICE score and prioritize tickets based on it
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Development Teams might prioritise new features in their backlog using the ICE technique.
This article describes how to configure an Automation Rule using the Create Variable action available in Automation for Jira 9.0.1, which will perform the following actions:
Calculate the ICE score based on the Impact, Confidence and Ease values, and using the equation below:
ICE = Impact x Confidence x Ease
Prioritize the Jira issue based on the ICE score
Solution
Preliminary steps
Go to ⚙ > Issues > Custom fields, and create 4 number fields with the following names:
Impact
Confidence
Ease
ICE
Make sure that:
the context configuration of these fields include the project(s) where you are planning to calculate the ICE score
these fields are added to all the screens (Create/View/Edit Issue screens) associated with these project(s)
Rule suggestion
The rule will need to be configured as follows:
Add the Field value changed trigger with the following settings
Fields to monitor:
Impact
Confidence
Ease
For: All issue operations
Add the Create variable action, using the Smart Value below:
1
{{#=}}{{issue.Impact}} * {{issue.Confidence}} * {{issue.Ease}}{{/}}
Add an Edit Issue action with the parameters below:
Choose field to set: ICE
Value: {{ICE}}
Add an IF/ELSE block
In the IF block:
Add an Edit Issue action
Field to set: Property
Value: Highest
Add an Advanced compare condition with the parameters below:
First value: {{ICE}}
Condition: Greater than
Second value: 300
If the first IF/ELSE block:
Add an Edit Issue action
Field to set: Property
Value: High
Add an Advanced compare condition with the parameters below:
First value: {{ICE}}
Condition: Greater than
Second value: 200
If the next IF/ELSE block:
Add an Edit Issue action
Field to set: Property
Value: Medium
Add an Advanced compare condition with the parameters below:
First value: {{ICE}}
Condition: Greater than
Second value: 100
If the next ELSE block
Add an Edit Issue action
Field to set: Property
Value: Low
Screenshot of the rule
Alternative solution and drawback of this solution
An alternative solution to this use case which does not involve the usage of the Create Variable action is to:
Directly store the result of the formula Impact x Confidence x Ease = 360 in the ICE Custom Field
Add the Re-fetch Data action before the IF/ELSE block, to ensure that the automation rule fetches the updated value of the ICE Custom Field
Use the content of the ICE custom field via the smart value {{issue.ICE}} in the IF/ELSE blocks as illustrated in the screenshot below:
The drawback of using such a solution is the fact that the re-fetch data action can be an expensive action since the rule is reloading all the fields from the Jira issue from the Jira Database, which can take some time and make the rule less efficient. That's the reason why using the Create Variable action available from Automation For Jira 9.0.0 (and Jira 9.11.0) is the most efficient way to implement such a use case.
Was this helpful?