“敏捷” 是指能够驾驭变化,保持组织竞争优势的一种能力。自 2001 年《敏捷宣言》以来,敏捷及敏捷开发理念逐渐席卷全球。中国信通院《中国 DevOps 现状调查报告(2022)》显示,近 90% 的企业已在不同程度上实践敏捷开发,53.4% 的企业认为敏捷改变了团队人员开发模式,对研发效能提到了积极影响。
应用敏捷开发的组织相比传统组织,具备明显业务优势:
1. 快速交付价值:快速、持续向用户交付有价值的软件产品,赢得市场先机;
2. 灵活响应变化:凭借交付时间短、迭代速度快,有效应对市场变化,降低不确定因素带来的风险。
在当今多变的市场和竞争中,敏捷开发已经成为精英效能组织的制胜之道。
根据 Gartner 2022 年发布的企业敏捷计划工具魔力象限显示,GitLab(极狐GitLab 是 GitLab 在中国的发行版本,具有和 GitLab 同等的功能,同时兼具众多适合中国本土用户的特色功能)位于挑战者象限。这足以说明 GitLab/极狐GitLab 敏捷项目管理成熟度,其完全能够支撑企业落地敏捷项目管理。(下文均以极狐GitLab 来展示敏捷管理相关功能)
极狐GitLab 敏捷开发项目有一套独特的术语体系,一切以议题(Issue)为核心展开,与基础敏捷开发术语的对应关系如下图:
图中功能基本工作流程如下:
➤ 用户故事 → 议题
➤ 任务 →(议题)任务
任务表示将用户故事进一步分解成各子任务。
➤ 史诗 → 史诗(群组)
史诗表示由多个功能组成的更大的用户功能或流程。
➤ 产品待办事项(Backlog) → 议题列表 + 标签
➤ 冲刺(Sprint) → 里程碑
➤ 估点 → 权重
➤ 敏捷看板 → 议题看板
➤ 燃尽图 → 极狐 GitLab 燃尽图 + 燃起图
燃尽图是一种表示剩余工作量的工作图表。
以上是极狐GitLab 对应敏捷开发的基础概念,在满足基础敏捷框架的同时,也发展了许多灵活变通的实践思路,希望极狐GitLab 的敏捷开发逻辑,能切实融入团队与企业的敏捷开发流程中。
极狐 GitLab 敏捷项目管理功能是极狐 GitLab 一体化 DevOps 平台重要功能之一,经过众多用户实践,总结出五大优势:
极狐 GitLab 敏捷项目管理功能和源代码托管、CI/CD、安全防护等功能在同一个平台上,如上图所示:
当产生第三方需求并以 Issue 形式创建时,可同时创建 Merge Request,后续代码变更在此 Merge Request 上进行;
一旦有代码提交,就会触发 CI/CD,完成从构建、测试、安全扫描到部署整个流程,从而完成 Issue 和 Merge Request 的一一关联。
这个流程意味着在同一平台上实现了项目管理、源代码托管以及 CI/CD 等,打通了各个环节的数据流。并且,所有人员在同一个平台上进行协作,能够显著降低沟通成本、提升研发效率。
极狐 GitLab 敏捷项目管理以 Issue 为基本操作单元,并且 Issue 创建非常方便。
在极狐 GitLab 创建 Issue 时,可选择「模版」创建来减少创建相似 Issue 的重复工作;此外,还可以在创建 Issue 的同时,完成以下工作:
当然,最重要的是可以在 Issue 界面上直接创建 Merge Request,然后基于这个 Merge Request 来进行代码开发。
同一平台环境中的丝滑协作,大幅提升需求管理方和研发人员的体验。
极狐 GitLab 上,需求管理(Issue)和代码变更(Merge Request)一一关联,而且所有变更,包括需求的来回沟通(Issue 中以 comment 的形式)、代码变更、审核、准入、安全扫描等都可以看到详细修改情况,如修改人员、修改范围、修改时间等。所见即所得,一切有迹可查,方便追溯,最终让安全审计变得更加容易。
极狐GitLab 团队就是使用极狐GitLab 项目管理来进行极狐GitLab 自身的敏捷迭代开发,做到了每月一个大版本发布。
这些研发成果已经沉淀为敏捷项目管理最佳实践,诸如 Issue 创建和使用,Epic 和 Issue 关联,燃起图/燃尽图使用等,任何团队都可以通过学习这些最佳实践,快速上手和落地极狐GitLab 敏捷项目管理功能。
极狐GitLab 私有化部署版本(Self-managed Version)会在每个月月底固定发布最新版本,SaaS 版则是不定期上线新功能,做到功能开发测试完成即快速部署上线。
同时,极狐(GitLab) 是一家全员远程办公的公司,在自身实践中始终贯彻了敏捷开发的理念,并不是照搬所有敏捷开发方法论,而是结合了自身远程办公模式的特点发展出来的,在工作流程上较为轻量灵活,并且也在不断迭代中。
下面就具体介绍一下极狐GitLab 的敏捷开发流程。
极狐GitLab 是月度发版机制,每个月 28 号推出新的 Release。因此,在项目管理过程中,以一个月为时间周期,用 Milestone 进行需求的管理。
极狐 GitLab 研发团队会在 Milestone plan meeting 上进行 Issue 分发和认领。
研发人员根据自身所在的团队和负责模块进行 Issue 的主动认领;
认领完成后,进行 Issue 进一步确认,参与人包括产品经理,测试和研发人员,讨论诸如 Issue 详情是否描述清楚、是否需要进一步的拆分(拆分成更小的 Task)、Label 标注是否正确、Milestone 关联是否正确等;
信息明确后,进行 Story Point 估算,并将估算值填写到 Issue 的 Weight 中。
以上流程完成,即可认为研发人员认领 Issue 成功。
Milestone 正式开始后,研发根据自己认领的 Issue 进行研发,在 Issue 页面上创建 Merge Request,并基于此 Merge Request 进行后续代码编写、提交。整个完成了需求(Issue)和代码变更(Merge Request)一一关联。
代码提交之后会触发 CI/CD Pipeline,需要确保提交的代码是经过 CI/CD Pipeline 流程验证的,比如代码风格检查、编译、测试、安全扫描等。如果有问题就需要及时进行修复,直到 CI/CD Pipeline 运行成功。
同时,每一个 Merge Request 都指派了对应的 Code Reviewer,只有相应 Code Reviewer 对代码变更进行 Review 并审批以后,才可由 Maintainer 将 Merge Request 合并到主分支。
Milestone 结束后,团队召开 Milestone Retrospective Meeting,对于上个 Milestone 的研发情况进行回顾,总结做得好的地方,复盘有缺失的地方。整个过程可使用极狐 GitLab 燃尽图/燃起图,如下图:
此外,还可以配置极狐GitLab 专属的效能管理功能,查看对应的数据:
另外,极狐GitLab 研发团队还在使用极狐GitLab 自行研发的研发效能产品进行效能度量,在每月一次的 retro 会议中回顾团队整体绩效,如查看项目的新增提交、新增合并请求、成功流水线次数、项目活跃度等关键数据,拉齐团队宏观认知。
以「持续集成流水线」和「合并请求」为例:
通过「持续集成流水线」运行情况,衡量团队 CI/CD 能力。
极狐GitLab 任何代码修改都要经过代码审查才能合并进入主干分支,通过「合并请求」度量,可以看到「平均评审时长」和「平均评审人数」,督促团队坚持代码评审,提升代码质量。另外,从「平均开发时长」也能看出开发人员对开发任务的切分是否合理。
正是在这样的敏捷开发流程下,极狐GitLab 能够保持月度发版,诞生至今已连续发行 23 个版本。
朝着更卓越、更贴合用户需求的极狐GitLab 不断进化的同时,我们也在帮助越来越多的来自千行百业的客户落地敏捷开发,成就精英效能组织。