产品版本管理

背景

后续各产品都会更强调平台属性,大部分二位版本迭代的功能都将是平台级功能。因此,二位版本的迭代不太可能以双周这种形式来发布一个大版本,肯定是以2~3个月为周期的迭代。

目的

  1. 核心功能按传统软件的方式,以瀑布模型方式迭代。
  2. 客户反馈或内部提出的紧急需求支持按敏捷开发方式迭代。
  3. 提升产品质量。

版本号定义 

其中,第一、二、三位版本号为主版本号,客户可见。第四位是 build号,对客户不可见。

第一位版本号

  • 意义:第1位升级+1(后续统称为升级),意味着公司产品战略升级
  • 需求范围:需求由公司战略层确定,基于公司战略进行拆解。
  • 递增规则:基于公司产品战略层面的定义,第一位版本号从 0 递增。

第二位版本号

  • 意义:第2位升级,意味着该版本含有可以提升客户价值和产品能力的重要功能,具备全量升级交付的潜力
  • 需求范围:需求来自市场需求调研、竞品分析、以及销售/交付侧等反馈的问题。以提升客户价值和产品能力为目标,通过产品规划和决策明确需求边界。需求范围由产品经理确定。
  • 交付标准:需要对客户交付。LTS 版本需要对所有客户交付。
  • 递增规则:按功能预先制定,第二位版本号从 0 递增。
  • 发布周期:期待每三个月发布一版
  • 分支管理:有其特定的 release、test 和 bugfix 分支。

需求范围确定要求:

  • 需要产品经理准备好至少3个月的产品规划,并且对重点产品feature落地的时间点有到周的安排。

第三位版本号

  • 意义:第3位升级,意味着该版本有满足部分客户的需求,具备针对部分客户升级交付的能力。
  • 需求范围:需求来自2 位版本产品规划中重点功能特性的计划安排,以及客户临时反馈的问题。以按期落地产品功能和响应客户临时反馈需求为目标,通过产品项目决策明确项目需求范围。需求范围由 PM 、RD 和 QA 一起确定。
  • 交付标准:给需要的客户交付;其他客户不交付。
  • 递增规则:按迭代发版,第三位版本号从 0 递增。
  • 发布周期:Alpha 阶段客户升级时发版;Beta 阶段双周迭代有新功能时发版
  • 分支管理:历史版本无固定分支;最新版有开发分支。

需求范围确定原则

  1. 迭代需求确定后,新来需求默认作为下个迭代的需求池;
  2. 确定的 P0 需求,可临时插入迭代;
  3. 影响客户体验的新功能要支持灰度发布。

成熟的二位版本上发布新功能

  1. 原则:尽量不再成熟版本中增加新功能。
  2. 标准:
    1. 1)下个版本是否对外发布。未发布时,可在成熟版本中增加新功能。
    2. 2)客户是否愿意使用下个版本(通常不成熟)。不能接受时,可在成熟版本上增加新功能。
  3. 需要有 PM、QA 和 RD 参与新功能的评估。
  4. 灰度功能:新功能若会影响客户体验,需增加灰度功能开关。灰度功能在下个版本中,要默认打开。
    1. 灰度功能必须做技术方案评审。

第四位 build 号

  • 意义:该版本号是修复 bug 和重要功能缺陷的(即绿色通道的)版本,可以立即升级发布
  • 需求范围:需求来自于客户或内部反馈的 bug 及功能缺陷。需求范围由 RD 和 QA 确定。 
  • 交付标准:不需要对客户交付。
  • 递增规则:每次打包时递增,在小版本内从 0 递增。
  • 发布周期:一般每周发布两版

升级规则

  1. 第1\2位版本号(主版本号)变更只能进行中版本升级
  2. 主版本号及三位版本号判断大小关系只能向前升级,不能降级
  3. 第3位版本号升级不允许变更依赖关系,不允许增加减少模块,不允许修改modules.yml,不允许执行自定义升级脚本,不允许创建资源
  4. 第4位版本号(Build号)变更只能进行小版本升级,Build号不判断大小关系,可指定任意版本覆盖升级

版本成熟度 

在第二位版本号上定义版本的生命周期。

 

Alpha 阶段

  1. 意义:内部测试阶段。此阶段会发布重要功能,会在公司大群发布通知,进行内部试用。
  2. 生成:新的中版本生成后,标记 alpha 阶段。
  3. 客户升级:可供客户使用(客户可用,但有风险)
    • 在客户要求的情况下为其升级:Alpha 状态客户体验时,将 PM、QA、RD 拉到客户群中,进行客户服务;
    • 重要功能可找种子客户试用:重要功能完成后,需要做功能交付。

备注:客户使用前需要做小范围产品兼容性测试。

Beta 阶段

  1. 意义:外部体验阶段。规划的重要功能已发布,此阶段主要是bugfix,可根据反馈、发布小功能。

  2. Alpha → Beta: 版本中规划的重要功能研发完成后,进入 Beta 状态。
  3. 客户升级:会主动推客户升级使用。
  4. 内部交付:转 Beta 阶段,需要 PM 向客户成功与分析师团队交付,小动物提供客户支持。

GM 阶段

  1. 意义:版本成熟阶段。仅做 bugfix,一般不增加新功能。
  2. Beta → GM:版本封版。版本中不再增加新功能。
  3. 客户升级:可大规模推广的版本。新客户优先升级 GM 版。

其他

  • Alpha → Beta → GM  是单向流程,不会回退。GM 阶段若新增功能后,版本仍然是 GM 状态,不会回退到 Beta。

长期维护(LTS)版本

  • 定义:会大规模推广的版本。在第二位版本号上提前规划。

  • 周期:每隔一个二位版本,发布一个 LTS 版本。周期约半年。
  • 升级:新的 LTS 版本发布后,原 LTS 版本客户会升级到新的 LTS 版本。

其他:产品研发团队只会维护一个 LTS 版本。

posted @ 2022-11-15 11:31  雾夜飞雨  阅读(723)  评论(0编辑  收藏  举报