腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

Spotify 是如何推动数据驱动决策的?

  • 2020-11-08
  • 本文字数:1416 字

    阅读完需:约 5 分钟

Spotify是如何推动数据驱动决策的?

Spotify 的基础设施团队分享了他们是如何通过对数据进行优先级排序来构建一个自动化的数据收集平台,从而在 DevOps 中实现了数据驱动决策,并提高了开发人员的生产效率和产品价值的。


Spotify 的基础设施团队使用 Gradle(Gradle Enterprise Edition)作为其 Android 应用程序的构建系统。它能生成、收集和存储需要根据本地开发经验来理解软件所需的数据。它需要共同关注数据管道和仪表板的可视化。对于 iOS 系统数据的生成、收集和存储,目前还没有一个成熟的解决方案,所以该团队自己开发了这些工具。


Spotify 在数据领域已经投入了很长一段时间了。Spotify 的技术学习团队推出了数据大学(Data University),这是一系列涵盖数据科学和工程学各个方面的培训课程,旨在帮助工程师解决与产品相关的问题。


Android 基础设施团队将这些经验教训运用到他们的构建时间和本地开发经验中,但他们发现他们缺乏驱动决策的数据。


Spotify 通过召集某些特定“部落”小组来专门提供数据基础设施,并为工程师配备构建模块来收集数据并可视化数据输入,从而解决了这种数据需求。他们指出,目前仍然存在许多挑战,例如如何将这种数据驱动的方法应用到他们的架构决策中。


该团队使用这一新的数据基础设施来阐明技术和产品团队应该在哪些方面进行投资来减少构建时间。当他们查看构建时间趋势以及 Swift 和 ObjC 中使用的组件总数时,他们认识到投资于 Swift 优化是有意义的。



这项针对数据驱动决策的技术投资与哈佛商业评论分析服务公司(Harvard Business Review Analysis Services)最近的一项研究结果截然不同,该研究显示,只有7%的企业为其团队提供了推动基于数据的决策和自主权所需的分析工具和资源


从本质上讲,Spotify 的方法很简单:团队提出他们解答不了的问题,然后在积压的待办事务中(backlog)优先处理这些问题。在数据可用且问题得到解答之后,团队在评估阶段收集反馈,以了解该工作是否对本地开发过程产生了影响。为了防止数据质量的恶化,团队必须对每个组件的数据一致性和数据管道进行质量检查。


在计划阶段,团队使用历史数据来确定需要改进的场景。这些数据可能无法描述当前的情况,但它提供了确定改进的基线。如果他们已经了解了特定情况下系统的构建时间,那么他们希望保持相同的数值,或者改进这些数值,而不管代码库的增长情况是怎样的。这一点是至关重要的,因为随着系统变得越来越复杂,DevOps 工作流通常也会变得复杂且不透明。


敏捷自然倾向于优先考虑产品,因此 DevOps 面临的挑战是,如何在增加特性以提高产品效率和提高开发效率或提高服务可靠性之间找到折衷点



在计划阶段,团队引入了一些任务来收集和显示验证更改所需的数据。此阶段提出的问题是关键的输出之一,例如:“我们是否收集了足够多的信息来检查开发人员是否打开了远程缓存?”或者“在单个 PR 中他们平均更改了多少个组件?”


随着基础设施团队的数据计划在内部得到更广泛的认可,其他团队开始优先考虑与平台相关的工作。产品团队开始重视数据可视化,以验证驱动移动 DevOps 团队决策过程的产品讨论。


产品团队的数据驱动决策有助于评估解决方案的有效性和采用的满意度。产品经理通常从早期阶段就开始使用用户调查来评估产品了。相比之下,数据驱动的过程将这种评估带到了产品概念化中。


InfoQ 的数据驱动决策系列概述了数据驱动决策是如何支持软件交付中的三个主要活动的——产品管理、开发和运维。


原文链接:


https://www.infoq.com/news/2020/10/Data-Driven-Decisions/


2020-11-08 08:001579

评论

发布
暂无评论
发现更多内容

如何做Nginx安全日志分析可视化

运维研习社

nginx 4月日更 waf

Wireshark数据包分析学习笔记Day25

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

话说 Lock condition

木子的昼夜

go每日一库 [go-rate] 速率限制器

happlyfox

学习 Go 语言 4月日更

话说 ReadWriteLock

木子的昼夜

架构实战营 - 模块 1- 作业

请弄脏我的身体

架构实战营

一文读懂区块链领域最新发展方向 NFT经济将成未来发展方向

CECBC

艺术品

什么是架构?怎么来理解?

秋天

架构 架构师

Java最强规则引擎-ice是如何炼成的?

waitmoon

规则引擎使用 规则引擎 流程引擎

Linux grep 命令

一个大红包

4月日更

PCB如何拼版

不脱发的程序猿

嵌入式 电路设计 硬件设计 4月日更 PCB打样

机器学习和大数据的区别和联系

大数据技术指南

机器学习 大数据 4月日更

话说 LockSupport

木子的昼夜

话说 ReadWriteLock 第二篇

木子的昼夜

C++ sort 排序及自定义排序

玄兴梦影

怎么画出专业的架构图?

秋天

架构 架构师

话说 ReentrantLock_源码

木子的昼夜

面试题 : 一个单调递增的数组 随机拿出一个数 你怎么找到这个数

木子的昼夜

重磅官宣:Nacos2.0发布,性能提升10倍

xcbeyond

Java 微服务 nacos 4月日更

聪明人的训练(五)

Changing Lin

4月日更

高承实:绘一幅区块链社会画像

CECBC

区块链

架构实战营——作业一:微信架构及学生管理架构

开拓纪

架构实战营 作业一

话说 线程切换&线程数设置

木子的昼夜

面试题: String "123" 转 int类型

木子的昼夜

面试题: 合并两个有序链表

木子的昼夜

区块链的环保实验,助全球提高垃圾回收

CECBC

环保

踩坑 MySQL 索引,看看你真的会用么?

架构精进之路

MySQL 4月日更

极客架构module 1 作业

Geek_649372

架构实战营

用 JavaScript 实现时间轴与动画 - 前端组件化

三钻

JavaScript 大前端 动画 组件化 时间轴

为什么数据库字段要使用NOT NULL?

艾小仙

架构实战营 模块一作业

netspecial

架构实战营

Spotify是如何推动数据驱动决策的?_大数据_Rupert Field_InfoQ精选文章