Simpler.Grants.gov Public Wiki
Grants.govSimpler.Grants.govGitHubDiscourse
  • 👋Welcome
  • GET INVOLVED
    • Why open source?
    • How to contribute code
    • How to file issues
      • Report a bug
      • Request a feature
      • Report a security vulnerability
    • Community guidelines
      • Code of Conduct
      • Reporting and removing content
      • Incident response protocol
    • Community events
      • Fall 2024 Coding Challenge
        • Event Submissions & Winners
      • Spring 2025 Collaborative Coding Challenge
        • Event Submissions & Winners
    • Communication channels
  • Product
    • Roadmap
    • Deliverables
      • 🏁Static site soft launch
      • 🏁Static site public launch
      • 🏁GET Opportunities
      • 🏁Open source onboarding
      • 🏁Co-Design Group planning
    • Decisions
      • ADR Template
      • ADRs
        • Dedicated Forum for Simpler.Grants.gov Community
        • Recording Architecture Decisions
        • Task Runner for the CI / CD Pipeline
        • API Language
        • Use Figma for design prototyping
        • ADR: Chat
        • DB Choices
        • API Framework and Libraries
        • Back-end Code Quality Tools
        • Front-end Language
        • Communications Tooling: Wiki Platform
        • Use Mural for design diagrams and whiteboarding
        • Ticket Tracking
        • Front-end Framework
        • Front-end Code Quality Tools
        • Front-end Testing & Coverage
        • Backend API Type
        • Front-end Testing & Coverage
        • Deployment Strategy
        • Use U.S. Web Design System for components and utility classes
        • FE server rendering
        • Use NPM over Yarn Architectural Decision Records
        • U.S. Web Design System in React
        • Communications Tooling: Video Conferencing
        • Back-end Production Server
        • Communications Tooling: Analytics Platform
        • Commit and Branch Conventions and Release Workflow
        • Cloud Platform to Host the Project
        • Infrastructure as Code Tool
        • Data Replication Strategy & Tool
        • HHS Communications Site
        • Communications Tooling: Email Marketing
        • Communications Tooling: Listserv
        • Use Ethnio for design research
        • Uptime Monitoring
        • Database Migrations
        • 30k ft deliverable reporting strategy
        • Public measurement dashboard architecture
        • Method and technology for "Contact Us" CTA
        • E2E / Integration Testing Framework
        • Logging and Monitoring Platform
        • Dashboard Data Storage
        • Dashboard Data Tool
        • Search Engine
        • Document Storage
        • Document Sharing
        • Internal Wiki ADR
        • Shared Team Calendar Platform
        • Cross-Program Team Health Survey Tool
        • Adding Slack Users to SimplerGrants Slack Workspace
        • Repo organization
        • Internal knowledge management
        • Migrate Existing API Consumers
      • Infra
        • Use markdown architectural decision records
        • CI/CD interface
        • Use custom implementation of GitHub OIDC
        • Manage ECR in prod account module
        • Separate terraform backend configs into separate config files
        • Database module design
        • Provision database users with serverless function
        • Database migration architecture
        • Consolidate infra config from tfvars files into config module
        • Environment use cases
        • Production networking long term state
    • Analytics
      • Open source community metrics
      • API metrics
  • DESIGN & RESEARCH
    • Brand guidelines
      • Logo
      • Colors
      • Grid and composition
      • Typography
      • Iconography
      • Photos and illustrations
    • Content guidelines
      • Voice and tone
    • User research
      • Grants.gov archetypes
  • REFERENCES
    • Glossary
  • How to edit the wiki
Powered by GitBook
On this page
  • Context and Problem Statement
  • Decision Drivers
  • Options Considered
  • Decision Outcome
  • Positive Consequences
  • Negative Consequences
  • Comparison Matrix
  • Pros and Cons of the Options
  • GitHub Issues + Zenhub
  • GitHub Issues + GitHub Projects
  • Jira
  • OpenProject
  • Links

Was this helpful?

Edit on GitHub
  1. Product
  2. Decisions
  3. ADRs

Ticket Tracking

PreviousUse Mural for design diagrams and whiteboardingNextFront-end Framework

Last updated 28 days ago

Was this helpful?

  • Status: Accepted

  • Last Modified: 2023-07-11

  • Related Issue:

  • Deciders: Lucas, Esther, Sumi, Sarah, Aaron, Billy

  • Tags: communications, sprint planning, agile

Context and Problem Statement

The project needs a system for tracking ongoing development work within the project, preferably as a series of tickets that can be organized into sprints. This system would both enable internal stakeholders to prioritize key tasks and assignments throughout the project and help communicate those priorities to external stakeholders.

The goal of this ADR is to evaluate a series of ticket tracking systems and select the one we will be using for the project.

Decision Drivers

Must Have

  • Ticket Tracking: Tickets can be organized into sprints and tracked as part of larger deliverables

  • Public Access: Without logging in, members of the public can see tickets that are being worked on

  • Public Requests: Members of the public can submit bug reports and feature requests and track how that work is being prioritized

  • Templates: The system supports default templates for different types of tickets which prompts the person creating the ticket for a specific set of information

  • Authority to Operate (ATO): The platform already must be authorized under the Grants.gov ATO (Authority to Operate) or ATO coverage must be requested

  • Reporting: Users can report on the following key metrics:

    • Sprint burndown -- % of tickets and/or points remaining over the course of the sprint

    • Deliverable burdown -- % of tickets and/or points remaining per deliverable over time

    • Sprint allocation -- # of tickets and/or points allocated to each team member per sprint

    • Sprint completion -- # of tickets and/or points created vs planned per sprint

    • Sprint velocity -- Average # of tickets and/or points completed per sprint

    • Lead/cycle time -- # of days between creation of a ticket and when that ticket is closed

Nice to Have

  • Level of Effort Estimates: Tickets can be assigned an estimated level of effort (e.g. story points, t-shirt size, etc.)

  • Custom Views: Users can create custom views for managing tickets with multiple layouts (e.g. kanban board, tabular, roadmap)

  • Custom Fields: Users can create custom fields and views to manage their projects

  • Automation: Users can automate basic workflows like adding and moving tickets, linking PRs to their originating PRs, etc.

  • Open Source: The tool used to manage and host the wiki content should be open source, if possible

Options Considered

Decision Outcome

We are planning to use GitHub issues with GitHub projects because it is the only solution that allows members of the public to submit feature requests and bug reports and then track how those issues are being prioritized within upcoming sprints. Additionally, the use of these tools is free with public repositories and offers other helpful features such as custom fields and views.

NOTE: Given some of the constraints around reporting, we may want to continue to explore options that extend the reporting capabilities of GitHub projects. Similarly, if team productivity is meaningfully affected by the absence of the more robust features that Jira or Zenhub offers, we may want to re-evaluate this decision after an initial trial period.

Positive Consequences

  • We do not need to purchase licenses or seek ATO approval to start begin tracking tickets and planning sprints

  • Members of the public can submit feature requests or bug tickets and track how those requests are being prioritized and worked on

  • We can manage all of our sprint planning and development within the same platform

  • We can extend GitHub project functionality with custom-built automations

Negative Consequences

  • We will need to develop custom reports to track some of the same metrics that Jira or Confluence offers out of the box. Our current proposed strategy for doing so is to create a Python script that exports the tickets and produces the following charts at the end of each sprint:

    • Sprint burndown -- % of tickets and/or points remaining over the course of the sprint

    • Deliverable burdown -- % of tickets and/or points remaining per deliverable over time

    • Sprint allocation -- # of tickets and/or points allocated to each team member per sprint

    • Sprint completion -- # of tickets and/or points created vs planned per sprint

    • Sprint velocity -- Average # of tickets and/or points completed per sprint

    • Lead/cycle time -- # of days between creation of a ticket and when that ticket is closed

  • We will need to spend a bit more time setting up the GitHub project to replicate some of the features that Jira or Confluence offers (e.g. story points, sprints, epics, etc.)

  • Team members who are familiar with Jira and Zenhub will need to spend a bit more time becoming familiar with GitHub Projects

Comparison Matrix

  • ✅ Feature available, meets requirement

  • ❌ Feature not available, does not meet requirement

  • 🔄 Partial feature, limited feature availability, feature in progress or undergoing improvements

  • 1-3 Strength level

  • ❓Unknown

Factor
Zenhub
GitHub Projects
Jira
OpenProject

Cost

$8.33/user/mo

Free

$7.75/user/mo

$7.25/user/mo

Ticket Tracking

✅

✅

✅

✅

Public Access

🔄

✅

🔄

❌

Public Requests

✅

✅

❌

❌

Issue Templates

🔄

✅

✅

❌

Reporting

✅

🔄

✅

✅

Authority to Operate

🔄

✅

✅

✅

Level of Effort Estimates

✅

✅

✅

✅

Custom Views

🔄

✅

✅

🔄

Custom Fields

❌

✅

✅

🔄

Automation

🔄

✅

✅

❌

Open Source

❌

❌

❌

✅

Pros and Cons of the Options

GitHub Issues + Zenhub

  • Pros

    • Built off of existing GitHub tickets and functionality

    • Supports issue templates (through GitHub)

    • Chrome extension to view Zenhub attributes in GitHub

    • Team has experience working with Zenhub

  • Cons

    • Licenses have a monthly fee, even for Government-backed open source projects

    • Sprint boards can't be viewed without Zenhub login

    • Moving tickets requires both Zenhub and GitHub logins and write access to the repository

    • Can be difficult to onboard existing Zenhub users to a new workspace

    • GitHub form-based templates don't work when creating issues from Zenhub

    • Limited support for custom views (e.g. no tabular layout)

    • No support for custom fields

GitHub Issues + GitHub Projects

  • Pros

    • Keeps ticket creation and sprint planning in the same platform alongside code

    • Free for open source repositories

    • GitHub project boards can be viewed without a GitHub login

    • Supports issue templates (through GitHub)

    • Supports custom fields with multiple data types (e.g. numbers, drop downs, iterations, text fields, etc.)

    • Supports filters on all standard and custom fields

    • Covered under the existing Grants.gov ATO

  • Cons

    • Reporting is less robust than Zenhub and Jira

    • Requires more initial setup to replicate some of Jira or Zenhub's out-of-the-box features

    • Team has less experience working with GitHub projects

Jira

  • Pros

    • Industry standard tool for ticket tracking and sprint planning

    • Supports multiple views of tickets (e.g. tabular, kanban board, roadmap)

    • Supports filters on all standard and custom fields

    • Supports custom ticket templates

    • Third-party extensions are available to support public access to Jira boards

    • Team has experience working with Jira

  • Cons

    • Licenses have a monthly fee (above 10 users)

    • Sprint boards can't be viewed without Zenhub login

    • Members of the public can't submit requests to a Jira board

    • Requires tracking tickets and planning sprints on a different platform

OpenProject

  • Pros

    • Open source project with self-hosting option

    • Robust reporting (e.g. burndown charts, velocity, etc.) with enterprise plan

    • Supports multiple views of tickets (e.g. tabular, kanban board, roadmap)

    • Supports key planning features like story points and epics out-of-the-box

  • Cons

    • Many basic features require enterprise license which has a per-user cost

    • Higher investment of time to set up and maintain the project

    • Sprint boards can't be viewed without logging in

    • Members of the public can't submit requests to a Jira board

    • Doesn't seem to support issue or ticket templates

    • Doesn't seem to support workflow automation

    • Team has less experience working with OpenProject

Links

Use to create and manage development tickets and use Zenhub to organize those tickets into sprints.

Robust (e.g. burndown charts, velocity, etc.) out of the box

Supports key planning features like and

Use to create and manage development tickets and use GitHub projects to organize those tickets into sprints.

Supports multiple (e.g. tabular, kanban board, roadmap)

Supports based on those fields

Supports and custom automation with

Use Confluence's platform for both ticket management and sprint planning.

Robust (e.g. burndown charts, velocity, etc.) out of the box

Supports with multiple data types (e.g. numbers, drop downs, text fields, etc.)

Supports built-in

Use the open source project management tool for both ticket management and sprint planning.

#98
GitHub Issues
reporting
story points
epics
GitHub Issues
views of tickets
custom reporting
built-in workflow automation
GitHub actions
Jira
reporting
custom fields
workflow automation
OpenProject
GitHub Issues
GitHub Projects
GitHub Projects Automation
GitHub Projects Actions
GitHub Projects Reporting
GitHub Projects Custom Views
GitHub Projects Custom Fields
Zenhub
Zenhub Epics
Zenhub Story Points
Zenhub Reporting
Jira
Jira Reporting
Jira Automation
Jira Custom Fields
Open Project
GitHub Issues + Zenhub
GitHub Issues + GitHub Projects
Jira
OpenProject