Versions & Components

The other major features in Jira that lets us group and categorise our issues are Versions and Components. Both of these features provide us with useful ways to visualise the status of our projects and the work/issues that we need to be focusing on. Each Project you define in Jira can contain many ‘Versions’ and many ‘Components’. Before we look at what Versions and Components are though lets just recap on what a project is.

A project in Jira is just a container for a lot of issues. It’s the top level container. Every issue must be assigned to one (and only one) project. With a project we can also create Component and Version identifiers. The issues within the project can then be linked to those Component and Version identifiers.

Within a project we can then look for issues that are related to a specific version or a specific component. That’s all very well but what exactly are Components and Versions?

Component: This is a sub category within a project that allows you to break down the project into smaller parts. Think of Components as the building blocks that make up a project. A small project may not need Components but usually a project is big enough to warrent breaking down into smaller parts. If it needs breaking up then use Components. As an example an accounting system might be broken down into functional areas. Each functional area is defined as a component with Jira. We might then have our Accounting system broken down into components like User Interface, Database, API, etc.

Each issue will then belong, not only to a project, but a component within that project too. Typically a person within your project team is allocated as the reponsible person for that component and hence is responsible for overseeing and/or working on the issues assoicated with that component.

Version: This is yet another way to categorise issues, but this time by the order in which you want to see those issues completed. To start with you might be aiming to release version 1 of your prouduct or project. The issues (or pieces of work) you want to complete as part of that version 1 release will be assigned to version 1. When all those issues assigned to version 1 are complete you release version 1 to your customer. Then you start working on issues assigned to version 2, and so on.

What complicates the concept of Versions slightly is that you can have two types of versions.
Affects Version: you may find an issue with a particular version of your product. In which case you can set the Affects Version so that you can see all the ‘Open’ issues that affect this particular version.

Fix Version: you may decide that a particular issue needs to be fixed or completed in a specific version. In which case you set the fix version for the issue to the version you ‘plan’ to complete the issue in.

Setting Up Versions and Components

Now that we understand the concepts we can look at how to work with Versions and Components in Jira. However, before we can do this we need to update some configuration settings within Jira. Let’s take our ‘ACME Delivery System’ project. What we want to do on this project is enable the Components capability and define some Versions to work with.

Our ‘ACME Delivery System’ project is using the default workflow that comes out of the box with Jira when we create our first project. We have the simple ‘To Do -> In Progress -> Done’ workflow. With this workflow, when you edit issues, you’ll find two problems:

Firstly, you have the components field but no Components to select from. So we’ll need to define some Components.

Secondly, there are no fields related to versions. So we can’t define any Version information for our issues.

Our simple ‘To Do -> In Progress -> Done’ workflow is configured not to show any Version or Component information until we’ve actually defined some Component and Version information for the project.. So we’ll need to do some project administration work to set this up.

Setting Up Versions

First then lets navigate to the Project Settings area for our project.

When you click on the ‘Add a Version’ link you are presented with a screen that allows you to enter your list of version. We’ll keep it simple (no dates or descriptions) with just some version names:

Once you’ve added three or four versions we’re ready to add some components.

Setting Up Components

While you’re in the Project settings area (click the settings cog icon top right and select your project if you’re not), you’ll notice the ‘Components’ item listed in the Project Settings list:

In the Components settings area we can quickly add some component values (again sticking to just the component names to keep things simple). The only slight difference here is that you will need to set an assignee value. The assignee is the person that responsible for the component. If you don’t want anyone to be set as the responsible person set the value to ‘Unassigned’ for now.

Now that we’ve defined our Components and Versions we can see this information on our Project Summary page. Click the ‘Summary’ link in the Projects Settings page and you’ll see everything listed.

Once you’re happy with the Versions and Components you’ve defined you can return to the issues list page by clicking on the ‘Issues’ link under you project title.

And from here we can either update existing issues or create new issues with coresponding Component and Version information. We’ll do this next then.

Creating an Issue with Components

Now that we have the Version and Component values defined for a project we can use them when we create our issues. At the moment though you won’t see these new fields on the create issue screen.

When we create a new issue our current workflow isn’t setup to display our two new fields. We can set this up later but for now lets save our issue and we’ll be able to update these values after the issue has been created. Bring up the Open Issues list and select the issue you’ve just created.

From here you’ll see your new Components and Versions fields.

A simple click on the Components cells will let you update the Component values.

And using the drop down we can select one or more values from the list of values we’ve already defined.

Creating an Issue with Versions

The Versions side of things is a little more complicated. At the moment clicking on either of the Version fields won’t allow you to update the values. If you edit your issue.

Then select the ‘Where is my field’ link.

Type in ‘Version’ and select one of your version fields.

From here Jira explains that the field isn’t configured to be displayed. However, you can solve this problem by going to the “Edit/View Issue Screen’ Screen configuration settings and adding the field. Click this link

In the Project admin area, under the ‘Configure Screen’ option at the bottom of the page you’ll find you can search for, and add the version fields.

Add both Version fields (Fix version and Affects Version), position them somewhere sensible in the list of fields and click the ‘Back to Project’ button.

When you view an issue now you should be able to update the version fields.

And when you edit an issue you should see your two version fields listed.

Far more complicated than it should be. However, this should start to give you a feel for just how configurable Jira is and how you can start to tweak the Jira screens to suit your exact requirements.

Searching for Issues with Versions and Components

Now we’ve created a few issues with Version and Component values we’re able to search for issues based on these new values. For example if you have a few issues that have an Affects version of ‘Version 1’ and a component value that contains ‘API’. Then we might want to find all our API issues that showed up in Version 1 of our product so that our API developer can fix them for version 2.

Click on the “View all issues and filters” link.

And from here we can add the Version and Components fields to our search criteria.

And then these criteria to narrow down our search for the exact set of issues we need to focus on.

Now we have a list of just the issues that are related to the API component of our project AND that are related to Version 1 of the product.

Conclusion

There’s a lot to Jira. Getting things setup the way you need them can seem quite complex at first. Having said that if you stick to the workflows and configurations that are supplied out of the box you’ll be starting from a good point. Then you just need to tweak things a little and adjust screens and project configuration to fit your exact needs. Jira will help to a certain extent here if you look out for links like ‘Where is my field’ then Jira can help you work through what’s needed to adjust things to your requirements.