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