This article is an excerpt from our new book. For the full guide to building a collaborative software team, pick up your free copy!
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 colour; if you use them consistently, you’ll never have to sift through your issues on the board. For more ideas around labelling 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 boards come pre-set with six pipelines: New Issues, Backlog, To-Do, In Progress, Done and Closed.
Let’s go over each real quick.
New Issues: New issues land here automatically. They should be dragged to another pipeline ASAP.
Backlog: Backlog issues are not a current focus, but you will act on them at some point. If they don’t have a GitHub milestone, consider them part of your product backlog. Once you add a Milestone, they’re part of your sprint backlog.
To Do: Populated with well-defined issues, this pipeline is your team’s current focus. Issues here will flow into the In Progress pipeline, so order them by priority and assign keepers using the Assignee function.
In Progress: This is the answer to, “What are you working on right now?” Ideally, each team member should be working on just one thing here at a time.
Done: Depending on your team’s definition of “Done”, an issue in here may mean it is on Production or Staging, or is ready for testing. Make sure your team agrees what "Done" means!
Closed: These are completed issues. Dragging issues into this pipeline will close them, while dragging them out will re-open them.
To keep ZenHub Boards 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.
- 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
While the default board is a great starting point, you should consider customizing it to suit your unique team.
This can help you uncover bottlenecks faster, and provide more information for other stakeholders in the project.
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 a designer, writer, or QA teammate look at this and know exactly where their help is needed?
Think about how your team builds products. Are any recurring “stages” being missed here?
This will help you avoid bottlenecks. 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!