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

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

以下内容根据演讲嘉宾视频以及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客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
4月前
|
弹性计算 运维 Serverless
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
83 1
项目管理和持续集成系统搭建问题之云效流水线支持阿里云产品的企业用户如何解决
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何将个人账号下的Git仓库转移到企业账号下
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
弹性计算 运维 网络安全
上云“加速器”——基于云效流水线快速上线企业门户网站
阿里云提出使用云效将项目代码部署到ECS,快速构建企业门户网站。该方案融合云原生技术和持续交付,通过云效流水线简化从开发到部署的全过程,实现快速迭代。文章详细阐述了技术架构,包括客户端、云解析DNS、VPC、ECS等组件,以及部署流程,包括准备阶段、部署网站服务、解析域名和可选的静态资源加速。此外,还介绍了如何使用云效平台创建流水线,实现自动化构建与部署,以及如何通过一键部署简化流程。整个方案旨在降低运维成本,提高速度和灵活性,同时提供域名备案和SSL证书配置的指导。
194855 76
上云“加速器”——基于云效流水线快速上线企业门户网站
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之缺陷等级管理是否是企业自己划定
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
运维 Devops 应用服务中间件
阿里云云效操作报错合集之从企业仓库里拉取依赖报错403,该如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之从企业仓库里拉取依赖报错403,该如何解决
|
4月前
|
弹性计算 监控 Devops
"揭秘!阿里云云效如何以戏剧性飞跃,重塑企业门户网站部署,一键解锁DevOps魔法,让您的网站秒变行业巨星!"
【8月更文挑战第8天】阿里云云效企业门户网站部署解决方案是一站式DevOps平台,集成云效Flow、Codeup、Testplan等,支持自动化构建、部署与测试。通过ECS实例等资源准备、云端代码托管、持续集成与部署、及全方位监控,实现网站高效稳定运行。采用YAML配置简化流程,确保快速迭代与优化,适用于各类企业的数字化转型。
93 3
|
5月前
|
应用服务中间件 nginx 数据安全/隐私保护
借助阿里个人版镜像仓库+云效实现全免费同步docker官方镜像到国内
受docker hub 6月初网络变更的影响,国内拉取docker官方镜像变得不稳定……
|
6月前
|
域名解析 弹性计算 运维
基于云效流水线高效构建企业门户网站体验评测
阿里云云效流水线作为一款企业级持续集成和持续交付工具,在助力高效构建企业门户网站方面表现出色。
38250 15
基于云效流水线高效构建企业门户网站体验评测
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何管理企业的组织架构
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
敏捷开发 测试技术 API
阿里云云效产品使用合集之一个企业可以绑定几个云效
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。