Review issue 并为其打上标签

当 issue 被创建后,应该等待项目的 owner (owner 指项目的所有者,是对项目各方面都比较了解的人,可以为多个人) 对 issue 进行 Review。

Review 时,如果 owner 觉得这个 issue 满足下面的任意条件:

  • 与项目本身的功能、市场定位有冲突
  • 与现存 issue 有重复
  • 其他不应该被保留的情况

则应该在评论中说明相关情况,并关闭该 issue。如果经过上面的过滤后,觉得 issue 应该被继续跟进,那就应该为它打上标签,方便之后的筛选、排期等工作。

“标签”是 issue 的核心特性,为了更好的使用它,我建议采用 “{type}/{value}” 这样的二维标签来取代传统的 “{value}” 单维标签,下面是一些常用的 issue 标签:

优先级:priority

优先级(priority)是最重要的标签之一。它直接影响 bug 需要被响应的速度、或需求的具体排期。 (经由 @云掩大椿 提醒,已修改为更符合惯例的定义)

  • priority/P0:十分紧急
  • priority/P1:较为紧急
  • priority/P2:普通
  • priority/P3:不紧急

类型:kind

kind(类别)表示 issue 属于哪种类型。

  • kind/bug:软件缺陷
  • kind/feature:新功能
  • kind/enhancement:改进项,模块代码重构等不影响项目功能但是改善工程质量的 issue 可归入此类
  • kind/research:技术调研类,一般以输出某类结论或报告视为结束

工作量:size

size(工作量)表示 issue 需要大约花费多少时间/精力,可以用来做简单的工作量评估参考。

  • size/XL
  • size/M
  • size/SM

领域/模块:area

area用于标记当前 issue 属于项目中的什么领域/模块。这个分类下的具体标签由项目本身决定。比如 area/apiserverarea/controller 等。给 issue 打上 area 标签后,项目不同模块的相关负责人可以更方便的找到自己负责的相关 issues。

GitLab 的标签是一个非常灵活的功能,在具体使用中,不必拘泥于上面列出来的这几种标签,可以根据当前项目特点随意调整。

issue 的后续操作

当 issue 被创建、打上标签以后,就可以进行后续操作了。issue 的后续操作主要包括下面几种:

  • 认领 issue:每一个 issue 都有一个 Assignee(受理人),表示当前 issue 由谁在处理。在你准备开始具体的工作前,一定要记得将 issue 认领为自己所有。
  • 在 issue 下进行讨论:在 issue 下可以围绕 issue 进行讨论,在讨论过程中,可以通过 @USERNAME 的方式通知其他人关注当前 issue。

使用 issue 做项目里程碑管理

除了为 issue 打上标签以外,你还可以为 issue 绑定上 milestone(里程碑),来将 issue 与某些特定的项目节点关联起来。之后便可以在 milestones 页面查看每一个里程碑的进展。

和 labels 一样,里程碑也是一个十分灵活的功能,你可以根据项目需要建立不同的里程碑,比如:

  • 基于软件版本号:基于未来将要发布的版本号建立里程碑,比如 v1.0.3v2.0.1 等等
  • 基于时间周期:基于特定的时间周期 - 比如敏捷开发中的一个 sprint - 来建立里程碑,比如 Y2017-M7W3Y2017-M7W4 等等

使用 issue board

使用 issue board(类似于敏捷开发中的“看板”),可以在一个页面看到当前处于不同阶段的所有 issues。这个功能非常适合站立晨会时使用。

勤于关闭 issues

随着项目越来越大,项目累积的 issue 也会越来越多。而这些 issue 中有很多已经失去它的价值。

所以,为了避免有价值的 issue 淹没在这些过时的信息当中,我们应该定期 Review 现有的 issues,关闭掉那些已经过时的 issues。

相关链接