阿里为何跑得这么快?5万名工程师研发效能提升的秘密!_公众号:肉眼品世界的博客-程序员秘密

 点击“技术领导力”关注∆  每天早上8:30推送

阿里生意版图之大,不用多介绍了,业务飞速发展的背后,离不开工程师们的艰苦奋斗,虽然说996是福报,不免让人好奇,阿里5万多名工程师是怎么做到如此大规模的协作、高效的协同?

在今年的云栖大会上,阿里云资深技术专家-何勉,分享了《阿里巴巴研发效能提升及业务创新实践》,让我们对阿里研发效能提升及业务创新有了全面的了解。

分享分为三部分:阿里研发效能的挑战、落地实践和方法、整体解决方案。

01

超大型技术团队研发效能的挑战

640?wx_fmt=png

跟许多大型互联网公司一样,阿里研发效能的挑战在于:业务发展和市场竞争对研发效能的要求不断提高,研发效能随着业务及工程协作复杂度增加而降低。研发效能提升就是缩短这两者之间的距离。

02

互联网技术团队研发方法实践

640?wx_fmt=png

解决的方法不外乎,将大而缓的瀑布式开发,改变为小而快的敏捷开发,其中的实践包括:持续交付、DevOps、精益思想的落地。

这里需求提醒大家的是,别以为开发效能提升只是技术人员的事,一定要拉上产品经理、业务人员进来,要从需求源头进行效能提升(少提些不过大脑的需求、老板需求)。说实在的,根据统计,企业每年浪费在“低价值”需求上的开发资源,占总资源的40%以上,产品经理要把好第一道关。

03

效能提升的本质:顺畅、高质量地交付有效价值

640?wx_fmt=png

效能提升关注以下3点:

流动效率为核心,提升团队的持续交付能力。

用户价值为核心,规划和探索有效的产品。

长期质量为核心,沉淀优质软件资产和工程能力。

注重整体的优化,而不是局部的优化,以价值流动为重点,减少各环节的等待实践,不追求一时的效能提升,关注长期有效提升。

04

效能提升落地的方法和实践

640?wx_fmt=png

这副图生动地描述了一些技术团队协作效率的问题:部门之间建立起了部门墙,协作非常费劲,产品、开发、测试、上线各环节等待时间很长。

大家别笑,在国内大多数公司,都存在这样的现象,也许你的公司就是这样的。

05

以流动效率为核心,提升团队的持续交付能力

640?wx_fmt=jpeg

作为研发团队Leader,可以把日常开发每个环节的时间记录下来进行分析,如:从需求到开发的时间,开发到送测的时间,测试到上线的时间,看看哪个环节花的时间多,各环节之间等待时间多,那就是优化的重点,团队坐下来一项项列出来讨论,逐一改进。

06

前后职能拉动,端到端的价值交付过程

640?wx_fmt=png

将开发过程进行可视化,如上面的图,其实很多开发管理软件都有这功能,如Scrum的白板,就很清楚看到哪个环节block住了。

07

以组织和资源为核心,以用户价值为核心

640?wx_fmt=png

高效交付,不等于业务成功,所以开发要前置到需求讨论环节,做个懂业务的技术专家,这也是敏捷精髓之一:分工明确化,角色模糊化。

08

以用户价值为核心,规划和探索有效的产品

640?wx_fmt=jpeg

许多创业方法论中都提到:MVP设计,用最小可用设计去验证市场,看用户的反馈,基于数据和思考对产品进行快速迭代,形成创新闭环。

09

高效交付与持续高效

640?wx_fmt=png

局部的优化,改变不了全局;短期的高效,不等于持续高效。做“把时间当成朋友”的事,即:短期见效不一定快,但随着时间的推移,产生从量变到质变,这就是时间的力量。

有效的改进措施,比如:良好编程习惯的培养、对质量的重视、持续流程改进等等。

10

以长期质量为核心,沉淀优质软件资产和工程能力

640?wx_fmt=png

以长期质量为核心,沉淀优质软件资产和工程能力。从软件的架构治理入手,如微服务化、中台化,致力于长期有效的基础设施搭建。

形成完善的工具链建设,打造持续交付的工程能力。

11

研发效能提升之道

640?wx_fmt=png

研发效能提升包含三个方面:

流动效率,提升团队的持续交付能力。

客户价值,规划和探索有效的产品。

长期质量,沉淀优质软件资产和工程能力。

12

基于软件的分层解决方案

640?wx_fmt=jpeg

将以上研发效能理念,沉淀到管理软件当中,使规范得以落地,在超大型研发团队的效能提升中,进行规模化复制,系统化提升。

640?wx_fmt=png

总结一下,超大型研发团队,比如BAT等达到上万名工程师规模,研发效能的提升,要从研发效能思想、研发流程改进、研发工具建设等方面进行落地。

不同于传统软件研发效能提升的是,互联网追求一种“可控的乱”,如:Scrum里可能文档是滞后的、带伤上线,但是长期来看,这些问题是得到控制的,对业务的快速发展是有益的,难点就要于这个“度”的把控,有时候你要承受各方的压力。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45727359/article/details/102849487

智能推荐

R语言dplyr包select函数删除dataframe数据中包含指定字符串内容的数据列(drop columns in dataframe)_statistics.insight的博客-程序员秘密

R语言dplyr包select函数删除dataframe数据中包含指定字符串内容的数据列(drop columns in dataframe)

Android——有序广播和无序广播_flying_universe的博客-程序员秘密

1.有序广播    有序广播是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。此时的广播接收器是有先后顺序,优先级高的广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息了。想要拦截一条广播不往下发送,可以使用abortBroadcas

计算机系统操作中级工试题及答案,计算机系统操作中级工试题附答案.doc_Ms 陈的博客-程序员秘密

计算机系统操作中级工试题附答案.doc职业技能鉴定国家题库计算机系统操作工中级理论知识试卷意 事 项1、考试时间:120分钟。2、本试卷依据2001年颁布的《计算机系统操作工 国家职业标准》命制。3、请首先按要求在试卷的标封处填写您的姓名、准考证号和所在单位的名称。4、请仔细阅读各种题目的回答要求,在规定的位置填写您的答案。5、不要在试卷上乱写乱画,不要在标封区填写无关的内容。得 分评分...

vscode 使用正则进行匹配批量替换清除html内容_我是李大福的博客-程序员秘密_vscode 正则删除

通过采用正则这种符号来替换或去除页面文档或代码中相似或相近的内容

看人工智能如何在DevOps中大展身手_AI课工场的博客-程序员秘密_devops 人工智能

对于人工智能,我们通过机器学习、深度学习算法已经有很了很多了解了。但实际上,我们还在人工智能的初级阶段,未来一段时间内可能处于并将长期处于人工智能初级阶段。在人工智能逐渐“智能”的过程中,有一种形态有点意思,那便是知识图谱。这是Google在2012年5月17日提出的新概念,它本质上是实体之间关系的语义网络,把信息转化为知识。日常生活中我们接触到的信息是外部的客观事实,比如这里有一只冰淇淋,它现在是凝固状态,而知识是对外部客观规律的归纳和总结,比如冰淇淋的保存维度是0度以下,大于0度时就会融化。

oracle中计算两个日期之间的差值_寒枫叶的博客-程序员秘密_oracle日期相差

2016年10月29日 19:18:03阅读数:10506最近几天在工作中用到了一项计算时间的功能,计算两个时间之间的天数差,顺道总结一下oracle中的语句:两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒):天:ROUND(TO_NUMBER(END_DATE - START_DATE))小时:ROUND(TO...

随便推点

c linux root 后挂载读写,Linux-挂载-mount_杨昉的博客-程序员秘密

4.文件系统4.6分区、格式化与挂载4.6.6挂载什么是挂载?Linux通过倒树形的根文件系统来管理所有的文件,内核只能识别并管理根目录/所在的文件系统及其下的目录和文件。因此其他文件系统想要使用,都需要为其指定在现存目录下的访问入口。将额外的文件系统,与现存的Linux能够识别的目录,建立起映射关系,实现将现存目录作为访问额外文件系统的入口的功能,这个过程称为挂载;用于访问额外文件系统的,现存文...

Linux下后台Python运行程序,并输出日志文件_瑾珮的博客-程序员秘密_python 后台运行 日志

后台运行Python程序,然后把打印信息保存在指定的日志文件中,可随时查看日志。一、启动命令1、一般使用nohup python -u pyth.py >log.log 2 >&1 &2、只记录异常日志(推荐)nohup python -u pyth.py >/dev/null 2>error.log 2>&1 &3、不记录任何日志nohup python -u pyth.py >/dev/null 2>&

python 网格策略_Python版简单网格策略_长佑的博客-程序员秘密

策略广场上的Python策略不多,这里编写了一个Python版本的网格策略。策略原理十分简单,在一个价格区间内固定价格距离产生一系列的网格节点,当行情变化时,价格到达一个网格节点价格位置,就挂一个买入订单。当这个订单成交时,即按照挂单的价格加上利润差价,挂出平仓的卖单订单。捕捉在设置的价格区间内的波动。网格策略的风险不用多说,任何网格类型的策略都是属于赌价格在某个区间震荡,一旦价格冲出网格范围,可...

CDH集群部署_一只kaokaola的博客-程序员秘密

官网解读CDH5.12.1官网文档链接spark2与kafka之类的安装文档Linux本次搭建采用Centos7.2,而官网提示RHEL / CentOS / OEL 7.0 is not supported.,centos7.0是不支持5.12.1版本的安装JDKOnly 64 bit JDKs from Oracle are supported. Oracle JDK 7 i...

小资料:108个兼容ITIL的工具列表_weixin_34161029的博客-程序员秘密

小资料:108个兼容ITIL的工具列表Alert [url]http://www.alertit.com[/url]AllFusion Endevor [url]http://www.[/url]ca.com AllFusion Harvest CM [url]htt...

php接受formdata上传的文件上传,通过FormData实现上传文件_芊暖的博客-程序员秘密

html代码index.html上传文件:$(function(){$('input[type="file"]').on('change', function(){var file = this.files[0];var formData = new FormData($('#uploadImg')[0]);formData.append('file', file);console.log(for...