随着DevOps的不断推进和云原生技术的推广,工具链体系的自动化程度不断提高,导致越来越多的研发职责不断落到j9九游会老哥俱乐部app开发人员身上,开发人员面临认知负担不断增加的困境。
平台工程通过建设内部开发平台,为开发团队提供通用共享服务,实现开发人员服务能力自助,将完成日常任务遇到的阻力降到最低。
Gartner预测,到2026年,80%的软件工程组织将建立平台团队,其中75%将包含开发者自助服务门户。此外,在Gartner发布的2023年十大战略技术趋势中,平台工程也位列其中,足以见得平台工程的重要性。
中国工商银行软件开发中心作为金融领域软件研发的超大型团队,结合自身研发实践经验,我们认为平台工程作为整合各种工具链的粘合剂,以开发人员为中心,不仅为开发人员提供各种自助式服务,此外还避免开发人员需要不断掌握各种工具链才能完成研发工作。
在平台工程探索中,基于 让开发更简单 的思想,我们主要有以下思路。
通过对软件产品交付生命周期分析,聚焦常见问题,明确能力边界,避免平台功能无限扩散。同时,对每个能力域的工具链支撑体系进行合理抽象,根据研发团队软件研发场景,对工具链体系进行服务化改造,提供一站式场景化支撑能力。
践行 以客户为中心 的理念,从用户使用角度考虑平台功能的建设,为研发团队提供有效的工作流程和推荐路径,将使用平台工程的阻力降到最低。使研发团队能够基于内部平台快速开展工作。
一个平台的建设要有清晰明确的度量指标,但是在平台工程的建设中,建议度量指标体系不必过于复杂,例如可以聚焦对开发人员编码时长提升、编码过程中的中断次数减少、系统使用时长减少等指标。
过于复杂的指标体系可能导致平台工程师无所适从,无法聚焦于关键问题提供有效解决方案。
及时感知一线用户需求,定时收集和反馈研发团队意见,不断对平台功能进行迭代完善。同时通过培训、布道、运营等手段营造协同工作和分享的文化,及时将最新的平台功能和最佳实践推荐给研发团队。
基于上述探索思路,我们成立专门的研发团队开展平台工程实践,在实践初期,也对业界开源系统进行过调研分析。
但是作为大型软件研发团队,我们存在大量特色化的研发流程与质量内建要求,业界开源系统难以完全适配众多的工具链体系,所以我们最终采用根据自身研发流程实际,建设内部开发平台的方案。
根据开发人员研发流程活动,形成开发旅程地图,对每个研发流程涉及到的工具链能力进行抽象封装,聚焦提供设计、编码、单元测试、自测、提交部署一站式研发辅助能力,无需频繁切换不同支撑系统。
例如针对资产分散,通过数据爬虫、多平台资产聚合等措施,建设统一资产库,提供统一检索入口,实现一键触达效果。
此外,针对开发人员在接口设计、开发、测试、发布中存在流程割裂,难以保证接口设计到实现的一致性问题,我们建设接口一站式服务平台,将接口自动化编写效率提升1倍以上、接口编码效率提升30%。
同时,针对自测和环境运维中的类似问题,我们还提供自测一站式服务平台和环境运维一站式服务平台等场景化支撑能力。
为避免用户陷入割裂的产品界面,我们以研发人员日常编码工具IDE为触点,将平台能力与IDE融合,通过将资产检索、编码辅助、自测辅助等能力与IDE集成,以IDE作为开发人员的统一入口。
同时,在平台建设中,每项平台功能都由用户体验工程师、一线开发人员参与功能的设计,为开发人员提供最佳使用路径,保证平台功能用户体验最优,降低开发人员平台功能使用阻力。
借助建设的统一平台,通过提供一系列场景化的支撑能力,平台功能使用覆盖率100%。
平台工程的实施旨在尽可能屏蔽基础设置对开发人员的影响,降低开发人员的认知负担,从而让开发人员投入更多的精力在开发工作中。
通过平台工程系列能力的提供,我们以编码时长、编码中断次数、代码产出为基础指标,进行形成沉浸度的北极星指标,驱动平台能力不断完善。
围绕北极星指标,在研发团队实践中,通过一期功能的建设,每日平均编码时长提升13.4%,打断频率降低14.8%。
在用户运营方面,主要通过数字化和智能化方式形成良好的互动文化机制。
一方面,我们通过用户行为数据分析、用户问卷调研提升工具感知一线用户能力。比如,分析开发人员搜索资产关键词,挖掘热点数据,识别用户的迫切需求。在功能使用完毕后,推送问卷调研,获取开发人员使用体验。
另一方面,我们将最新平台能力和最佳实践推送给用户,利用智能化手段,及时识别开发人员编码行为,向开发人员推送关联度较高资产等。
得益于良好的平台文化,研发团队共建共享标准资产1000+,单个资产引用高达100多次。
未来,为更好的推进平台工程建设,聚焦北极星目标,一方面进一步抽象聚合研发流程,实现辅助工具链与工作流的深度融合,有效降低研发流程复杂度,减轻开发人员认知负担。
另一方面借助数字化手段,通过对研发过程数据分析,有效挖掘流程及工具的痛点、堵点,推进组织级的过程改进,循环演进实现高效能研发团队建设。