You can’t use Jira without searching for issues. You build up a database of issues stored in Jira and at some point you’ll want to find a group of issues or a particular issue. For that you’ll need to use the search capability that Jira provides.
This search capability comes in three flavours.
1. Predefined Filters 2. The "Basic" filter 3. The "Advanced filter (JQL)
For the predefined filters you’ll find that Jira has some links already defined that will provide you with a list of issues relating to some preset criteria. For example you can click on a link labelled ‘My Open Issues’ and you’ll see a list of issues assigned to you that are in an Open status.
Complementing this is also the ‘Basic’ filter capability that allows you to pick search and filter criteria based on drop down lists for various issues fields. You might want to select all issues assigned to a particular user. For this you would select the user from the ‘Assignee’ filter drop down.
For the ‘Advanced’ filter you can write JQL statements that define your filter criteria. JQL stands for Jira Query Language. JQL is an SQL like language where you can write statements like ‘project = AAS AND resolution = Unresolved’ to find all unresolved issues in a particular project.
In the next few sections we’ll take each of these different search approaches and look at them in more detail.
When you select your project and view the issues in that project:
By default Jira will list the Open Issues for the project you’ve selected
Jira has applied a predefined filter from the drop down list shown above. When you click on that ‘Switch Filter’ drop down list you can pick from a number of predefined filters. For example you could select ‘All Issues’ if you just wanted to display all issues related to the project you’re working on.
What is worth pointing out is that, at the bottom of this list, is the ‘Manage Filters’ option. We’ll come on to this in a bit. From the ‘Manage Filters’ option you can configure and modify saved filters that have been setup for re-use. More on this in a bit though.
Once you’ve selected a predefined filter from the list, what Jira is actually doing is applying some predefined filter criteria. You might be asking yourself ‘what exactly are the criteria’ behind this filter I’ve just selected? And can I tweak or change those criteria?
Over on the top right hand side of the page you’ll see the link ‘View all issues and filters’.
If you click on this link Jira will display the basic filter criteria that have been applied for the current search results.
From here you have the option to modify those criteria. For example you could change the project that you want to list the issues for…
Or clearly you could use the other drop downs to modify the filter based on things like Type, Status, Assignee, etc. If the filter field that you need to apply isn’t displayed then you can use the ‘More’ drop down to include additional search fields.
If you select ‘Summary’ you’ll see that Jira then adds a text box that allows you to search based on the Summary text used in the issues. No surprises there then.
All this gives you the capability to apply some pretty complex filters. For example you could …
Filtering on Project, Status, Summary and assigned to can show us the ‘DB’ related issues, that are in a To Do status where they haven’t yet been assigned to anyone.
This capability will take us quite a long way. If you want to go even further though you can things even further with Jira Query Language (JQL).
What is JQL? Well it’s an SQL like language that allows you to perform various searches on your Jira data. For some, who already have experience with SQL, this approach to searching your data can be quicker. As you start to need ever more complex queries JQL can be the only way to go.
If you want to get started with JQL the simplest thing to do is just convert your basic search queries into JQL. You can do this simply by clicking on the ‘Advanced’ hyper link.
Once you’ve done this Jira will convert your basic query into JQL for you. From the basic query above you’ll then see this:
And you’ll see that the previous query in JQL syntax is
project = ADS AND summary ~ DB AND status = “To Do” AND assignee in (EMPTY) ORDER BY priority DESC, updated DESC
Which might look a bit complicated at first but when you break it down it’s not that bad. We’re just say we want to find Jira issues:
Project = ADS (project equals project code ADS)
Summary ~ DB (Summary contains the word DB)
Status = “To Do” (status of the issue is ‘To Do’)
Assignee is (EMPTY) (the issue has not been assigned to anyone)
ORDER BY priority DESC, updated DESC (order by priority and when it was updated)
Needless to say that things can get a lot more complicated (or clever – depending on your point of view) than this. If you don’t see yourself needing JQL then don’t worry about it. Jira pretty much hides it from you anyway. Just be aware that it’s there, ready behind the screens, when you want to start being smarter with your searches.
Before we go any further let’s just change back to the ‘Basic’ filter. Obviously enough that’ll be the ‘Basic’ link you’re looking for:
At this point then, on the ‘Searching for Issues’ front we only have one point left to cover. We mentioned it near the start. That’s the predefined and saved filters that Jira stores for you.
If you haven’t already noticed, when you have the Search Criteria displayed (click the ‘View all issues and filters’ on the right hand side if it’s not displayed already) there’s a ‘Save As’ button displayed.
Using this you can save your current filter
And then use this filter whenever you need it. Saved filters appear on the left hand menu panel at the bottom.
One click on a favourite filters link and you’ve applied that filter in a blink of an eye.
If you need to update or modify these filters you can manage them, along with the predefined filters, with a quick click on the ‘Manage Filters’ link in the Issues drop down menu.
And from here all your filers (including favourites and popular filters) are displayed.
At which point you can drill down into specific filters to modify them, delete your filters and un-favorite (is that a real word?) them.
One of the biggest strengths of Jira is the search and filter capabilities. As your projects grow and the number of issues increases your ability to find the issues that you are interested in becomes ever more important. Understanding how to apply and work with filters becomes essential. At a minimum you’ll need to be able to find issues that are assigned to your and that are in a ‘To Do’ state. As you become more and more confident with Jira you’ll begin to see the power of JQL and how JQL can help you focus in on just what’s important to you.
And with that we’ve come full circle now that we’ve covered all 7 modules in our Introduction to Jira series of blog posts. We’ve gone from examining what Issues are in the first module and looking at how they are grouped into Projects. We’ve seen how we can further group issues with labels and priorities. Adding then the powerful search capability in Jira, we’ve learnt how to pull out lists of issues we want to focus on. Adding workflow and status features into the setup we’ve gained an understanding of how we can track progress on our issues. This was followed up with a look at how Versions and Components can help us identify which issues are going to be worked on for particular product releases. In the penultimate module we’ve looked at how to create filters and use dashboards to track our progress. Finally, in this module we’ve touched on the more advance search and filter features available to you.
What we’ve covered forms the basis for understanding the basics of Jira. It’s these basics that underlie what’s coming next. What’s coming next is how to apply Jira to manage Kanban and Scrum Agile Projects. When we take the next steps into the domain of managing Agile projects with Jira we’ll really see what the power of Jira gives us.