the dashboarding problem

58
The Dashboarding Problem

Upload: nuriaruiz

Post on 02-Jul-2015

73 views

Category:

Technology


0 download

DESCRIPTION

Video of talk here: https://www.youtube.com/watch?v=hzMwwLfvh5g The Analytics team at Wikimedia has been busy exploring dashboarding and ways to display Wikipedia editor data. We found that while most people focus on visualization, data access and information architecture are just as important and separate problems. In this talk we share our learnings from developing dashiki (https://github.com/wikimedia/analytics-dashiki), our new dashboard stack. We will talk about why we believe a server-less javascript app was the right architecture for the problem, how with about 900 lines of javascript we transform data into Vega grammar, and how knockout components helped us stay modular.

TRANSCRIPT

Page 1: The dashboarding problem

The Dashboarding

Problem

Page 2: The dashboarding problem

Analytics team at Wikimedia Foundation

Page 3: The dashboarding problem

Easily VisualizeEditor Engagement

for all Wikimedia projects

Goal:

Page 4: The dashboarding problem

ExploreDashboardingTechnologies

Side Goal:

Page 5: The dashboarding problem

Date project pages created20140101 arwiki 5020140102 arwiki 40…

20140101 dewiki 10020140102 dewiki 200

Page 6: The dashboarding problem

Problem #1

Page 7: The dashboarding problem

Problem #1

Access to Data

Page 8: The dashboarding problem

Easily VisualizeEditor Engagement

for all Wikimedia projects

Everyone should have access!

Page 9: The dashboarding problem

Problem #1

Public Access to Data

Page 10: The dashboarding problem

Problem #2

Visualization

Page 11: The dashboarding problem
Page 12: The dashboarding problem
Page 13: The dashboarding problem

Visualization is an easier problem than data access

Page 14: The dashboarding problem
Page 15: The dashboarding problem
Page 16: The dashboarding problem
Page 17: The dashboarding problem
Page 18: The dashboarding problem

Problem #3

Page 19: The dashboarding problem

Problem #3

InformationArchitecture

Page 20: The dashboarding problem

How do you explore data for more than 800

projects?

Page 21: The dashboarding problem
Page 23: The dashboarding problem
Page 24: The dashboarding problem

#1 Access to Data

#2 Visualization#3 Information

Architecture

Page 25: The dashboarding problem

#1 Access to Data

#3 InformationArchitecture

engineering

#2 Visualization

design

Page 26: The dashboarding problem

Design knows best

#3 InformationArchitecture

Page 28: The dashboarding problem

#1 Access to Data

Page 29: The dashboarding problem

Tech Decision: Make all data available via HTTP

Page 31: The dashboarding problem

Data is available in JSON format

Page 32: The dashboarding problem

{ "result": { "Sum": { "newly_registered": { "2014-08-26 00:00:00": 364.0, "2014-08-24 00:00:00": 331.0, "2014-08-21 00:00:00": 382.0, "2014-08-30 00:00:00": 383.0, "2014-09-25 00:00:00": 372.0, "2014-08-22 00:00:00": 367.0, "2014-09-24 00:00:00": 410.0, "2014-09-06 00:00:00": 370.0, "2014-09-09 00:00:00": 370.0, "2014-09-27 00:00:00": 321.0, "2014-09-05 00:00:00": 317.0 } } }, "parameters": { "Cohort": "arwiki", "Created On": "2014-09-13 00:00:00", "Metric_end_date": "2014-09-13 00:00:00", "Metric_start_date": "2014-09-12 00:00:00", "Cohort Size": 0, "Metric": "NewlyRegistered" }}

Includes metadata

Page 33: The dashboarding problem

Data is available to everyone.

Page 34: The dashboarding problem

Why not?...Server-less

Page 35: The dashboarding problem

Why not?...Server-lessWhat is the middle tier for anyways?

Page 36: The dashboarding problem

Server-less

Decouples visualization piece from data gathering piece

No authentication needed

Page 37: The dashboarding problem
Page 38: The dashboarding problem

We are server-less, we need to store the bootstrap state of the dashboard somewhere

Page 39: The dashboarding problem

{ "defaultProjects": [ "enwiki", "eswiki", "dewiki", "frwiki", "ruwiki", "jawiki", "itwiki" ], "defaultMetrics": [ "RollingActiveEditor", "NewlyRegistered" ]}

https://metrics.wmflabs.org/static/public/dash/

Page 40: The dashboarding problem

Any other data store.Yours?

Any other data store.Yours?

Page 41: The dashboarding problem

Technology Stack

Page 42: The dashboarding problem

Package ManagerDependency LoadingData Binding LibraryDOM manipulation and ajaxTesting

Must Haves:

Page 43: The dashboarding problem

Technology StackMicro libraries: “each library does 1 thing well”

Page 44: The dashboarding problem

> Bower install

Page 45: The dashboarding problem
Page 47: The dashboarding problem
Page 48: The dashboarding problem

The Of Knockout Components

Page 49: The dashboarding problem

Knockout is not Polymer(It’s a LOT better)

Page 50: The dashboarding problem

Reusable pieces

Page 51: The dashboarding problem
Page 52: The dashboarding problem

Show me the code….

Page 53: The dashboarding problem
Page 54: The dashboarding problem
Page 55: The dashboarding problem

Dashiki: a thin wrapper on top of OS technology + information architecture.We can use dashiki to build other dashboards.

Page 57: The dashboarding problem

Lessons:Server-less = Reduced complexityEasy(est) to deployCORSNo error log for nowBootstrap default stateKeep things simple. No authentication.

Page 58: The dashboarding problem

Questions?