96
Personne, jamais. Tout a fonctionné du premier coup Personne, jamais. Tout a fonctionné du premier coup

La métrique, ce n'est pas que pour le devops

Embed Size (px)

DESCRIPTION

De plus en plus de techniciens se lancent dans l'entrepreneuriat, mais leurs projets échouent trop souvent par une identification du besoin erronée, un entêtement irrationnel ou une mauvaise exécution. La méthode Lean Startup donne des pistes pour essayer de réduire ces risques afin que la solution proposée réponde au besoin réel du client. Cette présentation décrit brièvement cette méthode, insiste sur des points négligés par les développeurs et fournit des outils à utiliser tout au long du projet.

Citation preview

Page 1: La métrique, ce n'est pas que pour le devops

Personne, jamais.

Tout a fonctionnédu premier coup

Personne, jamais.

Tout a fonctionnédu premier coup

Page 2: La métrique, ce n'est pas que pour le devops

La métrique, ce n’est pas que pour le devops

Forum PHP Paris 2014Olivier Garcia, Patrick Allaert

Page 4: La métrique, ce n'est pas que pour le devops

Patrick Allaert● CTO de catchy.io● Travaille avec PHP/Linux depuis '98● Auteur de l'extension PHP APM

● @patrick_allaert● [email protected][email protected]

Page 5: La métrique, ce n'est pas que pour le devops

Geek + Garage + ? = Profit

Page 6: La métrique, ce n'est pas que pour le devops

Quit $EDITOR : Get out of the building

Page 7: La métrique, ce n'est pas que pour le devops
Page 8: La métrique, ce n'est pas que pour le devops
Page 9: La métrique, ce n'est pas que pour le devops
Page 10: La métrique, ce n'est pas que pour le devops
Page 11: La métrique, ce n'est pas que pour le devops
Page 12: La métrique, ce n'est pas que pour le devops

J’ai formalisé le Lean Startup

Hi, I’m Eric Ries.

Page 13: La métrique, ce n'est pas que pour le devops

● Production par étape “Just In Time”

● Offre adaptée à la demande

● Focalisé sur la production de valeur

● Amélioration continue

Lean Startup, basée sur le Lean/Toyotisme

Page 14: La métrique, ce n'est pas que pour le devops

Vous le faites déjà (en partie)

● Itérations sur un projet

● Interactions client pour mieux cerner le besoin

● Scoring des stories pour prioritiser

● Rétrospective

Page 15: La métrique, ce n'est pas que pour le devops

while(1) {Build(); Measure(); Learn();}

Page 16: La métrique, ce n'est pas que pour le devops

Mesurer ce qui importe

● Métriques AAA

Page 17: La métrique, ce n'est pas que pour le devops

● Métriques AAA

○ Actionable

○ Auditable

○ Accessible

Mesurer ce qui importe

Page 18: La métrique, ce n'est pas que pour le devops

● Métriques AAA

● Métriques de vanité

Mesurer ce qui importe

Page 19: La métrique, ce n'est pas que pour le devops

Vanité AAA

Page 20: La métrique, ce n'est pas que pour le devops

Vanité

● Nombre de lignes de code

AAA

● Ratio code mort

Page 21: La métrique, ce n'est pas que pour le devops

Vanité

● Nombre de lignes de code

● Followers sur Twitter

AAA

● Ratio code mort

● Interactions avec followers

Page 22: La métrique, ce n'est pas que pour le devops

Vanité

● Nombre de lignes de code

● Followers sur Twitter

● Nombre de visiteurs

AAA

● Ratio code mort

● Interactions avec followers

● Visiteurs qui s’inscrivent

Page 23: La métrique, ce n'est pas que pour le devops

Vanité

● Nombre de lignes de code

● Followers sur Twitter

● Nombre de visiteurs

● Utilisateurs

AAA

● Ratio code mort

● Interactions avec followers

● Visiteurs qui s’inscrivent

● Utilisateurs actifs / 6 mois

Page 24: La métrique, ce n'est pas que pour le devops

Bonnes pratiques

● Mesurez (absolument?) tout !

● Focalisez-vous sur des métriques en fonction

de l’avancement du projet / sa réussite

Page 25: La métrique, ce n'est pas que pour le devops
Page 26: La métrique, ce n'est pas que pour le devops

AARRR

Page 27: La métrique, ce n'est pas que pour le devops

AARRR

Page 28: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?

Page 29: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?

Exemple “site de recrutement des Chemins de Fer Belges”:Une personne visite le site pendant plus de 2 minutes

Page 30: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?

Page 31: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?

Site de recrutement:

L’internaute complète son profil et postule pour un job.

Page 32: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?R.etention Est-ce qu’ils reviennent/sont actifs?

Page 33: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?R.etention Est-ce qu’ils reviennent/sont actifs?

Site de recrutement:

Les chercheurs d’emploi reviennent pour consulter de

nouveaux jobs.

Page 34: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?R.etention Est-ce qu’ils reviennent/sont actifs?R.eferral Font-ils venir d’autres utilisateurs?

Page 35: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?R.etention Est-ce qu’ils reviennent/sont actifs?R.eferral Font-ils venir d’autres utilisateurs?

Site de recrutement:1. Combien de personnes partagent-elles un job?2. Combien de ces partages mènent-ils à une candidature?

Page 36: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?R.etention Est-ce qu’ils reviennent/sont actifs?R.eferral Font-ils venir d’autres utilisateurs?R.evenu Quels impacts sur le €€€ ?

Page 37: La métrique, ce n'est pas que pour le devops

AARRR

A.cquisition Comment les utilisateurs viennent?A.ctivation Est-ce qu’ils s’enregistrent ?R.etention Est-ce qu’ils reviennent/sont actifs?R.eferral Font-ils venir d’autres utilisateurs?R.evenu Quels impacts sur le €€€ ?

Site de recrutement:Combien de personnes ont-elles été engagées? … et ce pour plus de 6 mois?

Page 38: La métrique, ce n'est pas que pour le devops

Outils de récolte de métriques

Page 39: La métrique, ce n'est pas que pour le devops

Le plus connu?

Page 40: La métrique, ce n'est pas que pour le devops

Google Analytics

Page 41: La métrique, ce n'est pas que pour le devops

Google Analytics - Mise en place<script>

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject' ]=r;i[r]=i[r]||function(){

(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

m=s.getElementsByTagName (o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)

})(window,document,'script','//www.google-analytics.com/analytics.js' ,'ga');

ga('create', 'UA-XXXX-Y', 'auto'); // Creates a tracker. ga('send', 'pageview'); // Sends a pageview.

</script>

Page 42: La métrique, ce n'est pas que pour le devops

Google Analytics - Dashboards standards

Page 43: La métrique, ce n'est pas que pour le devops
Page 44: La métrique, ce n'est pas que pour le devops
Page 45: La métrique, ce n'est pas que pour le devops
Page 46: La métrique, ce n'est pas que pour le devops
Page 47: La métrique, ce n'est pas que pour le devops

Google Analytics - Surveiller des évènements

Page 48: La métrique, ce n'est pas que pour le devops

Google Analytics - Surveiller des évènements

ga('send', 'event', 'category', 'action');

ga('send', 'event', 'category', 'action', 'label');

ga('send', 'event', 'category', 'action', 'label', value); // value is a number.

Page 49: La métrique, ce n'est pas que pour le devops

Google Analytics - Surveiller des évènements

ga('send', 'event', 'user', 'register');

ga('send', 'event', 'category', 'action', 'label');

ga('send', 'event', 'category', 'action', 'label', value); // value is a number.

Page 50: La métrique, ce n'est pas que pour le devops

Google Analytics - Surveiller des évènements

ga('send', 'event', 'user', 'register');

ga('send', 'event', 'user', 'apply_job', 'job_123');

ga('send', 'event', 'category', 'action', 'label', value); // value is a number.

Page 51: La métrique, ce n'est pas que pour le devops

Google Analytics - Surveiller des évènements

ga('send', 'event', 'user', 'register');

ga('send', 'event', 'user', 'apply_job', 'job_123');

ga('send', 'event', 'user', 'share_job', 'job_123', 3); // value is a number.

Page 52: La métrique, ce n'est pas que pour le devops
Page 53: La métrique, ce n'est pas que pour le devops

Google AnalyticsCréer des dashboards personnalisés: Embed API

Démo en ligne:http://ga-dev-tools.appspot.com/demos/https://github.com/googleanalytics/embed-api-demos

Page 54: La métrique, ce n'est pas que pour le devops
Page 55: La métrique, ce n'est pas que pour le devops

Google Analytics Query Explorer

http://ga-dev-tools.appspot.com/explorer/

Page 56: La métrique, ce n'est pas que pour le devops
Page 57: La métrique, ce n'est pas que pour le devops

Google Analytics Query Explorer

Page 58: La métrique, ce n'est pas que pour le devops

Google Analytics Query Explorer

Page 59: La métrique, ce n'est pas que pour le devops

Google Analytics Query Explorer

Page 60: La métrique, ce n'est pas que pour le devops

Google Analytics Query Explorer

Page 61: La métrique, ce n'est pas que pour le devops
Page 62: La métrique, ce n'est pas que pour le devops

Google Analytics Query Explorer

Page 63: La métrique, ce n'est pas que pour le devops
Page 64: La métrique, ce n'est pas que pour le devops
Page 65: La métrique, ce n'est pas que pour le devops

Google AnalyticsCréer des dashboards personnalisés: Embed API

{ ids: "ga:6172121", dimensions: "ga:date,ga:eventCategory", metrics: "ga:totalEvents", filters: "ga:eventCategory==Account creation", start-date: "2014-09-01", end-date: "2014-10-01"}

Page 66: La métrique, ce n'est pas que pour le devops

Le plus en vogue?

Page 67: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Page 68: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application

Page 69: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

Page 70: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

Page 71: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

Page 72: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login) echo "login:1|c" |nc -w 1 -u graphite.example.com 8125

Page 73: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

Page 74: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

inc(register)

Page 75: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

inc(register)

duration(search, 200ms)

Page 76: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

inc(register)

duration(search, 200ms)

inc(login)

Page 77: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

inc(register)

duration(search, 200ms)

inc(login)

duration(search, 300ms)

Page 78: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

inc(register)

duration(search, 200ms)

inc(login)

duration(search, 300ms)

duration(search, 100ms)

Page 79: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

inc(register)

duration(search, 200ms)

inc(login)

duration(search, 300ms)

duration(search, 100ms)

10 secondes:

inc(login, 3);inc(register, 1);duration( search, 3, { min: 100, max: 300, avg: 200, mean: 200});

Page 80: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Application StatsD

UDP

inc(login)

inc(login)

inc(register)

duration(search, 200ms)

inc(login)

duration(search, 300ms)

duration(search, 100ms)

Graphite

TCP

10 secondes:

inc(login, 3);inc(register, 1);duration( search, 3, { min: 100, max: 300, avg: 200, mean: 200});

Page 81: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Graphite

Page 82: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Graphite

24h:/10 secondes

Page 83: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Graphite

24h:/10 secondes

2 semaines:/1 minute

Page 84: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Graphite

24h:/10 secondes

2 semaines:/1 minute

6 mois:/10 minutes

Page 85: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Graphite

24h:/10 secondes

2 semaines:/1 minute

6 mois:/10 minutes

5 ans:/1 heure

Page 86: La métrique, ce n'est pas que pour le devops

StatsD + Graphite

Graphite

24h:/10 secondes

2 semaines:/1 minute

6 mois:/10 minutes

5 ans:/1 heure

Page 87: La métrique, ce n'est pas que pour le devops

Outils de visualisation Graphite

● Grafana● Tessera● Graphiti● Giraffe● Graphene● … plus sur: http://graphite.readthedocs.

org/en/latest/tools.html#visualization

Page 88: La métrique, ce n'est pas que pour le devops

Grafana

Page 89: La métrique, ce n'est pas que pour le devops

Tessera

Page 90: La métrique, ce n'est pas que pour le devops

Et les autres…

Page 91: La métrique, ce n'est pas que pour le devops

Et les autres…

● Mixpanel● Pirate Metrics● KISSmetrics

Page 92: La métrique, ce n'est pas que pour le devops

En résuméLe succès dépend d’un feedback mesurable.

Page 93: La métrique, ce n'est pas que pour le devops

En résuméLe succès dépend d’un feedback mesurable.

LeanStartup et AARRR donnent des pistes pour s’appuyer sur des métriques fiables.

Page 94: La métrique, ce n'est pas que pour le devops

En résuméLe succès dépend d’un feedback mesurable.

LeanStartup et AARRR donnent des pistes pour s’appuyer sur des métriques fiables.

Il existe des outils facilement intégrables en PHP pour créer ces indicateurs.