Agile software development has been gaining momentum over the years as more and more people start to see problems with the traditional model, and the benefits that agile methodologies bring. In agile methods, development happens in iterative cycles and improvements are made with each iteration. Feedback is gathered as early as possible, improving customer engagement and team collaboration. All these actions make development teams better at anticipating and managing changes.
Atlassian, the maker of the popular issue-tracking software Jira, recognizes the values that agile methods can bring, and has come out with a solution that is specially designed for managing projects using agile with Jira, called Jira Software. In this chapter, we will introduce the basics of Jira Software.
By the end of the chapter, you will have learned about:
- Jira Software and what it offers
- How to install and configure a new instance of Jira Software
- The key concepts and terminologies of Jira Software
- How to create new agile projects with project templates
Jira Software, one of the three products in the Jira product family, along with Jira Core and Jira Service Desk, is a solution that is primarily focused on managing software development projects using agile methodologies, hence the name Jira Software. It takes some of the features of classic Jira (Jira Core), such as customizable fields and flexible workflows, and combines them with support for agile methods, giving you the complete experience of running a project the agile way.
Out of the box, Jira Software supports the following agile methodologies:
- Scrum: This is an agile methodology where the development team works iteratively to complete the project. Each iteration or sprint has a defined timeframe and scope. Scrum is most suitable for software development projects. You can find out more about Scrum at http://en.wikipedia.org/wiki/Scrum_(software_development).
- Kanban: This is an agile methodology that focuses on just-in-time delivery by visualizing the workflow and tasks in progress. Kanban is most suitable for operation teams. You can find out more about Kanban at http://en.wikipedia.org/wiki/Kanban.
Of course, since Jira Software is bundled with Jira Core, you also have the option to use Jira without agile methods, such as using it as a simple task tracker, and manage non-software-development-related projects. While we will be focusing mostly on using Jira Software for agile purposes, many of the concepts and topics, especially from Chapter 5, Customizing Jira Software, onwards, are also applicable to non-agile-based projects. Given that we are specifically covering Jira Software in this book, we will be using the terms Jira and Jira Software interchangeably, unless explicitly stated otherwise.
- A server or virtual machine running either Windows or Linux
- A database: Oracle, MySQL, Microsoft SQL Server, or PostgreSQL
- Oracle JDK 1.8 or newer
- The Jira Software installation package
You can find the full list of supported platforms and systems at https://confluence.atlassian.com/adminjiraserver075/supported-platforms-935390828.html.
For this section, we will be using the TAR.GZ or ZIP Archive installation package, as it works with any operating system. You can download the latest Jira Software from https://www.atlassian.com/software/jira/download. By default, the download page will autoselect an installation package based on the operating system used by your computer. You can click on the
All Server versions link to see all options.
Once you have downloaded the file, go through the following steps to install Jira Software:
- Unzip the installation package (for example,
atlassian-jira-software-7.5.0.tar.gz) to the location in which you want to install Jira Software. For example, in Linux, you might want to install it under the
/optdirectory. We will be referring to this directory as
JIRA_INSTALLfor the remainder of the book.
- Make sure the startup script file in the
bindirectory is executable. For Linux, it will be
start-jira.sh; for Windows, it will be
Make sure you create a user to run Jira Software with. You should not run the application under default admin accounts, such as root.
- Create a separate directory for Jira to store its local files, such as configurations, and logs. Make sure you keep this directory separate and outside the
JIRA_INSTALLdirectory. Jira refers to this directory as
jira.home, so we will be referring to this directory as
JIRA_HOMEfor the remainder of the book.
- Open the file
jira-application.propertiesin a text editor. You can find the file under the
- Enter the full path of the
JIRA_HOMEdirectory. So the content of the file will look something like:
jira.home = /opt/jira_home
- Save the file and execute the appropriate startup script in the
bindirectory from a console. You should see an output in your console similar to the following screenshot:
We can access the wizard by opening up a browser and going to
http://localhost:8080. This is if you are accessing Jira from the same machine that it is installed on. If you are using a different computer, change
localhost to the actual host name. If Jira started up successfully, you should see the first step of the Jira setup wizard, as shown in the following screenshot. The
Set it up for me option is a quick way for Jira to configure itself automatically, and this is a great way to have a trial environment up and running quickly. We will be using the
I'll set it up myself option in this exercise to explore all the options available:
The second step is where we tell Jira the type of database we will be using and how to connect to it. The
Built In option will create an in-memory database, which is useful for quick trials, but if you want to use Jira in production, you need to select the
My Own Database option.
Select the database type you want to use. Note that for some databases, such as MySQL, you will be required to download the driver and install the driver before you can proceed further. Jira will let you know if a driver is needed.
Once you have selected the database type, enter the connectivity details. Each database type is different, so you will need to consult with your DBA or database manual if you are unsure. Use the
Test Connection button to check whether the settings are correct and Jira is able to connect to the database.
The third step is for you to enter some basic information about your Jira installation. All these settings can be changed later, so do not worry if you are not sure. The one setting to take note of is
Base URL. It needs to be the fully qualified URL to your Jira instance. If this is set incorrectly, it may lead to issues later, such as links in email notifications not working:
The fourth step is where you enter your license key for Jira Software. If you have a key, simply cut and paste it into the text box. If you do not have one, you can generate a 30-day trial license by clicking the
generate a JIRA trial license link on the page.
For the fifth step, you will be asked to create the administrator account. This will be the super administrator account that you will need during emergencies, especially if you integrate Jira with an external user management system, such as LDAP, and there is a problem with the connectivity between you and your chosen management system.
For the sixth and last step, you have the opportunity to set up how Jira will be sending out emails for notifications. Unlike the previous steps, this is optional, so if you do not have a mail server ready, you can skip this step and set it up later:
After clicking on the
Take me to JIRA button, you will be automatically logged in with the administrator account you created earlier. Since this is the first time this account is being used, you will be asked to set up some personalization options, such as the preferred language and avatar. Once you have personalized the account, you will see the welcome screen, similar to the following screenshot:
Since we have just installed a fresh instance of Jira, we will be asked to create a new project. You have the option to import issues from existing data, such as a CSV file, or another issue-tracking system, such as Bugzilla, with the
Import issues option. Create a new empty project and start using it right away with the
Create new project option, or create a sample project with Jira's built-in sample data to explore and experiment with using the
Create sample project option, which is what we will be doing in the following steps:
- Click on the
Create sample projectbutton.
- Select the type of project from the project template menu. We will be using the
Scrum software developmenttemplate:
- Enter a
Keyfor the new project:
- Jira will create a new project and populate it with sample issues, and you will be taken to the new project and its agile board, which is a Scrum board in our case. We will talk about boards in the next section and the Scrum board in Chapter 2, Jira Software for Scrum.
If you have used Jira before, especially prior to Jira 7, you would likely have used Jira for a variety of purposes, includingâbut not limited toâagile software development. In fact, before Jira 7, to have agile capabilities in Jira, you would have needed to install a separate add-on from Atlassian, called Jira Agile. Starting with Jira 7, agile features are bundled with the Jira Software product package, and you will not need any additional add-ons. There are, however, a number of useful third-party add-ons that can greatly enhance your experience, which we will cover in later chapters.
Since we will be focusing primarily on using Jira Software for agile software development purposes in this book, let's start with some agile concepts and look at how they are represented and used in Jira.
The agile board, or simply board, is the main user interface that you, as the end user, will be using on a day-to-day basis for your projects. The agile board allows you to visualize tasks in a project and the available steps in the workflow, and gives you an interactive way to transition tasks through the workflow. Depending on the type of board you are using, there are also additional features that will provide a range of functionalitiesâfor example, some may allow you to manage a backlog of features, provide visual cues to highlight potential bottlenecks, and more. Together with additional add-ons, you can even take snapshots of your agile board and place them onto a physical whiteboard, and vice versa. The following screenshot shows a sample Scrum board in work or sprint mode:
A card is like a Post-it note that you might use on your whiteboard. It captures the user's story and represents the requirement or feature that is to be implemented. In Jira, each card represents a task or issue. The following screenshot shows what a card looks like on an agile board:
Every unit of work in Jira, such as a story or an epic, is uniformly referred to as an issue. Each issue has a field called issue type, which represents the type and purpose of the issue. For example, in a Scrum project, we would have the following issue types by default:
- Epic: This represents a big user story that has not been broken down into finer-grained requirements. In Jira, epics are usually used to define the "theme" for several stories that will be part of it, as well as modules or major components in a big development project.
- Story: This represents a single feature to be implemented. It is usually used to capture requirements from the end user's perspective. For this reason, stories are often written in nontechnical language and focusing on the desired results of the feature.
- Bug: This represents a defect or problem that needs to be fixed in the product.
- Task: This represents a generic task that is not a bug or a story, but which needs to be completed.
As we will see in later chapters, you can customize the list of issue types for your project to adapt to your project requirements better.
Each issue is made up of a number of fields, such as the issue type field mentioned earlier and other fields, such as summary, description, and assignee. Jira comes with a default set of fields to help you get started quickly, but as we will see in Chapter 5, Customizing Jira Software, it is very straightforward to add fields to your projects.
Workflow is at the heart of Jira and is what powers Jira and its agile board in the background. As we will see in later chapters, Jira is able to integrate with your existing workflows, or adapt to and model after your development process. When you are just getting started, you do not have to know much about workflow as Jira will take care of it for you. We will cover workflows in more detail in Chapter 5, Customizing Jira Software.
The Jira agile board is able to work on either one specific project or multiple projects at once. When you want to have multiple projects, you will need to use filters to define what issues will be included. For this reason, understanding and being able to use Jira Query Language (JQL) effectively can be very handy. You can find more information on JQL at https://confluence.atlassian.com/jiracoreserver075/advanced-searching-935563511.html.
As we have already seen when creating our sample project, Jira comes with a number of project templates, such as Scrum and Kanban. Project templates let you create new projects based on predefined settings so that when the project is created, it will have all the necessary configurations set for you, including:
- Issue type scheme: An issue type scheme that contains only the relevant issue types for the selected template, such as stories and epics for Scrum.
- Workflow: A specially designed workflow, making it easier to work with yours issues on the agile board.
- Screens: A set of screens that contain the necessary fields for working with agile, such as epic links to link stories to epics, and sprint for when tasks are added to Scrum sprints.
- Agile board: An agile board that is dedicated to the new project, if the template is either Scrum or Kanban.
As we will see in later chapters, you can create agile boards for any existing projects, even if they are not created as Scrum or Kanban templates. These project templates are simply tools to help you get started quickly.
In this chapter, we looked at some of the basics of Jira Software and its support for agile methodologies. We installed an instance of Jira Software from scratch and created a project using the Scrum project template with sample data, which we will use in later chapters.
Now that we have laid out the basics of Jira Software, we will start to explore how we can use it to run agile projects, starting with the Scrum methodology in the next chapter.