2014 年,第三方物流服务商 C.H. Robinson 遭遇发展瓶颈:如何消除技术开发管线中的阻塞点?

据该公司架构与应用开发总监 Vanessa Adams 介绍,当时每个由 8 至 10 人组成的工程团队围绕某个模块或产品进行功能开发,例如订单管理能力。但各团队常常因依赖其他产品组的进度而停滞不前。

Adams 向 CIO Dive 透露,在某一时期,完成大多数开发交付物和里程碑需要 12 至 15 个团队协同。为了减少开发依赖,C.H. Robinson 开始探索允许人员跨产品领域工作,而非在优先级排序队列中等待,寄希望于项目时间表能够同步。

自然形成的官僚流程拖慢了应用开发,团队遵循的流程类似瀑布式,而非更现代的敏捷方法。因此,C.H. Robinson 转向“内源”(innersourcing),将开源开发实践引入企业内部,重塑工程方法,从而加速开发。

无论是内部还是外部客户,都对企业提出更高要求,推动技术团队快速开发、更快迭代。敏捷、DevOps 等新型管理与哲学已在企业中扎根,常常引发技术栈的革新。

“有一部分代码被视为‘秘密配方’,他们希望将其物理上保留在总部附近,用于自己拥有的基础设施。”

—— Matthew McCullough,GitHub 现场服务副总裁

开源技术让企业产品与软件开发更加顺畅,越来越多的公司接受其应用。2017 年,GitHub 报告称,财富 100 强中有 45% 使用 GitHub Enterprise 构建软件,C.H. Robinson 也采用了该产品。

但开源并不意味着必须运行在云端。GitHub 现场服务副总裁 Matthew McCullough 告诉 CIO Dive,绝大多数客户采用混合方式,兼顾本地部署与云解决方案。开源工作可能在 GitHub.com 上进行,但组织依赖 GitHub Enterprise 处理更专有的代码。

“有一部分代码被视为‘秘密配方’,他们希望将其物理上保留在总部附近,用于自己拥有的基础设施,”McCullough 说。

接受非专有化

C.H. Robinson 是运输环节的“中间人”,与客户和承运商紧密相连。“我们喜欢称自己为‘卡车运输的 Uber 化’,”Adams 说,“我们将客户与承运商匹配起来。”

这家拥有 113 年历史的全球物流公司拥有超过 15,000 名员工,其中约 800 人从事 IT 工作,2017 年总收入达 149 亿美元。公司依赖技术匹配客户与承运商,一旦技术中断,网络将无法成功匹配,供应链可能陷入停滞。

在工程驱动下,C.H. Robinson 转向 GitHub 支持内源开发,并在开发团队间共享代码。企业中的开源技术让团队能够像搭积木一样复用其他团队的代码,而非重复编写。

这一转变让 C.H. Robinson 行动更快,但文化冲击也随之而来。

CIO 在从专有系统转向开源系统方面非常激进,但“说实话,我对此有点紧张。”

—— Vanessa Adams,C.H. Robinson 架构与应用开发总监

转向开源技术或开发模式可能是一个痛苦的过程。过去,财务部门只需签署一份为期三到四年的服务协议,取决于公司的更新周期。McCullough 指出,开源并非简单的供应商协议或采购。

采用开源后,法务部门必须批准对开源项目的贡献,采购部门需要理解可能没有发票可寄,管理者必须明白在工作时间回馈开源框架是流程的一部分。McCullough 表示,这是一个长期转变,可能需要数月甚至数年才能完成。

但 C.H. Robinson 是这一转变的“肥沃土壤”,他说。工程实践已经以 5 至 15 人的小团队运作,赋予他们一定的自主权,每个团队可根据自身需求调整开源框架。

这是一次“重大的组织变革”,Adams 说。CIO 在从专有系统转向开源系统方面非常激进,但“说实话,我对此有点紧张。”

公司调整人员聚焦两个领域:产品与满足业务部门需求。团队将内源实践应用于所有产品,这推动 C.H. Robinson 采用新工具、新技术和新流程。

现在,当我们谈论“单一全球运输平台”时,“我们不会在 10 个不同地方创建相同的功能,”Adams 说。

经历“痛苦”的过程

C.H. Robinson 在面临开发瓶颈并努力采用敏捷实践的同时,也是 SD Learning Consortium 的成员,该联盟包括爱立信和巴克莱等公司。

作为合作的一部分,C.H. Robinson 访问了其他大型工程组织,这让他们认识到内源是切实可行的,尽管爱立信的规模和体量远超他们,Adams 说。

通过稍微调整内部团队结构,C.H. Robinson 得以对内源理念持开放态度。给予开发团队更多自主权,让他们尽可能自主决策,无需层层上报。

“我不否认,这有点痛苦,”Adams 说,“但我们绝不会回头改变它。”

许多千禧一代“正在寻找一种不同的企业工作方式。他们不想要自上而下的强制,”McCullough 说。将外部编码经验带入企业,“他们仍然明白有利润可赚、有目标要达成,但实现方式可以不同。”

但让软件工程师采用开源开发实践并非问题所在;挑战在于让那些深度集成专有系统的企业转向开源模式。

工程团队也需要一些引导,以超越现有的开发实践。

对 C.H. Robinson 而言,最大的变化是速度。通过改变工程结构并采用内源,公司在 DevOps 管线中的部署数量大幅增加。自 2016 年以来,C.H. Robinson 每周部署数量增长了 162%。

但归根结底,发布数量并不重要。重要的是增量交付的价值,而非过去那种大型季度发布,Adams 说。“我们想要的行为已经出现:我们希望尽快交付增量价值,你会在数字中看到这一点。”

然而,迭代发布也带来了副作用,IT 部门几乎运转过快。现在,部门可以每周引入小的产品变更,这迫使使用者适应近乎持续调整的状态。“我们确实听到了‘慢下来’的声音,这是新现象,”Adams 说。“业务方面也在经历心态转变,思考如何应对我们投入生产环境的变更量。”