如何加强企业研发管理?阿里云效硬盘式管理实践揭秘

简介: 在云效持续集成持续交付专场直播中,阿里云效产品专家代平为大家带来了《硬盘式研发管理实践》分享,深入浅出地分享了互联网的研发管理理念,解析了企业研发管理面临的挑战和困难,揭密了如何结合云效产品进行业务技术协同线上化的硬盘式研发管理实践。
摘要:在云效持续集成持续交付专场直播中,阿里云效产品专家代平为大家带来了《 硬盘式研发管理实践》分享, 深入浅出地分享了互联网的研发管理理念,解析了企业研发管理面临的挑战和困难,揭密了如何结合云效产品进行业务技术协同线上化的硬盘式研发管理实践。

以下内容根据演讲嘉宾视频以及PPT整理而成。

嘉宾介绍

代平:阿里产品专家。从事多年互联网系统的研发测试和项目管理。现在专注于研发协同管理产品设计。

本次分享主要和大家探讨研发综合产品管理效能平台应该如何实现,以及如何打通需求、开发、测试、发布这样的产品研发全过程,希望能够给大家带来收获。

本次分享的内容主要分为以下四个部分:
一、互联网研发管理背景
二、常见的研发提效策略及其问题
三、云效支撑的研发管理实践
四、实践最佳路径和效果


一、互联网研发管理背景


互联网研发特点

012244535109605df820a48f0e7025129d80bec5

随着互联网的发展,不仅仅是互联网公司的研发,就连传统企业的研发模式也开始受到互联网的影响,各行各业都在向“互联网+”模式转型,这就导致互联网的研发有如下的这些特点:

1.变化:市场需求变化的速度非常快,导致研发需要快速适应市场需求的变化。
2.体验:给用户带来的体验要好,现在用户获取信息十分便捷,用户会有非常多的选择,所以产品在功能、安全或者体验上稍稍落后就会被用户摒弃。
3.速度:互联网市场竞争非常激烈,产品的研发速度关乎生死,也会影响最终成果。

互联网研发问题

0e0334e9bb097a34132afcba24cf58205bdbceee

由以上互联网研发特点,导致了在研发过程中会出现上图所示的常见问题。比如业务迭代速度非常快,直接导致项目的并行量非常大;因为业务发展速度快,所以应用的增长也非常迅速,导致无论是开发同学还是测试同学在搭建环境时的工作都会变得非常复杂;除此之外因为研发同学在研发过程中需要与各个角色进行一些协调,所以这带来的研发成本也会非常高;与此同时,测试的成本也在急剧增长,而且使用的人肉测试也会比较多,这样导致最终的结果是业务很难快速地交付到客户手中。

面对这些问题应该如何应对呢?天下武功唯快不破,提高效率也许就是互联网研发的关键。

二、常见的研发提效策略及其问题

ebe4664af70caf846f04e02b77575ca2174e8bde

通常情况下,工作时会使用一些通讯工具进行即时沟通,沟通的方式主要有三种:同步型:比如电话或者会议;异步型:如钉钉、微信等通讯工具;邮件:可以看做异步通信的方式,但一般用于发布通知。这些通讯工具的弊端在于整体沟通协作效率比较低下,同时还有两个更深层次的问题。

第一个问题是如果一个公司没有统一的任务处理机制,不同团队就可能采用不同的任务处理方式,那么会出现甲团队使用邮件作为沟通方式,乙团队采用开会的方式,丙团队协作靠刷脸进行,这样的效率就会非常低。这样的方式很容易让大家联想到乡村小路,乡村小路的特点就是不平、不直、不通并且不一致。 “要想富,先修路”,只有统一并且宽敞的信息高速公路才能加快研发任务的处理速度。

e0b6d99969fdcba0b6acea86d1abd827947dad06

第二个问题就是工作内容没有沉淀。如果想要查看前面沉淀下来的经验,只能到处找人问。

如果整个研发过程的数据就如同在一个硬盘上一样全部存储下来,那么对于公司而言将会是巨大的财富,即使有同学离职了,新来的同学也可以通过沉淀下来的数据,参考查证以前的工作路径和工作记录。

所以不仅仅需要将原本不平、不直、不通并且不一致的沟通路径用信息高速公路取代,并且需要将公司的一些项目的数据资产包括过程、文档、结果以及代码,统一用于建造公司的类似于数据资产金字塔的硬盘中,将这些数据全部保存下来,这就是云效平台硬盘式研发管理的主体思路,也就是从各种路径独立转变到建立一条整体相通的信息大道,并将数据进行汇总进而做统一的展示、记录和存储的构想。

现在有不少公司意识到了这一点,并开始建立公司的研发信息高速公路。他们的做法往往是通过引入一些平台产品来建设自己的信息高速公路,并且通过这样的方式沉淀出自己公司的硬盘式金字塔,将数据存储下来。如下图所示。

 cf25444cb158f59ab888c03307227ff6e8be6a54

三、云效支撑的研发管理实践

下图是云效平台整体的架构图,这就是云效的研发信息高速公路,它可以让研发同学以及包括产品、测试和运维同学将自己的日常工作放在这个平台上。需求、做项目、设计技术方案、编码、代码的审阅、测试、发布以及所有工作项的评论等全部记录在云效平台上。

c0d4b815f95e6005295ff778366c242a5aa7bc8a

因为云效平台的核心原则就是平台化、流程化和自动化,也就是说希望制定一套标准化的流程,例如持续部署流程、代码流程、代码管理流程等,之后将这些流程通过自动化的方式以及自动化的工具实现出来,这就是云效平台的基本原则。

有了这些原则之后就在平台之上建立了配置管理、持续集成、持续交付、环境自动化、分层自动化以及集成自动化这些相关的子系统。有了这些子系统之后就创建了一个可靠可重复的交付流水线。比如说在提交与编译阶段的并行研发、编译构建和单元测试,在测试与验证阶段的环境部署、系统测试和集成测试,以及在发布与运维阶段的生产交付、发布回滚和生产监控等都是可以通过云效平台的相关产品进行效率提升的。

在可靠可重复的交付流水线建设完成之后,云效团队又将之前所做的研发综合效能管理方面的东西,包括业务模型分层、业务规划、研发资源管理以及ROI复盘等,全部在云效平台上进行呈现。而将包括需求跟踪矩阵、迭代计划、任务分解流转以及度量与改进在内的这些,构建成了协同工作流,每一个人都可以在平台上评论所有的工作项并提出方案或者进行顶踩,这样就保证了开发的质量、效率以及评论和文档等所有相关的数据都存储在平台之上。

项目维度的互动和多角色之间的沟通协作全部都是在云效平台上进行,参与项目的人员使用相同的系统进行相互协作,这样对组织效率和业务也能够起到很好的促进作用。

除此之外,云效平台还支持私有云部署,对于Docker等开发框架以及最简单的J2EE工程项目等也能够提供良好的支持。


硬盘式研发管理的总体流程

9eab9bff0840a7f64d1c3679716f795c688052f0

上图所示的就是研发流程的示意,从上层的业务方进行业务规划开始,之后需要进行组织人员的安排,再到立项之后的需求确立。

对于需求的确立而言,需要通过需求跟踪矩阵将需求横向化、标准化。需求是可以分解和拆解的,也是可以配置的,需求的变更记录、评审记录包括对于需求的评论、顶踩全部会在这个平台上记录下来,在平台之上还可以实现责任人以及状态的流转和变更来记录需求到了什么样状态,这样就能够提升需求的质量,控制需求的范围,这是从横向上来看这条线。

而从纵向上来看,需求是和后面的整个项目串联起来的,因为需求确定之后就可以进行迭代拆分、评估工作项的资源以及进行任务分解、测试用例的设计实现以及与Bug相关的一些东西都是可以通过需求串接起来的,这样就保证了需求与后续工作的关系都可以透视出来,这样有利于对于整体风险的把控。在整个项目过程结束之后,可以将项目的全部代码发布到代码库中,然后通过云效平台指挥部这个产品对于整个项目进行复盘并评估出项目的投入和产出。

这里大家可能会产生一个疑问,看上去整个研发过程的工作都是记录在这个平台上面的,那么有没有一些研发相关工作是没有记录在云效平台上的呢?这个问题的回答是:没有!云效平台提倡硬盘式记录,如果工作没有在平台上记录,那就相当于没有工作的产出。可以设想一下:如果一名员工在公司做了很多年,既没有留下一行代码,也没有留下任何对于技术方案或者需求的变更、评审进行讨论的东西,对于公司而言这名员工给公司留下了什么呢?所以,站在公司的角度,希望每一位员工都能够积累下属于自己的工作记录,并且全部都记录在公司的平台之上,固化成公司的数字资产。

对于一些比较高级的技术专家可以在云效平台上做些什么呢?也许他们不用自己去写代码,但是可以在平台上Review一些技术方案并给出一些评论和指导,甚至还可以进行代码的审阅。这些能够非常好的帮助开发同学避免很多坑,节省大量时间。对于管理者而言,他们所需要做的事情就是促使团队在这个平台上产出有价值的东西并记录在硬盘上面,从而沉淀出整个公司的数字金字塔。管理者也可以看到自己团队所有成员的全部产出。

云效项目页面

下图所示的是项目概况页面,包含了项目的整体进度、概要、里程碑信息、风险信息、负责人以及项目成员、相关的子项目、及时滚动显示的项目动态、通知信息等。除此之外,项目中各角色所需要做的工作项等内容也是通过一些服务呈现的,比如需求页、任务页、迭代、测试用例缺陷、自动化、单测集成、环境搭建以及整个系统数据的报表还有发布等,这些内容都会以项目的维度进行展示。

e2fb7c8c5567b85a01dafec8cf2838eb60e5b4a8

云效需求页面

一个项目的管理者或者项目成员,在云效平台上可以看到与项目相关的所有内容。

以产品为例,可以看到整个需求跟踪矩阵的列表,这里提供了看板和数表这两种模式来显示项目需求的优先级、是否上线、迭代情况、创建者以及当前的负责人等状态信息,点击每个需求条目之后可以看到这条需求的详细情况,包括需求的具体内容、相关联的需求状态和相关的一些任务状态,还包含一些相关评论,鼓励大家分析需求,对需求进行评论或者顶踩,提出更好的方案。

b2cc3856cbd0ba245d8eb51d162b144c57942719
 
除此之外,需求的详细内容页面还会显示需求各个版本的修订记录、变更记录、评审记录以及操作记录等信息,对于每一个工作项都有这样类似硬盘式的记录,包括这个需求所包含的任务、用例、缺陷、分支等工作项也会在详细信息中进行展示。上图页面中最右边展示的是需求属性以及附件,包含了优先级信息、迭代信息、所属项目、关联项目、模块信息、版本信息、进度信息以及经过技术同学评估之后计算出的大概的工作量,还有就是一些自定义的标签、发生变更之后需要通知的对象信息,以及与该需求相关的附件等。

这些就是需求页面的大致情况,因为这部分是项目的源头,包含的信息量非常大,所以需要以硬盘的形式全部存储下来。一言以蔽之,云效平台在横向上会将需求所有相关的信息全部记录下来;对于纵向而言,像任务拆分、用例、缺陷以及开发分支等所有项目相关的内容都可以在这里记录,以此串联起整个需求的过程,直到产品发布上线。

云效集成自动化

下图所展示的就是某一个项目的集成自动化的情况。云效平台擅长UI自动化、接口自动化以及单元测试,这些可以全部集成在一个平台上执行,而且历史的执行结果会全部展示在页面上,集成的通过率如何、有多少成功和失败、测试件在执行时候绑定的环境情况、项目中各个部分所执行的测试件情况等,这些项目相关的自动化情况也都会在页面上得到展示。这样大家对于硬盘数据的管理就会有一个直接的概念,项目中所有的信息都可以在一个统一的平台上呈现出来。

b20402895944523cf87225b0e0df2d30dfb361a3

四、实践最佳路径和效果

对于云效平台而言,实践之路也不是一帆风顺的,在刚开始起步阶段也不是非常规范,从最初的简单的Bug系统再到项目和任务、再到讨论以及文档管理,都是一步步实现的。


实践并非一步到位

ad965c3a2832e9eecd1e8108723effcb939d051b 

在实践过程中,我们也发现了与其他公司一样的问题。这些工具都是比较零散的,我们一边将这些系统进行集成,一边进行系统重构,让这些子系统的数据能够互通,这样才得以统一,形成了阿里巴巴统一的信息高速公路。只有这个信息高速公路建成之后才有可能构建出阿里研发资产的金字塔,将数据全部像硬盘一样存储下来。在实践的过程中有一个基本的原则就是统一高于好用。比如刚开始的时候,各个团队想要使用的工具往往会是不同的,如果不同团队沟通方式不同或者使用的工具不同,那么对于整个公司而言,效率就会比较低下。所以在云效平台的实践中,坚持的基本原则是统一高于好用,公司是需要一个统一的研发管理平台,而不是各种好用的工具的简单堆叠。

实践中遇到的挑战

云效平台在实践过程中遇到了很多挑战。引入一整套的研发管理工具平台,无论对于阿里巴巴自己还是客户而言,都会需要转变工作习惯,需要从线下的各种不同的方式引导到线上并且使用统一的方式,使得业务同学、研发同学都是按照这一套规范的路径完成工作。

总结下来有这样三个比较好的措施:

1.宣导:告诉大家为什么要做这件事情,引导大家进行思维的转变;
2.由易到难:从简单的事情出发,从易到难的推动这件事情;
3.专人负责:常见的负责组织就是PMO组织,也就是项目管理专员。如果有专人去负责、宣导、实施和复盘,并且从系统中拿到一些数据并发现问题或者可预见性的瓶颈,并进行汇报,再通过管理层的资源解决问题,如此就能够加速硬盘式研发管理实践的落地。

实践效果

硬盘式研发管理实践的最终效果:一方面是把员工脑海中的信息都数据化成为公司的研发资产,员工的工作也都会固化成为数据存储在公司的平台上;另一方面统一的研发效能平台就如同信息高速公路一样,因为其是透明的,所以可以营造出一种在意工作过程并且在意相互帮助的工作氛围,团队成员之间也会鼓励积极共享代码并且参与讨论。最终会使得研发的效率更高,并且带来高效的横向协同。




相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
3天前
|
存储 人工智能 数据管理
【云故事探索】基于阿里云助力地理产业2.0落地,实现遥感数据智能化管理
中国某遥感数据服务中心借助阿里云ECS、GPU和OSS服务,成功实现了地理信息产业升级。此前,中心面临数据管理混乱、服务响应慢等问题。通过阿里云的解决方案,构建了全生命周期管理的遥感数据平台,强化了自动化、智能化的数据生产能力,提升了数据服务的准确性和及时性。此外,平台还增强了数据共享,扩大了应用范围。未来,中心计划结合AI技术,探索地理信息3.0时代,利用阿里云的人工智能平台进一步提升数据管理和应用能力。
47 1
|
1天前
|
弹性计算 运维 Serverless
阿里云Elasticsearch Serverless助力大型企业咨询公司大幅提升效能
阿里云Elasticsearch Serverless服务,提升了某大型企业咨询公司的数据查询速度和准确性,在实现成本可控的同时,帮助提高了企业效能并加强了客户服务能力。
|
2天前
|
弹性计算 关系型数据库 数据库
利用阿里云进行性能优化:实践案例分享
在开发在线教育平台过程中,我们遇到了由于用户访问量增加而导致的性能瓶颈问题。通过使用阿里云的多种服务,包括RDS数据库、ECS弹性扩展、SLB负载均衡、OSS存储和CDN加速,我们对数据库、应用服务器和静态资源加载进行了全面优化。优化后的系统性能显著提升,数据库查询速度提高了60%,服务器负载下降了40%,静态资源加载时间减少了70%,从而极大改善了用户体验。本文详细介绍了问题分析、具体解决方案及其实施效果,旨在为其他开发者提供有价值的参考。
68 3
|
2天前
|
存储 弹性计算 监控
利用阿里云云产品进行项目成本节约的实践
本文分享了利用阿里云降低成本的实践经验,主要通过选择合适的计费模式(如按量付费、包年包月和抢占式实例)、优化资源配置(弹性伸缩、资源监控与调整、适配存储方案)、利用优惠和成本管理工具(预留实例券、成本预警、优惠活动)以及案例分析,实现云计算成本的有效控制。通过这些策略,企业在保证灵活性和扩展性的同时,能更好地管理云服务成本,提高项目经济效益。
66 1
|
2天前
|
弹性计算 关系型数据库 MySQL
【阿里云弹性计算】从零搭建:基于阿里云ECS的高性能Web服务部署实践
【5月更文挑战第21天】本文介绍了如何使用阿里云ECS搭建高性能Web服务。首先,注册阿里云账号购买ECS实例,选择合适配置。接着,通过SSH连接实例,更新系统并安装Apache、PHP和MySQL。创建网站目录,上传代码,配置数据库和PHP。然后,启用Gzip压缩和KeepAlive,调整Apache并发连接数以优化性能。此教程为在阿里云上构建高效Web服务提供了基础指南。
87 5
|
2天前
|
Cloud Native 数据管理 关系型数据库
【阿里云云原生专栏】云原生数据管理:阿里云数据库服务的分布式实践
【5月更文挑战第21天】阿里云数据库服务在云原生时代展现优势,应对分布式数据管理挑战。PolarDB等服务保证高可用和弹性,通过多副本机制和分布式事务确保数据一致性和可靠性。示例代码展示了在阿里云数据库上进行分布式事务操作。此外,丰富的监控工具协助用户管理数据库性能,支持企业的数字化转型和业务增长。
166 1
|
3天前
|
运维 Cloud Native Serverless
【阿里云云原生专栏】阿里云云原生实践:从容器化到Serverless的无缝过渡
【5月更文挑战第20天】本文介绍了如何在阿里云上实现从容器化到Serverless的平滑过渡。首先,通过阿里云容器服务(ACK)创建和管理容器集群,部署应用。接着,利用函数计算(FC)构建Serverless架构,编写和部署函数代码。最后,借助函数工作流(Fn)进行任务编排,实现容器化应用与Serverless应用的统一管理,从而提升应用弹性和可扩展性,降低运维成本,支持企业高效数字化转型。
224 3
|
5天前
|
存储 人工智能 运维
|
8天前
|
安全 Devops 测试技术
深入了解阿里云云效DevOps:构建高效软件开发实践
阿里云云效DevOps,集成CI/CD与自动化测试,提升开发效率。支持持续集成确保代码质量,自动化测试加速交付,多环境及灰度发布保障安全可靠性。助团队构建高效开发实践,增强竞争力。
27 1
|
8天前
|
监控 数据可视化 测试技术
云效流水线 Flow 评测:助力企业高效完成 CICD 全流程
云效流水线 Flow 评测显示其在CI/CD领域表现出色,尤其适合新人上手。具备直观的可视化编辑和Yaml化选项,丰富的文档教程,以及全面的功能,如多代码源支持、自动化测试、稳定部署及阿里云服务集成。此外,Flow性能稳定,监控功能强,且高度可扩展,支持插件和API集成。相比其他工具,Flow在成本、功能和性能上有竞争优势,特别适合与阿里云生态结合的团队。作为一款易用且性价比高的工具,Flow值得推荐给各类企业。
245 11