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

Automation rule to calculate ICE and prioritize tickets

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:

Automation rule to calculate ICE and Prioritize tickets with re-fetch

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.

Updated on June 6, 2024

Still need help?

The Atlassian Community is here for you.