If you already use GitHub to manage your code, you’ll find it a natural addition to manage your projects right inside GitHub too. Today, we’ll explore two solutions that allow you to do exactly this - GitHub’s basic offering, GitHub Projects, and ZenHub, a complete project management solution built right on top of GitHub. We’ll compare the features of these two tools, to help you figure out which best suits your needs. Let’s get started!
What is a GitHub Project?
GitHub offers GitHub Projects as their basic solution for project management. GitHub Projects allow you to place your GitHub Issues (one-by-one) onto a Project Board.
Your Issues are organized into a Project Board, with Issues separated into Columns representing the status of tasks. Projects can be scoped to a repository or an organization, and Columns can be customized and rearranged, allowing you to set things up to best fit your unique workflow. Add Issues as needed to create GitHub Projects provide an overview of the status of your work, allowing you to identify any blockers, and focus on the most important tasks first.
How do GitHub Projects work?
To illustrate how easy it is to get started with GitHub Projects, let’s walk through setting up our first one together.
Start small - pick one upcoming feature or release. For example, maybe we want to redesign our website. We’ll create a GitHub Project to represent this.
In your Board, you can create or customize Columns to best fit your workflow.
Next, represent each task with an Issue. For our website redesign, we might create an Issue to create new graphics, an Issue to update the product screenshots, and separate Issues for each responsive UI bug.
The last step is adding all your relevant Issues to your Project, one by one. Search for Issues, adding them to the correct Column depending on status. Once all your Issues are in, you’ve created your first Project!
Visit the Project Board at any time to get an instant overview of your Project. Additionally, GitHub’s Projects have a basic progress bar that displays exactly how many Issues remain.
Columns allow for quick and easy prioritization. Simply drag an Issue up or down a Column to represent the relative importance of the task. This provides an instant visualization of the highest priority work in each part of your workflow.
Open as many Projects as needed to manage concurrent priorities. When you’re done with your Project, you can Close your Project.
What can I use GitHub Projects for?
GitHub Projects are a good way for individuals or small teams to test out an Agile process with little commitment. They are ideal for straightforward project management when you don’t need to manage dependencies or additional complexity.
How does ZenHub work?
While ZenHub also creates a Board consisting of your GitHub Issues, this is only the beginning of the functionality provided. While GitHub Projects are tied to a single Repository or Organization, ZenHub revolves around Workspaces - groupings of Repositories from any organizations you belong to.
You can create as few or as many Workspaces to best fit your workflow, and a Repository can be shared between multiple Workspaces. This allows each team to work in the way that fits their specific needs, tasks and styles.
For example, a backend team and frontend team may have separate Repos for their code. However, features can only be shipped when both the backend and frontend are ready. Therefore, they may want to create a combined Workspace consisting of both Repos, so everyone has full visibility at all times. By having everyone work with the same Issues across multiple Repositories, you always have an accurate view of your progress.
Each Workspace comes with a Board to visualize your Issues, much like a GitHub Project Board. However, this is only the beginning of the functionality offered by ZenHub. In addition to the Board, each Workspace also comes with a Roadmapping tool, a Reporting suite, and much more. ZenHub is a comprehensive project management solution that provides teams with accurate progress reports and forecasting tools.
Additionally, ZenHub offers something for everyone on your team. ZenHub is available via an extension for those comfortable working inside GitHub, and as a standalone web application for other members of the team. For those who aren’t committing code, the web application has all the functionality of ZenHub without the distraction of GitHub. It also means a seamless transition between desktop and mobile, allowing you to access your ZenHub information on the go.
How is ZenHub different?
Perhaps you’re working with a bigger team, or you’ve decided to use multiple repositories for your project. Your stakeholders are asking about progress and want to be kept in the loop. Or maybe things are taking longer than you’d like, and you want to understand your team velocity - so you can improve it. Let’s talk about the major features ZenHub provides!
Epics: An advanced way of organizing Issues
Epics are Issues that contain other Issues. They allow you to nest Issues within each other, creating hierarchy and nuanced organization. Epics can contain Issues, or other Epics, and you can convert any new or existing GitHub Issue into an Epic with the click of a button. The Issue page of an Epic contains an overview of all included work, displaying the progress and status of each task. This allows you to instantly see progress and identify blockers. Epics have all the functionality of Issues - they can be given Estimates and Labels, assigned to team members, added to Releases, and more. Epics can also be added to Roadmaps, providing long term visualization. Epics are critical to a successful Agile workflow; they provide organization and context for your Issues.
ZenHub provides the only Roadmapping solution built directly inside of GitHub. Roadmaps are composed of your Epics and ZenHub Projects, and provide long-term visualization for your entire team. Customizable views means your entire team can get a meaningful view of your product roadmap - whether it be your developers or the executive team, Roadmaps provides value to every stakeholder. Roadmaps are always accurate because they tie directly into your GitHub Issues. The report updates automatically when Issues are completed. This means confidence that your Roadmaps are always correct, without the overhead of maintaining things manually. Lastly, predicted end dates and color-coded status lets you identify blockers and understand progress instantly.
Dependencies allow you to set Issues as blocking, or being blocked by, other Issues. This information is available both on the Issue page as well as from the Board. It’s always clear which pieces of work are ready to be worked on, and your team can ensure they’re always working on the most important pieces of work first. Identifying blockers is the first step to removing them!
ZenHub’s Reporting suite offers five robust, intuitive reports that allow you to analyze historical data and make educated predictions. We’ll cover each one below.
- Burndown Chart
The Burndown Chart uses your Milestones to provide visualization of how you’re progressing through your Sprints. It uses the actual progress of your team to predict the rate you’ll have to work at to meet your Sprint goals. The chart is simple and intuitive to use - for example, it blocks out weekends automatically. This makes it easy to see if you’re on track to finishing the scope of work committed to in the Sprint.
- Velocity Report
The Velocity Report uses previous Sprints to calculate your team’s average velocity, and shows you how current Sprints stack up. Teams track velocity for various reasons. It helps you commit to the right amount of work in your Sprints, based on historical data, and it can surface any issues that may cause a sudden drop to team productivity. It provides a way for you to see if you’re speeding up or slowing down, providing a quantitative way to measure the net impact of your process changes.
- Release Report
Release Reports provide long-term planning and predictive forecasting. Add all the work you want to ship by a certain date and the Release Report works magic - it’ll tell you whether you’re on track to completing everything on time. The Predicted End Date feature will help you answer the age-old question: “When will this be done?” - an estimate built off your own team’s velocity. You can remove Issues from scope right from the report, and watch this date move. This reinforces the importance of shipping the most important pieces first.
- Cumulative Flow Report
The Cumulative Flow Report helps you visualize how long Issues live in each Pipeline. You can see where your Issues slow down - and then work on speeding up those parts of your workflow. This means you’re always working on the most important Issues, which ensures you ship the most value as soon as you can.
- Control Chart
The impactful Control Chart provides instant information on how long Issues take on average, as well as providing a rolling average for the most recent Issues. This helps you better predict how long things will take. Update your start and end Pipelines to see how long it takes for an Issue to move through a specific part of your workflow. This can help you make more nuanced predictions and identify bottlenecks.
GitHub provides Milestones, which can provide representation of a sprint, or other time-based chunk of work. However, GitHub Milestones are tied to a specific Repository. Repositories are organized around code separation, but the work required to ship a feature may span multiple Repositories. Cross-Repo Milestones allow you to organize your sprints to fit your workflow, regardless of how your code is split up. See Velocity and Burndown for linked Milestones using ZenHub’s Reporting Suite.
Automate the movement of Issues between different ZenHub Workspaces using Automated Workflows. We can illustrate this with an example: if an Issue is moved from “In Progress” to “Ready for QA” on the development team’s Workspace, it can trigger the movement of that same issue from “To Be Triaged” to “Backlog” on the QA team’s board, signalling the issue is ready for review. Automating this step means less overhead for your team to keep things up to date manually. This also ensures your Board always stays up to date and accurate.
Ready to get started?
For uncomplicated management of Issues and Pull Requests, check out GitHub Projects. You’ll get a straightforward tool that focuses on tracking the prioritization and completion of Issues. When you need to manage additional complexity - multiple repositories, long-term planning, forecasting the completion of tasks, and more - use ZenHub. You’ll be amazed at what it can do for you! Sign up for a free 14-day trial.
To read more about how a software team can benefit from adopting ZenHub, check out this other blog post here.