💻
ATD Data & Technology Services Wiki
  • About
  • Essential Resources & Wikis
  • DTS Offices
    • Where to Eat Near Cameron Rd
  • Basics
    • Working at DTS Basics
    • Network Access
    • Document Storage
      • Using Google as a City Employee
    • Working Remotely from a Mac
      • Resetting Your Network Password from a Mac
      • Troubleshooting AnyConnect for macOS Catalina
    • Slack
  • Onboarding
    • Team Lead Checklist for New DTS Team Members
    • Welcome to DTS
  • Working at DTS
  • Off boarding
    • Your Last Day
    • Offboarding Checklist
  • Product Ops
    • Agile Project Management with GitHub + Zenhub
    • Project Delivery Workflow
    • Index Issue Specifications
    • DTS Website Management
    • Release Process
    • Product Manager Assignments
  • Developer
    • Dockless-Mobility
    • Docker
    • PostgREST
      • Pypgrest (Python Client)
      • Jobs-API
    • Python
    • Server Operation
  • APPLICATIONS
    • Application Management
  • Product Manager Portfolios
Powered by GitBook
On this page
  • Set up
  • Pipelines
  • Issues
  • Issue Titles
  • Labels
  • The importance of labels
  • Required labels
  • Optional labels
  • Estimates
  • Assignees
  • Epics
  • Learning More
Export as PDF
  1. Product Ops

Agile Project Management with GitHub + Zenhub

The Data and Technology Services team is using GitHub and Zenhub for agile project management. This is an overview of our process.

PreviousOffboarding ChecklistNextProject Delivery Workflow

Last updated 2 months ago

Set up

  1. if you don't have one already.

  2. Have someone on the DTS team add you to the organization and the team as a Maintainer.

  3. Add the to your browser.

  4. Log into the using your normal GitHub credentials to activate your account.

Pipelines

The Zenhub board uses a -like format where issues are represented as cards and move across the board as they enter various stages of completion. Our workspace pipelines are:

  • New Issues - Awaiting triage by Level I Support or Product.

  • Icebox - Recorded and understood, but not committed to. Lack of evidence of overall value or applicability. We don't want to delete these and create a cycle of raising duplicate issues, so we keep them in our icebox with just enough information attached that we can pick it up sometime in the future — if and when we choose to do so.

  • Needs Scoping - Potential projects or features that require clarification or exploration before presenting to builders for estimation and prioritizing.

  • Backlog - Issues that are ready to be tackled by the team when the time comes. This pipeline is prioritized: the higher an issue is on this list, the higher the priority.

  • On Deck - Slated for work in the current sprint. During Sprint Planning, we pull all issues that we intend to work on during the sprint into On Deck.

  • Blocked - Issues that cannot be completed — often waiting on CTM or user feedback.

  • In Progress - This one is self-explanatory. Each Issue in this pipeline should have an assigned owner who is responsible for its completion.

  • Ongoing - Continually supported products and activities.

  • Review/QA - Proposed as complete but awaiting approval — code review and/or acceptance testing — before closure.

  • Ready to Deploy - Code or configuration that is ready to be deployed to production.

  • Closed - Done! 🙌

Issues

You will see a list of our custom issue templates. These are handy for creating bug reports, meetings, etc. with boilerplate information and structure.

Issue Titles

Issue titles should begin with a verb* and summarize the work to be completed. This convention improves data readability and helps keep our tasks action-oriented and unambiguous. Since you'll be using Product: and Type: labels, you don't need to spell out application names or issue types.

*Consider Update, Implement, Add, Remove, Review, Discuss, Troubleshoot...

Use this
Not this

Add task order fields to "Funding" tab

AMD staff can't track all funding information

Publish new CCTV camera thumbnails

CCTV map issues

Replace Vision Zero Editor council district dataset

— or — Replace VZE council district dataset

Outdated council district AGOL resource in Vision Zero Editor

Labels

You can apply labels by clicking the "Labels" heading in an issue's right-hand sidebar and beginning to type the label name.

The importance of labels

Accurate labeling is necessary for several reasons:

  • Labels allow us to view related issues across the Zenhub pipelines. For example, during Apps Team Sprint Planning, we filter down to Service: Apps and during our periodic meetings with AMD we use the Workgroup: AMD label to look at all the work — across teams, of all sizes — that we're doing for them.

Required labels

  • Project and/or Product labels, if applicable

Optional labels

A DTS team or individual product manager may find these additional label categories helpful

    • Impact: 1-Severe — Severely impacts TPW service delivery

    • Impact: 2-Major — Causes a major interruption of TPW service delivery

    • Impact: 3-Minor — Deteriorates TPW service delivery

    • Impact: 4-None — Does not affect TPW service delivery

    • Impact: 1-Severe — Severely impacts TPW service delivery

    • Impact: 2-Major — Causes a major interruption of TPW service delivery

    • Impact: 3-Minor — Deteriorates TPW service delivery

    • Impact: 4-None — Does not affect TPW service delivery

Estimates

Estimates are how we track the level of effort of issues. Every issue should have an estimate once it is pulled on deck or into progress, and estimates can be adjusted as needed. Check estimates for accuracy whenever you close an issue. Use 0 estimates for duplicates and other issues we don't work on.

  • Sprint planning — to see when a person or team has too many issues (or too few!) issues assigned to them

  • Stakeholder discussions when prioritizing features — being able to show stakeholders easily that we can accomplish, say, three small tasks, two medium, or one large

Assignees

An issue should be assigned to the person/people who will tackle it. This enables team members to filter down to issues they are responsible for easily.

Epics

Epics do not need estimates assigned to them manually. Instead, the effort is represented by the total of all the story points in the epic's issues. That said, you can add estimates to the epic issue to represent the effort used to managing the sub tasks, i.e. meetings with stakeholders as the work progresses.

Learning More

Here are some additional guides for some of our most relied-upon Zenhub functionality:

Tracking our work in issues not only helps us stay organized, it gives us data on where we're spending our time. To create an issue, click the green "New issue" button in the upper right corner of the or our .

Screenshot of the Issues page with the "New issue" button circled.

You can also .

Labels are also used to populate .

Finally, labels are critical to the that we use to track, analyze, and improve our work.

— the customer we're serving; Workgroup: DTS for internal work and Workgroup: TPW for department-wide work. Every issue should have one, and only one, Workgroup: label.

— The DTS service team who will be doing the work. If there are two teams working on the same thing, copy the issue so there's one for each team. Every issue should have one, and only one, Service: label

— The type of request or task. Every issue should have one, and only one, Type: label

refer to a substantial scope of related work that will reach a state of relative completion, such as the

are solutions that we continue to support over time, including all in-house applications, such as the Vision Zero Crash Data System

Often, a major feature or enhancement to an existing product will require enough resources and coordination that it qualifies as a project. , for example, was a major set of features and enhancements to AMD Data Tracker and the Finance and Inventory App, so it needed both Product and Project labels

— The effect of a bug, infrastructure failure, etc.

— To designate priority of a potential feature or enhancement

— The external team or vendor executing the issue

Like labels, estimates are required because they are a critical component of the we use to track, analyze, and improve our work. Estimates are also useful for

— i.e. predicting the likelihood we can complete a project by a given date

about the hows and whys of estimates with ZenHub.

Estimates (1-5) align with shirt sizes (XS-XXL). Complexity, uncertainty, and time increase as numbers/sizes increase

Epics are a powerful feature that Zenhub adds to Github. They allow you to group related tasks and easily track them from one place. . Here from another City of Austin project.

For ongoing tasks such as a recurring meeting, it may help to create an epic and put the individual instances of the tasks inside it. of that type of usage for a task performed for a customer regularly.

Ultimately, epics can group whatever makes sense for you and your collaborators. Some people prefer . That's fine as long as the issue doesn't require more effort than we can represent in our for a single issue.

Github recently introduced , and on top of them. The DTS Product team hasn't yet decided if/how we will modify our workflow to incorporate these new features. For now, we're continuing to use epics as we always have.

"Use multi-action to make bulk Issue updates" on

The are super-solid, and we encourage you to peruse them at your leisure. Remember that some functionality—renaming and reordering pipelines themselves, for example—will affect the workspace for the whole team. We're always looking for ways to improve our process, so if you come across an approach or functionality you think is promising, add it to the agenda for our weekly Product Sync or share it in the #atd-product Slack channel!

Create a GitHub account
City of Austin
Transportation
Zenhub extension
Zenhub web app
Kanban
"Issues" page
Zenhub board
apply labels in bulk from on our Zenhub board
content on the DTS website
service delivery data
Workgroup
Service
Type
Projects
AGOL Audit
Products
Warehouse Inventory
Impact
Need
Provider
service delivery data
Velocity tracking
This is a good article
Here is a solid guide to how they work
is an example
Here is an example
issues with task lists inside them
estimate scale
sub-issues
Zenhub added layers of functionality
Filtering the Board
this page
Zenhub docs
Label descriptions help with acronyms, "Type:" definitions, etc.
Screenshot of Github label UI predictive typing: "SM" is typed and "Workgroup: SMD" is suggested in the drop down with the description "Signs and Markings Division"