JIRA Work Request Management
Background
In the fall of 2016 the CASA development group (CDG) migrated to a new JIRA server that is integrated with Atlassian software systems Confluence, BitBucket, and Bamboo. This change is motivated by the recommendations provided by an exernal consultant who studied the CDG in 2015. The Data Management and Software Department (DMSD) has developed a software development processes document that describes departmental policies and recommendations for its software teams; this document adopts some of the recommendations applicable across the department. The CDG JIRA processes follow the DMSD processes as much as possible. This document describes these processes.
Issue Types
The following table describes the issue types allowed in the CASA project:
Issue Type | Description |
A request to correct a deviation of the system from its specified behavior. | |
A request to change the current specified behavior. Features should always undergo validation testing. | |
An internal change request to improve maintainability of the code, perform refactoring activities, clean up, improve documentation, etc. An issue of this type does not require validation (user) testing. | |
A large, cross functional work request that requires substantially more coordination than other jobs. | |
A request for new capabilities in which either the requestor cannot define the expected result or the developers are unsure about whether the requirement can be implemented. | |
Part of a larger issue. |
For a brief description of JIRA issue types see the JIRA Concepts - Issues page. All of the issue types allowed in the CASA project are described in detail in the DMSD software development processes document. The only exception is the Sub-task issue type, which has been turned on for the CASA project to allow other issues to be broken down into smaller work assignments. The sub-task issue type uses the Feature workflow.
Note on Features vs. Epics
Features and Epics are described in the DMSD document in sections 7.2 and 7.4, respectively. A Feature has low coordination needs and is a relatively small, compact change. If the implementation requires coordination or will take more than two weeks to develop, the request should be characterized as an Epic. Epics are typically broken down into sub-tasks.
Bamboo builds: All appropriately-named branches will be built by the Bamboo CI plan. However, only tickets that are typed in JIRA as a Feature (with a feature/CAS-XXXX branch) or a Bugfix (with a bugfix/CAS-XXXX branch) will be packaged and tested with the Bamboo Branch plans!
Issue States
The following table describes the issue states allowed in the CASA project:
-
Issue state Description Responsible Open
Initial state after a new ticket is created.">OpenInitial state after a new ticket is created. Component lead Unscheduled
Ticket has been accepted but has not been scheduled yet.">UnscheduledTicket has been accepted but has not been scheduled yet. Developer Input Required
Ticket requires additional information.">Input RequiredTicket requires additional information. Domain expert Scheduled
Ticket is investigated, reproduced, fixed, and tested.">ScheduledTicket is investigated, reproduced, fixed, and tested. Developer Ready to Verify
Ticket requires additional verification besides that executed by the developer while in the Scheduled state.">Ready to VerifyTicket requires additional verification besides that executed by the developer while in the Scheduled state. PM / GL
Under Verification
Additional verification tests are executed and results reported.">Under VerificationAdditional verification tests are executed and results reported. Verification tester
Ready to Validate
Waiting state where ticket is ready to be tested by Validator.">Ready to ValidateWaiting state where ticket is ready to be tested by Validator. Validation lead Under Validation
Validation test is performed.">Under ValidationValidation test is performed. Validation tester Resolved
Developer performs post-development activities, such as merging to the final branch, etc.">ResolvedDeveloper performs post-development activities, including making a pull-request. Developer Resolved
Developer performs post-development activities, such as merging to the final branch, etc.">Completed
Ticket is ready for delivery but has not yet been delivered.">CompletedTicket is ready for delivery but has not yet been delivered. Build Team Closed
Final state. No more work can be done.">ClosedFinal state. No more work can be done. None
The issue states are described in greater detail in the DMSD software development processes document.
Under normal conditions an issue cannot be reopened. The reason for this restriction lies in the way that the JIRA issue workflow is integrated with the revision control system (BitBucket). After development activity, an issue is closed when the branch associated with the issue has been merged back into the master branch. Since there is no way to unmerge a branch, there is likewise no way to un-close a ticket. Rather than re-opening a ticket, you must create a new ticket. In exceptional circumstances (such as human error) a CASA project administrator can reopen a closed ticket.
NOTE: It is quite easy to link a new ticket to an old, closed ticket.
Issue Workflows
Each issue type has its own workflow describing the issue states allowed and the allowed transitions between states. We have attempted, as much as possible, to minimize the number of clicks required to move an issue through the workflow. The table below describes the workflows for each issue type:
Issue Types | Workflow Description |
|
The workflows for these issues contain all states described above. |
Workflow does not contain validation steps. | |
Workflow does not contain verification or validation steps. |
A graphical rendering of the Bug / Feature / Epic / Sub-Task workflow is shown, below:
When viewing a JIRA ticket, a link is available next to the issue status value, "View Workflow". If you click this link you will see a graphical description of the workflow for that issue type. The graphical workflow includes tool-tips that describe each status and transition. For a more detailed discussion of workflows see the DMSD software development processes document.