业务技术协同线上化的硬盘式研发管理实践
摘要:在云效平台策划推出的《持续集成与交付:阿里最佳实践》专题中,阿里云效产品专家代平为大家深入浅出地分享了互联网的研发管理理念,解析了企业研发管理面临的挑战和困难,揭密了如何结合云效产品进行业务技术协同线上化的硬盘式研发管理实践。以下内容根据演讲嘉宾视频以及PPT整理而成。
演讲嘉宾介绍

本期分享的主题是业务技术协同线上化的硬盘式研发管理实践,在分享中主要将和大家探讨研发综合产品管理效能平台应该如何实现,以及如何打通需求、开发、测试、发布这样的产品研发全过程,希望能够给大家带来收获。
本次分享的内容主要分为以下四个部分:
一、互联网研发管理背景
二、常见的研发提效策略及其问题
三、云效支撑的研发管理实践
四、实践最佳路径和效果
一、互联网研发管理背景
互联网研发的特点

- 变化,市场需求变化的速度非常快,这就导致研发需要快速适应市场需求的变化。
- 体验,给用户带来的体验要好,现在因为人们获取信息获取产品实在是太便捷了,因为客户往往会有非常多的选择,所以如果产品在功能、安全或者体验上稍稍落后就会被客户摒弃。
- 速度,互联网市场的竞争非常激烈,产品的研发速度是关乎生死的,也会影响最终的成果。

互联网研发终极大招

二、常见的研发提效策略及其问题
既然知道了互联网研发的终极大招是唯快不破,那又应该如何去提高研发的效率呢?
对于这个问题,有一些公司首先会想到的就是使用一些通讯工具进行即时沟通,比如使用电话或者会议等方式推动一些事务的进展。然而如果站在开发同学的角度来看,因为他们的日常工作产出的最终结果是代码,而编程这项工作需要在大段整段的时间内进行才能够保证有较高的效率。如下图所示,前面浅绿色的时间段指的是进入状态的时间,因为开发同学往往需要这样的一段时间进行状态的转换,中间这段深绿色的时间段就是进入状态的时间,这段时间就是比较高效的编程的黄金时间,在一天当中大概会有四五个小时,而后面的这段灰色的时间段指的就是在后面会慢慢变得疲惫,状态也开始松懈下来。所以真正有效的就是中间的这段黄金时间,在这个时间段内是研发同学最不希望被打扰的,因为一旦被打扰了那么效率就会降低。据说在Facebook不少程序员在编码的时候就喜欢在桌子面前放一张牌,上面写着“Don't disturb I'm coding”,也就是“请勿打扰,我在编程”的意思。

同步的沟通工具存在一个比较大的问题就是具有破坏性,就像上面提到的当开发同学正在高效地编程的时候,这时候突然有一个电话打进来或者有个会议需要参加,那么效率就必然会降低。同时这样的沟通方式也有一定的延迟性,比如在开会时需要协调的人越多,时间的延迟就会越严重,因为需要约定一个大家都有时间的时刻才能开会,举个例子今天下午需要决定的事情,突然有个关键人物没有时间了,就只能将会议推迟到明天或者更后面,所以对于开会而言,人员越多时间效率就会越低,延迟性也就会越高。与此同时,还需要进行调频,这就如同之前大家使用收音机在找到自己想要收听的节目之前需要进行调台一样,在开会这种方式中,当将相关的人聚集在一起之后,还需要将大家的注意力集中在当前的这个事件上,也就是需要将大家的注意力从他们原来做的事情上拉到现在要做的事情上去。而这对于参与者而言往往是被动接受的,所以参与度也会比较低,在这样的情况下往往无法取得预期的结果。
这样的沟通方式不仅仅是效率比较低的问题,同时还有两个更深层次的问题。第一个问题就是如果一个公司没有统一的任务处理机制,不同团队就可能采用不同的任务处理方式,那么可能某些团队就会使用邮件作为沟通方式,而有的就可能采用开会的方式,甚至有些协作是靠刷脸进行的,谁和我更熟悉就先解决谁的问题,这样的效率就会比较低。其实这样的方式很容易让大家联想到乡村小路,有的是这样走的,有的是那样走的,乡村小路的特点就是不平、不直、不通并且不一致。大家都知道“要想富,先修路”,只有统一并且宽敞的信息高速公路才能加快研发任务的处理速度。

所以不仅仅需要将原本不平、不直、不通并且不一致的沟通路径用信息高速公路取代,并且需要将公司的一些项目的数据资产包括过程、文档、结果以及代码统一用于建造公司的类似于数据资产金字塔的硬盘中,将这些数据全部保存下来,这就是云效平台硬盘式研发管理的主体思路,也就是从各种路径独立转变到建立一条整体相通的信息大道,并将数据进行汇总进而做统一的展示、记录和存储的构想。
其实现在也有不少公司也意识到了这一点并开始建立自己公司的研发信息高速公路,他们的做法往往是通过引入一些平台产品来建设自己的信息高速公路,并且通过这样方式沉淀出自己公司的硬盘式金字塔将数据存储下来。这样的趋势如下图所示,通过这些数据不难发现,之前的一部分比例有自建的,也就是使用一些开源工具做集成;也有一些公司使用各自独立的环节独立分割的工具平台实现的,为什么这样做呢,其实在很早之前大家记录Bug往往会使用QC,而这个工具在互联网的“原始年代”还是比较好用的;还有的就是倾向于使用单个厂商的工具平台,也有一些国外的公司能够提供一些比较全面的产品工具平台。在刚开始时,大家很少采取这种单个厂商的全工具平台,因为之前这样的最佳实践也比较少,所以技术也不是很成熟,而慢慢发现随着技术的发展,现在大家开始倾向于选择单个厂商的具有最佳实践的全工具平台,同时如果这样的平台能够具有松耦合性,能够使用多种复合开源或者第三方工具进行良好的集成将是最好的。

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

以上就是对于一整套的信息高速公路的展现。接下来带领大家大概看一下云效平台硬盘式研发管理的总体流程,下图展示的是偏重研发的过程。下图所示的就是研发流程的示意,从上层的业务方进行业务规划开始,之后需要进行组织人员的安排,再到立项之后的需求确立。对于需求的确立而言,需要通过需求跟踪矩阵将需求横向化、标准化。需求是可以分解和拆解的,也是可以配置的,需求的变更记录、评审记录包括对于需求的评论、顶踩全部会在这个平台上记录下来,在平台之上还可以实现责任人以及状态的流转和变更来记录需求到了什么样状态,这样就能够提升需求的质量,控制需求的范围,这是从横向上来看这条线。而从纵向上来看,需求是和后面的整个项目串联起来的,因为需求确定之后就可以进行迭代拆分、评估工作项的资源以及进行任务分解、测试用例的设计实现以及与Bug相关的一些东西都是可以通过需求串接起来的,这样就保证了需求与后续工作的关系都可以透视出来,这样有利于对于整体风险的把控。在整个项目过程结束之后,可以将项目的全部代码发布到代码库中,然后通过云效平台的指挥部这个产品对于整个项目进行复盘并评估出项目的投入和产出。

在阿里巴巴一些比较高级的技术专家可以在云效平台上做些什么事情呢?其实可能一些高P的技术专家不会亲自去写代码了,但是可以在平台上Review一些技术方案并给出一些评论和指导,甚至还可以进行代码的审阅。对于这些高P的技术专家而言,可能他们的一个技术评论就可能帮助开发同学避免很多坑,这样就能够节省大量的时间。而对于管理者而言,在这个平台之上,他们所需要做的事情就是促使团队在这个平台上产出有价值的东西并记录在这个硬盘上面,从而沉淀出整个公司的数字金字塔。并且管理者M是可以看到自己团队的所有成员的全部产出的。那么既然主管可以看到每个人的产出,那么是不是就可以看到究竟谁的工作做得多或者少呢?
谈到这里就有一个问题了,主管看到员工都在做什么,是为了抓到偷懒的还是鼓励干活多的同学呢?代平谈到作为管理者而言,他们的答案是鼓励干活比较多的同学,其实在工作中要想偷懒太容易了,而管理者所关注的则是团队中成员在平台上面写了多少行代码,写出了多少个测试用例,提出了多少个Bug以及设计了多少个技术方案,以及对这些技术方案的评论是什么。
接下来带领大家一起看一下云效产品的部分页面,也就是云效产品是如何呈现员工的工作情况的。以下图所展示的是项目概况页面,这里包含了项目的整体进度、概要、里程碑信息、风险信息、负责人以及项目成员、相关的子项目、及时滚动显示的项目动态、通知信息等。除此之外,项目中各个角色所需要做的工作项等的内容也是通过一些服务呈现的,比如需求页、任务页、迭代、测试用例缺陷、以及自动化、单测集成、环境搭建以及整个系统数据的报表还有发布等,这些内容都会以项目的维度进行展示。


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

四、实践最佳路径和效果
那么,在云效平台上的最佳实践路径和实践效果是如何的呢?其实对于云效平台而言,阿里的实践也不是一帆风顺的,在刚开始起步阶段也不是非常规范,从最初的最简单的Bug系统再到项目和任务、再到讨论以及文档管理,都是一步步实现的,并且在后面将很多的自动化工具和产品也集成到一起。
实践并非一步到位
之后在实践的过程中发现了与其他公司一样的问题,这些工具都是比较零散的,那么就一边将这些系统进行集成,一边进行系统重构,让这些子系统的数据能够互通,这样才得以统一,形成了阿里巴巴统一的信息高速公路。只有这个信息高速公路建成之后才有可能构建出阿里研发资产的金字塔,将数据全部像硬盘一样存储下来。在实践的过程中有一个基本的原则就是统一高于好用,这又应该如何理解呢?其实就是在刚开始的时候,各个团队想要使用的工具往往会是不同的,如果不同团队沟通方式不同或者使用的工具不同,那么对于整个公司而言,效率就会比较低下。所以在云效平台的实践中坚持的基本原则是统一高于好用,公司是需要一个统一的研发管理平台的,而不是各种好用的工具的简单堆叠。

实践中遇到的挑战
其实在云效平台的实践过程中也遇到了不少的挑战。引入一整套的研发管理工具平台,无论对于阿里巴巴自己还是客户而言,都会需要转变工作习惯,需要从线下的各种不同的方式引导到线上并且使用统一的方式,使得从业务同学到研发同学都是按照这一套规范的路径完成工作。总结下来有这样三个比较好的措施:
- 宣导,就是告诉大家我们为什么要做这件事情,引导大家进行思维的转变。阿里巴巴也在这个方面开过不少的会议来讨论为什么要构建大中台来支撑前台的业务,所以也是需要不停地进行宣传的。
- 由易到难,要从简单的事情出发,从易到难地推动这件事情。这在云效平台的实践中也是一样的,云效平台也是从最简单的缺陷的录入,到项目的录入,再到任务的拆解,最后到将各种工具引入上来进行统一的,存在一个循序渐进的过程,因为想要建立的是统一的研发管理大中台,所以推动的团队也是先从技术团队入手,一直推广到业务团队,让他们也在平台上做需求以及业务规划。
- 专人负责,无论是对于阿里巴巴还是客户的公司而言,如果有专人负责的话实施往往会比较顺利。常见的负责的组织就是PMO组织,也就是项目管理专员,如果有专人去负责、宣导、实施和复盘,并且从系统中拿到一些数据并发现问题或者可预见性的瓶颈,并进行汇报,再通过管理层的资源解决问题,如此就能够加速硬盘式研发管理实践的落地。

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

最后更新:2017-05-22 22:01:30