百果园(全称深圳百果园实业(集团)股份有限公司),2001 年成立于深圳,是一家集水果采购、种植支持、采后保鲜、物流仓储、标准分级、营销拓展、品牌运营、门店零售、信息科技、金融资本、科研教育于一体的大型连锁企业。
截至 2021 年 9 月,百果园在国内外布局 200 多个特约供货基地,线下门店超 5000 家,进驻全国 90 多个城市。百果园 APP 下载量突破 1500 万,小程序注册人数超 4000 万,一体化会员数超 8000 万。经过整整 20 年的品牌经营,这个“一心一意做水果”的连锁龙头企业已在生鲜连锁零售行业构建了规模最大的线上线下一体化店仓网络系统,连续 6 年进入中国连锁百强企业。
数字化新零售业态下,非一体化研发管理体系瓶颈凸显
随着线上/线下一体化战略的推进,百果园打造了专属的销售、金融、交易、供应链、营销服务、标准化种植以及数据分析平台,通过智能化与数字化实现人、货、场的结构调整和升级。业务需求激增、用户数量暴涨的同时,项目数量呈倍数逐年增长。这也使得多平台、多项目的标准化管理难度升级,非一体化研发管理体系瓶颈凸显。
难题一:研发工具及数据分散割裂,管理及维护成本高
在邂逅 CODING 之前,百果园使用不同的系统来分别管理项目事项、托管代码以及沉淀团队知识。非一体化的研发管理工具存在弊端,难以支撑百果园在创新型数字化零售业态下多渠道零售业务的增长需求。
- 由于管理工具分散,账号及权限管理体系不统一,工具管理存在难度;成员需要在不同的平台之间来回切换,研发效率低下。
- 各工具之间的数据割裂,难以实现代码与项目需求的关联。若要实现各工具之间的数据联通,还需要额外的研发成本。
- 多个工具单独维护,维护难度及成本高。
难题二:自研系统与项目管理平台对接存在阻碍,缺少本地技术支持
百果园自研的度量审计系统主要用于度量项目内迭代和具体任务的进展,便于管理者评估各事业线的发展情况。要实现这一目的,度量审计系统需要与项目管理平台对接,以获取所需的项目数据。
然而,由于百果园所使用的项目管理平台的 Open API 与自研系统匹配度不高,两者对接上存在困难,需要定制化开发。除此之外,百果园之前使用的项目管理平台由国外厂商提供,该厂商在国内的技术支持能力欠缺。如何针对实际的业务场景将工具对接快速落地,百果园需要有效的本地咨询服务与技术支持,否则只能自行摸索,耗时耗力。
“三步走”战略,CODING 助力百果园打造一体化研发管理体系
百果园希望将分散在各工具的已有数据迁移至一站式的研发管理工具,在企业内部打造统一的办公与协作平台,以满足数字化新零售业态下多项目、多系统的研发管理需求。经过多轮技术评估与交流沟通,百果园最终选择 CODING DevOps 作为统一的研发管理平台。百果园选择 CODING DevOps 的原因在于:
- 灵活的项目事项及工作流配置:与业界主流的项目协同产品(如 Jira)对标,提供丰富的事项类型、属性及状态配置,并支持定制适用于团队的工作流。这也使得百果园能在 CODING DevOps 平台沿用已有的项目协作方式,无需额外调整。
- 强大的一站式研发管理能力:提供从需求到设计、开发、构建、测试、发布到部署的全流程协同及研发工具支撑,实现一站式研发流程管理。
- 专业的技术支持:提供 7x24 小时在线技术咨询和专业的培训服务,由专门的研发团队实现定制化开发。针对百果园工具切换所需的无缝数据迁移服务以及迁移之后的自研系统对接问题,CODING 技术团队提供全面支持。
为了顺利协作百果园迈向一体化 DevOps 体系建设,CODING 采取了“三步走”策略,分阶段逐步实施了解决方案。
第一步:梳理业务流程,定制团队协作工作流
因为需要沿用已有的项目协作流程与模式,CODING 的技术支持团队首先梳理了百果园的需求流转过程。CODING DevOps 整合了百果园从需求评审、产品设计、开发、测试到发布验证全流程,确保各功能团队能围绕着产品需求开展更透明、更敏捷的协作活动。
在 CODING 的帮助下,百果园在 CODING DevOps 平台确定了「需求」在项目内流转的工作流。以产品需求为例,需求规划部门登记需求之后,会进入评审环节。需求评审通过之后,产品团队即可进行产品设计。若产品设计及 UI 设计方案通过评审,产品经理会针对相关项目人员进行产品宣讲。开发人员对需求明确无误之后,即可开始编写代码;而测试人员可在研发早期阶段准备测试用例,待开发完成编码之后进行测试,确保产品可稳定发布上线。
除了「需求」之外,百果园也配置了适用于自身业务实际情况的「任务」、「缺陷」及其他自定义事项的工作流,以追踪团队内所有研发活动的流转状态,随时掌握项目动态。
第二步:存量数据迁移,实现工具切换
在确定使用 CODING DevOps 进行团队协作之后,百果园需要解决的首要难题是数据迁移。如何将分散在多个平台的已有数据无损迁移至统一平台进行管理?CODING 给出了满意答案。
在实施数据迁移之前,CODING 面临百果园 100+ 项目,1600+ 代码仓库,以及 20,000+ Wiki 页面。为保证平滑、无损且业务无感知的数据迁移,CODING 采取了“先调研、后适配;先试点、后批量;先整体、后增量”的方式,分阶段逐步实现了数据从分散的项目管理平台、代码仓库、知识管理平台全量迁移至 CODING DevOps 一站式平台。
数据迁移的成功,离不开 CODING 技术团队的专业服务与百果园在数据迁移前期的积极配合:
- 充分调研:CODING 侧与百果园就技术现状及项目需求进行了多次沟通与评估,并最终确定适用于百果园的数据迁移方案,包括系统对接、产品培训、数据迁移及验收等多个阶段。
- 合理规划:针对数据迁移前、中、后全流程的多个阶段,CODING 及百果园合理拆分事项并制定了详尽的工作计划,由双方在约定的时间点协作完成。在首次迁移工作执行之前,CODING 的技术团队拆解了近百个事项,确保迁移方案能准确无误地实施。
- 专业支持:由 CODING 侧在数据迁移前对百果园进行 4 场技术培训(覆盖 400+ 人员),确保百果园的人员能快速上手 CODING DevOps 一站式平台,在数据迁移之后顺利开展团队协作。
第三步:助力自研系统对接,全面支撑客户成功
在完成数据迁移之后,针对百果园自研的度量审计系统需获取多维度项目数据的需求,CODING 技术团队提供了专业的支持,顺利协助百果园完成自研系统与 CODING DevOps 平台的对接。
百果园自研的度量审计工具以项目看板的形式展示项目内的迭代信息,包括迭代的预计完成时间、进度及迭代中所有任务的详情等。这些度量数据均可以通过 CODING 的 Open API 顺利获取。CODING 提供丰富的数据接口,支持查询不同类型的项目信息,比如事项详情、迭代详情、事项属性设置等等,给百果园自研的度量审计工具提供了多样化的源数据。
CODING Open API 的开放能力与成熟度,加上技术支持团队的专业水平,全面支撑客户成功。
工具多合一,百果园开启 DevOps 之旅
实现数据迁移之后,百果园摆脱了多工具管理的烦恼。通过一站式 CODING DevOps 平台,百果园轻松打造标准化的研发管理流程,提高研发效能,降低工具维护成本。
一站式研发工具链,团队协作提速增效
百果园的成员仅凭一个 CODING 账号即可登录一站式平台进行团队项目协作,无需频繁切换至不同平台。统一的工作入口和账号体系不仅帮助百果园提高研发效率,还降低了其研发工具的使用与维护与成本。
在需求阶段,项目经理在「项目协同」中查看具体产品需求,并根据需求分解具体的开发任务、测试任务和发布验证任务。
产品经理在完成需求分析和产品设计之后,可在「文档管理」中使用 Wiki 撰写产品文档。
在开发阶段,开发人员在「代码仓库」中编写代码,并在提交代码时与具体的项目需求绑定。
在测试阶段,测试人员可在「测试管理」中编写测试用例,创建对应的测试计划,最终进行测试结果记录,一键生成测试报告。
在产品发布上线之后,所有的项目成员均可通过 Wiki 归档过程文档,沉淀团队内的经验,促进知识共享与传递,打造持续改进与反馈的团队文化。
需求代码互联互通,团队协作透明化
在使用 CODING DevOps 之前,百果园面临着需求无法关联代码的问题。需求与代码的信息割裂,管理者难以实时掌握需求的开发情况,无法及时识别潜在的进度风险。而 CODING DevOps 平台强大的资源关联能力解决了这一难题。各功能模块间数据互通,项目成员可按需将项目事项与对应的代码版本、测试用例、Wiki 文档等关联起来;反之,任何代码改动亦可与项目事项紧密关联。一切项目需求均可追踪,对应的研发过程清晰可回溯,给项目成员带来了极大的便利。
零成本功能扩展,测试用例实现线上管理
区别于 Atlassian 的开发者生态, CODING 提供全量开放的一站式能力。无需通过付费的插件或额外的定制功能,百果园即可享受 CODING DevOps 一站式平台的全部能力。比如,百果园最初的需求是将项目、代码与文档集中在同一平台管理,但在了解了 CODING DevOps 的「测试管理」功能之后,百果园决定将测试用例也统一迁移至线上进行管理。
在使用 CODING DevOps 之前,百果园的测试人员需要用 Excel 来管理测试用例。随着测试用例数量日渐增多,重复的人工操作易出错、耗时间。除此之外,线下管理的方式难以实现测试用例的灵活分组,无法以可视化的方式统计用例数量,且不便于频繁更新用例或沉淀基线用例,容易造成用例丢失或分组混乱的情况。
在使用 CODING DevOps 之后,百果园摆脱了手动管理测试用例的困境。通过填写简单的 Excel 或 Xmind 模板,测试用例即可批量一键导入至网页。同一版本发布所需的测试用例纳入同一分组,然后根据产品功能再进行划分。如百果园的测试团队负责人所说,通过线上的方式管理测试用例,用例的分组逻辑、数量均清晰可见,便于评估测试工作量和范围。而不断迭代的基线测试用例,也可轻松在线上更新维护。除此之外,版本发布之后,测试团队还可以将该次版本中发现的测试问题或有价值的信息沉淀在 CODING DevOps 的 Wiki 文档,便于团队成员之间经验共享,持续提高工作质量。
除了「测试管理」之外,百果园也开始小规模使用 CODING DevOps 平台的「持续集成」与「制品库」能力,并将持续深入探索,实现全量的一站式能力落地,真正打造属于百果园的一体化研发体系。
便捷移动办公,「Coding Anytime Anywhere」
以往,由于部分服务部署在内网节点,百果园的开发人员依赖内网环境进行办公,移动办公时需要额外配置。而 CODING DevOps 支持企业微信小程序、微信小程序、H5 页面等多种终端,百果园成员无需额外配置 VPN,打开浏览器即可登录自己的工作台,随时随地移动办公,或通过微信小程序查看事项进展与消息通知,随时掌握项目动态。
在未来的规划中,百果园的开发团队会逐步将开发环境全量迁移至 CODING 的公有云,真正实现云上的「Coding Anytime Anywhere」。
齐力探索 DevOps 最佳实践,持续共建行业新生态
在 CODING 与百果园对接的过程中,百果园的 PMO 与质量部从整个公司层面出发,以宏观的角度对项目价值(如能效或质量提升)进行分析与评估,与 CODING 一起对产品的功能与使用流程进行全方位的探讨,并最终选择了与 CODING 进行合作。
使用 CODING 一站式平台对于百果园而言,并不是简单的工具切换,而是携手 CODING 在 DevOps 实践中迈出重要的第一步。在未来,CODING 将与百果园进行长期合作,在 DevOps 实践中持续摸索与探讨,共建 DevOps 在零售行业的数字化新生态。