In this chapter, we'll understand what Jira is and how it can be used as an issue tracking tool by various teams in an organization. It's one of the most popular tools developed by Atlassian, which is the company behind it. Jira comes in three different flavors and, in this chapter, we'll also discuss the differences between these three flavors.
We'll go through what problems Jira solves, the benefits and main features that set Jira apart from other tools, and finally we'll spend time understanding Jira Core, Jira Software, and Jira Service Desk by going through the unique features that are available in these three applications.
Finally, we'll share which application you should use for your requirements in the organization.
The following topics will be covered in this chapter:
- What is Jira?
- Jira Core
- Jira Software
- Jira Service Desk
- The problems Jira solves
- What are the main benefits of Jira?
- How to decide which application to use
- Deployment options
Jira is a proprietary issue-tracking system. It can be used to track bugs, resolve issues, and manage project functions. There are many tools available on the market, but the best thing about Jira is that it can be easily customized and configured to suit the specific needs of an organisation and there are plenty of ways to add more features.
Out-of-the-box, Jira offers defect/bug tracking functionalities, but it can also be customized to act like a help desk system, a simple test management suite, or a project management system with end-to-end traceability for software development projects.
Jira is mainly accessed using a web browser but it has lot of integrations with other tools and Jira comes with a RESTful API so you can interact with it programmatically.
Jira Core is one of the basic flavors of Jira and targets business teams that need a tool that's flexible, can be customized to their needs, and is easy to use as well.
Jira Core is perfectly suited for teams such as marketing, operations, HR, legal, and finance. It has all of the features of workflows, dashboards, and reports.
The target team for Jira Software—as the name suggests—is a team interested in using a tool that can help them implement Agile methodologies such as Scrum and Kanban.
Jira Software comes with standard features such as creating Agile boards for better transparency. There are features to plan, track, release, and report. It has all of the features of Jira Core so you can be assured that it's powerful enough when it comes to customization.
Apart from business teams and software teams, Jira Service Desk targets support desks or help desks.
In Jira Service Desk, there are the standard features of a service desk tool such as a customer portal to raise tickets and search in the knowledge base for self-serve for customers; for the agents who will be handling the tickets, they have configurable queues. Just like Jira Software, Jira Service Desk also contains all of the features and benefits of Jira Core.
As you must have already guessed, Jira Core is the most basic tool and, based on your requirements and whether you want to develop software using Agile methodologies, the waterfall methodology, or a custom development process, you can use Jira Software. For providing support to your customers and handling tickets in Jira, you can use Jira Service Desk.
Jira has become one of the most popular tools in the industry, by not just software development teams but also by people who are working on support desk and business teams. Jira essentially is an issue tracking tool, where issue is a generic term for a ticket that could be a task, bug, story, epic in software development projects, a simple to-do in business projects, or an incident, problem, or service request in service desk-based projects. The popularity of Jira increased because of the fact that it can be customized very easily for a variety of use cases.
We want to spend some time talking about various challenges and problems that are faced by teams or organizations in using various tools.
There are lot of development methodologies in the industry that have become standard. These methodologies are used and adopted by many organizations. For instance, Agile methodologies such as Scrum and Kanban are one of the most widely used techniques but, let's be honest, irrespective of these standards, each company's way of working is different and there are many factors that changes the way a company works.
Scrum and Kanban methodologies provide a common framework and there are many tools that can help the easy adoption of these tools; however, a tool should be flexible enough to accommodate the needs of the team. A tool should adhere to standards but, at the same time, should be flexible enough to allow adjustments from the teams.
Most of the methodologies that are adopted by teams for either development purposes or support are driven by a process, which is nothing but a life cycle with different stages. The most simple process can have just three stages, such as To do, In progress, and Done. When a new task is started it's usually waiting for someone to pick it up and when they have completed the task, they simple update the status of the task to Done.
Now, in most cases, the complexity of the process is defined by the type of activity (task or bug), what information needs to be captured (summary, description, and so one) while planning the work, the life cycle or the workflow of the task, and tracking the work using reports. Standards, such as Scrum/Kanban (Agile) or ITSM (Service Desk), provide a framework but the teams trying to adopt these industry standards still need a way to tweak the tool based on their requirements. Maybe they need to ensure that users or developers attach a file when they resolve a task or they want to send a notification to the developer when the task is assigned to them.
Any tool should allow such customization so the teams using it can fully benefit from it.
Tools are used to solve a problem, not to over-complicate it. A freelancer working on a laptop building code might not need to rely on a tool to help them; a small team of a few developers can develop code by keeping track of their activities in a spreadsheet; and a small help desk team receiving a couple of tickets once in a while can also use and manage their work using emails only.
However, tools come into the picture when these teams need to improve their efficiency and aspire to become more productive. Any tool you use should be easy to adopt by all. It should be easy for the administrators to set up and implement, it should be easy for management to plan and track the work, and finally it should be easy for the developers to use.
As discussed previously, the adoption of the tool shouldn't be difficult and hence some effort is required to train the people involved in the usage of the tool. However, the training and how quickly the team can start using the tool are also very important and should be key criteria in choosing which tool you should be using.
The tools used in organizations provide lots of value and have obvious benefits; however, a tool should justify its cost and maintenance. A tool may be flexible, provides lots of customization, and is easy to use by everyone but if it's too expensive to implement and set up, then it will be difficult for an organization to justify the benefit.
There are plenty of tools and application that are flexible but are either too difficult to customize or require lot of effort. Some tools are easy to customize but require lots of training and require special skill-sets. Jira tries to tackle these challenges by providing the right balance. Most of the customization can be done from the UI and that enables teams to quickly get started, while at the same time having peace of mind and confidence in the tool because a slight change in the process such as adding a new state in the workflow won't require a week.
If you're wondering whether you should be using Jira or not, these benefits will help you decide. It's very important that we highlight them.
The various benefits of using Jira are as follows:
- Standard tool for teams of all sizes
- Simple licensing model
- Lightweight tool
- Low maintenance
- Easy to use and intuitive
- Increased productivity
- Better visibility
- Integration with other tools
- Marketplace apps
- A RESTful API for limitless possibilities
- Atlassian Community
Let's now discuss these features in detail.
When you install Jira for the very first time, you'll find out that it's extremely easy to get started with the tool. You can use various out-of-the-box templates to create a project. Irrespective of your team size, you always have this option to use an industry-standard tool. Even for a small team, the configurations that come with the out-of-the-box templates are well defined. Jira doesn't differentiate its features based on the team size; whether you're a small team or a big enterprise, the features that you get in the tool are the same. The way a small team of 10 developers work on an Agile board will be the same as a big team of 50 developers working on multiple Agile boards.
Having this consistency is great not only for administrators but also for team members as the knowledge they gain by working on a tool such as Jira is always going to help them as the team grows in the future.
Jira is proprietary software developed by Atlassian and you need to purchase the license to use it. The licensing is based on the number of users you have in the team who will be using the system, and it's very straightforward.
Let's say you have 15 developers, five managers, and two administrators then you would have, in total, 22 users using the system and to understand the license that you need to purchase, just check on the Atlassian website. In the case of 22 users, there's a slab of 25 users that you need to purchase.
You can go to the following link to check the license that you need to purchase:
When you open this link, you'll be presented with a screen as shown in the following screenshot where you can choose the deployment type—Cloud or Self-hosted—and then, based on the number of users, the license cost will be displayed to you:
In the event the number of users increases in the future, additional licenses can always be purchased. It's advisable to keep in mind the expected usage of the tool in the next year at least. If, right now, there are 22 users but you know for a fact that this number will increase to 35 or 40, then it's better to buy licenses keeping in mind the future increase. This will save you some money, which isn't a bad idea at all.
There are various deployment options for using Jira that we'll discuss in this chapter but, to install Jira on your own server, you need to buy a license for a self-hosted deployment.
Installing Jira on your own server doesn't require heavy investment in infrastructure. It can run reasonably well on a server with 2 GB RAM and a multicore CPU; of course, it also depends on the size of the instance. For small instances with a few thousand issues to big instances with millions of issues, the server specifications can vary and that is the great part of using Jira.
Atlassian recommends some specifications on this page based on the size of the instance:
If you're just getting started with a small instance then choose the specifications that are recommended by Atlassian in the preceding link. You aren't forced to set up a big infrastructure in the beginning.
We discussed previously the challenges that you should be aware of when choosing the tool; apart from the features and cost, which are important in the beginning, you should also be aware of the running cost of the tool. Like any other tool, Jira also requires continuous maintenance where the administrator needs to ensure that the system is cleaned up regularly, backups are managed properly, and the instance itself is upgraded from time to time.
There are new minor versions of Jira released every other month that contains not only new features but also bug fixes.
Upgrading Jira and maintaining it are not at all a daunting task. With the right governance in place, it's quite simple to ensure good performance of the tool. Most Jira administrative actions are done from the UI and it's very convenient for the administrator to handle customizations and other recurring administrative tasks from the browser window.
Using Jira is extremely intuitive and easy. Each user—whether a developer, manager, or administrator—will log in to Jira using a web browser. The moment they log in, they're presented with the Dashboard and depending upon the rights and permission of the user the appropriate features are shown and enabled for them.
Even though working on Jira is intuitive and doesn't require special training for the end user, there is, however, a learning curve. Most people who need to work on Jira learn by themselves but dedicated documentation is provided by Atlassian:
The preceding link has the most up-to-date documentation of all of the Atlassian products including Jira Core, Jira Software, and Jira Service Desk.
Reading the documentation or a book like this one will help you quickly get started on the tool, and there are plenty of resources available to learn the tool to get the most out of it. However, if you're trying to roll out Jira in your company, then you can be assured that users can very quickly adopt it; with very short training or coaching sessions, it's very easy to introduce a tool such as Jira in your team.
The ease of use and intuitiveness help a lot, as we just discussed in the preceding adoption of the tool section but when people start using Jira, you can then expect your productivity to increase. Not only is Jira a great tool for planning your activities or projects, but the day-to-day tracking is also very good in Jira. There are various ways through which your team is always up to date with the latest activities in the project. There are dashboards where everyone with the right access can see the information relevant to their team and themselves. Also, the tool has the capability to send notifications and reminders to users.
For example, users involved in a project or any task will get emails from the system. Of course, these email notifications can be customized to reduce noise but there are mechanisms to ensure that the overall team productivity is enhanced when using a tool such as Jira.
Planning and tracking activities are of no use when the team can't learn from their mistakes and improve upon them. There's a plethora of reports that we can create in Jira related to one or multiple projects.
In Jira, there's a concept of a dashboard where users, based on their permissions, can create one or multiple dashboards containing various gadgets to provide them with up-to-date reports.
These reports help the managers to not only stay on track but also to ensure that the overall progress is maintained and take appropriate action well before time. For instance, on the dashboard, we can see in graphical and tabular form the issues getting resolved versus closed issues in the past few months and a burndown chart, a pie chart to display the break-down of issues based on their workflow status.
The Agile boards that come with Jira Software always display the most up-to-date information to the whole team of developers and queues in Jira Service Desk also give agents an accurate picture of tickets in their backlog.
Bringing more visibility is one of the key points of Jira and it's really good at it.
Jira itself is a great tool; however, there are other tools from Atlassian, such as Confluence, which is used for online collaboration; Bitbucket for code repository; and Bamboo for continuous integration. Jira and most of the other tools from Atlassian talk to each other natively.
Atlassian has this ecosystem and set of integrated tools that can be used standalone but, when integrated with each other, provide a complete solution.
For example, if your organization is looking to implement DevOps practices using Atlassian tools, then you can use tools such as Bamboo, Bitbucket in conjunction with Confluence, and Jira integrated with most of them.
Apart from integrating with tools from Atlassian, Jira can also be integrated with third-party tools and that's done using either an app or an add-on, which we'll discuss in a moment, but for any other integration where you cannot find an app, there's also the possibility of using the Jira RESTful API.
Jira has lot of features out of the box and it comes with a few templates based on the type of application you use. For instance, when using Jira Software, you can create a project with either Scrum- or Kanban-based configurations. At the same time, you always have this option to modify and create your own set of configurations using various schemes in Jira. However, apart from the standard features in the tool and these customizations, if you need to extend the feature set of Jira, you can install various plugins better known as add-ons or more recently as apps.
These apps are either from Atlassian itself or from other companies—mostly Atlassian partners that have published these apps on the Marketplace:
If you open this link, you'll be taken to the Atlassian Marketplace place where you can download thousands of apps for not only Jira but for all other Atlassian tools. As displayed in the following screenshot, you can either browse various apps or search for them:
When you go to the Marketplace, you have the option to look at various popular apps for each Jira application but let's say you want to do Test management in Jira and you're wondering whether an app can quickly give you this option; you can download various apps from the Marketplace and evaluate them.
Having these apps gives you endless possibilities in Jira—of course, it depends on whether the app is good enough for your use case or not, but at least you know that, with the help of an app, you can do what you can't do out of the box. These apps either provide more functionality or provide integration with other tools.
We just discussed the concept of an app that gives you more options in extending the features of the tool but, in case you are wondering how to programmatically push and pull data into Jira, then you'll be glad to know that Jira comes with a RESTful API, which is an amazing way to talk to Jira from other tools.
Whether you want to build your own interface, import data into Jira, or maybe interact with the tool from your existing legacy tool, then the RESTful API opens a lot of possibilities:
The preceding link will give you the details of this amazing set of APIs in Jira. Most of the functionality that you access from the UI and various features can also be accessed using RESTful APIs. This enables developers to write their own interface and integrate with the tool.
We've been talking about the various benefits of Jira but this one requires special mention. Atlassian not only builds Jira, which is already quite popular in the industry, but it also provides a platform to have discussions about its tools:
Atlassian Community is one such platform where different types of users can come not only ask questions but also to share their knowledge and connect with other users. As shown in the following screenshot, the Atlassian Community home page will present you with an option to either click on a specific Atlassian product or search for the information you are looking for:
Let's say you have a question about a specific feature in Jira or you need some help with a specific topic, then you can come to this platform to ask your question and you'll surely get help from some other users on this platform.
Atlassian also continuously monitors this platform and gets regular feedback from the users and its customers. This helps them to improve their products.
Jira comes in three different flavors that we discussed briefly earlier. Now, if you're wondering whether you should be using Jira Core, Jira Software, or Jira Service Desk, then in this section we'll discuss how to choose which application is right for you.
Let's go through a high-level overview of these three applications:
- Jira Core is primarily Jira
- Jira Software is an application added to Jira Core; it provides Scrum and Kanban boards
- Jira Service Desk is an application added to Jira Core; it provides a customer portal, service requests, SLAs, and queues
The following table describes the potential uses of the three applications by various teams:
|Jira Core||Jira Software||Jira Service Desk|
|Business teams that need a tool to plan and track their activities. Teams that can use Jira Core: marketing, operations, HR, legal, and finance. Any other team can use Jira Core.||Software development teams building and shipping software. Methodologies supported by Jira Software: SCRUM83 and Kanban. Jira Software supports typical Agile concepts along with standard Agile-based reports.||Service desks and IT support desks helping customer issues. It can be used to implement ITSM or ITIL. Key features include: customer portal, integration with Confluence for self-service, SLAs, and queues. Jira Service Desk doesn't put restrictions on the number of customers raising tickets.|
The best part is that all three applications can be used together. You can have one Jira instance in your organization where a few teams can have their projects running on Jira Core without any Agile boards, the development team can have their projects with Jira Software, and the service desk team can have their project running on Jira Service Desk.
In most cases, it makes sense to have just one instance running all three applications, but these applications can be run on separate instances as well.
Primarily there are three ways to use Jira, each with its own benefits:
- Data Center
To get started quickly, you can use the Cloud deployment option where you just need to sign up online and you can be up-and-running with your Jira instance within a few minutes. There's no installation required when using Cloud deployment. After signing up for Jira on the Cloud, just create your users. Your Jira instance can be accessed by a unique link that can be shared among your team.
- Atlassian sets up and hosts the instance
- There's no server, no storage, and no maintenance
Jira deployed on the Cloud can always be migrated to the server version; it also depends on what apps you're using and whether the app data supports the migration from Cloud to server.
If you want to set up and install Jira on your own server running on premise, then you can download the Jira setup files and do the installation as per your needs. In terms of functionality, the server version of the application is more or less the same as the Cloud version:
- You set up and host the instance
- You manage the installation
- You maintain the instance
Jira installed on the Server can also be migrated to the cloud. An important thing to keep in mind is support for the app data.
This is targeted at, and suitable for, big enterprise deployments of Jira. It's basically the Server version of Jira but installed on multiple nodes. The main benefits of Data Center deployment are high availability, disaster recovery, and scalability. This deployment is recommended if your organisation can't afford any downtime of Jira and it's mission-critical for your business.
In this chapter, we discussed what Jira is and how it can be used by organizations for various use cases. We spent time talking about the three different flavors of Jira: Jira Core, Jira Software, and Jira Service Desk; what problems these three applications solve; the benefits of using Jira; and various deployment options to kick-start your Jira journey.
Once you know about Jira, then it's time to start using the tool and in Chapter 2, Getting Started with Jira and Basic Usage, we'll first understand the importance of planning your Jira setup and then we'll sign up for a Jira Cloud instance to create a Jira Core project, understand various aspects of the project interface, and finally spend time going through the life cycle of an issue.