Skip to content

How to create issues

Ava Li edited this page Oct 1, 2021 · 14 revisions

Introduction

Hello everyone! This guide is all about issue creation. As a member of the Hack For LA team, you need to know how to create issues for other team members. Issue creation is a valuable skill as it trains you how to communicate tasks in an effective manner and keep the team running. A team that cannot relay clear and specific tasks to one another is a team that cannot function, after all! So thank you for reading this guide!

Table of Contents

Steps to making your first issue

[TODO, put a curated list of good issues to look at, organized by size]

Step 1: Find the issue creation button

To create your first issue, you need to locate the issue creation button! To find it just click on the issues tab, and then look for the new issue button to the right of the screen. Click on that, and you can get started!

[TODO screenshots of button to click]

Return to top

Step 2: Choose the right template

At Hack For LA, we have several templates to choose from, but regardless of which one you choose, the steps are mostly similar. Read the description in each of the templates and click on the one that fits your purpose the most. If all else fails, please pick the Blank Issue Template, which can be used to fulfill any of your glorious purpose.

[TODO gif of glorious purpose template]

Return to top

Step 3: Give a good overview

The Overview is the first part of any issue. It serves as a two sentence summary of what the issue is about, so that anyone reading it can get a quick sense of what the issue is about. Remember, to keep it at two sentences, because anything too long should be placed further down in the Resources/Instruction sections instead. Below is a good two sentence fill-in-the-blank that you can use if you find yourself thinking too hard about how to summarize the issue.

As a [developer/programmer/designer/member of the team/etc], we need to [insert some sort of standard, such as "keep out code clean" or "fix bugs" or "make sure website appears welcoming"]. For this issue, we will [do something to fulfill our standard, such as "edit the code in the data folder or "correct a bug in out components" or "increase the title size on the homepage"].

Return to top

Step 4: Write good action items

Action items can be thought of as a checklist of items to complete for the issue to close. This checklist is occasionally an ordered list, but often times, the checklist is organized in a way that sounds ordered, but can be completed in any order. To create action items, some find it more useful to think of them as steps, and others as an unordered list.

The trend for action items are to write them specific to the size of the issue. Issues of a smaller size tend to have clearer items, such as, "locate the line that says, "font-size: 16px", and change it to, "font-size: 12px". However, as issues grow larger, the item might instead be less clear, such as, "change the font size for all titles to 12px", or "look at the Figma file for the font size, and verify that the font size matches". Other issues, however, would not have clear steps, such as feasibility issues, where the end product is clear, but the ways to do so is a little unclear. In cases like this, we encourage you to try your best, and to look up some of our past issues [TODO add link to past issues section] to see how the were written. You can also consult more senior team members for their assistance and opinions.

When writing action items, it is also perfectly fine to just write down whatever comes to mind, and edit it later. Since all new issues go through an approval process, it does not matter if it is messy, as someone else will review it with you and clean it.

Return to top

Step 5: Give further instructions and resources

The Resources/Instruction section is there to provide information that neither fits the overview, or can be considered as part of the action items checklist. The most common information provided are links that lead to supplementary material. For example, if the issues involved changing the homepage, it would be courteous to link the actual homepage, or the file that should be changed. And just like with the action items, the amount of links provided should reflect the issue's size. As with the aforementioned homepage changes, if the issue is considered medium or large, there is no need to link the homepage as team members should know where to find it. Rather, it might help to link to outside articles or documentation that will illuminate the task. For example, if it involves changing the color palette, an article about color contrast might help the team member with the issue.

Return to top

Step 6: Add the right labels to the issue

When making issues, there always need to be at minimum, 3 labels. These labels are:

  • 1 from the size series [TODO link]
  • 1 from the role series [TODO link]
  • 1 from the Feature series or P-Feature series [TODO link]

More information about what each of these labels mean can be found by clicking the links above. Also, note that the minimum is 3 labels, by there are no maximum. Indeed, an issue can have as many labels as GitHub would allow. That does not mean labels should be placed without thought. The purpose of labels is to convey accurate information about the issue while using as little as possible. When adding a fourth label, do think about whether the label applies to this issue. For example, if an issue requires some other issue's completion before this one can begin, then the dependency label is needed. Likewise, if an issue involves a heavy amount of work that should be done as a group, then the collaborative work label is needed.

If this is your first time making issues, we do not expect you to have encyclopedic knowledge of every label we use, so try your best to use our guide about labels to add the minimum 3. If you are still stumped, then feel free to leave it alone for now, and ask questions. The team is always ready to coach you, and would love to help answer any questions you may have!

Return to top

Step 7: Move the issue into the project board

After filling out the issues and adding the labels, the last step is to add the issue to the project board. We do have automation that partially does this already, but it is always good to double check. To check, simply locate... [TODO gif]

If the issue is not already in the Project Board, then...

Return to top

Sample Issues

Return to top

Frequently Asked Questions

What are dependencies and what are they about?

A dependency is a condition that must be fulfilled before work on an issue can begin. A dependency can take many forms, but it is often an issue. When adding dependencies to an issue, be sure to add a section called Dependency, and add the dependency as a checkbox. Issues with a dependency goes into the [ice box][TODO icebox link], until such a time when the issues are ready to be worked on. If the dependency is an issue, it is also customary to go to that issue and put "release the dependency" as an action item. For example, if #1911 is dependent upon the completion of #1823, then #1911 will have a Dependency section. On #1823, the last action item should be, "release dependency on #1911". This makes sure that there is ample follow up so issues do not become lost.

Return to top

Should I still make an issue even if it is not ready to be worked on?

Yes! An issue that is not ready to be worked is referred to as, "having a dependency". To learn more about dependencies, take a look at this question.

Return to top

What does it mean to "release a dependency"?

To release a dependency means to move an issue with a dependency back into the new issue approval from the [ice box][TODO icebox link]. The dependency label should also be removed from the issue.

Return to top

Clone this wiki locally