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.
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!
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.
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.
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.
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.
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.
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.
select workflowname from JIRAWORKFLOWS
where DESCRIPTOR LIKE '%com.innovalog.jmwe%';
Boards with too many issues on them can cause performance problems for your instance. Plus they're crazy frustrating to try and use.
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.
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.
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?).
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.
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. :)
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:
Atlassian recently announced a project archiving feature will be coming to Data Center in the near future. Woohoo!
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 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.
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.
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!
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?)
Daniel Eads {unmonitored account}
Support Engineer
ITHAKA|JSTOR
Ann Arbor MI
69 accepted answers
58 comments