Software development (especially commercial software) is inseparable from project management, and Issue is one of the most common management tools.

This article introduces the basic use of Issue.

What is Issue?

An Issue is a piece of work that needs to be done, usually related to system improvement. It can be translated as “problem” or “transaction” in Chinese. The following are examples of issues.

  • A software bug
  • A feature proposal
  • A task to be completed
  • Missing document report

Each Issue should contain all the information and history of the Issue so that subsequent people can only look at the Issue and understand all aspects and processes of the Issue.

Historically, Issue originated in the customer service department. When a user calls to report a problem, the customer service creates a ticket and updates the ticket for each subsequent processing step and communication with the user, recording all information. This was the predecessor of Issue.

Therefore, the original function of Issue was problem tracking and work order management. Later, it has been expanded and gradually evolved into a full-featured project management tool, which can also be used to formulate and implement software development plans.

In addition to software, issues can also be used for other projects, such as someone who has made an Issue of their house improvement plan.

Ii. Issue tracking management system

The software that manages issues is called the Issue Tracking System. It’s available to everyone, even ordinary users.

There are also bug-tracking management systems that are usually only available to developers, such as Bugzilla below. It can be used in conjunction with the Issue system, but can also be replaced by the Issue system.

In general, an Issue tracking management system should have the following features.

  • Project management – assign priority of Issue – assign phase of Issue – assign processing staff responsible for Issue – make schedule – monitor progress and provide statistics
  • Teamwork – discussion – Email notifications
  • Code management – Associate Issue source – submit and merge Issue associated code

Third, making Issues

Currently, the most famous Issue tracking management system is JIRA. It is a paid software, which is not covered here. Here’s how to use Issue via the free Github Issues.

3.1 Basic Usage

Each Github repository has a Issues panel.

Enter this panel and click the “New Issue” button to create a New Issue.

The above picture shows the interface of creating an Issue, with the title and content of the Issue on the left and four configuration items on the right (only the project manager can see them).

  • Assignees: personnel
  • Labels: the tag
  • The Projects: the project
  • -sheldon: You’re at a Milestone.

These configuration items are described one by one.

3.2 Assignee

The Assignee selection box is used to assign a handler of an Issue from among all members of the current repository.

Click the name in the drop-down box.

3.3 Labels

Issues can be labeled, which is helpful for category management and filtering.

To create a label, click the Labels button on the home page of the Issues panel.

At this point, six default labels are displayed.

To create more labels, click the New Label button. Then, fill in the label name and select the label color.

3.4 the Label is commonly used

For large projects, each Issue should have at least two labels, one for nature and one for priority.

Label, which represents properties, is an example of this article.

A Label that represents a priority, which can take the following levels.

  • High priority (High) : It has a significant impact on the system and cannot complete other tasks until it is resolved.
  • Medium priority: Indicates that a certain part of the system is affected. Some operations performed by users fail to achieve the expected effect.
  • Low priority: affects a part of the system that users hardly notice.
  • Trivial: Has no effect on the functionality of the system, usually in terms of visual effects, such as fonts and colors.

3.5 the Milestone

A Milestone, called a “Milestone”, is used as a container for issues, and related issues can be placed within a Milestone. A common example is different versions and sprints, both of which can be Milestone.

Create a Milestone on the first page of the Issues panel and click the Renamed button.

Click the New Milestone button, enter the name and content of the Milestone, and specify the expiration date.

3.6 Global View

The Issues panel can only view and operate the current repository. Github also provides a global view that allows users to view and operate all Issues related to them.

To open the global view, visit github.com/issues. There are three types of issues.

  • Created: An Issue that you create
  • Assigned: The Issue Assigned to you
  • -Leonard: I Mentioned your Issue

“Created” and “Assigned” are obvious meanings. Mentioned means someone @you in an Issue. Here’s an example.

It looks like the new widget form is broken on Safari. When I try and create the widget, Safari crashes. This is reproducible on 10.8, but not 10.9. Maybe a browser bug?

/cc @kneath @jresig

The global view also provides search, filtering, and sorting capabilities.

Four, kanban function

4.1 What is Kanban?

Kanban (Kanban) is an important means of agile development, mainly used for project schedule management. All the tasks that need to be completed are made into cards and pasted on a white board, which is called kanban.

Kanban is divided into columns according to different stages. The figure above is a common method of dividing the project cycle into three columns.

  • Todo (to be developed)
  • Doing (in development)
  • It has been Done.

You can separate out as many columns as you want.

  • Todo (to be arranged)
  • Plan a Plan
  • Develop STH.
  • Test (n.)
  • Deploy
  • It has been Done.

4.2 Github kanban function

Github offers an Issue kanban. First, go to the Projects panel on the home page of the repository.

Then, click the New Project button to create a New Project, such as “version 2.0”.

Next, click the Add Column button to create several new columns for the project.

Finally, assign the issues to the corresponding column to create a successful kanban view.

An Issue can be dragged from column to column to indicate moving from one phase to another.

A number of third-party tools can enhance Github’s kanban capabilities, most notably Zenhub, which I won’t cover here.

V. Issue system of code cloud

In addition to Github, Gitlab also offers a free and easier Issues management system. However, INSTEAD of introducing it, I would like to introduce code cloud (Gitee.com), a code hosting service launched by the Open Source Chinese community.

Code cloud is deeply customized by Gitlab. It provides Chinese interface, which is in line with the usage habits of Chinese people, and the access speed is extremely fast. I feel that it is an order of magnitude faster than Gitlab. On the other hand, the sweet potato leader of Open Source China has always supported me. I also want to take this opportunity to promote their products and let more people know about this excellent domestic SaaS service.

5.1 the new Issue

Each repository in the code cloud has a Issues panel. After entering, click “New Issue” to create an Issue, which has much more Settings than Github. (Note that only the warehouse administrator can see the Settings.)

Among them, ‘Assignee’, ‘Label’ and ‘Milestone’ are exactly the same as Github.” The affiliate branch specifies which branch the Issue belongs to, and the start time and end time specify the processing schedule. The top option specifies which issues appear first, and divides them into high, middle, and low grades.

Because there are many Settings, the Issue list provides many filter switches.

5.2 Kanban Function

Code Cloud’s kanban feature is friendlier than Github’s, offering up to four ready-made kanbans directly.

  • To be processed
  • ongoing
  • Has been completed
  • Acceptance and

All issues have an initial state of “pending” and users can manually drag them to other columns.

5.3 enterprise edition

Code Cloud, like Gitlab, also offers an enterprise version. The “tasks” module has a powerful Issue global view, divided into four browsing modes.

  • Assigned to me
  • I released
  • I participate in
  • All tasks

This is the default list view, and you can switch to the global “Kanban view” by clicking on the top right.

This interface also allows you to create tasks directly without going to the warehouse home page. When creating a task, you can specify “associated project”, “responsible person”, and “estimated time”.

After creating a task, you can edit the task again by setting “priority”, “associated project” and “subproject”.

That’s all I have to say. Now you can click on the Demo and try out the features described above.

(after)