在本专栏的前几篇文章中,我们探讨了Git Flow、GitHub Flow、GitLab Flow以及Trunk Based Development四种通用的分支管理流程参考模型,这些模型为日常工作中的分支管理提供了最佳实践。
然而,为了实现有效的分支管理,企业需要基于这些模型进一步形成更明确的分支管理规范。这些规范应包括分支模型定义、迭代交付、生产问题管理以及基于各分支的版本标识策略等。于是,在后续几篇中,我们分享了某一线互联网大厂的ToB方向、某独角兽级别的SaaS平台、两家新势力车企在内的行业分支管理实践。
本篇是对汽车行业和互联网行业(2B和2C业务)分支管理现状的总结,以及演进趋势的预测与洞察。
如果大家感觉这些内容对自己的工作还具有一定的借鉴意义,还请帮忙关注、点赞、转发,让更多的朋友能够了解。
汽车行业
-
交付模式:瀑布式、半敏捷
-
分支模型:贴近标准Git Flow
-
维护成本:较高
-
受硬件架构影响较大,普遍存在多平台分支,同时按车型设置发布分支,维护成本相对较高。
-
瀑布式交付模式下,若各阶段验证充分且代码质量有保证,则成本相对可控。
-
-
自动化水平:偏低
-
从调研的车企A和车企B的座舱应用研发流水线情况来看,自动化程度最高者也仅是实现了自动部署到台架,整体自动化程度偏低。
-
-
演进趋势:趋向于按平台组织研发。
互联网(TO B)
-
交付模式:大规模敏捷
-
分支模型:标准Git Flow
-
维护成本:较低
-
通过规模化敏捷设定每两周一个交付节奏,每周至少一个上线交付窗口,已建立起频繁交付节奏。
-
分支数量通常不超过6条,维护成本较低。
-
-
自动化水平:较高
-
某互联网大厂的QA体系已进行多年的测试左移,近年云基础设施逐步完善,正在持续推进自动化测试工具的建设,包括API First实践、针对线上环境的自动化压力测试、混沌工程等都在实践和推进中。
-
互联网(TO C)
-
交付模式:大规模敏捷(简化版)
-
分支模型:GitLab Flow与GitFlow的融合
-
维护成本:低
-
交付频繁,内部交付完全以用户为导向,频率极高。
-
通过Feature分支与研发联调环境绑定的方式减少了开发分支的需求。
-
-
自动化水平:高
-
调研的某SaaS平台已实现基于K8S的流量染色及多路复用技术,建立起了定时Cut分支到开发、测试、预发布及生产环境的全自动持续发布流水线。
-
-
演进趋势:分支与环境绑定,以制品为导向的交付,测试左移及质量内建。
总结
通过对汽车行业和互联网行业(2B和2C业务)的分支管理现状进行总结,我们可以看到各行业在分支管理上的不同特点和挑战。汽车行业受硬件架构影响较大,自动化水平较低,但在逐步趋向于按平台组织研发。互联网行业则在大规模敏捷的基础上,通过标准化分支模型和高效的自动化工具实现了频繁且高质量的交付。
未来,企业在分支管理上可以通过以下几点进一步优化:
- 提升自动化水平:引入更多高级自动化工具和测试覆盖率分析,优化测试流程,减少排查时间,提高测试效率。
- 明确同步和整合策略:简化跨分支的同步和整合过程,减少重复劳动和维护成本。
- 强化分支命名规范:确保分支命名的标准化和一致性,减少沟通成本。
- 推动敏捷方法:推广敏捷方法如Scrum或Kanban,明确迭代周期和计划,提高开发和交付效率。
- 加强跨团队协作:促进跨团队的协作和知识共享,确保最佳实践和经验得到充分利用和推广。
通过这些改进措施,企业可以进一步提升分支管理效率,推动在激烈的市场竞争中保持领先地位。