Editor’s note: This blog post was originally published in April 2016 and has been completely revamped and updated for accuracy and comprehensiveness.
A task board is an at-a-glance “information broadcaster” about your software projects. It’s the easiest way for teams to break down barriers that divide people working on a project, powering communication, efficiency, and a higher-quality product. In this post, we'll explain how to combine custom labels and pipelines to create your perfect project dashboard.
First things first
A successful project foundation starts with a good task board, and a good task board starts with repos, understood pipelines, and a sane labelling system.
The task board (or "board") is how you view, prioritize, and manage your product backlog.
Repositories (“repos”) are how projects are divided in GitHub. GitHub now provides unlimited private repositories on paid plans. Since ZenHub allows you to connect repositories together, don’t be shy – divide your projects into a generous number of repos to help things stay organized.
Pipelines are columns on your board that organize your issues (tasks). Your issues move between pipelines from left to right as they progress through the development cycle. We’ll discuss customizing your pipelines later, but ZenHub’s default structure works well as a starting point.
Labels are the tagging system used to convey more information about each issue. Naturally, you can filter your boards by label.
A note on labels
Don’t settle for GitHub’s seven default labels. Take a minute to set up a label style guide that communicates more than the issue type.
Our team set up custom labels that communicate status, blockers, complexity (for example, we mark quick fixes with "Bash It"), and other factors. Together, they communicate a lot in a single glance. Our example style guide is below.
GitHub Labels for the lazy
Labels don’t just add a pop of color; if you use them consistently, you’ll never have to sift through your issues on the board. For more ideas around labeling best practices, check out this post.
Your new home at work
Did you know the brain processes visual information 60,000 times faster than text?
Kanban is a methodology that capitalizes on this fact to create an efficient improvement-orientated work system.
Basically, Kanban boards create a picture of project work and processes. By visualizing work this way, you can create focus, establish flow, and continuously improve.
Before tools like ZenHub, task boards were created using post-its and stickers. The one advantage a physical board has over digital? Constant visibility to keep it top-of-mind. Keep your board displayed on a big monitor somewhere obvious, and bookmark it as your go-to workspace.
Using pipelines like a boss
ZenHub Workspaces come pre-set with seven pipelines which represent the stages that work goes through within your team: New Issues, Icebox, Backlog, In Progress, Review/QA, Done and Closed.
Let’s go over each real quick.
New Issues: New issues land here automatically. They should be dragged to another pipeline as soon as possible.
Icebox: Low priority or un-prioritized Issues that are not to be worked on immediately
Backlog: Upcoming Issues that are immediate priorities. Issues here should be prioritized top-to-bottom in the pipeline.
In Progress: This pipeline answers the question, “What are you working on right now?”. Ideally, each team member should be working on just one thing at a time.
Review/QA: Issues open to the team for review and testing. Usually, this means the code is ready to be deployed pending feedback.
Done: Issues that are tested and ready to be deployed to production.
Closed: When an Issue is closed, it will default land in the 'Closed' pipeline which is the last pipeline on the ZenHub Board. Closed Issues cannot be moved to another pipeline unless re-opened.
To keep ZenHub Workspaces clutter-free, you can hide the Closed Issue Pipeline via the checkbox at the top of the Board. When the box is checked, the pipeline appears on the far right.
Making it all come together
Issues should be arranged by priority, with the most pressing issues at the top. Issues get more detail as they move up in the pipeline.
Pin the highest priority Issues to the top of a Pipeline. During development or sprint planning, teams often encounter one or more issues which require immediate attention such as a high priority bug. To help teams highlight important Issues and communicate the urgency of work, this ZenHub feature lets you Pin an Issue to the top of a Pipeline:
It’s not a one (wo)man job. A well-functioning team has all its members dragging and dropping issues as they progress, and a well-organized task board is the key to making this possible.
Building your perfect workflow
We recognize every software team works differently, yet developers, designers, product managers, and QA engineers often need to work from a common set of GitHub Issues. ZenHub allows you to create Workspaces that match your workflow.
A Workspace is a grouping of repositories, and each Workspace has its own task board that you can customize to suit your unique team:
This can help you uncover bottlenecks faster, and provide more information for other stakeholders in the project.
For example, one team using Kanban and another team using Scrum can both apply workflows for each of those methodologies over the same set of underlying GitHub Issues. It also allows for the creation of high-level Workspaces to give management an overarching view into how multiple projects are progressing.
Customization can help you uncover bottlenecks faster, and provide more information for other stakeholders in the project.
Here’s how to switch between Workspaces quickly in ZenHub:
Audit your board by asking these questions:
Does this board contain only what we need and nothing more? Could my boss look at this and understand everything she needs to about the project?
Is every group being represented here? Can someone in design, marketing, or QA look at this board and know exactly where his or her help is needed?
Is this board better represented as multiple Workspaces? We recognize every software team works differently, even when working on the same set of GitHub issues. With the flexibility of ZenHub Workspaces, every team can work in the way that fits their specific needs, tasks and styles.
Think about how your team builds products. Are any recurring “stages” being missed here? It’s all about keeping issues flowing through the board. If your website has its own repo, for example, you might need a “Copyediting” pipeline.
Is “Done” actually defined here? And does my team know and understand our definition? Remember: defining “Done” is crucial in any agile project.
Pssst! If you haven't already, download ZenHub free to get task boards, epics, and more – directly added to GitHub.
This article is part of our series ZenHub on Project Management, where we share our tried-and-true best practices for any software team. If you're running a GitHub project, don't miss out. Check out previous posts here!