热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

阿里B2B研发管理难题如何应对?打造强有力的技术中台

通常企业业务量增加之后,研发团队也会急剧扩张,这给研发管理带来了难度,原先那一套研发模式和管理,已然跟不上业务的发展。如何建

通常企业业务量增加之后,研发团队也会急剧扩张,这给研发管理带来了难度,原先那一套研发模式和管理,已然跟不上业务的发展。如何建设一套技术基础设施,去支撑更好、更高效的研发管理?在3月28日深圳云栖大会上,阿里巴巴B2B高级技术专家范之岳分享了《阿里巴巴B2B研发管理实践》,从阿里巴巴B2B的研发实践过程,为大家带来新的思路和解决方案。


以下内容根据讲师PPT和视频整理而成。


讲师介绍:

范之岳:阿里巴巴高级技术专家,是B2B事业群研发效能平台及对外云效平台的产品,及技术风险负责人,技术质量架构师。在敏捷研发、持续交付、研发团队管理等方面有丰富的经验。


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


创业团队或者初创公司,在开发团队人员较少的时候,更多是通过加班、人肉来实现快速发布。这个时候很少会考虑要构建一套基础设施,来更高效的管理研发过程。等到初创团队成长起来,业务发展起来,系统更加复杂,团队规模也越来越大的时候,就会面临一些挑战。阿里巴巴B2B技术部也同样面临这样一些挑战。


互联网·无线 研发问题


5543ee74d57a4a4d08226a7d6d185586dfbb27d9


老板与员工的视角


dcb6c70e284117eef4fb7f58a0975902725c6a7c


敏捷?scrum?


5efcd9f6f2355f9a2bec161942b67f68986b0005


敏捷和scrum 框架是否能解决上述问题?答案是不一定。


敏捷对个人和团队的要求非常高,要求个人的意识、团队意识、团队的自我管理,还需要配套一个整体的技术基础来支撑它的敏捷研发过程,只有这两者结合在一起,才能达到敏捷最终希望达到的那种快速迭代发布的状态。但人的培养,团队的建设,以及工程效能实践的建设,都是需要时间的。敏捷只是一种思想,解决不了工程效能的实际问题。但是整个工程效能支撑的,还是敏捷的思维。


技术债与服务化


3fb32e32a61d78f9fd343df1c8053cbdfd20f79c 


我们希望做到高效高质的发布,有件事情是需要做的,就是要解决技术债和服务化。


阿里巴巴B2B的服务化构成,就是把主导的整个淘宝系的中间件结合在一起,把B2B几个业务的技术架构做了服务化,做到了独立发布,去掉了不合适的耦合,这些是前提。因为应用本身是耦合着的,无法做到独立发布,那有再好的平台,也支撑不了去做敏捷发布,所以技术债、服务化是下决心要做到的,不做的话,持续集成可能就是形而上学。


二、阿里巴巴B2B研发管理实践:工程效能技术中台


阿里巴巴B2B技术部遇到的挑战和问题,如何应对?——打造强有力的技术中台。


aaf1ae0859532f38437b54af9021b7d87d92059b

 

目前,阿里巴巴有各种各样的业务,比如alibaba.com,1688.com,农村淘宝,零售通,B类金融等,不同的业务,我们用同一套研发技术中台来支撑,这个研发技术中台,被分成两块。


第一块是综合管理。


综合管理顾名思义就是研发团队的管理团队,包括一线主管,满足他们管理诉求的一些功能。其中,战略规划是技术团队管理者、架构师、与业务团队一起来实现整个战略规划、排兵布阵;资源估算,解决了预估,倒排,资源透明化的问题;兵力部署、项目复盘、用户体验,这五个模块都是支撑研发过程的综合管理行为。目前,阿里云效上云提供PaaS和SaaS服务,包含综合管理和研发工程效能,其中综合管理效能称之为“指挥部平台”。


相关阅读:云效2.0|指挥部新品重磅发布,助力企业综合管理效能提升


第二块是研发工程效能。


整个研发工程效能也是用了服务化理念。上层有分层自动化应用、无线适配、无线自动化、远程真机、性能测试;下层包含了很多服务,比如持续集成服务、自动化服务、测试数据服务、测试环境服务、无线设备管理服务等,这些服务都能被上层做一些调用,因为它可能会有些交叉的服务调用,整套就是支撑我们研发过程以及研发管理的过程。


我们的关键词是研发的闭环、高效、优质、透明化,所有这些模块的数据,把它平台化之后,所有数据在平台里面都能沉淀下来。我们可以对这些数据去采集,去做数据应用,如果想看研发过程中哪个节点上出现问题,都能从平台上取出数据,给研发管理者做出分析。


a05adf8d22c227fd707c11115e06595b04a7da05

工程效能中台的详细版


三、阿里B2B研发流程及持续发布


fea666339ea4f5d8710163687b0976053308cbe6

技术管理中台闭环图

 

传统闭环图,像需求、开发、测试、发布、总结,整个技术研发中台,在每个节点上都有对应的模块、功能来支撑这个过程,在需求和总结过程,更多的是一个综合管理中台,比如需求资源管理、立项管理、指挥部、还有商业结果的review,项目复盘,整个都有平台来支撑。开发,测试,发布阶段,就是前面的工程效能中台,来详细支撑闭环里这三个节点上需要的功能。


很多初创、传统公司不太重视技术基础效能中台建设,不能做到一键打包、编译、集成等,研发效率受到很大限制。我们研发效能平台可以很好的支撑阿里巴巴B2B1000多人研发行为,于是我们决定把它搬到云上,去支撑外部更多的客户,来提升他们研发的效能与质量,这就是云效平台。云效平台支持客户的PaaS部署,像金融、保险等很多客户都在使用云效平台。


8781518036cc109ef5098a34bb28bf67536905e4

持续交付过程图

 

这张图解释了我们持续交付的过程。我们有项目,各种各样的小需求,一天可能有上百次的发布,进入配管系统,然后根据应用分圈,再到预发布验证过程,这个是全自动化过程,它会触发对应的相关联的分层自动化,只有在失败的时候,开发测试才会介入,如果没有失败,就全自动化发布上线。这个是我们的持续发布过程。


因为每天有上百次的发布,并且我们现在开发、测试的配比差不多是10:1,所以我们必须采取差异化的发布流程。尤其项目的管理过程,也是差异化的。


904041abffdd5e6a02db66c37ee3097cbd24b6bf

 

四、阿里一线PL的职责与思考


2fc9a51ce0b9711323cad0848a11df07e34f58f6


技术是基础,业务缺一不可,通过达到业务的目标,来实现团队的管理,建设。



>>深圳云栖大会云效专场视频







推荐阅读
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 在开发app时,使用了butterknife后,在androidStudio打包apk时可能会遇到报错。为了解决这个问题,可以通过打开proguard-rules.pro文件进行代码混淆来解决。本文介绍了具体的混淆代码和方法。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
author-avatar
蓝色清晨-花
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有