背景
震坤行工业超市(上海)有限公司是一家数字化的工业用品服务超市,通过全链条数字化改造、重构中国传统工业用品采销渠道,并为企业提供集平台交易、数字化服务、智能交付于一体的综合数字化供应链解决方案。
目前,震坤行经营的产品品类包括500余万种工厂使用的辅料、易耗品、通用设备、备品备件等(MRO),累计覆盖32条优势产线;震坤行还与超过20000家先进制造业客户保持长期合作关系,现已建成35家全国总仓及70个中转站,整个仓储物流网络覆盖全国。
我们为什么要做 “ 双敏 ” 的革新?
2015年之前震坤行的线上业务比较简单,主要通过购买ERP系统来实现信息化。2017为了与竞争对手形成行业竞争优势,震坤行开始加强数字化建设,利用自研系统来提升对业务的灵活支撑,完成信息化到数字化的战略升级。2019年震坤行开始进行技术体系的革新,从大前端技术体系的建设到服务端全面推进云原生技术的应用,及数据和算法平台的升级,研发效能的得到了快速发展。
2020年除了继续升级技术体系以外,我们也开始了业务中台的规划和建设,逐步沉淀业务领域。比如在这一阶段,我们把以ERP为主的信息化系统逐步通过自研系统的方式沉淀到业务中台,打通各个业务域的数据互通,提升对业务的数字化赋能,同时在需求识别到研发交付的全流程项目管理我们也做了一次全面的升级,极大提升了研发交付速度及交付质量。
面临 “组织敏捷” 和 “研发敏捷”的双重挑战
业务能力面临的挑战
工程能力面临的挑战
拥抱云效,实现双敏
1、为什么选择云效
工欲善其事,必先利其器,如何将开发过程的最佳实践应用到研发团队的工作中,整体提升研发团队的协作和交付效率,需要一款集项目过程管理和DevOps的配套工具去最终落地,在经过了多款开源及商业化的工具选型对比后,我们最终选择了云效来作为研发项目管理及DevOps的工具。
项目管理问题:怎么管好需求,怎么管好项目进度,怎么管好测试用例和文档。
项目协作问题:在跨团队场景越来越多的情况下,怎么在多个团队之间实现需求、测试用例和知识的共享。
发布管理问题:我们希望实现持续交付,因此我们需要方便易用的流水线管理及其必要的发布流程卡控。
效能洞察问题:我们希望云效帮助我们发现研发过程中的风险和低效环节,帮助我们提升系统的质量和团队的研发效能。
2、如何把云效系统用好来帮助震坤行解决业务问题?
在精益管理和敏捷研发理论的指导下,我们在2020年对震坤行系统研发流程做了重大的调整,初步实现了敏捷研发和持续交付。云效正好可以提供在敏捷研发过程中的项目管理、流水线发布和持续交付的能力。
3、研发组织的改变-1
为了实现大规模敏捷研发的要求,震坤行在组织架构上做了调整。我们成立了精益投资组合管理组和架构治理组。其中投资组合管理组的职责是完成需求商业价值的分析、验证及优先级排布;架构治理组的职责是完成公司战略分析和拆解、核心业务需求和一般业务需求的分流以及业务与技术带宽的平衡。
为了提高跨团队项目的敏捷交付效率,我们成立了敏捷发布火车。敏捷发布火车是一个虚拟组织,分为火车和敏捷团队两层。一个敏捷发布火车一般由5到10个敏捷团队组成。每个敏捷团队大约包含5到11研发人员。敏捷发布火车是基于价值流组织的。我们会把一个价值链上涉及的所有团队组织为一列敏捷发布火车,让它可以独立交付一个完整的商业价值。敏捷发布火车上的所有团队共享同一个目标和迭代节奏,能够高效的协同工作完成持续交付。
4、研发组织的改变-2
敏捷发布火车是跨职能的团队,其中的每一个敏捷团队都是由不同职能的人员组成,如产品、后端、前端、测试、运维等。这样每个敏捷团队可以独立交付价值链上的一部分能力。
敏捷发布火车设置一名敏捷发布工程师来管理整个火车的目标和迭代的节奏,每个敏捷团队各设置一名ScrumMaster来管理敏捷团队的目标和迭代节奏。在敏捷发布火车工程师和ScrumMaster的通力合作下,整个敏捷发布火车在统一的目标和节奏下进行研发。原来各职能的负责人不再管理项目交付,而把职责转变为人才梯队的建设和技术架构的演进。
震坤行的敏捷发布火车当前采用五周一个产品增量的节奏。每个产品增量由两个为期两周研发迭代和一个为期一周的巩固与创新迭代组成。两者的区别是,前者用于满足业务和功能需求,后者用于技术架构升级和优化。
5、业务驱动的协作模式
需求的变革基于组织的变革做的同步调整。我们把所做的事情和公司的战略目标对齐。如上图所示,公司的战略目标位于金字塔顶层,从顶层拆解下来依次是史诗、产品特性和用户故事。我们在云效设立了对应的三层看板来管理它们。史诗是一种概念性的商业能力,在火车层级管理生命周期;产品特性是描述产品某一面的功能,在火车层级管理生命周期;用户故事是用户一个具体的使用场景,在敏捷团队层级管理生命周期。通过对需求的自上而下拆解,每个敏捷团队的成员都可以清晰认识自己的日常工作是如何支撑公司战略目标的实现的。
6、利用OKR进行目标对齐
震坤行引入了OKR工具来帮助员工实现目标管理。类似于我们在敏捷发布火车进行的需求拆解和对齐,我们会把公司的目标在不同层级的组织中拆解,实现全公司人员的目标对齐。在震坤行上至公司CEO,下至到基层员工,都可以在自研的OKR工具中查到其他人每一个季度、每一年的目标。
7、大型需求管理
落地大型需求是震坤行产研团队面临的一大挑战。这类需求一般涉及的业务复杂,人员众多,组织协调难度较大,容易发生交付延迟和质量问题。
需求负责人从公司远景目标、产品路线图、业务团队中收集需求,其中大型的需求会被架构治理组识别出来交由投资组合管理组进行商业分析。投资组合管理组评审需求是否符合具有商业价值并定义最小可交付单元MVP。
大型需求经过分析和立项之后交给敏捷发布火车进行研发。敏捷发布火车首先研发MVP版本的需求,以便收集数据给投资组合管理组进行MVP商业价值的分析。投资组合管理组在大型需求MVP符合预期之后会让敏捷发布火车进入大规模研发。
项目交付之后,投资组合管理组拿到完整版本的数据进行ROI的分析,确认项目最终是否达到预期效果。敏捷发布火车会进行迭代复盘,优化在项目研发中暴露的问题。
8、业务驱动的协作模式,产品导向的交付模式
为客户交付价值一直是震坤行的使命,也是产研团队的最高目标。为了更好的聚焦业务,震坤行的系统迭代大致可以分为内外两个循环。外层循环站在业务的角度,依次经历需求评审、产品增量计划、集成演示、产品增量回顾等环节,完成业务的升级迭代。内层循环站在产品和敏捷团队的角度,依次经历迭代计划、迭代评审、站立会、迭代评审、迭代回顾等环节,完成产品的持续交付。
在敏捷发布火车的框架下,一个火车往往有数个敏捷团队构成,因此在外循环执行的过程中,会掺杂着定期的Scrum of Scrums等活动,在敏捷团队之间对齐目标,拉通依赖和风险,实现整个火车的协调一致。
9、云原生的基础设施和发布
在云原生的基础设施和发布上,我们充分使用了云效的能力来帮助我们管理发布流程和环境,例如流水线管理、代码扫描、安全扫描、持续集成等一系列功能。
我们要实现敏捷研发,实际上是要做到持续探索、持续集成和按需发布。为了实现上述要求,我们需要进行研发模式的变革。其中一个重大变革是需求原子化。现在我们的需求最小交付单元已经原子化为研发周期多在两三天的用户故事。用户故事是产品的特定使用场景的需求描述,需要同时满足独立研发、测试和交付的要求。当我们完成一个用户故事的开发之后,就能通过云效平台进行后续的持续集成和按需发布了。
在云效上,可以方便的设立具有fat、uat、pro三重环境的流水线。这个功能极大的方便了研发人员快速部署功能,进而快速测试和验收。同时云效屏蔽了容器管理的复杂性,能做到研发人员在界面上实现全部的发布操作。
10、质量保证
提升系统交付质量是震坤行面临的又一挑战。震坤行在研发中引入了内建过程质量的概念。内建过程质量即把保证交付质量的措施融入到研发流程中的每一个环节。震坤行在需求分析、详细设计、编码、发布等环节,设立了需求评审、设计评审、代码复查、代码扫描等制度,让敏捷团队在研发流程的每个环节都可以高质量的交付。通过内建过程质量制度的确立和持续推进,产研的交付质量得到很大的提升,也间接提升了研发效率。
11、云效工作台
14个敏捷团队利用云效进行项目管理;
进行了13次为期5周的产品增量迭代;
累计交付14000+用户故事;
24个项目,420微服务流水线正在提供服务;
14个测试用例库,累计发布测试用例10000+;
平均每条流水线累计发240次,每周发布4次。
12、交付速度和质量的变化
产研团队的研发效率在过去的一年中提升了20%,交付速度提升了200%,缺陷密度也下降了60%。无论是敏捷研发,还是研发效能的各种方法论,其核心解决的问题是大型组织在研发过程中信息不对等、目标不清晰、沟通成本高等问题。我们引入精益敏捷思想,优化组织和制度,减少信息不对等和内耗,让研发人员不受干扰的投入到业务研发或者技术架构升级上来,提升了整个组织的运行效率和工作质量。
迈上10倍效能提升之路
未来,我们会夯实基础,持续投入建设业务中台和数据中台,实现业务层和能力层的分离,适应业务的不断变化和创新的要求。
同时,我们也会继续建设组织敏捷和研发敏捷,并通过人工智能等技术手段赋能业务,让震坤行为客户创造更大的价值。
本文内容非阿里云官方提供,如您发现本文档存在侵权内容或其他问题,请提供相应证明材料并在本页面内提交反馈信息,阿里云会协调或通知相关作者进行处理。