其他分享
首页 > 其他分享> > 8 年产品经验,我总结了这些持续高效研发实践经验 · 研发篇

8 年产品经验,我总结了这些持续高效研发实践经验 · 研发篇

作者:互联网

前言:在产研全链路流程上,协同最大的目标就是团队信息的透明化,即在清晰目标的指引下进行团队信息透明的日常研发工作,助力项目/产品成功发布。基于此,研发过程是否行之有效就成为我们关注的另一重点要素。通常「研发过程」是指:代码到制品再到部署上线的全链路,这个过程是持续集成的重中之重。


本期主要围绕「研发过程」展开探讨,在具体分享实践之前,笔者想先和大家畅想讨论下,在软件研发全流程中,我们需要怎样的产品特性来支撑我们持续去追求高效研发(本期主要围绕成本、效能,质量这块后续单独再做分析)的目标,个人思考了几点内容(部分内容会在正文的实践分享中详细说明),在此抛个砖让欢迎大家一起探讨。

思考一 支持团队把实践和文化通过自定义配置方式沉淀。

1.png

所有团队成员在使用产品功能的过程中,会潜移默化按照团队希望的实践路线进行。一方面,团队的研发是按既定路线进行的,研发效能是可预期的;另一方面,团队新人也能快速融入到团队开发模式中,快速融入团队文化。

思考二 在软件研发全链路中,应该具备高度自动化的能力。

研发全链路工作流中的各节点,通过高度自动化的能力,能实现以下目标:

思考三 强大且丰富的端能力。

让研发成员能够在本地沉浸式开发,目标要做到不感知 DevOps 平台存在的情况下,无时无刻不在使用平台能力。

思考四 产品能力和形态应该能够高度自定义化。

想通过一种产品形态去支撑覆盖所有的行业是不现实的,一个 DevOps 平台研发团队,不可能深入了解熟悉各行各业的研发模式,更不可能去定义实践去引领所有行业的研发提效。平台能做和需要做的是:把平台底层基础能力做强、做灵活,让不同业领导者,在高效持续交付的理论引导下,利用平台丰富的基础能力和高度自定义配置能力,去构建属于自己行业的研发实践模式,最终通过行业研发实践模式沉淀模版的可复制化,助力该行业整体研发效能的提升。

思考五 平台需要深度结合低代码开发平台,让应用研发变得更简单。

思考六 借助 AI 的能力,辅助提升用户代码开发、质量、安全、问题定位等应用研发过程效能。

思考七 结合大数据、AI、函数计算等技术特性,让研发效能度量、运维监控等观测能力变得更强大。

言归正传,接下来我将主要从「研发全链路」出发,分享一下 Erda 团队具体的实践过程,希望能给大家带来新的思考。

基于主干的开发模式

在研发模式方面,Erda 团队采用的是基于主干开发模式(Trunk Based Development),相对于主干开发模式还有特性分支开发模式(Feature Branch Development),其典型的代表就是 gitflow 模式。两者都是软件届常用的软件分支模式,各自有着各自的优缺点,选择适合自己的才是最重要的。Erda 团队选择基于主干开发模式的初衷,是想以持续集成的方式尽快发布版本,以及希望通过主干开发模式促成团队成为精英绩效团队。

2.png

Erda 团队基于主干开发的目标:

为了让团队通过主干开发模式来实现上述的目标,有两个实践要点非常重要:

  1. 项目协同的高要求:任务拆分(参考迭代事项协同中的任务颗粒度建议,尽量拆分到 1-2 天)需要足够小驱动 mr 变小,从而能从项目管理上支持产品特性快速实现验证和试错;
  2. 研发质量的高要求:特性开发的快,不能是牺牲质量的快,所以在这个快的前提下,对于合入的特性代码要求就会变的更高,这里的关键就是开发需要确保代码质量,不要想着把质量交给测试团队来保障 (建设自动化流程对规则、标准、规范进行自动检查;单元测试;数据库规范等等)。

实践要点分析后,接下来一起看看具体的实践步骤以及需要怎样的 DevOps 平台工具来支撑。

基于主干分支的代码研发

通过项目协同把需求进行任务拆分,研发同学认领任务后即进入开发工作,开发的首要工作就是创建一个特性分支(Feature/ 任务 ID)用于该特性的代码托管。OK,对于团队新成员来说可能开工第一步问题就来了

标签:高效,实践经验,研发,特性,测试,团队,Erda,分支
来源: https://www.cnblogs.com/erda/p/16517961.html