【项目管理】关于Issue/Milestone的使用指导
b[red] { color: rgba(255, 0, 0, 1) }
前言
本指导内容主要基于:
仅为一家之言,如有偏颇或不全者,欢迎讨论或补充,感激不尽。
关于Milestone
- Milestone顾名思义,翻译成中国话叫做“里程碑”
- 基于上述含义我们一定程度上可以将Milestone理解为一个阶段
- 对于Milestone的建立
- 请务必按照相对独立的局部任务目标进行划分,而不是简单的以时间节点等非项目因素来划分
- 要设置合理的周期
- 一般周期是1-4周为限度为好
- 对于明显过短的阶段,该考虑是否与其他阶段合并;对于明显过长的阶段,该考虑是否进行阶段的进一步细分;不过仍然务必需要满足上述基于目标进行划分的基本要求
- 如果实在难以两全,则在基本合理的前提下,不必强求任务周期长度(简而言之:里程碑的目标性优先于时间周期性)
【太长不看版】具体且简单来说
- Milestone需要按照相对独立的局部任务目标进行划分,不要简单地基于时间来设置Milestone
- 对于软工课程
- Alpha阶段可以划分为一个Milestone
- 因为其是一个完整独立的阶段,且时间周期和比较合理
- 在一些常见的开源项目中,也明显体现着阶段这一特性
- 比如这个在Gitlab官方站上的开源项目:https://gitlab.com/arl2/palaestrai/-/milestones,靠上端的几个Milestone虽然略长于四周,但是很明确的体现着阶段的意义与目标
关于Issue
- Issue顾名思义,翻译成中国话叫做“问题”
- 对于Issue的建立
- 请务必按照相对独立的局部任务目标进行划分,而不是简单的以时间节点等非项目因素来划分;且需要以签入代码完成某实际模块为目标导向,标准为在Gitlab系统平台上有Commit/Merge Request等形式的体现
- 要设置合理的周期
- 一般在实际环境下,周期以小时为单位为佳。例如,在现实企业开发中一天的8小时工作,可以设置几个Issue来跟踪进度,每个Issue大约2-3小时。
- 其他周期相关与Milestone类似,也是同样的目标性优先于时间周期性
- 粒度划分要尽可能做到易于跟踪了解情况,但又不应细到严重影响工作手感或失去具体意义
- 要根据分工,设置合理的Assign to,即将Issue具体分配到人;此外对于Issue其他相关的人员,也可以在Issue内容中进行@,以确保通知到相关人员。
- 要根据任务所属阶段,关联至对应的Milestone,以确保当前Issue进度可以纳入Milestone进行计算
- 要根据任务性质和当前状态,打上合理的标签,以方便可以在看板上快速了解当前整个项目的进展状况
- 对于Issue的后续操作
- 在Issue下可以就问题本身展开进一步的讨论,并注意合理使用Comment和Discussion
- Commit指评论,意为针对此问题本身的评论,不支持进一步回复等功能
- Discussion指讨论,意为针对此问题的讨论,支持进一步回复等功能,并且对于discussion而言
- 需要在讨论完毕后,在讨论宣告终结的那个回复上点击右上角Resolved,表示问题已经被解决
- discussion的解决程度也是衡量issue进度的重要指标,可以直观地理解为——“问题下的Discussion未被全部解决意味着对此问题尚有需要进一步商议的问题,并需要尽快讨论敲定”
- 因此,建议但凡是因为存在疑问或不明确之处,而需要展开讨论和商议的内容,都请使用Discussion
- 注意与仓库内其他内容的关联
- 例如Commit、Merge Request等,这些关键信息需要与Issue进行充分的绑定,即在Issue中可以观测到在系统层面上所建立的关联
- 具体来说可以参考官方文档:https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically,里面对于Commit和Merge Request如何自动操作Issue有较为详细的介绍,请各小组务必认真读一读,了解一下Gitlab Issue的正确打开姿势
- 当任务的状态或者性质发生变化时
- 请及时更新Issue的标签
- 对于已经解决或者完成的Issue
- 首先确保相关联的Commit、Merge Request等是否都已经稳定(具体来说,需要确保是期望的版本,并且如果设置了CI的话需要CI也一并通过)
- 其次确保当前Issue下的discussion是否已经被全部解决,Issue问题底部右侧区域是否显示绿色块(如果discussion数量不少于1的话)
- 在满足上述基本要求并且确保Issue已被解决或完成的情况下,请务必记得关闭此Issue,以在系统层面上表示该Issue的终结
- 在Issue下可以就问题本身展开进一步的讨论,并注意合理使用Comment和Discussion
【太长不看版】具体且简单来说
- 一个Issue可以视为一个问题或者任务,粒度要小一些以便精准反应各部分进展状况
- Issue应该保持其问题或者任务的性质,不要基于时间来设置Issue
- Issue需要以签入代码完成某实际模块为目标导向,诸如“学习XXX技术”、“对接XXX需求”等没有代码体现的内容不应作为Issue
- Issue的维护是一个完整连贯的过程,请善用Gitlab平台本身的一系列机制以达成更好的效果
- Issue讲究实事求是,情况有变则写清楚原因后增删即可
- 考虑到可能对长远一些的内容做不到精确规划,建议先以Issue的形式做粗略规划,后续根据实际情况再做扩充
【项目管理】关于Issue/Milestone的使用指导的更多相关文章
- 使用 Issue 管理软件项目详解
文章来源:http://www.ruanyifeng.com/blog/2017/08/issue.html 软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一. 本文介绍 ...
- 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)
好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...
- 如何使用 Issue 管理软件项目?
软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一.
- 2021北航敏捷软工Beta阶段评分与总结
概述 Beta 阶段评分,按照之前的规则,主要组成部分为: 博客部分,基于 Beta 阶段博客的评分(每篇正规博客 10 分,每篇 Scrum5 分,评定方式类比往年) 评审部分,基于 Beta 阶段 ...
- 便宜有好货:Oracle免费的便捷Web应用开发框架
APEX 总体来说,APEX是我见过最便捷最高效的开发框架,用起来比PHP还舒服.上手简单,学习成本极低,曾经有个做行政的小女生,在我指导下两天就可以开发出简单的审批管理站点.如果企业要做一些内部应用 ...
- Bata版本冲刺计划及安排
下一阶段需要改进完善的功能 UI: 1. 界面不够精细,布局不够美观并且尚有BUG没有解决,图形.色彩间不够协调. 2. 理清界面间的跳转逻辑. 搜索: 搜索成功并定位后,不会影响地理标签的显示. 定 ...
- Oracle免费的便捷Web应用开发框架
Oracle免费的便捷Web应用开发框架 APEX 总体来说,APEX是我见过最便捷最高效的开发框架,用起来比PHP还舒服.上手简单,学习成本极低,曾经有个做行政的小女生,在我指导下两天就可以开发出简 ...
- Gamma阶段事后分析
设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的是安卓游戏的自动化异常检测问题,定义的足够清楚,对于典型用户的描述和典型场景的描述也足 ...
- TestLink学习八:TestLink1.9.13与Mantis1.2.19集成
简述 在TestLink和bug 管理系统集成必须具备以下特点: 1. 在TestLink和bug 管理系统之间所有的信息交流都是在数据库中完成. 2. TestLink(现在版本)既不能发信息给bu ...
随机推荐
- C#测试--内部类测试
C#测试--内部类测试 在被测试的代码库的AssemblyInfo.cs中添加"[assembly: InternalsVisibleTo("UnitTest项目名称") ...
- 看完我的笔记不懂也会懂----bootstrap
目录 Bootstrap笔记 知识点扫盲 容器 栅格系统 源码分析部分 外部容器 栅格系统(盒模型)设计的精妙之处 Bootstrap笔记 写在开始: 由于我对AngulaJS的学习只是一个最浅显的过 ...
- Typora For Markdown 语法
数学表达式 要启用这个功能,首先到Preference->Editor中启用.然后使用$符号包裹Tex命令,例如:$lim_{x \to \infty} \ exp(-x)=0$将产生如下的数学 ...
- 剑指 Offer 59 - II. 队列的最大值--滑动窗口的建模+Deque的基本使用(常用方法)
剑指 Offer 59 - II. 队列的最大值 题目链接 package com.walegarrett; /** * @Author WaleGarrett * @Date 2020/12/3 1 ...
- js和c#小数四舍五入
<script language="javascript"> document.write("<h1>JS保留两位小数例子</h1>& ...
- MYSQL-SQLSERVER获取某个数据库的表记录数
MYSQL: 1,可以使用MYSQL的系统表的记录数(亲测,有时候,会不准确,被坑了一把,如果还是想通过此方式实现查询表记录数,可以按照文章后的链接进行操作) use information_sche ...
- C语言之三字棋的简单实现及扩展
C语言之三字棋的简单实现及扩展 在我们学习完数组之后,我们完全可以利用数组相关知识来写一个微小型的游戏,比如说今天所说的--三子棋. 大纲: 文件组成 实现 完整代码展示 扩展 即: 一.文件 ...
- WPF 应用 - 拖拽窗体、控件
1. 拖拽窗体 使用 System.Windows.Window 自带的 DragMove() 方法即可识别窗体拖动. DragMove(); 2. 拖拽控件:复制.移动控件 <Grid> ...
- 最简要的Dubbo文档
1.Dubbo是什么? Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目. 面试官问你如果这个都不清楚,那下面的就没必要问了. 官网: ...
- python-给一个参数n,例如3:先输出1,2,3,4,5,6,7,8,9,每三个数后换行,后输出1,4,7,2,5,8,3,6,9
""" 2 定义一个函数,fn(n)其中n表示输入n行n列的矩阵,需要满足的要求是在n为 3时先输出 3 1 2 3 4 4 5 6 5 7 8 9 6 后输出 7 1 ...