写点什么

功能更新|虚拟项目——效能度量中的数据胶水

  • 2025-03-17
    北京
  • 本文字数:2479 字

    阅读完需:约 8 分钟

功能更新|虚拟项目——效能度量中的数据胶水


在思码逸切身服务了几十家客户,历经血与泪的教训,不得不承认效能度量领域没有“一招鲜”,有的只有不断创新迭代,以解决层出不穷的新问题。最近一两年,我们频频被同一类场景困扰:

  • 新组建的临时项目涉及多个代码模块的开发,进度怎么统一管理?

  • 公共模块代码被 5 个项目引用,代码工作量如何划分到各项目上?

  • 项目按分支进行版本管理,如何度量各版本工作量?

想问问大家,遇到这类问题的第一反应是什么?是不是先写 SQL 拉分支数据再用函数做筛选?想象一下,假设 1 个“项目”涉及 10 个代码库,1 个代码库包含 10 个分支。每增加一个“项目”都需要单独维护一套这样的流程,再加上要处理代码和任务看板的关系以及配置变动后的维护。得,负责写 SQL 的同学天塌了。

“虚拟项目”应运而生

思码逸是专业做效能度量的,自然不会用这样低效的方式应对客户问题。于是在一年前我们推出了“虚拟项目”功能,并在持续服务客户的过程中做了多轮迭代和优化。

恰如其名,虚拟项目是根据度量需求灵活定义出来的项目形式,可以脱离代码库和需求管理工具的限制,从管理视角对效能数据进行重新组合。它能像“数据胶水”一样,把分散在不同工具的任务、代码数据粘在一起,按用户的需求自定义项目范围,统一算清楚贡献、进度和效率。

简单来说,“虚拟项目”的主要使用场景有这几类:

  • 跨团队协作:为临时项目快速配置虚拟项目,关联多个代码库和任务看板,统一管理进度。

  • 公共库贡献拆分:通过提交标签拆分共享库在各项目中的实际贡献。

  • 迭代工作量统计:利用分支级数据统计迭代版本开发工作量。

我们做了什么?

做过效能度量的同学都知道,在实际操作中,项目数据四散各处,例如项目管理用的是 Jira、开发管理用的是 Gitlab,这时业务定义的项目与代码库往往不是一一对应关系,一个项目会依赖多个代码库的技术模块进行开发。

这时要想做度量,就要跨项目、跨代码仓甚至跨分支进行数据提取,遇到开发者、项目、代码库都是多对多的关系时,如何从数据角度重新定义一个项目更让人头疼。

而虚拟项目的核心正在于打破组织结构的限制,为此我们做了如下设计:

  • 统一数据存取,不必在开发工具上做额外配置:为避免冗杂,我们在进行数据库设计时并没有为虚拟项目增加新表,而是在原有数据表上增加了虚拟项目筛选标签,以支持用户通过查询方式从原始表中提取数据,按照项目-任务-代码-成员建立关联关系。

  • 在保证灵活性的同时最大程度提高 SQL 执行效率:项目度量的复杂来源于对数据的多条件筛选要求,为此专门增加 5 张配置表用于存储虚拟项目配置信息,将复杂的项目关系转化为筛选条件进行存储。

  • 降低用户使用门槛,无须关心底层实现过程:从业务角度提供简洁的操作界面,用户仅需考虑业务逻辑进行配置即可快速定义“项目”,聚合出所需的项目报表。

如何上手虚拟项目?

下面我们来看一个实例:双十一临近,公司要从各研发团队里抽调精英组建“攻艰团队”,工作内容涉及到了多个系统模块的开发和维护,工程师李旺被临时抽调到该项目担任项目经理,需要全程观测项目进行过程中的效能数据用于团队管理。

第 1 步:创建虚拟项目

  • 入口:进入系统【设置】-【项目设置】,点击“新增虚拟项目”。

  • 填基本信息:给项目其名,比如“双十一临时项目”,并进行简单描述。

第 2 步:关联数据源

  • 选择代码库:从已导入的 GitLab/GitHub 仓库中勾选本次项目涉及的代码仓库,通过分支和提交标签进行二次筛选。注意,新仓库需要提前添加到【代码库管理】中。

  • 选择度量成员:选择“双十一开发团队”所有成员,仅关注团队内成员的代码数据。

  • 关联任务看板:使用 Jira 作为数据源,选择 S11 看板与 Jira 管理平台数据拉通。

  • 设置同步时间:设置每天中午 12 点更新项目最新数据(为每天下午的站会做准备)。

第 3 步:配置数据权限

  • 成员范围:选择哪些成员可以查看该项目数据(这里我们选择项目经理“李旺”)。

  • 权限控制:设置哪些团队能查看该项目数据(默认仅管理员,这里我们开放给整个项管团队)。

第 4 步:查看项目报表

  • 预置看板:配置完成后我们到【Dashboards】-【虚拟项目看板】,使用看板即可持续跟踪项目最新状态。

  • 多视角效能观测:这里不仅能看到项目整体的需求和开发情况,成员每天的开发工作也看得一清二楚。管好项目的信心又增加了!

从上手到精通,你需要知道的事:

在上述实例中还有一些我们没来得及展示的“水面下”的特性,对玩转虚拟项目功能同样重要:

What's MORE:

  • 数据更新机制:每 5 分钟,系统后台会定时检查配置信息有无变化,以更新虚拟项目数据。同时任何代码库重新分析后,后台都会判断其是否属于虚拟项目,自动触发虚拟项目数据更新。

  • 数据保护机制:当依赖的代码库和账户被删除后,虚拟项目看板数据仍旧得以保留,不会造成配置工作浪费。当然,不想保留也可以手动删除 :)

  • “项目”最细颗粒度支持到分支及提交标签:支持按代码库/分支/提交标签多种方式进行数据筛选,满足不同企业多样化的“项目”定义方式。

What's NEXT:

  • 更灵活的权限管理:更细粒度的访问和编辑权限控制。

  • 跨项目对比:虚拟项目与传统项目的横向对比分析。

What's DON'T:

需要注意的是,在使用虚拟项目功能时,要按照业务目标来合理划定范围,避免过度聚合。也需要在项目失效后及时删除该“虚拟项目”,避免误解为仍需关注的项目。

他们也在用:

  1. 汇川技术:按分支查看当量,提升分析效率

相比之前手动拉取数据的方式,虚拟项目大幅提升了数据整合和分析效率,帮助我们更精准地评估研发产出。

  1. 蔚来汽车:灵活管理临时项目

虚拟项目的灵活结构完美适配了临时项目、攻坚项目的特殊需求,为团队的高效交付提供了有力支持。

  1. 沃尔沃:多对多关系的高效处理

虚拟项目帮助我们解决了项目与看板多对多的复杂关系,实现了项目结构和数据的自由组织,使得我们能更高效地管理大型项目。

当持续变化成为唯一不变的事情,临时项目,也就是本文提到的“虚拟项目”会愈发频繁地出现在各个组织中,而与之对应的便是如何快速、轻量且精准地度量。虚拟项目功能在上线一年后已经在多家企业投入使用,如果您也有类似的“看数”需求,可以联系我们的商务同事沟通使用细节。扫描下方二维码,添加客服即可获得 1v1 咨询服务。


点击试用 DevInsight,即刻获赠资料大礼包

开启更加丝滑的度量之旅!

用户头像

数据分析驱动研发效能 2022-04-12 加入

思码逸研发效能分析平台,致力于帮助研发团队解决效率、质量和人才三大痛点,提升研发效率与软件工程质量,助力每一位开发者创造更多价值。

评论

发布
暂无评论
功能更新|虚拟项目——效能度量中的数据胶水_研发效能_思码逸研发效能_InfoQ写作社区