摘要:在Work like Alibaba案例实战系列第二期9月14日的直播中,新光互联无线团队负责人陈联柯为大家分享了如何借助RDC,实现从需求管理,到多团队协作,到缺陷管理以及自动化部署等全流程的无缝衔接,并借助RDC的敏捷管理工具,让敏捷协作更为高效。精彩不容错过!
直播回顾视频地址:https://yq.aliyun.com/webinar/play/304
本文内容根据演讲嘉宾视频分享以及PPT整理而成。
本次的分享主要分为以下4个部分:
一、新光集团简介
二、传统的研发方式
三、RDC是个好工具
四、RDC数据化管理
一、新光集团简介
新光集团是一家集实业、地产、投资、金融、互联网、能源和旅游等多元业务于一体的产融结合的生态投资集团。目前旗下有1家上市公司,40多家全资子公司及控股公司,近百家参股公司,资产规模近千亿。新光互联是新光集团旗下负责互联网业务相关的子公司。
二、传统的研发方式
接下来首先介绍新光集团在接触RDC之前所使用的传统研发方式,这里以新光集团旗下的兔波波业务为例。从下图中可以看到兔波波的业务主要分为四个部分,其中兔波波的整个业务线主要可以分为三大块:众包、门店和车配,而这里的“数据”指的是在兔波波内部专门针对于其他三个业务所做的数据收集、分析相关的工作。
门店相关业务其实与菜鸟驿站很类似,也就是各个社区中都会有很多的门店,比如水果店或者小百货商店,这些门店原本都是在社区中独立运营的店铺,当这些店铺加盟到兔波波之后就可以通过收发快递的方式帮助自己吸引客流,同时自己门店中的货物也可以通过众包系统进行配送,并通过车配系统帮助门店进货。所以对于门店这部分也有很多项目组在跟进,为门店店主提供了手机端的快递管理助手、PC端的管理系统,为城市服务商提供了运营管理系统,并为顾客提供的可以实现在线寄件的兔波波微信公众号等服务,而在兔波波微信公众号中也能够提供众包业务中的闪送服务。
第三部分是车配业务,这部分所做的工作是针对城市内部的次干线进行物流配送。车配业务将和门店业务结合起来赋能门店的物流。车配业务也涉及了很多方面,需要为不同的角色比如司机、管理人员以及运营人员提供各自所需要使用的手机应用程序等软件系统。
对于数据业务部分而言,其包括了对于上述兔波波三大业务的数据分析,这部分需要将数据做成报表并及时向老板汇报,从而帮助管理层更好地做出决策。除此之外,还会涉及到对于自己产品的数据分析,比如在应用上线之后,需要采集运行情况的监控数据,并进行相应的版本管理以及应用的灰度发布等。
单是兔波波这样的一个业务线算下来就已经达到十几个项目组,总共四五十个项目成员了。而面对这么多的业务,之前的做法相对比较传统,就是“一个萝卜一个坑”,每个成员负责固定的项目,这样就相当于同时有十几个项目组向前走。从研发资源的把控和安排的角度来讲,整个研发管理的复杂度就会大大提升。如果业务比较简单,只有一两个项目团队,那么使用传统的方式进行管理是完全没有问题的,但是目前单是兔波波这一条业务线就有十几个项目组同时开展工作,那么对于项目的进度和风险的把控以及资源的分配工作都需要管理人员花费大量的时间来进行信息收集和数据同步。所以在面对如此之多的问题的时候,项目的研发管理就会变得令人头疼。
在最早的时候,新光集团在软件系统上做法与很多的创业公司一样:在代码管理方面使用GitLab,需求管理和Bug管理使用JIRA,团队内部的文档共享使用Confluence的Wiki功能。在最开始的时候,新光无线团队采用的还是手动在本地进行打包的方式,而后面随着业务的增多,也逐渐开始使用Jenkins实现简单的持续集成。
三、RDC是个好工具
后来经过一位阿里巴巴的同事的推荐,新光无线团队开始接触RDC这款工具。RDC可以用于项目研发全流程的管理,它是由阿里巴巴内部的AOne系统开放出来的。接下来这部分将与大家分享新光无线团队在使用RDC过程中的一些收获。
初识RDC
目前阿里云的服务已经相对比较成熟了,像新光集团这样初创型的公司所使用也基本上都是阿里云的服务器,除此之外也使用了很多阿里云所提供的服务,所以总体而言对阿里云并不陌生。但是因为阿里云所提供的功能种类非常多,如下图所示的菜单中就已经大概有上百项的服务了,而RDC服务就在这样的一个角落里,如果不是有同事推荐其实是很难知道的。而且目前RDC还处于公测当中,所以阿里云也还没有大规模地向外推广,所以新光无线团队当时能够接触到RDC还是比较幸运的。
磕磕碰碰上手
新光无线团队在了解RDC之后马上就开始了试用,而在一开始的试用过程中,可以说是磕磕碰碰地上手的,因为单单RDC自己的功能就已经非常多,非常强大了,并且它又集成在阿里云上面,而阿里云本身的产品又非常丰富,所以在刚开始使用RDC的时候非常不习惯。因为当点到产品与服务菜单,阿里云所有的服务一下子都跳出来了,但是当时并不了解这些服务与RDC究竟有什么关系,所以在一开始,新光无线团队有一种无从下手的感觉。但是在后来使用的过程中,团队慢慢地开始摸索出了RDC的使用套路,也逐渐地习惯了RDC的使用。
RDC是个好工具—综述
如下图所示,整个RDC主要包含几部分内容:第一部分就是最上面的“我的”、“项目”和“服务”等这几大类目。下图中左侧是与此时所选中的类目所对应的菜单,“服务”类目中则列举出来目前企业中所有可以使用的功能。图中右上角则是一些常用功能的入口,包括设置、添加项目以及添加企业等。图中中间部分是显示区域和操作区域。在几大类目里面,“项目”部分是使用频率最高的,这是因为RDC本身就是研发协同工具,所以如果想要发挥出RDC最大的价值,那么肯定是需要被大型的研发团队一起使用的,后面的分享也会主要围绕“项目”这部分进行。
RDC是个好工具—我的
“我的”类目部分的菜单包括工作台、应用、代码、分支、实验室和设置等。无论是个人开发者还是企业开发团队,工作台中展示的都是与个人相关的内容,这部分使用的频率也比较高。当进入“我的”部分之后主要看到的就是工作台中的内容;应用模块则是一份代码构建之后的产物;代码、分支部分主要是对自己的代码进行管理;代码模块主要做的是代码库相关的权限管理;分支模块则是管理个人相关的所有代码;实验室是用于做自动化构建和自动化测试相关的内容的;设置则管理的是与个人相关的设置,比如可以设置开启哪些功能。
RDC是个好工具—项目管理
首先从项目管理说起,如下图所示的是新光无线团队在RDC中的一个项目的需求,这里就是一个需求池。回想一下,在还没有使用RDC的时候是如何管理需求的呢?通常情况都是产品经理使用Excel制作一个需求列表,将需求一条一条地列出来,然后产品经理之间需要拿到这些文档发来发去内部之间进行共享和修改。产品、开发、测试以及运维之间沟通需求的时候一样需要传递这些Word或者Excel文档,如果中间有改版就还需要再发一次,用最新的覆盖老的。
如下图所示的是项目管理中任务页面,这里管理的是基于产品的需求所进行的开发,也就是将需求拆解成相应的任务。比如在还没有使用RDC的时候,最开始使用的是甘特图来分解任务和安排时间,也就是如下左侧图片所示的在墙上钉一个软木板,之后好几个项目都在上面,有时候需求任务多的时候,这个软木板上基本密密麻麻贴满了便签纸。
如下图所示的是RDC项目管理模块的迭代部分,其实迭代这部分就与线下的版本是很相似的。如下图所示的迭代部分存在着两个版本,从1.0.1到1.1.0版本。
使用RDC进行项目管理的整体流程总结
1.将需求写入需求池。
RDC是个好工具—开发管理
前面主要分享了使用RDC进行项目方面的管理,其实目前市场上也有很多的工具正在做项目管理方面的事情,而RDC的优势在于它能够系统化地与开发、缺陷管理以及数据化管理进行打通并结合在一起。接下来就简单地分享RDC在开发方面的使用。最早新光互联在做研发的时候比较简单,就是直接开发写代码,之后交给QA进行测试,再之后上线部署就完成了。但是实际上,研发所需要追求的不仅仅是完成工作和实现功能,其实这是远远不够的,还需要更加关注所做出来的东西的质量如何、产品是否稳定以及产品能否抵抗得住压力,同时还需要关注整个团队的研发效率,是否能够用尽量少的人以及尽量少的时间做尽量多的事情。但是效率和质量往往存在一定的矛盾,那么如何实现效率和质量的平衡就需要更加深入地思考。
任何可以做的持续集成和自动化测试都可以通过实验室和流水线进行有机的结合。所谓的流水线就是将各个功能节点把所需要做的事情按照自己的需求组合在一起,比如希望在代码提交到Git的时候触发一个检测,如果没有通过代码规范就将代码打回来,直到检测通过才可以继续下一步。当代码提交之后还可以配入压力测试、性能测试或者兼容性测试,也就是说在整个研发过程当中可以通过流水线向研发流程中部署各种点,当流水线流到相应的点的时候就会触发相应的功能,执行完成之后继续向下走,这样就能够把整个流程自动化地串到一起。而对于初创公司而言,往往没有能力自己实现像RDC这样的产品,所以可以借助阿里云的RDC实现同样的功能。
RDC是个好工具—缺陷管理
接下来分享缺陷管理,这部分主要包括了两部分,第一部分主要是测试用例,第二部分是Bug管理。之前的时候,测试用例也是由QA团队使用Excel编写维护的,与之前的需求等做法一样,都是线下的方式,每人一份传来传去,出现的问题也与前面所提到的相同,到达率不够高,并且更新率也不够高,拿到一份测试用例所需要花费的时间也比较长,所以想要获取最新的测试用例所需要的成本也是比较高的。而通过RDC的在线化电子化的管理,测试用例管理和缺陷管理的问题也就迎刃而解的,团队中每个人都可以很方便地拿到最新的测试用例。如下图所示的就是测试用例库,同样的Bug管理也很相似,这部分与JIRA很像,而且工作项都可以进行配置。
四、RDC的数据化管理
上面分享了新光互联团队在使用RDC工具进行项目管理、研发管理以及缺陷管理方面的经验以及收获。接下来简单地分享RDC的数据化管理。
数据化管理也是RDC区别于市面上的各种项目管理工具的地方,这里的数据化管理不是针对于某一个项目的,而是针对整个团队、公司以及大型企业内部所有项目的多维度、多角度的数据分析。这部分在RDC的功能中叫做度量,而目前RDC开放出来的功能还不是非常全面,所以度量的范围和维度还相对比较少,之后开放出更多维度之后就能够做一些更加全面、深入和细致的数据分析。其实只有经过分析和处理的数据才能发挥出自己最大的价值。而在传统的研发过程中,数据往往会分散到各个子系统中,而子系统之间是没有打通的,所以研发过程产生的数据就无法发挥出整合之后的价值。而借助RDC的能力将数据整合到一起进行更加全面的分析,就可以发挥出更大的价值。
数据管理部分包括研发、应用质量以及项目质量这三个方面。在研发方面包括需求、缺陷以及发布相关的数据,这里展示的是整个团队的粗粒度的宏观数据。
赶紧立即体验研发协同RDC吧!