Hey Everyone,
I finally found my solution to a "free" version of automating the WSJF score on Epics in Jira without having to procure an add-on. My company is on Jira Cloud so we have access to Automation rules capability for projects.
Setup - We created 5 new fields
My rule steps:
Key Notes:
Hi Colton - We are currently looking to implement WSJF scoring and came across your solution. Thank you for providing - this is very helpful especially since this is my first time using Jira Automation. A question I'm hoping you might be able to provide some insight for:
The way we want to implement our Size field for a certain level of precise vs more average scoring involves being able to select a specific Fibonacci number from a drop-down selection with values (1,2,3,5,8,13,21,34) or being able to select alpha string of "Low", "Med", "Big" which would would use the average of Fibonacci numbers we decided that each would represent. It works like this: a selection of "Low" would use 1.5 (the average of 1 and 2), "Med" would use 5.5 (the average of 3, 5, 8) and "Big" would use 27.7 (the average of 13, 21, 34). Our size field has existed for years. Using it as part of a WSJF calculation is something new. Another advantage to keeping the the existing alpha selections is that tickets already set to one of these alpha values that have been resolved won't have these values cleared out. We want to maintain those selections for historical reasons.
After all that, the questions is simply this:
What is the (presumably if/then/else) syntax that would work for not just choosing a specific Fibonacci value but also use a value associated with choosing either "Low" or "Med" or "Big"? I've done some searches on using automation for string conditions but can't seem to find an example for how to make this work. Any ideas would be appreciated!
Hey Doug,
This might not be the cleanest solution but you could run a couple if loops within Validation of the WSJF score being present.
If Size (WSJF) is equal to Small
{{#=}}{{CalculatedBusinessValue}}/{{Size (WSJF)|1.50}}{{/}}
Then Calculate WSJF
If Size (WSJF) is equal to Med
{{#=}}{{CalculatedBusinessValue}}/{{Size (WSJF)|5.50}}{{/}}
Then Calculate WSJF
If Size (WSJF) is equal to Large
{{#=}}{{CalculatedBusinessValue}}/{{Size (WSJF)|27.7}}{{/}}
Then Calculate WSJF
Please know that you may struggle with right sizing the appropriate score to get the right Features (Jira Epics) prioritized for each PI using your model as there may be many WSJF scores very similar to each other. I'm betting your organization has already accepted this and experiences it though.
Good luck hope the above works!
Wow, thanks for such a quick and helpful reply, Colton! I look forward to trying the suggested string compare syntax as I implement the new fields and automation over the next couple of days! Your advice is very well taken that trying to order / prioritize the backlog may turn out to be more difficult since WSJF scores in different work items can now be closer to each other. We would definitely avoid this if we just stay with the actual Fibonacci numbers and not include these average selections. The thought was that this would allows us to use the wide average numbers for Low, Med, High when we are doing a rough estimate and more specific (narrow) Fibonacci numbers when we are surer of our estimate. Then there's that secondary advantage of maintaining all the tickets that are already using Low, Med, Big since if I don't include them in this pre-existing Size field, I think those values will all get cleared out. Am I mistaken?
Thank you for not just the suggested syntax but these thoughts as well. I don't think it out of the realm of possibility that after we try this for some time, we may make the decision to just limit selections to the actual Fibonacci numbers (and not averages as well).
Hello again Colton!
I added the required new fields to my Jira project and created the automation rule based on your suggestion to calculate WSJF score. Unfortunately, the score is always showing as "0". Also, while the audit log indicates success, the test ticket I'm using shows "No automation available" under the Automation section. I'm hoping you might be able to provide some guidance. This is my first adventure using Jira Automation and I fully expect I'm doing something particularly stupid but I'm a bit too much of a newbie to realize what that is!
My rule is currently quite simple as well. Instead of calculating a business value by adding together the 3 fields in your example, we decided at this early stage to just input what we call an ECV (Estimated Customer Value) score directly via a drop-down selection of Fibonacci numbers. The other input field is our our preexisting ETE (Estimated Total Effort) field which is our version of the "Size" field in your example. I've added the Fibonacci numbers to this field which already contained "Small", Medium", and "Big". To keep things simple, for my initial rule creation attempt, I did not yet build in the suggested logic to handle representing values for these string selections. I am only testing right now by selecting numbers.
When I select values for either the ECV or ETE fields in my test ticket, I get a popup that seems encouraging "Issue updates available! This issue was just updated by an automation rule. Please reload to see the latest changes." but as stated, under the Automation section of the ticket "No automation available" is showing. The audit log for my rule is showing that 1) The rule is enabled, 2)The IF Block Passed and updated my issue. 3) The WSJF Score field was updated with the variable {{CalculatedWSJF}}. However, the WSJF score shown in the updated ticket is always '0".
What follows is a single screenshot of my rule which I edited so you can see the all the details as once - Create Variable and Edit Issue in the If Block and the Edit Issue in the Else block.
I would be grateful for any insights you may have about what's not right.
Doug
Hey Doug,
For some reason i cannot see your post here but this commentary may help others so i'll post it. When i provide the following
"Smart value = {{#=}}{{CalculatedBusinessValue}}/{{Size|0}}{{/}}"
The Size|0 value is stating.. use the field "size" value and if it empty than provide "0". Because you use a string instead of a number value you are always providing a "0" as the bottom number which will result in a "0" calculated score or an divisibility error.
My suggestion above with running some extra "IF" Loops for each of your values helps set Value for your string according to the assumed Fibnocchi score. Multiple nested loops are never a great way to code but we are not coders so this could do.
If ETE is equal to Small
{{#=}}{{ECV}}/{{ETE|1.50}}{{/}}
Then Calculate WSJF
ELSE
If ETE is equal to Medium
{{#=}}{{ECV}}/{{ETE|5.50}}{{/}}
Then Calculate WSJF
ELSE
If ETE is equal to Large
{{#=}}{{ECV}}/{{ETE|27.7}}{{/}}
Then Calculate WSJF
The ideal solution would be to have it create a temporary variable or create a new field that sets a number value based off of your string.
Hey Colton!
I'm happy you got the post notification with the details of what wasn't working for me. I posted it successfully on Friday and over the weekend found that the post was removed and have no idea why. I tried to post again on Sunday and I'm sure you got a second notification and again, when I refreshed this thread, the post was gone. I can't figure out why it's being removed. I'm not breaking any posting rules I know of in the text and likewise, I can't figure what would be wrong with the one screenshot I provided with the rule details. Very strange indeed. I hope this reply gets posted!
You are right about needing the string handling but I intentionally did not provide it for my initial attempts and in testing ONLY selected Fibonacci values in the drop-down for ETE yet I still always ended up with a WSJIF score of 0. I had a colleague take a look and he found that I was missing the curly brackets to close the "ECV" in my calculation:
Missing curly bracket after ECV:
{{#=}}{{ECV/{{ETE|0}}{{/}}
Corrected:
{{#=}}{{ECV}}/{{ETE|0}}{{/}}
My tests are now successful! (avoiding any string selections until I build in your suggested logic).
What throws me is why didn't the audit log flag ECV as being invalid in this calculation? I wouldn't have expected it to be valid since I never properly closed out the field name in the calculation!
Thank you very much again for helping. I will try the string logic next!
With much appreciation!!
Doug
Hello again Colton!
I added the required new fields to my Jira project and created the automation rule based on your suggestion to calculate WSJF score. Unfortunately, the score is always showing as "0". Also, while the audit log indicates success, the test ticket I'm using shows "No automation available" under the Automation section. I'm hoping you might be able to provide some guidance. This is my first adventure using Jira Automation and I fully expect I'm doing something particularly stupid but I'm a bit too much of a newbie to realize what that is!
My rule is currently quite simple as well. Instead of calculating a business value by adding together the 3 fields in your example, we decided at this early stage to just input what we call an ECV (Estimated Customer Value) score directly via a drop-down selection of Fibonacci numbers. The other input field is our our preexisting ETE (Estimated Total Effort) field which is our version of the "Size" field in your example. I've added the Fibonacci numbers to this field which already contained "Small", Medium", and "Big". To keep things simple, for my initial rule creation attempt, I did not yet build in the suggested logic to handle representing values for these string selections. I am only testing right now by selecting numbers.
When I select values for either the ECV or ETE fields in my test ticket, I get a popup that seems encouraging "Issue updates available! This issue was just updated by an automation rule. Please reload to see the latest changes." but as stated, under the Automation section of the ticket "No automation available" is showing. The audit log for my rule is showing that 1) The rule is enabled, 2)The IF Block Passed and updated my issue. 3) The WSJF Score field was updated with the variable {{CalculatedWSJF}}. However, the WSJF score shown in the updated ticket is always '0".
What follows is a single screenshot of my rule which I edited so you can see the all the details as once - Create Variable and Edit Issue in the If Block and the Edit Issue in the Else block.
I would be grateful for any insights you may have about what's not right.
Doug
Looks like my missing post from Friday and second attempt from Sunday just showed up above. Sorry their late arrival (and duplicates) made this thread more of a mess then it should have been.
An alternative way to do it is with JMCF add-on you can create a custom field (calculated number) and then use this script:
def bv = issue.get("User-Business Value") as Integer
def tc = issue.get("Time Criticality") as Integer
def ro = issue.get("Risk reduction - Opportunity") as Integer
def sp = issue.get("Story Points") as Integer
if ( !(bv == null) ) {
if ( !(tc == null ) ) {
if ( !(ro == null ) ) {
if ( !(sp == null ) ) {
return (bv+tc+ro)/sp
}
}
}
}
Is JMCF a free add-on? Either way can you link it to your comment or reply with a link. Would love to make this an official "ANSWER" channel for WSJF scoring possibilities. Appreciate your contribution @Gianni Pucciani
Not free, but a very useful and common one ;)
Recommended Learning For You
Level up your skills with Atlassian learning
Learning Path
Jira Administrator
Configure Jira Software, Jira Core, or Jira Service Management, including global settings, permissions, and schemes.
Managing Jira Projects Cloud
Learn to create and configure company-managed projects in Jira Software and partner effectively with Jira Admins.
Learning Path
Become an effective Jira Software Project Admin
This learning path is designed for team leaders who configure Jira Software projects to match a team's processes.