Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

We want to use a defined scale for our story points in JIRA. How can I at least change the description therefore?

We use story points to estimate stories. How can I change the configuration of story points? At least the description or translation (it currently is set to "... Grö?e der ..." which should at least be "... Größe der ..." and - better yet - adding information about our scale.

Is there a possibility to restrict entered numbers to the ones we'd like to allow (1..10 / Fiabonacchi / Mountain Goat / ... - there are some possibilities that all have a set of numbers).

Thanks in advance,

 Maud

 

4 answers

1 accepted

0 votes
Answer accepted

Maud,

You can change the description of story points just like any other custom field.

https://confluence.atlassian.com/display/JIRA/Configuring+a+Custom+Field#ConfiguringaCustomField-editEditingacustomfield

Unfortunately you can't change the field type of custom field after its been created, so story points are an opened ended number field. I also wish I could change this to powers of 2 (1, 2, 4, 8), something that the much less feature rich Pivotal Tracker actually supports.

Well, I experienced difficulties in changig that field that is: changing could be done but afterwards the original description was again shown. I will dig into this again in the next days - had to postpone it to some day in May.

Like Cameron LaBorde-Zank likes this

Our team defined a custom listener using Scriptrunner to update the Points value to the next highest number in the Fibonacci sequence, if the entered value was not a Fibonacci number.  This solution was fairly simple and worked reasonably well.  

This functionality is accessible through Administration > Add-ons > Scriptrunner > Script Listeners or Listeners, once Scriptrunner is installed.

Here's the basic logic:

// Fibonacci Points Listener

import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField

def fibList = [1,1] // seed the Fibonacci sequence
def fibCheck = {}
fibCheck = {
  float val -> 
  if (val <= fibList[-1]) { // if points less than or equal to last number in sequence
    return fibList[-1] // round up to next Fibonacci number
  } else {
    fibList += (fibList[-1] + fibList[-2]) // append next Fibonacci number to sequence
    return fibCheck(val) // repeat check
}
}

def pointId = "customfield_10006" // Jira "custom" field ID for points

// object required to update issues
IssueService issueService = ComponentAccessor.getComponnent(IssueService)
IssueInputParameters issueInputParameters = issueService.newIssueInputParameters()

def event = event as IssueEvent
Issue issue = event.getIssue()
def user = ComponentAccessor.getJiraAuthenticationContext().loggedInUser

// get custom fields for issue
List<CustomField> allCustomFields = ComponentAccessor.getCustomFieldManager().getCustomFieldObjects(issue);
def allCustomIds = allCustomFields.collect {it.id}

if (!(pointId in allCustomIds)) { return } // no Points field

// object required to manage custom fields
def customFieldManager = ComponentAccessor.getCustomFieldManager()
CustomField points = customFieldManager.getCustomFieldObject(pointId)
def rawPointVal = issue.getCustomFieldValue(points)

if (rawPointVal == null) { return } // no Points value

float pointVal = rawPointVal as float // set raw points as float

if (pointVal == 0) { return } // accept 0 points

def fibPointVal = fibCheck(pointVal) // round to next Fibonacci number

if (fibPointVal != pointVal) {  // reset points if updated
  issueInputParameters.addCustomFieldValue(points.id, fibPointVal as String)
  def update = issueService.validateUpdate(user, issue.id, issueInputParameters)
}

return

Thanks to Sam Orloff for the code sample. 

One user needed to replace the last if statement to get the points to update.  She replaced the last if statement with:

if (fibPointVal != pointVal) {

def changeHolder = new DefaultIssueChangeHolder()

points.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(points), fibPointVal as double, changeHolder)

}

Hi Maud,

That field probably cannot be modified, so my answer may not help much, but here it goes.

I always recommend the modified Fibonacci approach (1,2,3,5,8,13,20,40,100).  Then, you just need to remind your teams of the valid numbers.  If you notice a '4', either have a conversation or make it a 5.

Ideally, each team will have their own definition of 'what a 5 is' so the best way to do any cross-project analysis on performance is converting it to a ratio.  I don't personally have to do that.  

If this is important to you, google Rapid Scrum and view their short presentations.  It is good stuff, just doesn't play well with JIRA at this point.

Hello, yes I also prefer Fibonaccis :-) Regards, Maud

Hi Folks,

I found the solution in misconfigured field schemes. It works now. Thanks for your help.

 

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Jira Software

How to create Jira issus from Excel file?

When to use CSV importer When managing your processes in Jira, there are many occasions where you need to create a lot of tasks. Creating them one by one will cost you a lot of time and effort and i...

5,502 views 22 39
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you