研发过程及工具支撑 DevOps 工具链集成
https://mp.weixin.qq.com/s/NYm63nkCymIV3DbL4O01dg
腾讯重新定义敏捷 |Q推荐
敏捷开发奠基人 Robert C. Martin 接受采访时曾表示:软件研发领域成功的秘诀其实是用很多小团队解决很多小问题。随着 IT 互联网的飞速扩大,业务规模的海量增长,软件开发领域走向了用大团队解决大问题。
但大团队先天性的臃肿、迟缓、滞后的弊端,带来了瀑布式软件开发的效率低下。于是在世纪交替之际,软件开发领域的先驱 Robert C. Martin 与 Martin Fowler、Kent Beck 等人共同起草了一份后来引发全球软件革命的文件,是为“敏捷宣言”。
二十年过去了,敏捷开发已经演变成了一种文化,但在其落地过程中却遭遇了种种问题,Robert C. Martin 也在近期表示敏捷运动最成功的只有敏捷一词。在过去二十年中,原本简洁明了的敏捷概念已经变得含糊不清,精益、看板、LeSS、SAFe、现代化、技能提升等等理念让人捉摸不透。
实际上,敏捷开发只是一个从众多特性化的实践中提炼出的共性化的指导思想和原则,并没有给出具体的实践步骤。在实际的工作中,如果企业只是照猫画虎,不针对自己的业务模式、团队规模等特性制定自己的敏捷开发流程,最终都只能流于表面,成效寥寥。
腾讯是国内最早一批实践敏捷开发的企业,早在 2006 年腾讯就引入了敏捷开发的理念,敏捷成为腾讯研发文化的内核。14 年后,腾讯用 TAPD 重新定义了敏捷,这个对内覆盖超 90% 业务的研发平台,对外服务数十个行业、数十万家企业客户的 SaaS 工具,走出了一条别样的敏捷之路。
14 年:探索、实践与重定义
2006 年,腾讯的联合创始人、CTO 张志东先生提出了要创立腾讯自己的敏捷产品研发框架,也就是后来的 TAPD——Tencent Agile Product Development,腾讯敏捷研发协作平台。
在那个年代,国内的敏捷开发落地并没有太多参考实践,预见敏捷开发革命性的企业并不多,大家更愿意在瀑布式的模型下按部就班地做着软件开发工作。腾讯借鉴了业界比较成熟的敏捷思想精髓,吸取了 Scrum、XP、FDD 的养分,经过在腾讯团队的敏捷沉淀实践,总结梳理出了这一套腾讯的敏捷产品研发模型。
所有尝试过敏捷开发的研发团队应该都能感同身受:让团队内的研发人员认可敏捷开发这个理念有多难。而在腾讯这样研发人员占据半数以上的集团公司,推行敏捷开发更不容易。不易之处不仅在于理念的认可,更在于如何向数万研发人员做名词解释:究竟什么才是敏捷?
敏捷在实践中的困境也正是如此:一千个读者有一千个哈姆雷特,一千个团队有一千种敏捷实践。腾讯选择了扎根于自己的企业文化,从中提炼出了重定义的腾讯式敏捷:以用户价值为依归的快速迭代,小步快跑,鼓励用户参与,持续交付和灰度验证。
从认定敏捷开发的那天起,腾讯在内部打造了一系列的敏捷培训课程,组织了四百多场的敏捷培训,同时也组建了专业的敏捷教练团队进行指导,同时在公司内组织了线上和线下敏捷实践交流,去帮助各大团队进行敏捷经验交流和分享。通过建立敏捷研发文化,培养兴趣、影响习惯、激发动力,鼓励自适应,从而促进敏捷研发体系进一步完善、进化。
敏捷文化的打造是上层建筑,一款支持实践落地的工具平台是底层基础。2006 年起,腾讯研发团队开始打造这款支撑腾讯敏捷项目管理的工具平台——TAPD。TAPD 平台可以说是沉淀、固化了腾讯最优秀团队的敏捷实践成果。到今天,TAPD 已经覆盖腾讯所有研发团队、各类业务线,沉淀了多种研发模型,支持了 QQ、微信、王者荣耀等明星产品各个阶段的研发协作。
在微信的创业初期,由于团队只有 10 人左右,所有的沟通都在 Excel 上完成。当产品小有名气时,团队规模扩张到了 30~50 人,为了解决版本发布周期极不稳定、经常遗漏 bug 等问题,便引入了 TAPD,尤其是其中的缺陷、迭代需求模块,很好地帮助团队完成了迭代节奏稳定、缺陷跟进等关键问题。当微信进入稳定期后,团队规模扩张到了数百人,对更完善的报表、项目进度、多项目协作以及发布跟进等提出了更高的要求,所幸的是,TAPD 早已能够通过更多模块和功能的配置,很好地给予了支持,也才成为了微信研发团队最值得信赖的研发及沟通协作平台。
正是通过这样内部的持续实践和团队从小到大的成长,丰富了敏捷研发的类型,形成了有腾讯特色的四种研发模型,从稳定迭代到极速发版,从大型团队研发到多业务线敏捷协同,不同的业务场景都能找到适合自己的敏捷研发模型。

这也推动了 TAPD 工具平台的“乐高化”,研发团队可以根据各自团队的规模、业务场景按需组装,TAPD 成为了腾讯敏捷研发协作领域的唯一大中台。

研发过程及工具支撑

DevOps 工具链集成
2015 年,同程旅游通过张志东偶然得知了 TAPD 的存在,双方一拍即合定下了合作意向,这是 TAPD 平台第一次试水对外开放。通过这次合作,TAPD 帮助同程旅游从瀑布流的研发模式成功转型为敏捷研发模式,敏捷迭代、小步快跑,在快速变化的旅游市场中快速占领市场。
截至今天,TAPD 已累计服务数十万家各领域企业,提供适合各行业特色的研发管理解决方案,同时助力高校人才培养,为高校软件工程专业提供课程建设、企业案例和企业实践等支持。TAPD 同时致力于构建开发者生态,从生产端助力开发者,依托服务端连接企业客户,通过搭建开放、连接的平台生态,帮助开发者更快更好地进行应用开发与服务创新。
腾讯的离职员工成为了播撒 TAPD 的“火种”,靠着口碑积累、口耳相传,这一套在腾讯积累沉淀 14 年之久的敏捷研发工具平台开始在金融、游戏、电商、音视频、生活服务等市场生根发芽,由此带来的各异场景下的使用体验,就像敏捷模型的“深度学习”,让这种敏捷变得更加本土化。
敏捷开发在落地过程中遇冷的原因是什么?是抽象化的概念在具象化的场景面前没有统一的解释标准,企业在实践中往往只取到了敏捷的“形”,而忽略了敏捷的“神”。腾讯 14 年的敏捷开发落地过程中,一以贯之的是重定义后的核心理念:以用户价值为依归的快速迭代,小步快跑,鼓励用户参与,持续交付和灰度验证。而 TAPD 在这 14 年的发展过程中,也不再仅仅是一套敏捷研发协作的工具平台,更成为了一种验证有效的敏捷文化落地方法论。
研发过程及工具支撑 DevOps 工具链集成的更多相关文章
- 研发效能生态完整图谱&DevOps工具选型必看
本文主要梳理了研发效能领域完整的方向图谱以及主流工具,其中对少部分工具也做了一些点评.看了之后,大家可以对研发效能这个领域有个整体认识,同时研发效能落地的时候也有对应的工具(黑话叫抓手)可以选择. 我 ...
- 一文解读DevOps工具链 (转)
在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从2009年-2017年),列出几个相对明确又有所 ...
- DevOps工具链
Devops工具链 DevOps实际是一种文化上的变迁,代表了开发.运维.测试等环节之间的协作,因此DevOps工具是非常多种多样的,甚至可以由多种工具组成一个完整的DevOps工具链.此类工具可以应 ...
- 从大厂DevOps工具链部署,看现代产品的生命周期管理
目录 1. 认识DevOps 1.1. DevOps工具链 1.2. CI 持续集成(Continuous Integration) 1.3. CD(持续交付 & 持续部署) 1.4. Agi ...
- devops工具链概述
1. devops工具链概述 1)devops工具篇 2) 持续集成 3) 持续交付 4) 持续部署 2. devops工具链概述
- 第七章 DevOps工具链
DevOps工具生态圈 协同开发工具 敏捷开发 可视化 加强团队沟通协作 数据分析 协同开发 持续集成工具 Jenkins 自动化编译 自动化测试 自动化部署 丰富的插件库 版本管理工具 Git 简介 ...
- DevOps - DevOps工具链
不要满足于使用世界上已存在的各种方法和技术,而应重点放在希望达到的效果上! 单单使用工具不难,困难的是在团队开发中熟练使用,并形成一套理想的工作流程,只有在团队中工具和思想才能发挥最大价值. 开源工具 ...
- [备忘] DevOps 工具上的准备清单(不断补充中……)
目录 概念 发展历程 工具清单 规划 概念 从字面上来看,"DevOps"一词是由英文 Development(开发)和 Operations (运维)组合而成,但它所代表的理念和 ...
- 如何选择正确的DevOps工具
坦白的讲:世界上没有哪种工具能够像DevOps这么神奇(或敏捷,或精益).DevOps在开发和运营团队之间建立了完美的合作与沟通,因此与其说这是一种神奇的工具,不如说是一种文化的转变. 然而,团队之间 ...
随机推荐
- Epson 打印机计数器清零
错误提示:废墨垫需要维护.请联系爱普生认证服务机构. 一.下载打印机清零软件 软件名称:EPSON Adjustment Program 二.USB线连接打印机 清零前请取消打印任务,打印机用USB线 ...
- spark 系列之一 RDD的使用
spark中常用的两种数据类型,一个是RDD,一个是DataFrame,本篇主要介绍RDD的一些应用场景见代码本代码的应用场景是在spark本地调试(windows环境) /** * 创建 spark ...
- Kafka数据每5分钟同步到Hive
1.概述 最近有同学留言咨询Kafka数据落地到Hive的一些问题,今天笔者将为大家来介绍一种除Flink流批一体以外的方式(流批一体下次再单独写一篇给大家分享). 2.内容 首先,我们简单来描述一下 ...
- windows使用git bash 无法交互键盘上下键移动选择选项的解决方法
目录 遇到的问题 解决方案 1. 直接通过数字键来选择 2. 使用 winpty 来启动命令 3. 将 git bash 换成 cmd 4. 使用vscode中是bash 遇到的问题 windows使 ...
- 远程调用post请求和get请求
/** * 获取用户 */ @RequestMapping("getUserMassages") public Map<String,Object> getuserMa ...
- MM-RFQ询价报价
(1).询价报价单事务码:ME41/ME42/ME43 需要的主数据:采购组织.供应商.采购组,物料 (2)ME47:维护供应商的报价.可以用项目明细的条件对供应商的报价进行详细设置. (3)供应商价 ...
- 基于Opencv的简单图像处理
实验环境 本实验均在笔记本电脑完成,电脑的配置如表1所示: 系统 Windows 10 家庭版 处理器 英特尔 Core i5-6200 @ 2.30GHz 双核 主板 宏碁 Zoro_SL 内存 1 ...
- 第十九章节 BJROBOT 安卓手机 APP 导航【ROS全开源阿克曼转向智能网联无人驾驶车】
导航前说明:一定要确保你小车在构建好地图的基础上进行! 1.把小车平放在你想要构建地图区域的地板上,打开资料里的虚拟机,打开一个终端, ssh 过去主控端启动roslaunch znjrobot br ...
- sh -s用法
1.基本用法 (1)sh -s 会从标准输入中读取命令,并在子shell中执行 (2)sh -s 后从第一个非 - 开头的参数开始,依次被赋值给子shell的 $1,$2... (3)sh -s 的第 ...
- java的多线程:线程安全问题
什么是线程安全? 为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题.但是做读操作是不会发生数据冲突问题. 抢火车的例子: ...