Atlassian Team 2021 Q+A with Craeg Strong

Team2021_Email1_Hero-update (1) (1).png

Hello Community members! 

Craeg just gave a talk, How a well-tuned Jira can change everything for your team, at Team 2021. 

Jira is meant to help your team reach new heights, but a poorly tuned Jira can create daily struggles for your team. In this session, Craeg taught attendees how to learn tips and tricks for fine-tuning the Jira experience to streamline workflows for teams of any size. 

Now's your chance to ask Craeg any questions that came up during for you during his presentation! If you don't have a question, feel free to post your #1 takeaway in the comments below. Craeg will be around to answer your questions until Tuesday, May 4th ... so act quickly! 

13 comments

Comment

Log in or Sign up to comment
Christophe Noualhat April 28, 2021

Thanks for a great presentation. I would like to know how the Kanban board shown 4:30 is setup. 

- how do you get the entire background for an issue on the board to change color ? I onlly get the left border to have custom colors

- how do you get the linked issues (predecessors) to appear with their status on the card for the issues on the board ?

- How do you get a DoD (x/y) status to appear on the card ? 

What plugins are in place here to supercharge this board ?

thanks ! 

Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 28, 2021

Thanks for the great questions!   These are done with plugins:

1) The fully-colorized cards are courtesy of the Ascend Color Cards plugin: https://marketplace.atlassian.com/apps/1219454/color-cards-for-jira

 

2) To show linked issues we created a "Custom Script" Field using Adaptavist Script Runner

https://marketplace.atlassian.com/apps/6820/scriptrunner-for-jira 

 

3) To display the progress vs definition of done we are using Okapya Checklist

https://marketplace.atlassian.com/apps/1211562/checklist-for-jira 

 

If you used wanted to use sub-tasks rather than checklists, I believe that you could still show the same kind of DoD x/y status on the front using a "Custom Script" field.   

The Custom Scripts are written in the Groovy language.  The script would just get the list of child sub-tasks and then see how many of them have a non-blank resolution.   

So either way you go, checklists or sub-tasks, I think you can get the job done as long as you have Script Runner.  

 

The one caveat is that the Ascend Color Cards plugin does not currently work the same way for cloud.

They do have a cloud version but it creates a separate overlay rather than colorizing the actual board.

My understanding is that Atlassian has not exposed that API yet in the cloud version.  I expect that to be fixed before too long.      I will see if I can find the URL for the request for enhancement.

Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 28, 2021

I couldn't find the suggestion, so I made one.  Please vote for it <grin>    https://jira.atlassian.com/browse/JSWCLOUD-21499

Christophe Noualhat April 28, 2021

Thanks for your replies Craeg ! 


I found a request for bkgnd color here https://jira.atlassian.com/browse/JRASERVER-65638 wonder if it's the same you're requesting ? 

regarding point 2, can you share the script and its implementation ? We have script runner but I had no idea it could be used that way !

 

thanks again !!

Like Craeg Strong likes this
Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 28, 2021

Custom Script Field

Field Name: Blockers

Template: Text Field (multi-line)

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.link.IssueLinkManager

IssueLinkManager issueLinkManager = ComponentAccessor.getIssueLinkManager()

def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

def blockers = issueLinkManager.getLinkCollection(issue, user).getInwardIssues("Blocks")
def blockerDetails = []
if (!blockers) {
blockerDetails.add("No Blockers")
} else {
for (blocker in blockers) {
String sOn = ""
String sOff = ""
if (blocker.resolution != null) {
sOn = "<s>"
sOff = "</s>"
}
blockerDetails.add("${sOn}${blocker.key}${sOff} - ${blocker.status.name}")
}

return blockerDetails.join(", ")

 

Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 28, 2021

Agree  https://jira.atlassian.com/browse/JRASERVER-65638  is the same issue  as https://jira.atlassian.com/browse/JSWCLOUD-21499  but for Jira server vs Jira cloud.   They appear to be two different code bases :-(

Christophe Noualhat April 28, 2021

Thanks for the script.

Seems that the server and cloud versions of ScriptRunner may be different ? I do not see a multi-line text field available. I can only select from Text field (single line), Number, Date or Datetime

as described here : https://docs.adaptavist.com/sr4jc/latest/features/scripted-fields#id-.ScriptedFieldsvCurrent-returntypesReturnTypes

Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 28, 2021

single line should work, I think

Christophe Noualhat April 29, 2021

Doesnt seem to work on cloud, returns a bunch of errors unfortunately

- imports are not recognized (I removed the first 2 lines)

- seems its missing a '}' to close the for loop (added it after the blockerDetails.add statement)

- now I get "unable to resolve class IssueLinkManager" for the line right after the imports.

Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 29, 2021

I forwarded your message to our internal script runner expert.   not sure if he has worked on cloud or only server.  will let you know..

Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 29, 2021

Here is the reply:

"Yeah, scripted fields in cloud don't show like real fields.

They show in a tucked away part of the UI and I'm not sure if they're even query-able. They certainly can't be shown on a board like we have.

As a workaround you have to make a listener that updates a regular custom field.

I've done it, but it's ugly, especially when you're listening to link events"

Neil Root April 29, 2021

Thanks Craeg - Just finished watching your presentation and loved it! 
I'm hoping I'll be able to convince our enterprise organization to get these plug-ins too.

I was very intrigued by your concept of the "Librarian Dashboard".
While I'm familiar with writing JQL queries to identify issues meeting specific criteria, I'm not familiar with how you've configured emailing the guilty third party for "clean-up".  This doesn't sound like any out-of-box functionality I'm familiar with so can you share how you've gone about configuring this behaviour?

Craeg Strong
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
April 29, 2021

Thanks Neil for your kind words

You are correct automatically emailing a la Jenkins "blame-upstream-committers" is not something that can be done via built-ins alone.    For step one I was thinking of having (1) the dashboard available so that every team member could proactively see if they might have done something wrong, and (2) the project administrator can run it daily and send out an email to the perpetrators, <grin>.

As a step two, I was thinking of creating some sort of Jenkins plugin or Bitbucket app or GitHub action to do it.   I think it also might be possible using Script Runner all within Jira via a Script Runner Job.   The job would kickoff on a regular interval and execute each JQL to identify bad guys, and then execute some Groovy code to identify the "upstream committers" to send blame emails.

Like Neil Root likes this
TAGS
AUG Leaders

Atlassian Community Events