Project Management with GitHub
Tags: agile, github, management
Published: 2021-09-09 19:38:50

_Struggling to manage projects in GitHub? Learn how to use its features alongside third party tools to get organized and effectively run a project._

When people think of GitHub, they think of a global, collaborative platform for developers to store and share their code. And—especially in the early days—that's what it was. Nowadays GitHub offers more, including a fully-fledged project management solution.

GitHub allows teams of developers to work together—and run entire projects alongside project managers—right from the GitHub interface itself. These tools, especially when augmented by third-party tools that add additional features on top, allow you to run your project right where your code lives—all in one interface.

## First-Party GitHub Tools

There are many existing tools within the GitHub interface that you can use to manage your projects, from simple note-taking and commenting to complex solutions. However, at the core of managing projects on GitHub are issues.

### Issues

Issues can be considered the atomic unit of GitHub project management. If there's something you want to track in a GitHub project management workflow, there’s likely an issue about it. 

Despite the name, issues can be used for anything, from tracking bug reports to more long-term feature requests. Each issue can have a discussion about it, which includes screenshots and video functionality. When work has started on a particular issue, anyone in the thread can mention a pull request. Pull requests allow other users in the thread to directly click through to the code at the heart of the issue.

Issues aren’t perfect. If they’re left as just their base unit, they can quickly become disorganized on a project of reasonable scale. An infinite list of issues doesn't help anyone know what to work on next, what's important, or even what issues relate to which part of the project. Luckily, issues aren’t the only tool GitHub project management offers.

### Labels

Labels help prevent issues and pull requests from becoming an unorganized list. They’re often used to tag an issue as a bug, feature request, enhancement, or simply a discussion. Likewise, labels can distinguish different pull requests with tags such as ready to merge, blocked, and so on. 

Compared to a list of pull requests that all look the same, it's much easier for a senior engineer to filter all the pull requests labeled as "ready to merge" and work on those. The same goes for issues. If you have an open-source maintainer whose job is to prioritize issues and make sure they get assigned correctly, it’s useful to see which issues are unlabeled and need to be addressed.

![Some examples of GitHub Labels](https://i.imgur.com/iKCTapo.png)

Labels are color-coded and visual, which makes issues and pull requests easier to scan and sort quickly. For example, once you’re familiar with the color of bug reports, it becomes easy to identify them. But while labels are helpful, they don’t help with prioritization or confirmation of what features should be deployed together. 

### Milestones

Milestones allow you to group issues together and are usually related to a specific version of software. For example, let’s say you’ve identified a group of features to complete before you release version 1.1. You can then create a version 1.1 milestone and assign that to all of those features. Doing so allows you to filter the list of issues to identify those prioritized for that version. Plus, you’ll have a visual indicator as to how many issues are left before you can ship that new version.

Milestones are especially helpful for software products that do scheduled releases (as opposed to continuous delivery). They help ensure that key issues are grouped together, which also helps project managers know how development teams are progressing.

### Project Boards and Tables

List views aren’t always the most organized, and this is where boards and tables come in. Board and table views organize your issues (with labels and milestones applied) into a traditional Kanban board layout. You can also use a table layout, particularly if you're familiar with [Airtable](https://airtable.com/) or [monday.com](https://monday.com/).

![An example of GitHub issues organized in a table view](https://i.imgur.com/ZCoErFY.png)

By structuring your board and giving each team their own column (Ready for Development, QA, etc.), these views can make even large backlogs accessible. Boards and tables work across any size team, too, from a single member to a mature development team at a large company. These tools are built right into GitHub, meaning projects already on the platform are much easier to manage.

## Third-Party Tools

While GitHub’s own project management tools work great, software that builds on top of it can help make you even more productive. Let’s take a look at some effective third-party tools:

### Zapier

Zapier is a tool that helps users connect their apps and automate workflows. It connects most apps to any other app, which allows you to create workflows that even the apps themselves don't offer natively.

By connecting GitHub to Zapier, you can help data from GitHub flow into other apps you might use for communication, time tracking, and more. For example, if you want to get a Slack notification when someone opens a new GitHub issue, you can set that up with Zapier—without writing any additional code.

![An example of some of the GitHub workflows you can enable with Zapier](https://i.imgur.com/E8uhHY2.png)

While lots of tools have APIs that allow you to connect them, it can get very tedious to maintain these different API connections without anything breaking. With a tool like Zapier, your systems can talk to each other without the need to write and maintain code outside your core codebase.

### Status Hero

Having information about code and issues in GitHub is great, but there’s more to an individual contributor's typical workday. Issues get blocked by other issues, organizations change, and other unpredictable events occur. Your team may be struggling with morale, or slowly fading into the background. All these things are difficult to track with only a GitHub board. This is where Status Hero comes in. 

[Status Hero](https://statushero.com/integrations/github) is a tool that allows you to get a more holistic view of your team, including GitHub participation, JIRA and Trello issues, or even their mood on any given day. It prompts your teammates to check in and provide updates (similar to what you might do in a standup), which are then aggregated to help understand the health of your team.

![The Status Hero dashboard](https://i.imgur.com/C5Vm12t.png)

Status Hero isn't a substitute for checking in on your team regularly, but an instant data summary of all your various tools can be very helpful to ensure projects stay on track and under budget.

## Conclusion

As projects continue to get more complicated, determining the right toolset for your team is more critical than it’s ever been. Many team projects rely on GitHub, so managing those projects from its platform directly represents a seamless, effective option. 

While GitHub works, third-party project management tools like [Status Hero](https://statushero.com/) can provide that extra insight to help keep your team on track. As GitHub continues to build out its project management offering, it will become the cornerstone of more and more development teams. By getting familiar with GitHub’s tools and using third-party tools to augment them, you can help ensure your project team is a well-oiled machine.

_By Keanan Koppenhaver. Keanan is the CTO at Alpha Particle where he helps publishers modernize their technology platforms and build their developer teams._