流程方法

识别稳态、敏态

2014 年,Gartner 提出了双模 IT 的理念,可预见性的业务使用的是传统瀑布式开发,也就是稳态;探索性的业务使用的是敏捷开发,也就是敏态。

稳态的项目,周期长、大开发、高风险,清晰具体的。

敏态的项目,需求不确定、快速响应,模糊方向性的。

目前,互联网项目大多更适合敏态项目。

互联网的项目迭代快,发版频繁,需求不断变化,

分支模型

  • 特征开发

每个小的功能,都新建一个特征分支进行开发。基于特征开发,能够保障各个特征的独立性,允许并行开发特征。同时,未完成的特征,也不会影响主干分支。

  • 主干集成

尽可能早地将代码合并到主分支上,在主分支上进行持续集成。 假设每个迭代有 N 个功能,如果这些功能在同一天被合并到主干分支,交叉验证这些功能是否符合预期,需要的工作量是 N ^ 2 级别。但是,如果这些功能,开发自测完毕后,立即发起 MR/PR 流程,合并到主干分支。N 个功能,合并成本会下降到 N 级别。

尽可能早地发起合并请求,能将自己的修改,尽快地告知其他开发者。在开发过程中,其他开发者,就能解决大部分的冲突。

  • 分支发布

每次发布都新建一个分支,而不是发布主干分支。 假设现在需要发行 2.1 版本。首先,基于主干分支,创建发布分支 2.1,在 2.1 分支上进行测试,并将缺陷回归到主干分支。验收通过之后,在 2.1 分支上打上 Tag 2.1.0,对外进行发布。

发布之后,如果 Tag 2.1.0 版本有缺陷,需要在 2.1 分支上进行修复,然后回归缺陷到主干分支,打上 Tag 2.1.1,继续发行版本。

分支发布的好处,就是让发布的版本可以追溯,允许开发者对发行版本进行修复,持续发布。另一方面,发布分支不会影响新特性的开发,也不会被主干集成干扰。

测试决定了敏捷开发的速度

Scrum 迭代

Scrum 是一个用于开发和维持复杂产品的框架 ,是一个增量的、迭代的开发过程。整个开发被划分为若干个 Sprint,每个 Sprint 是 一到两周。

每个 Sprint 应该至少进行一次完整的发布,完成预期的功能。

具体到细节,会有以下具体步骤:

  • 每次迭代开展会议,明确范围、目标
  • 通过看板实时,展示进度
  • 每天站立会议,反馈困难,寻求帮助

results matching ""

    No results matching ""