框架

背景

个人是不太愿意使用用户体验差的软件来做项目管理,行业内,要找到这么一款软件,又要符合自己的需求,着实不容易。要免费,易用性要好,要安全,要有数据统计。而程序员的世界,SVN 之后,可能没有人会拒绝 github,gitlab。从开发的角度出发,基于此平台作自我迭代和研发,则应当是最接地气,最容易推广的事情。

从代码开始迁移到 gitlab 到最终完成项目流程的改造,花费了大概两年时间。中间经历了,BUG管理系统的迁移,测试流程的迁移,进而影响到产品流程的迁移。后续又完善了文档管理,存储,pipline的CICD的自我构建。打通了项目流程的同时,也完成了 DevOps 的使命。

 
框架图

团队内部项目管理有三大默契(原则):

  1. 一切是在线协同的
  2. 一切内容是透明的
  3. 一切行为是自主的

1. 项目管理

  • 敏捷管理

    • 看板管理:Backlog -> to do -> doing -> close
    • 燃尽图:plan -> burning -> prediction -> addition
    • 进度:项目进度、进度监控
    • 报告:日报、周报
    • 评价:项目评价、个人评价
  • 状态:milestone、label
  • issue:可关联、状态同步、闭环
  • 任务交接流程管理
 
燃尽图-出自OO+HB

用此作项目管理,主要围绕以下几点来作改进。

  • 按照上面的原则第3点,我们所有任务安排妥当后,每个人任务都是由具体的执行人来评估、添加、移动。PM 只承担指导、监控、收集问题、并改进的责任。
  • 解放写周报的政治性任务:只要任务规划好,并每天自行拖动任务,报表自动生成。

关于燃尽图的指引,由另外的文章给出。

2. 权限管理

  • 权限分组
  • 防止外泄,只有在公司内网才能访问

3. 存储管理

  • docker 镜像
  • 文件存储:图、文件(rar/word/excel/pdf etc.)、视频
  • 其他

4. 文档管理系统

  • 在线协作
  • 模板管理
  • markdown
  • PPT
  • 甘特图
  • yaml
  • WIKI
  • 文档中心:接口、方案、总结

5. 需求管理

  • 需求原稿
  • 需求指派、受理
  • 需求讨论、变更
  • 需求跟进

6. 开发管理

  • 代码托管
  • 分支管理
  • 版本管理 -> tag
  • static code-review
  • UT/UT coverage
  • gomock
  • build
  • CI

7. 质量管理

  • 提测需求&进度管理
  • BUG管理:bug分类、等级
  • 用例管理
  • 用例审核

使用 gitlab 作 bug 管理,采用 label 进行 bug 标记和分类,分类包括了 bug 等级、bug 的质量高低等信息。标签可以用脚本统一增删查改。

bug 跟随项目 project 而走,便于回溯。我们的要求是:任何一次代码提交是可溯源的。 是因为 bug 修复还是需求更新而更新代码,merge 时,必须能够 mention 到具体的 issue。根据需求版本建立 milestone,并且将 bug 归属于 milestone 中,心作质量管理和分析。

bug 是跨项目存在的,例如我们有100多个project,是不利于 bug 管理的。于是写了一个调用 API 的脚本,定时和手动将 bug 导出为 excel 用于分析。

单元测试,mock测试用例能够更好的与被测代码融合,即便开发线上修改,也能够将测试代码在线上运行。

8. 上线管理

  • pipeline:CD
  • 与 TDC DevOps 关联
  • 上线 issue
  • 运维可参与

9. 日志管理

  • history
  • comments
  • status
  • changes

10. 消息通知

  • todo lists
  • email push
  • 钉钉

优缺点

优点 缺点
统一平台 无系统切换成本资源复用权限统一管理 二次开发需开发维护
项目管理 敏捷管理自研个性化定制需求开发测试有独立池管理 对于项目管理资源融合要求更高
issue 囊括产品需求、提测需求bug、上线、方案讨论 需要统一整理,否则不便于查找
BUG提交 与项目相关联,利于追踪溯源BUG重现可提交视频 不便于统计,需跑自研脚本定时下拉
维护 公司级团队维护备份无需额外投入人力全面日志管理与历史记录
安全 离职人员带不走资料不需要查邮件回顾 公司外无法访问但可事先pull到本地
 
 

6人点赞

 
 

作者:钟沐
链接:https://www.jianshu.com/p/4a9b8764599e
来源:简书

基于gitlab的项目管理流程的更多相关文章

  1. 基于Gitlab的CICD流程

    本片文章主要初步介绍什么是CICD流程,并且把整个流程进行拆分理解整个流程的跑通过程. 1.CICD概述 什么是CICD呢? 简单的说CICD就是持续集成自动构建自动测试自动部署. 从概念上就可以看出 ...

  2. 基于SpringBoot的项目管理后台

    代码地址如下:http://www.demodashi.com/demo/13943.html 一.项目简介 在使用本项目之前,需要对SpringBoot,freemaker,layui,flyway ...

  3. 为某金融企业的IT技术部人员提供基于TFS的软件研发流程介绍

    受莫金融企业IT信息技术部的邀请,为该金融企业的某省分公司.地市分公司的IT技术人员提供了一场基于TFS的软件研发流程的技术培训,希望可以借此提高该企业的软件研发.运维水平,同时推动企业软件研发信息化 ...

  4. 基于GitLab CI搭建Golang自动构建环境

    基于GitLab CI搭建Golang自动构建环境 Golang发布遇到的问题 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 开发者本地环境需要将环境变量文件改 ...

  5. 部署基于Gitlab+Docker+Rancher+Harbor的前端项目这一篇就够了

    部署基于Gitlab+Docker+Rancher+Harbor的前端项目这一篇就够了 安大虎 ​ momenta 中台开发工程师 6 人赞同了该文章 就目前的形势看,一家公司的运维体系不承载在 Do ...

  6. 大揭秘| 我司项目组Gitlab Flow && DevOps流程

    长话短说,本文全景呈现我司项目组gitlab flow && devops Git Flow定义了一个项目发布的分支模型,为管理具有预定发布周期的大型项目提供了一个健壮的框架. Dev ...

  7. 基于SVN的项目管理——集中与分散

    我们在此处不讨论 GIT 比 SVN 好多少,也不讨论 Maven 和 Gradle 哪个好用,基于现有的开发环境,大多数公司还是采用 SVN + Maven 来进行项目管理——因为这已经满足了大多数 ...

  8. 基于web的项目管理软件Redmine

    Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来, 支持多种数据库,有不少自己独特的功能,例如提供wiki ...

  9. 基于GitLab的Code Review教程

    一.前言 1.本文主要内容 GitLab Code Review机制说明 Git Workflow 与 Git Code Review Workflow GitLab Code Review 配置说明 ...

随机推荐

  1. 【转】主成分分析(PCA)

    原文网址:https://blog.csdn.net/sunshine_in_moon/article/details/51513880.转载主要方便随时可以查看,如有版权要求请及时联系. 相信大家对 ...

  2. 关于string【】 数组 进行 toString() 之后无法将数组的内容连接起来组合成 string 字符串 的问题

    string[] to string 如果直接对一个string[] 数组进行 tostring()的操作,得到的值都是 system.string[] 如果想要将 string[] 数组内容转换为一 ...

  3. docker轻量级监控-sysdig

    sysdig Sysdig = system(系统)+dig(挖掘).Sysdig 是一个开源系统发掘工具,用于系统级别的勘察和排障,可以把它看作一系列Linux系统工具的组合,主要包括: strac ...

  4. Docker 搭建nexus私服

    一.概述 有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:Apache基金会的Archiva.JFrog的Artifactory和Sonatype的Nexus.而Nexus是当前最流行的M ...

  5. Win命令行切换Python版本

    目录 安装2.x 和 3.x 的python 设置系统环境变量 pip的使用 参考 安装2.x 和 3.x 的python 我这里使用anaconda来安装两个版本的python包. conda cr ...

  6. 爬虫必知必会(3)_requests模块高级

    一.爬虫爬取失败的几个原因 1.在短时间内向网站发起了一个高频的请求 解决办法:使用代理 2.连接池(http)中的资源被耗尽 解决办法:立即将请求断开:Connection:close 3.高清图片 ...

  7. slickgrid ( nsunleo-slickgrid ) 3 修正区域选择不能跨冻结列的问题

     slickgrid ( nsunleo-slickgrid ) 3 修正区域选择不能跨冻结列的问题 上次解决区域选择不能跨冻结列问题的时候,剩了个尾巴,从右往左选择的时候,会出现选择不正常的情况,后 ...

  8. Codeforces Round #558 B2. Cat Party (Hard Edition)

    题面: 传送门 题目描述: 题意:确定最大的x,使去除掉前x天的其中一天后,所有不同数字的数量相等.   题目分析: 可能是我太久没打cf了,水题都做不出来. 这道题的关键在于:要记录相同数量,的不同 ...

  9. Go语言中利用append巧妙的删除slice切片中的元素

    package main import ( "fmt" ) //删除函数 func remove(s []string, i int) []string { return appe ...

  10. C# 获取网页信息

    获取网页源码 ///通过HttpWebResponse public string GetUrlHtml(string url) { string strHtml = string.Empty; Ht ...