数据说话,锅别都让程序员背

作者:石磊,阿里巴巴产品专家,2014年加入阿里巴巴,负责过阿里巴巴测试平台Kelude,持续集成服务引擎CISE,阿里巴巴研发协同平台Aone以及阿里云云效率等产品, 对研发协同、测试、交付、效能度量领域都有很深的见解。

背景

如何提升组织效率一直是阿里巴巴追求的目标之一,云效作为企业一站式协同研发云,积累了丰富的研发活动相关数据,如何利用这些数据,来助力于组织的研发效能提升,也是企业一直思考的问题。从2016年开始,云效(在阿里内部叫Aone)就开始逐步的对组织的研发数据,从团队,组织,项目等各个维度,按照研发实践流程进行改进的思路,结合了敏捷和过程改进的理念,逐步沉淀出云效的度量产品。并且真实的在不少阿里的团队,通过数据驱动的方式,辅助了团队效能提升。

1. 效能度量的基本思路和理念

1.1 如何透明研发效能 - 主观预测 VS 确定分析

云效度量产品的基本思路是: 透明研发效能,诊断研发瓶颈,辅助研发提效。 就像医生看病,首先得找到问题,才能解决问题。

我们追求的高效研发: 更好的质量,更短的交付周期,更高的效率,更准的承诺兑现。但往往我们都很难去定量的描述,我们的质量,效率,交付到底如何。 所以,就像一个镜子一样,将研发效能透明出来,通过数据化的方式来定性的分析,是我们研发效能提升的第一步,也是最重要的一步。

通过数据化的手段,可以让我们从主观的预测转变成确定性分析。 那哪些指标对于我们定性的去分析是非常有效的指标呢?

1.2 有效的研发度量指标 - 质量,效率,进度,人员

我们从度量的需求中会把指标分为4各大类:质量,效率,进度,人员。

(1)需求的吞吐量 – 大体反应出团队的产出趋势。

(2)需求的平均完成时长 - 需求从创建到终态的平均时长,时间越多,需求交付粒度越小效率越高。

(3)新增缺陷的数量 - 统计时间段内团队被新增指派的缺陷数量,结合存量缺陷以及缺陷平均解决时长,反应团队产品的质量以及对于缺陷解决的效率。

(4)缺陷的平均解决时长 - 缺陷从创建到解决的平均时长,表征解决缺陷的效率。

(5)线上发布的成功率 - 线上发布成功次数与总次数之比,越高证明产品上线质量越高。

(6)缺陷的reopen率 - 缺陷被reopen的次数与缺陷数目之比,该值越高证明修复缺陷的质量越差,reopen率是表征产品质量的一个重要指标。

2 怎么用数据 -- 一个案例分享

我们会用2016年张冠楠同学在阿里的某事业部内部通过Aone的度量产品推动效能提升的过程来给大家具体的介绍一下,拿到了这些数据,我们会怎么样去用数据来帮助我们分析瓶颈并找提升的关键的。

我们利用数据通常会有以下4个步骤:

1)通过团队效能趋势透明当前团队的效能现状

2) 通过具体的人员分析来定位效能瓶颈

3)针对具体的瓶颈给出改进策略

4) 通过持续的度量来确定是否改进生效

2.1 通过团队效能趋势透明当前团队的效能现状

阿里某研发团队,20+人问题:交付老Delay,团队士气不高,老加班,质量差。 让我们来看看当时他们的度量数据:

上面几张图比较容易看出来这个团队明显特征是

(1)3月份完成需求数明显上升,且团队负载较重

(2)质量不高 - 缺陷数、reopen率以及线上发布成功率

(3)需求平均完成时长特别长 ,很多需求都是很久之前的3月份才完成

(4)突增故障

2.2 通过具体的人员分析来定位效能瓶颈

带着数据,走进了团队,和团队一线研发人员进行访谈,也对整个数据中的具体数据去做了细分,我们可以看到整个团队存在的问题:

1)到底需求时间长,是卡在PD,还是开发还是测试? 是否相应的团队可以去改进。

2)任务负载重,是否可以将任务分配更合理。 分配不均,单个人容易成为整个团队的瓶颈。

3)质量差,原因是什么?

通常这些瓶颈的定位是不能通过趋势来告诉我们,必须的深入到团队中,这个时候按照人员分布的度量报表就能方便的帮助我们定位到瓶颈人员。

2.3 针对具体的瓶颈给出改进策略

当我们发现了瓶颈和问题,就要针对性的进行改进。 具体的改进方法,敏捷有很多的实践,这里不做多阐述,文章的最后加了不少集团敏捷团队的最佳实践传送门,大家可以参考

2.4 通过持续的度量来确定是否改进生效

最后,我们要持续的关注度量数据来帮助我们进行跟踪,是否我们的改进能够真正的解决问题。 如果我们改进得体, 团队整体效率和质量提升必然会在度量数据上有所体现。

3. 关于数据的一些注意事项

3.1. 数据只是手段,是帮助我们去诊断,而不是衡量。

可能有的人会质疑,度量的数据是不是要去衡量一个人,其实,这个不是数据度量的目标,目标是找到我们怎么去做改进。所以轻易拿度量的数据来衡量人,尤其对于不同的团队和研发模式,其个人的研发数据往往会有较大的区别

3.2. 学会利用数据,不要被数据所利用

之前听云效的敏捷教练张迎辉分享在yahoo做的一个活动,为了调高研发质量,要求所有的研发必须在提交代码之前通过UT,结果就有的团队直接写空的UT,还有的无论UT是成功或者失败都直接在UT中返回成功。这个和数据度量是类似,如果大家都追求数据好看,肯定有各种方法把数据做好看,但是这不是我们所追求的,数据是面镜子,只是用来发现问题,所以,还是那句话,我们要利用数据,不要被数据所利用。

最后

数据驱动本质是数据,配套的工具支撑也会更加容易落地,云效的度量新功能也在云效公有云正式上线,是提供给大家方便使用数据进行驱动的工具。

扫码立即免费体验云效度量新功能

时间: 2024-12-02 23:50:33

数据说话,锅别都让程序员背的相关文章

人都说程序员人傻钱多死得快,事实真是这样的吗?

人人都说程序员人傻钱多死得快,事实真是这样的吗? 人傻 这个"傻"指的是,有些程序猿们,情商比较低,又或者为人比较老实憨厚,想想每天8-12小时都坐在电脑前,看着一堆堆的字母敲代码,解决一个又一个bug,人品大部分都是比较靠谱的.也因此,没有女朋友咯~~这个"傻"其实是褒义词.智商方面起码在中上等水平,工作3-5年以上的程序员,每天敲代码会锻炼自己的逻辑思维能力和解决问题的能力及考虑事情能做到未雨绸缪把控全局的能力,因为程序和人生一样,就是面对各种条件的判断和选择,

大数据平台的发展会降低程序员的价值吗?

针对本题,粗略地把研发人员的能力分为以下3类: 业务逻辑研发的能力: 将业务逻辑转化为代码实现的能力. 系统架构的能力: 高并发高负荷系统的设计实现能力,系统底层服务的研发能力. 特殊领域: 机器学习,自然语言,搜索推荐,语言与框架的开发等特殊的小众领域,暂不做讨论. 业务逻辑研发的能力 对于只关注业务研发的同学来说,的确影响不大,而且随着云服务商对各种服务提供更完善的工具,业务研发的同学工作会更加轻松和高效,例如阿里云数加提供的大数据平台服务,可以很方便地实现各种大数据解决方案. 系统架构的能

野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人(转)

本文摘自:<Web 全栈工程师的自我修养> 野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人.野生程序员有很强大的单兵作战能力,但是在编入"正规军"之后,可能会不适应新的做事方法. 遭遇"野生程序员" 腾讯公司内部的团队很多,在团队管理上有项目和专业两个维度.也就是说,有些团队是项目维度的,整个团队共同维护一个产品,成员来自不同的职业岗位:有些团队是专业维度的,比如一个组都是前端工程师,维护不同的产品. 因

程序员成长规划

引言 我的程序员成长之路 程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远.总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快:或许更好一些,能让大家从中得到一些启发,早日进入优秀程序员的阶段,实现梦想,释放激情. 第一阶段,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序.这个过程可以说是对计算机和程序设计的入门阶段.这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机基础知识. 第二阶段,而后参加工作

从Java谈中国程序员的悲哀

问题描述 外国的程序员到底有没有低收入者我不知道,但是,如果说当年我们国内归国创业的那些人是因为在国外买不起国外的房子混不下去了所以归国创业,那我也不得而知,至少在这里你说美国社会如何好,但是还是提到美国社会有穷人,上不起学买不起房,像中国的农民工睡天桥,那么我也就不敢妄言说美国的程序员和美国的知识分子,至少是又大房子住,有车开,用高档手机至少苹果之类的人了.言归正题,其实我替中国的程序员感到悲哀.为什么,因为即使传言北京上海广州程序员可以拿上万月薪,可是面对高房价,又如何应对,我就有身边的同学

程序员应具备的素质-拨乱反正篇

程序|程序员|素质 程序员是一种技术工作,在IT的发展中有相当重要的地位,从底层硬件通讯协议的建立,到数据传输层的处理,到操作系统的建设,到数据库平台的建设,一直到应用层上各种数据营销平台的搭建,程序员在里面都扮演着举足轻重的角色并为IT事业的发展做出了巨大的贡献. 中国有很多精于编码的人,但是中国软件行业,尤其是网络应用开发方面误区很大,很难形成有规模的软件开发力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不如.这些问题不是在于中国程序员的智商和工作努力状况,也不是在于国家和民间对开发

没人把程序员当回事儿

编程对很多人来说有点神秘.这就造成了在公司内部,人们对编程的事情产生了很多怀疑和疑惑. 通常,当你不了解一个东西是怎样做成的时,你只能说:可能是这样吧. 如果你从没见过工地,你也许会认为几个星期就能建出一栋大楼. 事实上,在这样的时间内是可以完成这栋建筑的,只是能不能用就不知道了. 如果你看过房子如何建造,跟踪它的建造过程,你能从物理实物看到地基如何浇灌,钢架结构如何搭成,等等. 但给电脑编写程序,或建设一个网站却是不可见的.     除了程序员外,程序代码对其他人来说是接触不到的.程序的运行好

程序员水平分析

whattofix.com刊登了一篇Daniel Markham的文章<What Level Programmer Are You?>,文内将参差不齐的程序员按照技术水平分为从"读写"到"上帝",共十一个阶段,以帮助广大程序员找到自身定位并从中发现自己发展方向.以下是文章摘要: 随着技术发展,编程悄然融入了我们的生活.我们已然离不开那些程序和编程语言.很多人都在不同程度地谈论着如何编程,也诞生出很多编程语言排行,那么程序员到底应该如何分级呢? 首先要明白

你是想做个安静的程序员,还是去创个业呢?

其实,很多人对程序员"无聊""呆板"的误解都是来自于网络上的段子.而在现实生活中,我们接触到的程序员同学,他们也是非常活泼.开朗,还是充满激情的一群人.移动互联网时代,基本上所有互联网公司的CTO都是程序员出身,所以程序员玩创业并没有什么好稀奇的.本期移动开发精英俱乐部的话题就围绕" 程序员如何创业?"这个话题.文章系ITOM管理平台OneAPM编译整理. 程序员为什么要创业呢? 熊欣_主持人:程序员也算是个高薪行业,大家聊聊,为什么要创业呢?