软件研发过程中,项目管理工具应该如何选择?

本文作者:极狐GitLab 资深解决方案架构师 尹学峰

许多企业依旧在用老旧的方式,如Excel离线表格进行项目管理。表格无法简介的呈现出项目的任务分解、完成进度、任务类别等多种项目管理过程中必备的要求,更无法实现与企业员工的日常即时通信系统的打通。往往导致项目管理与项目实际情况相去甚远。

为此,诞生了许多专业的项目管理软件。不同行业类型、不同的技术水平适用于不同的项目管理软件。

不同行业的倾向性

通用型传统行业

建议使用Jira、Ones、PingCode、禅道、Redmine、TAPD、Polarion等工具。其中Jira是目前较为主流的项目管理工具,用户基础众多,遗憾的是,Jira目前在国内没有技术支持团队,选用Jira需要承担较大的运维风险。而后者皆为国产的商业化项目管理软件,可以很好的替代Jira。这几款工具的典型视图如下:

图示:Jira典型视图

图示:Ones典型视图

图示:PingCode典型视图

图示:禅道典型视图

图示:TAPD典型视图

通用型高新技术行业

如果企业内项目管理人员大部分具有开发背景,且项目分解后的工作内容主要为由程序员进行代码编写工作完成的话,那么建议使用极狐GitLab进行项目管理。项目管理与代码开发在同一个平台完成,进而可以直观、零延迟地反应项目真实进度。下面对如何使用极狐GitLab进行项目管理加以阐述:

极狐GitLab支持敏捷开发管理体系,它用群组、子群组和项目来分别对应项目、子项目和代码仓,通过epic、子 epic 和 issue 来对应原始需求的任务、子任务和具体开发工作,这是项目管理的第一步。

图示:极狐GitLab的敏捷开发管理体系

产品经理创建原始需求后,和研发人员一起细化需求,并基于 invest 原则拆分需求。首先明确所有需求,撰写具体的 user story。(注:参考epic实例 Browser-based scanner for DAST )

图示:史诗Epic 原始需求拆分与规划

撰写完成后,如果大家有其他意见,可以以评论的方式写在该 issue 下,然后进行讨论,直到需求明确。极狐GitLab 以 issue 驱动,即无论是开发的任务、开发的需求还是 bug 缺陷,一律都用 issue 进行管理。

图示:议题Issue 用户故事与人员指派

撰写完成后,如果大家有其他意见,可以以评论的方式写在该 issue 下,然后进行讨论,直到需求明确。极狐GitLab 以 issue 驱动,即无论是开发的任务、开发的需求还是 bug 缺陷,一律都用 issue 进行管理。

图示:议题Issue 用户故事与人员指派

随着组织发展,issue 会越来越多,极狐GitLab 以一种灵活的自定义方式去打上不同的 Label,来区分不同 issue。Lable 是多级式的,第一级是一个 type,它决定了该 issue 是一个 bug、功能还是 QA 等。当打上第一级 Label 后,还需要打上第二级甚至第三级,比如说这个 bug 是性能问题、安全问题,还是来自一个手机端等等,可以自由精准地定义 issue。

图示:标记Label 区分议题类型

有了 Label 区分还不够,对研发人员来说,需要一个视角去看这些 issue。研发团队可以通过看板的方式进行 issue 管理,看板其实就是不同视角的视图。企业内,研发团队、测试团队还有产品团队都应该有属于自己的看板。产品团队关心的是任务的分配,所以有一张以研发工程师为视角的看板,比如张三在做需求A,李四在做需求B,这些都有一张看板;此外还有一张工作流看板,展示需求进行到什么阶段。对于测试人员来说,只需要看到相关 bug,不需要管在做什么,当然也可能会看一下看板,可以根据不同团队的职责进行划分。

图示:看板Board 自定义议题视图

如果用户不清楚 issue 的提交方式,会导致 issue 管理困难。例如:

  • 当用户提交 issue 后,没有分配人员来跟进,那它就被搁置了;
  • 或者用户不清楚该打上什么样的标记,是 bug 还是功能,导致 issue 分类混乱。

使用triage 机器人可以轻松解决这些问题。当用户提交了一个 issue 后,这个行为被机器人捕获到,它会立即在这个 issue 下添加一条评论,并且发邮件告知创建人应该打上 type。当用户打上 type 后,机器人又会随机从测试人员中选择一位,把他加到这个 issue 的指派人里,跟进这个 issue。通过这种方式可以很好地把 issue 管理起来。

图示:机器人Triage 自动处理Issue/MR

在项目之初和完成之后,可以使用里程碑来对项目进行规划和回顾。以下图极狐GitLab 15.1 的燃尽图为例:

图示:里程碑Milestone 迭代规划与回顾

不过,这个燃尽图并不是理想的燃尽图,因为它并不贴合参考线。在整个迭代周期的第一周,研发人员开始处理需求的时候,会发现有些需求描述得不是很清楚,导致评估内容增加,或者说有一些新的需求会引进来,所以这个曲线在第一周的时候甚至有点上扬。前两周集中进行开发,这时并没有开始大规模测试,所以曲线比较平缓。两周后,主要功能都完成测试,开始介入大规模测试,这时又会发现一些 bug,所以曲线又有一些向上的波动。两、三周之后,这个曲线开始急剧下降。

汽车行业

当然,如果是汽车行业关注V模型,可以考虑MappingSpace这样的行业化工具,其针对汽车行业独创性的开发了很多行业化的工具,方便企业以更优雅的方式工作同时,也可以更方便的通过特定的行业认证。

图示:MappingSpace对V模型的支持示意

更多请阅读MappingSpace官方文档。

图示:MappingSpace对V模型的支持实际效果

总结

项目管理工具的使用并无绝对的排他性,在某些场景下搭配使用可以起到更好的效果。比如极狐GitLab的项目管理工具不能够满足一些特定的需求时,或者当参与项目管理的人员种非技术人员和程序员人数占比旗鼓相当时,此时面临的选择会有多种:

  • ❌ 迁就非技术人员。仅仅使用与代码管理孤立的项目管理工具(注:下图中蓝色部分),会导致项目管理和代码管理的严重割裂,即,项目管理视图下无法直接提现代码开发的工作进度。
  • ❌ 迁就程序员。仅仅使用极狐GitLab作为项目管理工具(注:下图中橙色部分),非技术人员使用门槛相对较高,甚至产生排斥心理。
  • ✅ 各取所长,互补共生。把项目管理中的不涉及代码开发工作的宏观需求放在独立的项目管理工具中,而与代码开发强相关的技术需求,则由极狐GitLab管理。

图示:典型的代码强相关开发过程记录

非技术人员无需知道技术实现细节,一般程序员也无需了解宏观的非技术内容。二者之间建立沟通的桥梁则由技术主管负责:

  • 根据橙色完成状态及时更新蓝色状态。
  • 根绝蓝色新需求,分解并创建技术实现。

图示:项目管理工具的互补共生

当然,第三方项目管理工具如Jira也可以与极狐GitLab集成。集成完成后,只要Commit Message或者MR Description中包含对应的Jira Issue ID,下图所示即为MKP-2,则会自动在Jira侧建立超链接。从而实现需求与开发过程的之间的映射。

图示:极狐GitLab与Jira集成效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/328070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一、ArcGIS Pro SDK for Microsoft .NET 开发环境配置

ArcGIS Pro二次开发需要的工具: 1.Visual Studio 2.ArcGIS Pro SDK 一、Visual Studio安装 经过查阅资料,ArcGIS Pro3.0版本需要安装Visual Studio2022版,因为只有22版的才会有有ArcGIS Pro3.0以上版对应ArcGIS Pro SDK,因此&…

多测师肖sir___ui自动化测试po框架(升级)

ui自动化测试po框架(升级) po框架 一、ui自动化po框架介绍 (1)PO是Page Object的缩写(pom模型) (2)业务流程与页面元素操作分离的模式,可以简单理解为每个页面下面都有一…

RK3399平台入门到精通系列讲解(硬件篇)常用的硬件工具介绍

🚀返回总目录 文章目录 一、万⽤表1.1、测量交流和直流电压1.2、测量交流和直流电流二、逻辑分析仪三、示波器作为⼀名嵌⼊式开发⼯程师,是有必要对各类常⽤的硬件⼯具有⼀定了解的,你可以不懂怎么使⽤它,但你必须知道它是什么,有什么⽤,在什么时候可以⽤得上。 一、万…

Nvidia-docker的基础使用方法

安装: 安装nvidia-docker: distribution$(. /etc/os-release;echo $ID$VERSION_ID)curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.l…

如何手写一个RPC?

在学习 RPC 框架之前,我们先来手写一个RPC。 我们在学习的过程中,一定要做到知其然,还要知其所以然。 架构演进 单体架构 要知道,在以前单体架构的时候,会将所有的应用功能都集中在一个服务当中。 单体架构初始开发…

LeetCode、2336. 无限集中的最小数字(中等,小顶堆)

文章目录 前言LeetCode、2336. 无限集中的最小数字题目链接及类型思路代码题解 前言 博主所有博客文件目录索引:博客目录索引(持续更新) LeetCode、2336. 无限集中的最小数字 题目链接及类型 题目链接:2336. 无限集中的最小数字 类型:数据…

推挽输出、开漏输出、上拉输入、下拉输入、浮空输入。

一、推挽输出 推挽输出的内部电路大概如上图中黄色部分,输出控制内有反相器,由一个P-MOS和一个N-MOS组合而成,同一时间只有一个管子能够进行导通。 当写入1时,经过反向器后为0,P-MOS导通,N-MOS截至&#xf…

软件需求规格说明书

软件需求规格说明书编写规范编写规范 1.项目背景 2.项目目标 3.系统架构 4.总体流程 5.名称解释 6.功能模块

如何编译openssl的早期版本的共享库,如openssl 1.0

背景介绍 最近在为客户排查问题的时候,发现客户提供的日志是加密的,解密工具依赖到了openssl 1.0的共享库。可是手头没有这么老版本的openssl共享库。因此只好手动编译一个出来。 编译步骤 因为openssl 1.0是比较老的版本,很多系统上的库已…

android 反编译工具使用

记录一下dex2jar和ByteCode viewer的使用。 下载dex2jar 官方地址是https://github.com/pxb1988/dex2jar,下载完成后解压到特定的目录中,然后将其配置到环境变量中。 export PATH"$PATH:/Users/dong/Documents/tool/dex2jar/dex2jar/dex-tools-v2…

解决SVN文件不显示绿色小钩图标问题

解决SVN文件不显示绿色小钩图标问题 1 相关知识1.1 SVN基础1.2 SVN有哪些优点和缺点 2 解决办法2.1 方法一:修改状态缓存设置2.2 方法二:修改注册表(好用) 1 相关知识 1.1 SVN基础 SVN是Subversion的缩写,是一个开放…

UVa1453/LA4728 Squares

题目链接 本题是2009年ICPC亚洲区域赛首尔赛区的F题 题意 给定平面上n个边平行于坐标轴的矩形,在它们的顶点中找出两个欧几里得距离最大的点。如下图所示,距离最大的是S1的左下角和S4的右上角。正方形可以重合或者交叉。 你的任务是输出这个最大…

P9852 [ICPC2021 Nanjing R] Windblume Festival 题解(SPJ)

[ICPC2021 Nanjing R] Windblume Festival 单击此处下载原神 题面翻译 给一个长度为 n n n 环形整数序列 a a a, 每次操作可以任意选择一个下标 x x x,令 $ a_x a_x - a_{(x\bmod n)1}$,之后移除 a ( x m o d n ) 1 a_{(x\bmod n)1} a(xmodn)1​…

【Linux】Linux 系统编程——which 命令

文章目录 1.命令概述2.命令格式3.常用选项4.相关描述5.参考示例 1.命令概述 which 命令用于定位执行文件的路径。当输入一个命令时,which 会在环境变量 PATH 所指定的路径中搜索每个目录,以查找指定的可执行文件。 2.命令格式 which [选项] 命令名3.常…

华为数通HCIA题库(750题)

完整题库在这里:华为数通HCIA-RS题库注释版-加水印.pdf资源-CSDN文库 此处只节选几题。 1.网络管理员在网络中捕获到了一个数据帧,其目的MAC地址是01-00-5E-AO-B1-C3。关于该MAC地址的说法正确的是( )。 A.它是一个单播MAC地址 B.它是一个广播…

【Shell编程练习】编写 shell 脚本,打印 9*9 乘法表

系列文章目录 输出Hello World 通过位置变量创建 Linux 系统账户及密码 监控内存和磁盘容量,小于给定值时报警 猜大小 输入三个数并进行升序排序 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态 系列文章目录编写 shell 脚本,打…

【OJ】链表刷题

个人主页 : zxctsclrjjjcph 文章封面来自:艺术家–贤海林 如有转载请先通知 题目 1. 相交链表(160)1.1 暴力求解1.1.1 分析1.1.2 代码实现 1.2 优化后求解1.2.1 分析1.2.2 代码实现 2. 随机链表的复制(138)…

个人网站制作 Part 7 添加用户认证和数据库集成 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 用户认证与数据库集成🔨添加用户认证🔧步骤 1: 使用Passport.js 🔨集成数据库🔧步骤 2: 使用MongoDB和Mongoose &#x1f…

48 分布式id的生成策略

1.UUID 1.UUID (Universally Unique Identifier),通用唯一识别码。UUID是基于当前时间、计数器(counter)和硬件标识(通常为无线网卡的MAC地址)等数据计算生成的。UUID由以下几部分的组合: 1.当前日期和时…

Apache Solr <= 8.8.1任意文件读取漏洞复现CVE-2019-17558

一、环境准备 搭建环境vulhub,需要提前安装docker环境 docker安装:docker--安装docker-ce-CSDN博客 vulhub地址:https://github.com/vulhub/vulhub #创建靶场环境 mkdir /opt/vulhub cd /opt/vulhub git https://github.com/vulhub/vulhu…