O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Mastering JIRA

Book Description

Gain expertise in tracking project issues and managing them efficiently using JIRA

In Detail

JIRA is an issue-tracking tool from Atlassian and has gained immense popularity in recent years due to its ease of use and, at the same time, its customization abilities and finely grained control over various functions. JIRA offers functionalities for creating tasks and assigning them to users and many useful add-ons can be added such as JIRA Agile for Agile tracking and Groovy scripts, a powerful tool for administering customizations for customizations.

This book explains how to master the key functionalities of JIRA and its customizations and add-ons, and is packed with real-world examples and use cases. You will first learn how to plan JIRA installation. Next, you will be given a brief refresher of fundamental concepts and learn about customizations in detail. Next, this book will take you through add-on development to extend JIRA functionality. Finally, this book will explore best practices and troubleshooting, to help you find out what went wrong and how to fix it.

What You Will Learn

  • Plan the installation and upgrade of your JIRA instance
  • Configure issue type schemes, create customized workflows, modify permission schemes, and change notification schemes
  • Customize JIRA for test management, helpdesk, and requirement management
  • Deploy JIRA for Agile tracking using the Scrum and Kanban techniques
  • Manage users and groups and integrate them with LDAP for single sign-on
  • Develop JIRA add-ons to extend JIRA's functionality
  • Migrate data from external systems using CSV import
  • Generate reports directly from the JIRA database and to use custom JavaScript and CSS

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Mastering JIRA
    1. Table of Contents
    2. Mastering JIRA
    3. Credits
    4. About the Author
    5. About the Reviewer
    6. www.PacktPub.com
      1. Support files, eBooks, discount offers, and more
        1. Why subscribe?
        2. Free access for Packt account holders
        3. Instant updates on new Packt books
    7. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Errata
        3. Piracy
        4. Questions
    8. 1. Planning Your JIRA Installation
      1. Planning the installation
        1. Installing JIRA on Windows
        2. Installing JIRA on Linux
        3. Installing JIRA as a service
        4. Installing JIRA from an archive file
      2. System requirements
        1. Procedure to install the JDK
        2. Steps to install the JDK on Linux
      3. Setting up the MySQL database
      4. The JIRA setup wizard
      5. JIRA Directory structure, startup/shutdown scripts, and log files
        1. The JIRA Installation Directory
        2. The JIRA Home Directory
        3. Subdirectories under the JIRA Home Directory
      6. Planning your upgrade
        1. Upgrading your JIRA instance
          1. The fallback method for mission-critical applications
          2. The rapid method using the installer
          3. Manual upgrade method for Solaris
      7. Updating JIRA add-ons
        1. The JIRA add-ons compatibility matrix
      8. Applications, uses, and examples
      9. JIRA core concepts
      10. Summary
    9. 2. Searching in JIRA
      1. The Issue Navigator window
      2. Searching the issues
        1. Searching using text
      3. Filters and subscriptions
        1. Subscriptions
        2. Sharing your filters
      4. An introduction to JQL
        1. The basic JQL syntax
        2. Use of operators in JQL
        3. Advance search using functions
      5. Browser shortcuts
      6. Exporting issues in Excel, RSS, and XML
      7. Bulk edit
      8. Summary
    10. 3. Reporting – Charts to Visualize the Data
      1. Project reports
        1. Issues
        2. Reports
          1. The Average Age Report
            1. Report interpretation
          2. The Created vs. Resolved Issues Report
            1. Report interpretation
          3. The Pie Chart Report
            1. Report interpretation
          4. The Recently Created Issues Report
            1. Report Interpretation
          5. The Resolution Time Report
            1. Report interpretation
          6. Single Level Group By Report
            1. Report interpretation
          7. Time Since Issues Report
            1. Report interpretation
          8. The Time Tracking Report
            1. Report interpretation
          9. The User Workload Report
            1. Report interpretation
          10. The Version Workload Report
            1. Report interpretation
          11. Configure and share dashboards
      2. Gadgets for reporting purposes
        1. Activity Stream
        2. Created vs. Resolved Chart
        3. Pie Chart
        4. Issue Statistics
        5. Two Dimensional Filter Statistics
      3. Using add-on charts to visualize data
        1. Bar charts for JIRA
      4. Summary
    11. 4. Customizing JIRA for Test Management
      1. What is test management?
      2. Creating Issue Types for test campaign and test cases
        1. Creating new Issue Type Schemes
      3. Customizing the workflow for a change in transitions
        1. Workflow for test campaign
          1. New states
            1. Removing unwanted transitions
            2. Adding new steps
            3. Adding the missing transitions
            4. Conditions
            5. Post Function
          2. Creating a new Workflow Scheme
          3. Adding a custom event in JIRA
          4. Customizing the Notification Scheme
        2. Workflow for test case
          1. New states
          2. Condition
          3. Post Function
      4. Capturing additional data from a user on state transitions
      5. Learn how to make certain fields mandatory only for test case
      6. Limiting the project visibility to certain group and individuals
      7. Learn how to hide a specific issue from the user within a project
      8. Versions and components
      9. Summary
    12. 5. Sample Implementation of Use Cases
      1. Gathering the requirements
      2. Preparing the JIRA configuration document
        1. What kind of issue tracking needs to be done?
        2. Issue types required
          1. Best practices
        3. What data needs to be captured?
          1. Best practices for customizing JIRA
        4. Issue workflow
      3. Setting up JIRA for helpdesk/support tickets
        1. Issue types
        2. Workflow
        3. Fields
        4. Screen scheme
        5. Permission scheme
      4. Setting up JIRA for requirement management
        1. Issue types
        2. Workflow
          1. Requirements
        3. Fields
          1. Requirements
        4. Documentation
        5. Screen scheme
        6. Permission scheme
      5. Setting up JIRA for bug tracking
        1. Issue types
        2. Workflow
          1. Bugs
        3. Fields
        4. Screen scheme
        5. Permission scheme
      6. Changes in the customizations
      7. Summary
    13. 6. User Management, Groups, and Project Roles
      1. User and group management
        1. Deciding upon the creation of user accounts
        2. Creating a new user
        3. Password policy
        4. Creating a new group
      2. Working with project roles
        1. Creating a project role
        2. Adding users and groups in the project role
        3. Giving permissions to your project role
      3. Types of administrators
        1. JIRA System Administrators
        2. JIRA Administrator
      4. Summary
    14. 7. Configuring JIRA User Directories to Connect with LDAP, Crowd, and JIRA User Server
      1. The authentication mechanism in JIRA
        1. JIRA Internal Directory
        2. Configuring LDAP
          1. Understanding Base DN
        3. Connecting to Crowd
        4. Connecting to JIRA user server
      2. Allowing other applications to connect to JIRA
      3. Synchronizing user and group information
      4. Summary
    15. 8. JIRA Add-on Development and Leveraging REST API
      1. Setting up the Atlassian plugin SDK
        1. Setting up the SDK prerequisites on a Windows system
        2. Verifying the JDK installation and the JAVA_HOME system variable
          1. Verifying that JAVA_HOME\bin is present in the environment variable PATH
      2. Installing the Atlassian SDK on Windows
        1. Getting familiar with the Atlassian SDK
        2. The atlas command
      3. Creating the Helloworld plugin
        1. Adding organization details in pom.xml
        2. Loading the plugin in JIRA
      4. Setting up the Eclipse IDE
        1. Downloading the Eclipse IDE
          1. Configuring Eclipse to start under the JDK
          2. Updating the installed JREs in Eclipse
          3. Installing the Maven plugin
          4. Configuring the Maven plugin
        2. Adding functionality to the Skeleton plugin
          1. Importing the Helloworld plugin in Eclipse
          2. Creating a menu in JIRA's top navigation bar
      5. Leveraging the JIRA REST API
        1. Examples of a few operations that can be performed via REST
        2. Use cases of JIRA REST API
          1. Generating Business Intelligence reports
          2. Bulk operations in JIRA
          3. Building a custom interface for clients
        3. JIRA's REST API browser
          1. Fetching user details
          2. Sample code to interact with the REST API
            1. Creating an issue using PHP
            2. Authenticating with JIRA
              1. Making the REST call to create the issue
              2. Issuing data and printing the output
          3. Fetching issue details using PHP
      6. Summary
    16. 9. Importing and Exporting Data in JIRA
      1. The Backup System
        1. Generating the backup
          1. Backing up of attachments
        2. Generating automatic backups
      2. The Restore System utility
      3. The Project Import utility
      4. External system import using CSV
        1. The simple CSV import
          1. Preparing the CSV file
          2. Performing the CSV import
        2. Creating subtasks using the CSV file
        3. Uploading attachments using the CSV file
        4. Updating existing issues
        5. Summary
    17. 10. Working with JIRA Agile
      1. Product overview – what is JIRA Agile?
        1. Installing JIRA Agile
      2. Scrum boards
        1. Agile project setup and JIRA Agile configuration basics
        2. Populate, rank, and estimate a backlog using story points
        3. Plan and create sprints
        4. Configuring swimlanes, card colors, edit card fields, and quick filters
          1. Swimlanes
          2. Card colors
          3. Card fields
          4. Quick filters
        5. The Burndown chart and Velocity charts
          1. The Burndown chart
          2. The Velocity chart
      3. Kanban boards
        1. Setting up the Kanban board
        2. Column constraints
      4. Managing multiple teams and projects using boards
      5. Summary
    18. 11. JIRA Administration with Groovy Script Runner
      1. Installing Script Runner
      2. Built-in scripts for administration
        1. Accessing Built-in Scripts
          1. Copying a project
          2. Escalation service
          3. Switching to a different user
      3. Modifying the JIRA workflow with conditions, validators, and post functions
        1. Conditions
          1. All subtasks must be resolved
          2. Allowing the transition if this query matches a JQL query
          3. Checking if the issue has previously been in a status
          4. Simple scripted condition
        2. Validators
          1. Field(s) changed validator
          2. Require a comment on transition
          3. Simple scripted validator
        3. Post Functions
          1. Adds the current user as a watcher
          2. Transitioning the parent when all subtasks are resolved
      4. Accessing powerful JQL functions
        1. Returning issues with a number of comments
        2. Returning issues based on comments attributes
        3. Returning issues based on attachments
        4. Comparing dates
      5. Summary
    19. 12. Accessing the Database
      1. JIRA's database schema
        1. Accessing HSQLDB
      2. Accessing MySQL
        1. phpMyAdmin
        2. The MySQL console
      3. Accessing PostgreSQL
      4. User table
        1. The table structure
        2. Finding the list of inactive JIRA users
      5. The jiraissue table
        1. The table structure
        2. Finding issues of a specific project
      6. The customfield table
        1. The table structure
      7. The customfieldvalue table
        1. The table structure
      8. Some useful SQL queries
        1. List of shared filters
        2. Fetching users of a specific group
        3. List of users with count of comments
        4. Fetching the count of issues per component
        5. Listing projects of a specific project category
      9. Summary
    20. 13. Customizing Look and Feel and Behavior
      1. How to add your own CSS
      2. Adding JavaScript to show/hide a field
        1. Creating the issue
      3. Velocity templates
        1. Modifying the description system field with predefined text
        2. Modifying the footer
        3. Displaying a custom field in e-mails
      4. Summary
    21. 14. JIRA Best Practices
      1. A note of caution before modifying default schemes and configurations
      2. The JIRA customization process
        1. Piloting JIRA with default configurations
        2. Gathering feedback
        3. Documenting and finalizing the proposed configurations
        4. Testing configurations on the sandbox
        5. Implementing JIRA on the production stage
        6. Standardizing configurations
        7. Setting up Change Control Board
          1. Various scenarios for impact analysis
      3. Using the project context to assign different options in multiple projects
      4. Creating too many custom fields – a factor in slow performance
      5. Choosing a custom field type wisely
      6. Defining permissions
      7. JIRA's Audit Log
      8. Adding the Announcement Banner
      9. Adding an introduction
      10. Performing indexing from time to time
      11. Summary
    22. 15. Troubleshooting JIRA
      1. Atlassian support
        1. Atlassian Answers
        2. How to report a problem?
        3. Log Scanner
        4. Support Zip
      2. Common configuration issues
        1. User is not able to log in
          1. Solution
        2. Users don't see the project
          1. Solution
        3. User complains about e-mails not being received
        4. Workflow buttons are missing
          1. Solution
        5. The options in the select list suddenly changed
        6. The custom field disappears from the project
      3. Increasing memory
      4. Integrity Checker
      5. Summary
    23. A. Integrating JIRA with Other Tools
      1. JIRA with the Subversion plugin
      2. JIRA with Bitbucket and GitHub
      3. JIRA with other Git repositories
      4. JIRA with Confluence
      5. Summary
    24. Index