Labels & User Stories
Last updated
Last updated
Although both labels and milestones are optional additions to your project management tool, they are useful for categorizing your tasks and tracking larger initiatives.
Labels are predefined tags on a task that can identify trends or be used for filters and searches.
You can choose whatever labels you want, but we recommend a few that we've found helpful. We've also specified the colors that we use for our labels, but feel free to use your own. I advise being intentional with them. They should increase value and not cause a lot of busywork. By default, most tasks should not require any labels.
Yellow
Flags a task that is linked to a customer submitted or customer-facing issue. These should be resolved as quickly as possible, usually within the next iteration.
Orange
This is a task that isn't specifically part of a user story and is not about feature development. Rather, it signals that this is purely an engineering task to improve the overall system.
Red
You know what a bug is.
Purple
A task that requires significant time (more than an hour) and is not directly related to coding. For any documentation, use "Documentation" instead.
Blue
A task that is focused on writing a design document or other documents.
Grey
It either needs to be broken up into meaningful tasks or is just a quick note.
For tasks (issues), labels, and user stories (milestones) we will be using a single GitHub repository (repo). Even if you have multiple engineering teams, we still have one repo for all tasks. This is a bit unintuitive since each repo in GitHub has its own issues, labels, and milestone (which we'll be ignoring). We do this because tasks tend to span multiple repos anyway (maybe one repo is your backend and one is your frontend, and the task requires touching both). Having a unified repo for all tasks helps keep things organized, easy to find, and easy to pass between teams.
There is also no drawback to this: GitHub can easily link pull requests and other issues to any other repo. I highly recommend you don't go rogue on this process.
You can see our example single repo to help guide you.
Go to your organization.
Click on the Repositories tab and click New repository.
Name the repository "tasks". Add the Description: "Reserved for iteration issues, labels, and milestones". Make sure the repository is Private or Internal so only your team can view it. Click Create repository.
Inside the new repository, select the Issues tab.
Click Labels.
There should be a default list of labels, most of which are useless. Edit the labels to meet your needs or follow the recommendations I listed above.
If you edited your labels to match ours, they should look like what's below.
User stories (or stories or milestones) are a collection of tasks that make up a larger initiative, such as a feature. Stories are central to agile development. A user story is the summed parts that fulfill value to the user or customer. Typically, you would release all tasks within a user story together. User stories should exist outside of your project management tool as part of your investment, design, and user acceptance testing. They are merely referenced by your tasks.
True, if you're talking Scrum. I'm not. To me, calling a task a user story doesn't make sense. A user story is a great way to give a "why" to a set of tasks while keeping the focus on the end-user.
I prefer the term "user story" over "story", "milestone", or heaven-help-us "epic" because, as with all things in product development, our actions should be centered around the value we offer our users. If something can be a "milestone" but not necessarily a "user story" because it doesn't relate to the user, you should think long and hard about why it'd be worth your attention. And if a user story is just a set of tasks that are bundled together to form a sprint, you are equally missing the point and focused more on productivity than effectiveness.
In GitHub, a user story is called a milestone. Just like with labels, you'll want a single repository for all of your milestones.
If you haven't already, you should follow the steps in the Set up your labels section above to create the "tasks" repository.
Inside the "tasks" repository, select the Issues tab.
Click Milestones, then click New milestone.
You can now give your milestone a Title and a Description. For the description, I recommend linking your investment documents, design documents, mocks, user acceptance testing, or whatever else you have to give context to the milestone.