基于Gitlab进行开发团队管理的尝试——02.成员负载可视化
What
通过图表直观展示团队成员工作负载、贡献、以及项目进度等信息
核心目的: 细化工作量, 通过可量化、可追踪的方式, 把控项目进度
效果如下:
高价值指标包括:
- 成员当前issue数量
- 当前版本项目issue进度及分布
- 成员参与issue数量
- bug数量趋势
Why
- 通过燃尽图追踪项目进度及任务pipeline分布, 实时掌握项目进度, 降低延期风险
- 展示成员负载, 方便high-level协调调度开发资源
- 量化成员工作贡献
- 分析项目质量趋势及问题分布
How
- 定时轮询
gitlab
相关项目的issue
列表并持久化。- 为了减少工作量, 直接存储json字段, 查询时解析
- 通过
metabase
展示数据指标图表
问题1: 一个issue经过多人开发(前端+后端), 工作量如何计算?
通过成员参与过的issue进行计算, 可以做到相对准确
DB结构定义
1 | CREATE TABLE if not exists `issue` |
参考指标SQL
- 显示json字段中的中文, 需要通过
->>
, 如issue.assignee->>'$.name'
- metabase 可以通过
{{param}}
指定参数变量, 如milestone->> '$.title'= {{milestone}}
1. 成员参与工作量
1 | SELECT `participant`.`name` AS `name`, count(*) AS `count` |
2. 成员当前工作量
1 | SELECT `issue`.`assignee`->>'$.name' as `owner`, count(*) AS `count` |
3. 当前版本进度
1 | SELECT case |
小技巧
- 每个issue表示的工作量<2天, 耗时尽量统一
- 通过 00.通过issue管理需求 中对board及label的操作, 定义issue生命周期
- 未加入milestone的issue可以通过创建时间管理, 也可以加入默认时间milestone中