• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

什么是敏捷团队分支策略

如今,几乎所有版本控制系统都支持分支,即源于一个中央代码库的独立工作线。根据您的版本控制系统,主分支可能被称为主线、默认分支或主干。开发人员可以从主代码行创建自己的分支,并在分支上独立开展工作。

为什么要在分支上花心思?

分支允许开发人员团队在一个中央代码库中轻松协作。开发人员创建分支时,版本控制系统将在该时间点创建代码库的副本。对分支的更改不会影响团队中的其他开发人员的工作。显然,这是一件好事,因为正在开发的功能可能会造成不稳定性,如果所有工作都在主代码行上进行,那会造成很大的干扰。目前,开发人员无需将分支放置于单独隔离的环境中也可以轻松地从其他开发人员那里提取更改代码,以协作完成开发功能的开发,并确保他们的私有分支不会与主分支相差太远。

Tips:

分支不仅有利于功能工作,还可以使团队免受重要的架构更改(如更新框架、通用库等)的影响。

敏捷团队的三种分支策略

分支模型通常因团队而异,并且软件界对此一直争论不休。其中一个大的争议主题是在合并回主分支之前应该在分支中保留多少工作。

发布分支

发布分支是指发布完全包含在分支中的想法。这意味着在开发周期的后期,研发负责人将从主分支(例如“1.1 开发分支”)创建一个分支。1.1 版本的所有更改都需要应用两次:一次应用于 1.1 分支,然后应用到主代码行。使用两个分支对团队来说是额外的工作,很容易忘记合并到两个分支。发布分支可能操作不便且难以管理,因为很多人在同一个分支上工作。我们都经历过不得不在一个分支上合并许多不同更改的痛苦。如果您必须创建发布分支,请尽可能接近实际发布版本创建分支。

Tips:

发布分支是支持市场上版本化软件的重要组成部分。单个产品可能有多个发布分支(例如 1.1、1.2、2.0)来支持持续开发。请记住,早期版本(即 1.1)中的更改可能需要合并到更高版本的分支(即 1.2、2.0)中。请查看下方的在线研讨会,详细了解如何使用 Git 管理发布分支。

功能分支

功能分支通常与功能标记相结合,即在产品中启用或禁用功能的“开关”。这样可以轻松将代码部署到主分支中并控制该功能的激活时间,从而在功能向最终用户公开之前就能轻松初始部署代码。

Tips:

功能标记的另一个好处是,代码可以保留在内部版本中,但在开发期间处于非活动状态。如果启用该功能时出现问题,系统管理员可以恢复功能标志并恢复到已知的良好状态,而不必部署新版本。

任务分支

在 PingCode,我们专注于按任务创建分支的工作流。每个组织都有一种自然的方式,可以在事务跟踪器中分解单个任务的工作。然后,事务将成为团队该工作的联系中心。任务分支,也称为事务分支,直接将这些事务与源代码联系起来。每个事务都在自己的分支上实现,分支名称中包含事务密钥。我们可以很容易看出哪个代码实现了哪个事务:只需在分支名称中查找事务密钥即可。有了这种透明度,可以更轻松地将特定更改应用于主分支或任何不再运行的旧发布分支。

由于敏捷开发用户故事为中心,因此任务分支与敏捷开发在协作上配合得很好。每个用户故事(或缺陷修复)都存在于自己的分支中,因此可以轻松查看哪些事务正在进行中,哪些已准备好发布。

分支的对立:合并

我们都经历过尝试将多个分支整合到一个合理的解决方案中的痛苦。传统上,像 Subversion 这样的集中式版本控制系统使合并成为一项非常困难的操作。但是,Git 和 Mercurial 等较新的版本控制系统采用了不同的方法来跟踪位于不同分支上的文件版本。

通过 Git,可以使合并变得非常轻松,让我们能够充分利用分支工作流。

分支往往较为短暂,因此更容易合并,并且在整个代码库中更加灵活。在作为持续集成 (CI) 的一部分经常自动合并分支的能力与短期分支仅包含较少更改这一事实之间,对于使用 Git 和 Mercurial 的团队来说,“合并地狱”已成为过去。

这就是任务分支如此出色的原因!

验证

版本控制系统只能影响合并结果。自动化测试和持续集成也至关重要。大多数 CI 服务器可以自动对新分支进行测试,从而大大减少上游最终合并时的“意外”次数,并有助于保持主代码行的稳定。

除了策略以外,敏捷团队也需要一些优异的管理工具来提升团队的效率。

推荐阅读

1. PingCode 一站式软件研发项目管理工具,覆盖软件研发项目全流程。2021年入选36氪项目管理软件金榜-研发项目管理榜单 前二;适用于十几人到千人规模的的团队。知名客户包括小红书、商汤科技等;支持私有部署、麒麟鲲鹏等国产系统。【官方地址:https://sc.pingcode.com/lhb05】

2. Worktile  :是国内市场占有率非常高的项目管理软件之一。被广泛用于电商、市场活动、律所项目、生产制造、行政、财务、设计、工程、教育、科研等几乎包含所有类型的项目。并且有许多知名客户,比如百度、招商银行、小米、旷世等等。【官方地址:https://sc.pingcode.com/v57ep】

3.Tapd:TAPD 是 Tencent Agile Product Development 的缩写,即:腾讯敏捷产品研发,是互联网高效协作专业实践,凝聚腾讯多年团队协作理念和敏捷研发精髓。TAPD 提供轻量协作、敏捷研发和 DevOps 持续交付三种解决方案。看板、文档、迭代计划/跟踪、产品需求规划、缺陷跟踪管理等丰富功能,帮助团队可视化工作进展、沉淀分享项目知识、提升团队协作效率。【官方地址:Tapd.cn】

4.Asana在全球也算是知名的项目管理软件,从用户数量来看,Asana绝对是一款相当受欢迎的工作管理和协作平台。并且它曾经被《财富》杂志评为最佳工作软件之一,并且有许多知名的客户,如NASA, Uber, Spotify等。【官方地址:Asana.com】

5.Jira:全球最早的软件研发过程管理工具之一,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。但近些年对国内用户的政策并不友好,特别是停售 Server 版,一定程度意味着对国内中小企业禁售。【官方地址:Atalassian.com】

相关文章