阿里巴巴B2B高效研发管理实践

简介: 阿里巴巴技术质量架构师范之岳带来了题为阿里巴巴B2B高效研发管理实践的演讲。本文主要从互联网无线研发的问题与挑战开始讲起,重点讲解了阿里工程效能技术平台,包括云效平台等,最后对阿里一线PL的职责进行了思考。一起来了解下吧。
2017年1月13日举办的【云栖计算之旅】线下沙龙第4期研发管理专场,阿里巴巴技术质量架构师范之岳带来了题为阿里巴巴B2B高效研发管理实践的演讲。本文主要从互联网无线研发的问题与挑战开始讲起,重点讲解了阿里工程效能技术平台,包括云效平台等,最后对阿里一线PL的职责进行了思考。一起来了解下吧。

 

以下是精彩内容整理:

 

互联网无线研发的问题与挑战

B2B技术部这几年来面对了很多的问题与挑战,具体如下:

对于不同管理者来说,他们的诉求是有区别的。对于创业团队来说,一开始只有三到五个人,须全民皆研发、全民皆测试、全民皆运维,大家一起考虑怎么将业务发上线,并且拉来更多的用户,考虑不到工程效能、效率的体现和度量等问题。但当业务增长上去之后,团队就会扩大,团队层次区分出来,业务迭代快速,项目并行量大,业务很难快速交付到用户手中;而且,研发团队变大,项目资源管理成本就会提升、透明度低;用户体验要求高,测试成本增长迅速,人肉测试多,应用增长迅速,环境构建复杂,验证难度增加;很多创业公司都用无线,包括大型公司,阿里所有的海外B2B、外贸B2B都有对应的APP,就会带来手机预算大、手机设备杂、手机测试难等问题;对于大型组织来说,我们要和业务方以及不同研发团队打交道,研发过程中各角色协作成本高;还有金融、保险等传统产业的互联网研发思维的转变。

对于老板来说,业务老板尤其关心研发团队在干什么,业务什么时候发布,技术老板关心团队的效率如何,怎么砍业务需求,人手够不够,产品质量如何等。对于开发、测试、运维工程师们来说,他们希望想怎么发就怎么发,随时随地发布需求,高效高质的发布,不要倒排。

老板希望更多集中式的资源与需求管理,研发者们希望有敏捷化的工程实践支撑,包含研发过程到最终上线的过程。

那么,敏捷框架是不是解决这些问题最终的方案呢?

98b7f88bb7b4212cf7bf9b9e78bf73660660990e

事实上不是,当敏捷思想在中国广泛传播时,更多的是一种理念。所有开发者、业务方、需求方对于敏捷的理解要求是非常高的,有时候落实下去形式上很敏捷,但交付速度并没有变快,敏捷还提倡轻文档轻流程,导致有些公司搞了好久敏捷什么文档没有留下来,敏捷只是一种思想,解决不了实质性工程效能问题。

如果你的组织做了敏捷转型,一个Scrum团队将业务人员、开发人员、测试人员以及运维人员都纳入一个团队,就可以解决互相推卸责任的问题,但两个Scrum团队间没办法解开耦合,会出现协作上的问题,敏捷解决不了这样的问题。

技术债与服务化

对于工程效能的实现,需要有平台来支撑持续集成、快速发布、持续交付等,这种需要工程效能平台的前提是我们的系统本身,如果是几百万行代码、几十个交付模块的大应用,就算有再好的持续交付通道平台也无济于事,因为小业务改动需要大应用发布,项目没法并行起来,无法轻快!

4b0a30cd4386390aaeffab4b232cfa2d9edaeb3f

近几年,阿里在做服务化的改造以及微服务的实践,微服务改造应用的拆解、去耦合是所有持续交付目标的前提。

 

工程效能技术中台

b05cf918f794b3b8723247e0866d8dfe97bff6c9

技术中台支撑整个研发管理、研发行为、持续交付通道。技术中台分为两部分,综合管理有对应的产品支撑,它对应到老板们想要的东西;研发工程效能对应到一线研发工程师的诉求,它本身也进行了分层,上层就是直接的应用,比如分层自动化、无线适配、远程真机以及性能测试等,下面的服务层我们有持续集成服务、自动化服务、测试数据服务、测试环境服务,对于B2B技术部现在使用的平台,只要拉出代码一键即可部署完项目需要的整个环境。

技术中台管理闭环

a47390cbe551ee46bfafc577e5dbdb47d3ed71b6

我们希望建设从需求规划——立项——部署环境、持续集成——最终的验证测试——再集成——进入准生产环境——全自动化验证——最后发布是上线,上线后要做业务的数据盘点,整个过程是闭环,我们希望每个节点都有对应的产品支撑,经过三四年的建设,大部分的节点我们已经都有产品做支撑,高效优质且透明,无线工程目前也在起步阶段。

云效平台

2bfddab7331aabab65188f0db14160b129b6eebf

上图为云效平台持续交付通道图,对于项目上的各种并发的小需求,我们会有前台分圈的概念,把一些有相关业务耦合的应用模块放在同一个分圈里面,不同分圈的业务模块可以做独立的发布。为什么要做分圈呢,就是有时候我们做自动化验证时,需要把关联度放在一起来验证,所以A、B、C、D就会有独立分圈的发布通道,不同的分圈做完自动化验证后,就会直接进入到自动化生产环境中去,达到持续发布效果,它是有一定条件限制的完全自由的独立发布,这个限制主要还是出于质量保障,质量保障基本基于全自动化验证。

差异化的研发流程策略

阿里B2B技术部非常强调差异化的研发流程策略,我们把重点的大型项目和小型需求是分的很开的,目前,我们测试与开发的配比基本达到1比10,所以我们肯定做不到所有的变更、所有的项目都有测试同学直接来接手,但不代表没有那样的测试行为。

  • 大型项目:对于重点大型项目,我们有测试人员直接进入,走分迭代的瀑布式项目流程,Milestone的保障,每个节点都有要求输出,比如文档评审等;
  • 小型需求、bugfix: 小型需求的改动量不大,如果开发有足够的分析结果证明需求不需要测试人员参与,但并不意味着不需要测试,项目里的持续集成是一键触发测试过程,然后在发布之前和别的需求合完代码后,还有一道全自动化流程保障,可以跑单元测试、接口测试、UI测试、安全测试等,只有在失败的时候测试人员才会介入查看问题;
  • 核心应用:对于业务来说,不同的应用承担不同的业务,通过流程限制的发布窗口,分层自动化的要求非常高,我们要将核心应用和非核心应用区分开;
  • 核心服务:通过流程限制的发布窗口,让核心服务关联的自动化范围。

 

阿里一线P Leader的职责与思考

阿里对于一线的研发管理者都是专业技术出身,业务、管理、技术三块缺一不可,阿里是一个业务导向的公司,只有依靠中台,才能快速的支持上层的改变,如果业务想要什么,你做什么出来,你会发现研发成本非常高。只有把业务和技术结合在一起思考,才能做到最好,阿里很多架构师、P Leader都要进行这样的思考,P Leader更多的是要与业务挂钩,团队的考核、团队的方向、团队的目标和建设都是由P Leader来做的。

 

范之岳:2011年加入阿里巴巴。担任阿里巴巴B2B研发效能平台和对外云效平台的产品负责人,阿里巴巴速卖通业务的技术质量负责人,技术质量架构师。精通研发质量效能平台产品,在敏捷研发、持续交付、研发团队管理等方面有丰富的经验。

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
相关文章
|
数据库连接 数据库 关系型数据库
ETL工具 kettle
Kettle简介:Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettl
10293 1
|
Java BI 开发框架
pentaho Report Designer 入门教程(二)
       采用Pentaho Report Designer5.1版本,也是最新的版本。 一、       安装和介绍 介绍部分内容略,首先安装jdk,并配置java相关环境变量,下载pentaho report并解压,直接运行即可。 二、       第一个示例 三、在Swing程序中集成 示例程序主要有三个部分,程序目录如下图:
3885 0
|
Web App开发 JavaScript 前端开发
web在线编辑word,excel,pdf插件-----WebOffice 文档控件API
目    录       一、工作原理...5 1.1         开发流程...5 1.2         WEB页面调用控件:.6 二、接口说明...7 2.1         接口...7 2.1.1     AboutBox.7 2.1.2     AcceptAllRevisions.7 2.1.3     CloseDoc.7 2.1.4  
10541 75
|
机器学习/深度学习 人工智能 算法
零基础入门深度学习(1):感知器,激活函数
零基础入门深度学习(1) - 感知器零基础入门深度学习(2) - 线性单元和梯度下降零基础入门深度学习(3) - 神经网络和反向传播算法零基础入门深度学习(4) - 卷积神经网络 零基础入门深度学习(5) - 循环神经网络。 零基础入门深度学习(6) - 长短时记忆网络(LSTM)。 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作
15203 0
|
Unix Linux API
cygwin和mingw的区别
Unix下编译通过的C代码,在win32下编译是不能通过的 ,当然Unix 和win32的API都是符合标准C,也就是说,大多数函数调用在unix和win32下是相同的.但是,unix有自己一些独特的API(如fork,spawn,signals,select,sockets等),如果代码中使用了这些API,在win32下当然找不到对应的库.     但是,这些API的功能在win3
3710 0
|
Web App开发
Rss订阅
一、 自从我发现很多人不知道什么是RSS以后,我就一直想向大家介绍它,因为它太有用了,将来会和电子邮件一样重要。不懂得RSS,上网的效率和乐趣都要大打折扣。 我在网上找不到简明易懂的介绍文章,只好下决心自己来写。虽然我不是这方面的专业人士,但是我相信你只要耐心读完这篇文章,你就会基本搞懂RSS以及它的使用方法。 二、 在解释RSS是什么之前,让我先来打一
3777 1
|
自然语言处理 Python
自然语言处理工具 nltk 安装使用
github 地址:https://github.com/nltk/nltk/ 官方地址:http://www.nltk.org/ 中文文档:http://download.csdn.net/detail/u013378306/9756747 安装及测试 Install NLTK: run sudo pip install -U nltk Install Num
4313 0
|
算法 项目管理 数据库管理
HMM ,MHMM,CRF 优缺点与区别
隐马尔科夫模型(HMM): 图1. 隐马尔科夫模型 隐马尔科夫模型的缺点:         1、HMM只依赖于每一个状态和它对应的观察对象:               序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。         2、目标函数和预测目标函数不匹配:               HMM学到的是状
13857 0
freemarker 替换字符串,模板,可以用来动态生成代码
freemarker 通过字符串模板生成,会把map中 name 对应的变量替换字符串模板中的${name} package com.thinkgem.jeesite.test.test; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.
3768 0
|
安全 Java 程序员
Scala 简介 优点 及 用途
介绍: Scala 是一种有趣的语言。它一方面吸收继承了多种语言中的优秀特性,一方面又没有抛弃 Java 这个强大的平台,它运行在 Java 虚拟机 (Java Virtual Machine) 之上,轻松实现和丰富的 Java 类库互联互通。它既支持面向对象的编程方式,又支持函数式编程。它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言。Scala 就像一位武林
7670 0