To handle issue and project tracking we use JIRA, which currently offers several different Issue Types when creating new tickets.
The expectations arising from each Issue Type are outlined below.
Addition Workflows
These issue types outline additions to the code base, in the form of new features (use cases).
Issue Types Used:
- Wish / New Feature: a high-level non-technical description of desired business logic
- Requirement: a "discussion" ticket describing a new feature that needs more of its technical description fleshed out
- Epic: a high-level technical description of desired software functionality or infrastructure containing multiple Story tickets
- Note: Epic issues do not get explicitly added to Sprint
- Story: a use case describing an example usage of a small piece of newly desired functionality
General Relationship:
- A New Feature or Wish ticket is filed describing the new feature at a high-level without mandating any particular technical specifications
- A Requirements ticket is created if we feel that we do not have enough information to break the feature down into small pieces of technical work
- A Story ticket is filed from the information resulting from the Requirement discussion
- If multiple Story tickets encompass the work needed, these tickets are grouped under an over-arching Epic ticket
New Feature Workflow
Reporter:
- Management
- Developer
When a Wish or New Feature ticket is in the Active Sprint:
- The ticket is marked
IN PROGRESS
and assigned to a developer, who conducts the meeting - The feature is broken down into a digestable number of enumerated use cases
- If one or more use cases require more detail, a Requirement ticket is filed
- The use cases are filed as Story tickets and associated to an Epic
- The resulting Story tickets are then discussed at the next Sprint Planning meeting
Deliverables:
- New tickets describing the next steps necessary to enable the feature described
Outstanding questions:
- When do I use a wish over a new feature?
- Are Wish tickets requested by people external to NCSA?
- Does a New Feature have less detail than a Wish? Perhaps more detail?
Requirements Workflow
Reporter:
- Developer
When a Requirement ticket is in the Active Sprint:
- The ticket is marked
IN PROGRESS
and assigned to a developer, who conducts the meeting - A meeting is created in Outlook to contact interested parties (i.e. NDS Labs Dev team, Nebula team, other NDS-affiliated software teams, etc.)
- The requirements are discussed with the development team and any interested parties
- Any information resulting from the discussion is filed into a Confluence wiki page
- The information from the Confluence page generates use cases
- If applicable, a new Epic is created to encompass the use cases presented
- The use cases are filed as Story tickets and associated to an Epic
- The ticket is marked
IN REVIEW
and assigned to another team member for review- The reviewer may make any changes or comments that they desire and discuss with the team
- The ticket is marked
RESOLVED
orCLOSED
- The resulting Epic / Story tickets are then discussed at the next Sprint Planning meeting
Deliverables:
- A Confluence wiki page detailing the discussion held and the use cases generated from that discussion
- New Epic / Story tickets describing the steps necessary to enable the use cases described
Story Workflow
Reporter:
- Developer
When a Story ticket is in the Active Sprint:
- The ticket is marked
IN PROGRESS
and assigned to a developer (referred to hereafter as "the developer") - The developer does the work necessary to enable the use case described in the ticket
- Follow the general development workflows defined above
- Comment on the Story with links to any deliverables that should be reviewed / tested
- The ticket is marked
IN REVIEW
and assigned to a tester (referred to hereafter as "the tester") - The tester reviews the deliverables of the Story:
- Review any related Pull Requests
- Review any Test Cases / Documentation provided
- Review any new tickets resulting from the work done
- Pull and run any new Docker images against the Test Cases provided
- The tester selects
Review Accepted
and the ticket is marked asRESOLVED
- The tester merges any outstanding Pull Requests related to this ticket
- The developer switches back to their master branch and syncs with the new changes
- If applicable, the developer builds and pushes a new "latest" Docker image for the API / UI incorporating the new changes
- The developer selects
CLOSE TICKET
and the ticket is marked asCLOSED
Deliverables:
- Pull Request(s) to GitHub
- New Image(s) / Tag(s) in Docker Hub
- Test Case(s) demonstrating the use case fulfilled by the story
- Documentation describing the technical aspects of the solution
Alteration Workflows
Issue Types Used:
Improvement: a suggestion to utilize new techniques or technologies to improve overall performance or maintainability of the platform
Bug: a previously completed use case or edge case that is malfunctioning according to its defined behavior
General Relationship:
- A Bug or Improvement ticket is filed detailing a potential modification that will have a positive impact on the platform
- If necessary, a Requirement ticket is filed to explore the ramifications of the changes
Improvement Workflow
Bug Workflow
Accounting Workflows
Issue Types Used:
- Comment: track miscellaneous information / feedback / requests that do not match other issue types
- Processing Request: track the creation of new entities in production instance of NDS Labs
- Task: work that is not driven by a new use case. Contains zero or more Sub-Issue tickets
- Technical Task: a small piece of technical work that is not driven by a new use case
- Sub-Task: a small piece of outreach or non-technical work / discussion that is not driven by a new use case
General Relationship:
- A Comment / Processing Request / Task ticket is filed to track work that must be tracked
- For these tasks, it is likely that you will not need to make any actual modifications to the code
- Larger tickets can be broken up into a series of Technical Task and Sub-Task tickets
- If necessary, a Requirement ticket is filed to explore the nature and limits of the support granted by this ticket
Comment Workflow
Reporter:
- Management
- External Contributor
Used to Track:
- new sites / groups / contacts wishing to utilize the NDS Labs platform (i.e. Odum, TACC, SDSC, etc.)
- similar technologies that we might look at for reference (i.e. JujuCharms, ProfitBricks, etc.)
- new or existing technologies that might be leveraged to further NDS Labs
- any other feedback-driven tasks that require explicit work to be done
Deliverables:
- If necessary, a Requirement ticket is filed to reflect on the meaning and validity of the comment
Request Workflow
Reporter:
- Management
- External Contributor
Used To Track:
- projects (via Account Creation Workflow)
- service specs (via Pull Requests made to ndslabs-specs)
- any other process-driven tasks that require explicit work to be done
Deliverables:
- If necessary, a Requirement ticket is filed to discuss any further changes that might be necessary to process this request
Task Workflow
Reporter:
- Management
Used to Track:
- events requiring special attention (i.e. hackathon, developer tutorial, etc.)
- any other externally-driven tasks that require explicit work to be done
Deliverables:
- If necessary, a Requirement ticket is filed to determine any necessary hardware/software requirements prior to supporting the event