Spring Cleaning for Jira

Grab your favorite bucket, a feather duster, polish, and a vacuum cleaner! It's time for some spring cleaning, Jira style.

Do not inhale contents of article. Use as directed. Spray contents in upright position for best results. Material safety data sheet available at end of article.

lego-568039_1280

We'll look at several different areas to concentrate on to get your Jira instance tidied up and running like a gazelle in a meadow. Each area will provide recommendations on the "free" way to solve an issue (which might cost more of your time at the trade of not needing budget approval) and ways to solve the area with plugins. I'll sort the plugins by cost (least expensive at the top) for your convenience, but bear in mind that some plugins appear in multiple categories! If you're looking to make a plugin purchase, consider which areas you want to use plugins for to see if you can use a single plugin for multiple purposes.

Not all these fixes are applicable to Cloud instances. Anything that requires SQL is out of reach for Cloud users (pardon the pun). Don't worry, Cloud-compatible plugins will be marked.

At the end of the article is a handy printable checklist, if paper is your jam. Let's get started!

Custom fields

Did you know that having too many of custom fields is one of the largest performance killers for most Jira instances? Best practices suggest re-using custom fields across projects where you can. If one group wants "Due Date" in their project, don't create another date field called "Date Due" or "Due" or "Must be completed by" or anything like that! If a project requires you to create a custom field, take a look at all the custom fields you have already created and see if any could be used for your need. If you tell your marketing team that they can help keep Jira tidy and performant by using an existing field called "Audience" instead of a new one "Target reader" for their blog post tracking, they'll likely agree! You might even print out pictures of Smokey the Bear saying "Only you can prevent duplicate custom fields".

An easy win is removing custom fields that aren't used anywhere.

THE FREE WAY

It's gonna take some SQL to find out which fields are unused, and then manually removing the fields from the custom field list. Check out this Community question, or even this one.

THE PLUGIN WAY

Inactive Users

What's that? John Doe left the company two years ago? Well, it's past time to disable his Jira account! This keeps your instance safe (John Doe may have left on happy terms, but you never know...), keeps people from accidentally assigning tickets to an account where nobody is watching, and of course returns an all-important user license to you.

THE FREE WAY

Server: Use the SQL queries provided in Atlassian documentation.

Cloud: Look at the Last Active column in User Management. You can't sort by this column, but it is pretty distinct when people have gone inactive. Ctrl+F will highlight the occurrences for you, or you can just scroll through the page.

image.png

THE PLUGIN WAY

Audit your Plugin Usage

Alright, this is a tougher one to handle. Because plugins vary so widely in the way they work, it's not really possible to determine how they're getting used in a one-size-fits-all approach. A future Community article will investigate usage on non-workflow plugins (Nic provides some general guidelines here), but for now we can just take a look at plugins that provide workflow functionality. Uninstalling unused plugins will help keep your Jira from using unnecessary RAM, keep your marketplace costs down, and in some cases provide system stability (if you have users who might be prone to doing bad things with plugins that can cause performance issues).

Sorry Cloud users - I don't have any recommendations for you here.

THE FREE WAY

Again - this is just for workflow plugins, or workflow features provided by plugins. Something like ScriptRunner does a whole lot more than just workflow features, so don't uninstall ScriptRunner based on results from this.

  1. Find the plugin's key - the easiest way to do this is go to its marketplace listing and look in the URL. As an example, here's Jira Misc Workflow Extensions:
    image.png
  2. Use the plugin's key to search your database for any workflows that make use of its features. Depending on your DBMS, you might need to swap out the wildcard characters. I use Oracle:
    select workflowname from JIRAWORKFLOWS

    where DESCRIPTOR LIKE '%com.innovalog.jmwe%';
  3. Rinse and repeat for any workflow function plugins you're interested in
THE PLUGIN WAY

Slow loading agile boards

Boards with too many issues on them can cause performance problems for your instance. Plus they're crazy frustrating to try and use.

THE FREE WAY

There's a standalone command-line tool (note: completely unsupported) you can download and run. It's recommended you do it against a non-production environment or during off-hours to limit any potential performance issues.

THE PLUGIN WAY

Resolutions

Unless you're using a plugin, resolutions in Jira are shared globally. There are ways to make certain resolutions only visible in certain situations. However, consolidating resolutions if you can will reduce the clutter.

THE FREE WAY
  1. (optional) Run JQL queries like "Resolution = 'whatever'" to find how many issues (if any) use a particular resolution
  2. From the Resolutions page in Admin, click the Delete button on the resolution you wish to get rid of. Jira will tell you how many issues currently have that resolution and also ask you to pick a different resolution from the list for those issues.
    image.png
THE PAID WAY

There aren't any plugins that handle this one. For a "reasonable" fee, you can retain me to do this for you if you really feel that money should be spent here. I accept AtlasCoin. Which might be a funnier joke if someone hadn't actually created that as a real virtual currency (oxymoron?).

Priorities

You're less likely to have a bunch of these like you might with Resolutions, but up until Jira 7.6 they were global as well. Now that they have schemes, it's easy to scope them for the projects that should be using them.

THE FREE WAY

I don't think you'll find yourself in a situation where you can really merge/delete priorities. This is just a friendly reminder to upgrade to 7.6 or above and take advantage of the Priority schemes. :)

Archive Projects

If your Jira instance is 14 years old like ours, you're bound to have a bunch of projects that are "complete"/"retired"/"dead". These cause clutter for users who might see a bunch of irrelevant projects, cause their JQL queries to return results they might not expect, and make your reindexing happen much slower than it needs to. So far, administrators have used a few options to try and deal with these projects:

  1. Remove browse permissions for the projects - removes them from user view, but still takes an indexing hit
  2. Delete the projects (might not be an option depending on your company's policy) - usually just doesn't feel good to delete work like this
  3. Export the project to XML and keep it on a file share somewhere - very difficult to re-import at a future date if it's needed for some reason

Atlassian recently announced a project archiving feature will be coming to Data Center in the near future. Woohoo!

THE FREE WAY

If you're reading this past Spring 2018, see if the vanilla Project Archiving feature is available yet. If it is, do that!

Otherwise, select one of the options from above. Sorry - there's not a lot of great free options right now.

THE PLUGIN WAY
  • Project Archiver for Jira
  • Cleaner for Jira (mentioning this because it will inform you of projects with a small amount of issues that might be candidates for deletion) - also for Cloud
  • Configuration Manager for Jira (mentioning this because a use-case for this plugin is copying projects including their issues from a production install to a minimally-user-licensed "archive" install)

Integrity Checker

The integrity checker is like the amazing catch-all of issues. It can take a long time to run (so you may need to adjust your proxy timeouts) but will make you feel like you've blown a lot of dust out of your instance.

THE FREE WAY

Go to the Integrity Checker in System administration. Run it. Fix any issues that need fixing. Read documentation about the integrity checker if you so desire.

THE PLUGIN WAY
  • Configuration Manager for Jira comes bundled with a souped-up Integrity Checker. It runs a bit faster than the built-in one, doesn't require proxy timeout changes, and finds things that the built-in checker doesn't tell you to fix.
    image.png

Clean up your bookshelf

You've done great (virtual) work so far! Now it's time to stop looking at your monitor for a moment and take a look at your desk. Got any books? Straighten them up!

Now back to your monitor. Have you seen other Community member's desks? Nic Brough definitely wins the "most books at the desk" award. Perhaps that's where he channels his incredible question-answering skills from?

You can channel some of Nic's power (I do not guarantee this actually, Nic is the Elon Musk of Community) by doing what Nic does and owning a Jira book! You've earned it after the work you've done, and reading one of the several excellent books authored by Community Champions and Expert Partners is a great way to improve your skills as an administrator. Take a look at what's available here!

A checklist for paper lovers

As promised, here's a checklist of these actions for you to print out. I've provided space at the end of each line for you to write down the Jira issues you're using to track these cleanup tasks (you are using Jira to manage cleaning up Jira, right?)

 Spring Cleaning for Jira.png

 

48 comments

Steven Behnke Community Champion Apr 04, 2018

You're my best friend now.

Great summary and tips, @Daniel Eads!

Thomas Schlegel Community Champion Apr 05, 2018

This is great , @Daniel Eads, lots of useful tips and information in an entertaining article! I love it, especially Smokey the Bear :-) 

Jonny Adams Community Champion Apr 05, 2018

Thanks for the very helpful tips @Daniel Eads! There were quite a few remnants lingering in my Jira instance.

Micky CARITTE Community Champion Apr 05, 2018

Great article!

Might sound familiar for some of us but there's so many tips that we all can benefit from at least a vast majority of it!

Thanks for your hard work on putting this together!

Susan Hauth Community Champion Apr 05, 2018

Fantastic article!!

"get your Jira instance tidied up and running like a gazelle in a meadow" = ⭐️

So much useful information - those custom field plugins are clutch & my spring cleaning checklist is printed! Wonderful!!

You can't spell "Spring Cleaning for Jira" without FUN!!

Oh, okay you can... But not anymore with that article! Really great collection, thanks Daniel.

Very informative and also entertaining article. Greetings from Germany @Daniel Eads - hope to see you again next summit!

Thanks so much for this! It's a great checklist of how to initiate maintenance within our instances! I have to start using the integrity checker more often! #Awesomeness 

I love this!  We have 3000, give or take, JIRA projects and housekeeping could be a full time job.  

For old projects we export all issues and then delete it.  Our timeline is 6 months no updates and good bye.  With the number of users we support it's a must.  We've only have a few cases were folks asked 'where's my project?' We provided them with the export of issues and showed them our policy.

Really good article Daniel - it's a topic that isn't discussed enough - especially on multi-million issue systems.

I noticed that especially scoping down Custom Fields to their correct mappings can increase the speed of any operation that accesses or changes issues (e.g. Search, View, Create), as it reduces the amount of queries/data retrieved and transmitted.
This one also has a multiplier effect on the rest of the system - in our case. it reduced response times and indexing substantially.

These are the exact problems that I was faced with when acting as the administrator of a large Jira system and the reason I wrote 'Cleaner for Jira' in the first place - but we're still looking for other areas we can improve.

Meg Holbrook Community Champion Apr 09, 2018

Fantastic article @Daniel Eads! The little voice in my heart that loves lists was so happy that you included a printable checklist. 

@Daniel Eads .. This was the kind of article I was looking for during 2016 and thanks for this article which helps JIRA to keep safe and fast. Awesome !!!!

Danny Zuccaro Community Champion Apr 10, 2018

Fantastic article @Daniel Eads! Am going to make sure this is mandatory reading in my office. 

Best cleanup activity doc every read! Thanks @Daniel Eads

...
........
..............

I think somewhere around 4K custom fields? When is too many?

Meg Holbrook Community Champion Apr 16, 2018

@Heth Siemer... that many... 

Meg Holbrook Community Champion Apr 16, 2018

200

Correction: I had the numbers backwards. We have 30K users and 4K fields.

Meg Holbrook Community Champion Apr 16, 2018

I feel like that's still a lot, but I don't have a good basis for reference.

4k sounds at least much more reasonable than 30k hahaha. Do you find that there's a lot of redundancy in those fields? I'm such a stickler when it comes to new fields. Users need a strong business case to sway me. 

The Megicorn will poke you with her horn if you don't have a good use case. 🦄

Comment

Log in or Sign up to comment
Community showcase
Published Nov 27, 2018 in Portfolio for Jira

Introducing a new planning experience in Portfolio for Jira (Server/DC)

In the past, Portfolio for Jira required a high degree of detail–foresight that was unrealistic for many businesses to   have–in   order to produce a reliable long-term roadmap. We're tur...

2,495 views 15 20
Read article

Atlassian User Groups

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

Find a group

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

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you