写点什么

为什么携程要做好持续交付?

  • 2018-12-15
  • 本文字数:1738 字

    阅读完需:约 6 分钟

为什么携程要做好持续交付?

随着云计算、容器等新兴技术的发展,“持续交付”这个老生常谈的问题,忽如一夜春风来,仿佛找到了从理想通向现实的大门。各类相关工具、产品、服务,也是纷纷出现:如 Jenkins 2.0,Jenkins X,阿里云效,Netflix Spinnaker,Jfrog Artifactory 等等。


到底是什么魔力使得各大公司和厂商对“持续交付”如此趋之若鹜?我在携程工作多年,负责系统研发的工作,在持续集成、持续交付方面积累了很多实战经验。关于携程为什么要做好持续交付,持续交付的价值在哪里?我谈谈自己的看法。

你了解持续交付吗?

持续交付,到底是什么意思,它的定义是什么?《持续交付:发布可靠软件的系统方法》一书中把“持续交付”定义为:


持续交付是软件研发人员,如何将一个好点子,以最快的速度交付给用户的方法。


即使熟知了定义和方法论,其实也还是如海市蜃楼一般,无法落地,因为大家所贡献的最佳实践才是持续交付理论的核心。只有真正在工作中贯彻和使用这些实践工具,才能体会持续交付的真正含义和作用。

持续交付的显性价值

持续交付也通常以“发布流水线”的方式来解释,即研发团队从开发,到测试,再到部署,最终将产品交付给最终用户使用的过程。如下图:



虽然持续交付着重打造的是发布流水线的部分,但它所要达到的目标是在“最终用户”和“研发团队”之间建立紧密的反馈环:通过持续交付新的软件版本,以验证新想法和软件改动的正确性,并衡量这些改动对软件价值的影响。


这里说的“软件价值”,说白了就是收入、日活、GMV 等 KPI 指标了。


在互联网应用盛行、速度为王的今天,持续交付的价值更是被突显出来。持续交付的能力,正成为评定一家互联网公司研发能力的重要指标。

持续交付的隐性价值

除了上面这些你一眼就能看出来的价值外,如果作为不同的角色、站在不同的角度去看持续交付之后的变化,你还会发现其他一些隐性价值,而其中有一些影响甚至远远超过你的预期。


如果你是 CTO 或者是一个较大规模研发团队的管理者


  • 你是不是时常困扰于技术选型的问题?

  • 你是不是经常头痛于已制定的标准难以落地?

  • 你是不是时常考虑如何提高跨部门协作的效率?

  • 你是不是担心“黑天鹅”的降临?


如果你是 Team Leader


  • 你一定希望团队的知识能够传承。

  • 你一定希望团队专注于业务而非工程。

  • 你一定希望以一个较平稳的节奏持续工作。


如果你是产品经理


  • 你应该是产品真正的第一个用户。

  • 你应该完全知悉当前的进度和质量。

  • 你的产品应该随时能发布。


如果你是一个程序员


  • 你可以通过对持续交付的学习,进一步加强自己对整个软件工程的认识。

  • 你可以利用持续交付的工具或最佳实践,提高自己的工作效率和质量。

  • 你可以参与到持续交付实施中去,享受为其他程序员提供效率工具的挑战和乐趣。

如何评估持续交付的价值

那到底应该怎么评估持续交付的价值呢?这里和你分享一下我在携程是怎么解决这个问题的。


我除了会评估一些常规的 KPI 外,更多地会换一种思考方式。既然很难量化持续交付的价值,那么我们就具象化,来看看整个工程生命周期中有多少被开发人员诟病,或者阻碍开发人员自助处理的问题点,即“不可持续点”:


  • 开发不能按需产生隔离的测试环境;

  • 生产代码回滚后,要手工处理代码分支;

  • 预发布(Staging)流量要能自动分离,以便预发布测试。


在携程,我们会将所有的“不可持续点”进行记录和分解,通过 OKR 的考评方式,将消灭这些点作为目标,拆解出来的可行动点,作为关键结果,以这样的方式来完成绩效考评。


虽然,有些“不可持续点”已经超越了一般传统持续交付的概念,甚至有些已经超越了纯技术改进的范畴,但是持续交付仍会一直关注于消灭这些“不可持续点”。So what,我们就是要持续交付我们的价值!

持续交付最终的使命

持续交付的价值不仅仅局限于简单地提高产品交付的效率,它还通过统一标准、规范流程、工具化、自动化等等方式,影响着整个研发生命周期。


持续交付最终的使命是打破一切影响研发的“阻碍墙”,为软件研发工作本身赋能。无论你是持续交付的老朋友还是新朋友,无论你在公司担任管理工作还是普通的研发人员,持续交付都会对你的工作产生积极的作用。


以上内容取自极客时间的《持续交付 36 讲》专栏,希望通过这个专栏的学习,你和你的团队可以在保证交付质量的前提下,加快交付速度,从而更快地得到市场反馈,引领产品的方向,最终达到扩大收益的目的:http://t.cn/EUCEALP


2018-12-15 08:002181

评论 1 条评论

发布
暂无评论
发现更多内容

新思科技静态应用安全测试解决方案获得Forrester Wave认可

InfoQ_434670063458

新思科技 Forrester Wave 静态应用安全测试

最近线上发生的两个坑爹锅

艾小仙

后端

GrowingIO Design 组件库搭建之开发工具

GrowingIO技术专栏

设计 大前端

废弃fastjson!大型项目迁移Gson保姆级攻略

Zhendong

Java json Gson Fastjson

架构师训练营第二周作业 - 学习总结

阿德儿

林昊获中国计算机学会杰出工程师奖,阿里中间件再获高度肯定,“三位一体”推动技术普惠

阿里巴巴云原生

阿里巴巴 阿里云 开发者 云原生 中间件

mysql字符串字段索引优化

瞌睡的李先生

MySQL 索引

WebRTC ICE 状态与提名处理

阿里云视频云

阿里云 WebRTC 通信 流媒体开发 流媒体传输

新鲜出炉!阿里内部开源SpringCloud Alibaba全解(全彩版)全网首发

Java架构追梦

Java 学习 架构 面试 SpringCloud Alibaba

阿里中间件团队技术官手撸笔记,全新演绎“Kafka部署实战”,已开源

Java架构之路

Java 程序员 架构 面试 编程语言

又出神作!阿里技术官再出山,操作性超强的Spring事务+AOP实践手册

比伯

Java 编程 程序员 架构 面试

盘点2020 | 人生是一场马拉松-OBKoro1的2020年年终总结

OBKoro1

2020 大前端 年终总结 OBKoro1

备战2O2I新年资料

ios 面试

架构师训练营第二周作业 - 命题作业

阿德儿

研发管理101军规#003 实战规模化敏捷:从8人到百人的敏捷之路

PingCode

程序人生 Scrum 敏捷开发

数字货币量化对冲搬砖套利交易软件APP系统开发

系统开发

阿里P8内部架构核心学习知识笔记在各大互联网上流传,限时开放下载

Java架构之路

Java 程序员 架构 面试 编程语言

细节决定成败!致Android高级工程师的一封信,实战解析

欢喜学安卓

android 程序员 面试 移动开发

低代码开发平台的技术路线

Sam678678

普通人必须掌握的五个必学理财知识

v16629866266

软件测试--selenium安装使用

测试人生路

软件测试

顶级!13位专家力荐Spring5为企业级开发提供一站式方案

996小迁

Java spring 编程 架构 面试

工业传感器:工业互联网的第一道门

浪潮云

工业互联网

2020DevOps状态报告——变更管理

禅道项目管理

DevOps 运维 开发 趋势 自动化测试

安卓开发在线!字节跳动Android研发岗这些知识点内部泄露出来了,已拿到offer

欢喜学安卓

android 程序员 面试 移动开发

Redis 用的很溜,了解过它用的什么协议吗?

古时的风筝

redis RESP Redis 协议

如何对AD和Exchange进行安全加固满足护网需要?

嘉为蓝鲸

安全 asm AD 邮件系统 权限

我以为自己够牛逼了,直到看到了Alibaba专家的面试笔记,我学习了三个月,却入职京东,税前36K

Java架构之路

Java 程序员 架构 面试 编程语言

electron实战练习-三个文件实现一个命令行终端

OBKoro1

node.js Electron electron实战 命令行终端 electron学习

Java 程序经验小结:用私有构造器或者枚举类型强化Singleton属性

后台技术汇

28天写作

快速入门案例实战:电商网站商品管理(一)

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

为什么携程要做好持续交付?_研发效能_王潇俊_InfoQ精选文章