b[red] { color: rgba(255, 0, 0, 1) }

前言

本指导内容主要基于:

  • 和邹欣老师的语音交流结论
  • 邹欣老师《构建之法》的相关章节内容
  • 现有开源项目在类似情况下的做法
  • 笔者本人的项目相关经验
  • 笔者本人基于课程现状的一点私货

仅为一家之言,如有偏颇或不全者,欢迎讨论或补充,感激不尽。

关于Milestone

  • Milestone顾名思义,翻译成中国话叫做“里程碑”

    • 基于上述含义我们一定程度上可以将Milestone理解为一个阶段
  • 对于Milestone的建立
    • 请务必按照相对独立的局部任务目标进行划分,而不是简单的以时间节点等非项目因素来划分
    • 要设置合理的周期
      • 一般周期是1-4周为限度为好
      • 对于明显过短的阶段,该考虑是否与其他阶段合并;对于明显过长的阶段,该考虑是否进行阶段的进一步细分;不过仍然务必需要满足上述基于目标进行划分的基本要求
      • 如果实在难以两全,则在基本合理的前提下,不必强求任务周期长度(简而言之:里程碑的目标性优先于时间周期性

【太长不看版】具体且简单来说

  • Milestone需要按照相对独立的局部任务目标进行划分,不要简单地基于时间来设置Milestone
  • 对于软工课程
    • Alpha阶段可以划分为一个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
    • 注意与仓库内其他内容的关联
    • 当任务的状态或者性质发生变化时
      • 及时更新Issue的标签
    • 对于已经解决或者完成的Issue
      • 首先确保相关联的Commit、Merge Request等是否都已经稳定(具体来说,需要确保是期望的版本,并且如果设置了CI的话需要CI也一并通过)
      • 其次确保当前Issue下的discussion是否已经被全部解决,Issue问题底部右侧区域是否显示绿色块(如果discussion数量不少于1的话)
      • 在满足上述基本要求并且确保Issue已被解决或完成的情况下,请务必记得关闭此Issue,以在系统层面上表示该Issue的终结

【太长不看版】具体且简单来说

  • 一个Issue可以视为一个问题或者任务,粒度要小一些以便精准反应各部分进展状况
  • Issue应该保持其问题或者任务的性质,不要基于时间来设置Issue
  • Issue需要以签入代码完成某实际模块为目标导向,诸如“学习XXX技术”、“对接XXX需求”等没有代码体现的内容不应作为Issue
  • Issue的维护是一个完整连贯的过程,请善用Gitlab平台本身的一系列机制以达成更好的效果
  • Issue讲究实事求是,情况有变则写清楚原因后增删即可
  • 考虑到可能对长远一些的内容做不到精确规划,建议先以Issue的形式做粗略规划,后续根据实际情况再做扩充

【项目管理】关于Issue/Milestone的使用指导的更多相关文章

  1. 使用 Issue 管理软件项目详解

    文章来源:http://www.ruanyifeng.com/blog/2017/08/issue.html 软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一. 本文介绍 ...

  2. 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)

    好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...

  3. 如何使用 Issue 管理软件项目?

    软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一.

  4. 2021北航敏捷软工Beta阶段评分与总结

    概述 Beta 阶段评分,按照之前的规则,主要组成部分为: 博客部分,基于 Beta 阶段博客的评分(每篇正规博客 10 分,每篇 Scrum5 分,评定方式类比往年) 评审部分,基于 Beta 阶段 ...

  5. 便宜有好货:Oracle免费的便捷Web应用开发框架

    APEX 总体来说,APEX是我见过最便捷最高效的开发框架,用起来比PHP还舒服.上手简单,学习成本极低,曾经有个做行政的小女生,在我指导下两天就可以开发出简单的审批管理站点.如果企业要做一些内部应用 ...

  6. Bata版本冲刺计划及安排

    下一阶段需要改进完善的功能 UI: 1. 界面不够精细,布局不够美观并且尚有BUG没有解决,图形.色彩间不够协调. 2. 理清界面间的跳转逻辑. 搜索: 搜索成功并定位后,不会影响地理标签的显示. 定 ...

  7. Oracle免费的便捷Web应用开发框架

    Oracle免费的便捷Web应用开发框架 APEX 总体来说,APEX是我见过最便捷最高效的开发框架,用起来比PHP还舒服.上手简单,学习成本极低,曾经有个做行政的小女生,在我指导下两天就可以开发出简 ...

  8. Gamma阶段事后分析

    设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决的是安卓游戏的自动化异常检测问题,定义的足够清楚,对于典型用户的描述和典型场景的描述也足 ...

  9. TestLink学习八:TestLink1.9.13与Mantis1.2.19集成

    简述 在TestLink和bug 管理系统集成必须具备以下特点: 1. 在TestLink和bug 管理系统之间所有的信息交流都是在数据库中完成. 2. TestLink(现在版本)既不能发信息给bu ...

随机推荐

  1. eclipse安装mybatis的插件

    在help中打开Eclipse Marketplace... 输入mybatis后搜索,点击install即可 功能说明: 1.查找某一个方法 在dao接口中 按住Ctrl键,鼠标指到方法名称上 选择 ...

  2. Mybatis检查SQL注入

    Mybatis 的 Mapper.xml 语句中 parameterType 向SQL语句传参有两种方式:#{ } 和 ${ }. 使用#{ }是来防止SQL注入,使用${ }是用来动态拼接参数. 如 ...

  3. C++入门(2):为何还学C++?

    本文首发 | 公众号:lunvey 提及编程语言,最近很火的当属Python和Java,似乎C++没落了,真的是这样吗? 转行做程序员,掌握一门编程语言,也就是职业技能,我相信更多的是在乎未来发展而不 ...

  4. css标题文字和下划线重叠

    <view class="text"> <text class="textCon">标题</text> <text c ...

  5. HDu1087 Super Jumping! Jumping! Jumping!

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 分析:简单dp:dp[i] = max (dp[i], dp[j] + a[i]) 1 #inc ...

  6. JVM-对象及对象内存布局

    目录 前言 类与对象 对象类二分模型 对象 对象内存布局 JOL工具 对象头 Mark Word 类型句柄 对象头与锁膨胀 无锁 偏向锁 轻量级锁 重量级锁 重量级锁降级 实例数据 填充 对象生命周期 ...

  7. calcite 概念和架构

    1. 前言 Flink使用Calcite构造SQL引擎,那么他们 是怎么合作的? drill, hive,storm 和其他的一干apache 大数据引擎也用calcite , 那么对于同一个sql  ...

  8. PTA甲级—常用技巧与算法

    散列 1078 Hashing (25 分) Quadratic probing (with positive increments only) is used to solve the collis ...

  9. 2020 年安装 FreeBSD 系统的基础视频

    B 站搜索 BV14i4y137mh 包含了下载,虚拟机安装,配置 SSH 等教程. https://www.bilibili.com/video/BV14i4y137mh

  10. 【python】虚拟环境管理之 virtualenv 、pipenv

    虚拟环境介绍 应用场景 python在安装第三方包时,会被pip安装到/site-package下,如果我们需要同时维护多个python项目,那这些项目都会共用一个python,而真实需求是多个项目之 ...