La mesure, ce n'est pas que pour le devops

1 465 vues

Publié le

Présentation préparée par Olivier Garcia (@0livier) et Patrick Allaert (@patrick_allaert)

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.

Publié dans : Données & analyses
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 465
Sur SlideShare
0
Issues des intégrations
0
Intégrations
233
Actions
Partages
0
Téléchargements
20
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

La mesure, ce n'est pas que pour le devops

  1. 1. Tout a fonctionné du premier coup Personne, jamais. “
  2. 2. La mesure, ce n’est pas que pour le devops Forum PHP Paris 2014 Olivier Garcia, Patrick Allaert
  3. 3. Olivier Garcia ● CEO de catchy.io ● Co-créateur de www.psychologue.pro ● Co-organisateur de l’Agile Tour à Lille (Le 18/11, venez nombreux !) ● @0livier ● olivier@catchy.io ● olivier@lol.cat
  4. 4. Patrick Allaert ● CTO de catchy.io ● Travaille avec PHP/Linux depuis '98 ● Auteur de l'extension PHP APM ● @patrick_allaert ● patrick@catchy.io ● patrickallaert@php.net
  5. 5. Geek + Garage + ? = Profit
  6. 6. Quit $EDITOR : Get out of the building
  7. 7. Hi, I’m Eric Ries. J’ai formalisé le Lean Startup
  8. 8. Lean Startup, basée sur le Lean/Toyotisme ● Production par étape “Just In Time” ● Offre adaptée à la demande ● Focalisé sur la production de valeur ● Amélioration continue
  9. 9. 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
  10. 10. while(1) {Build(); Measure(); Learn();}
  11. 11. Mesurer ce qui importe ● Métriques AAA
  12. 12. Mesurer ce qui importe ● Métriques AAA ○ Actionable ○ Auditable ○ Accessible
  13. 13. Mesurer ce qui importe ● Métriques AAA ● Métriques de vanité
  14. 14. Vanité AAA
  15. 15. Vanité ● Nombre de lignes de code AAA ● Ratio code mort
  16. 16. Vanité ● Nombre de lignes de code ● Followers sur Twitter AAA ● Ratio code mort ● Interactions avec followers
  17. 17. Vanité ● Nombre de lignes de code ● Followers sur Twitter ● Nombre de visiteurs AAA ● Ratio code mort ● Interactions avec followers ● Visiteurs qui s’inscrivent
  18. 18. 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
  19. 19. Bonnes pratiques ● Mesurez (absolument?) tout ! ● Focalisez-vous sur des métriques en fonction de l’avancement du projet / sa réussite
  20. 20. AARRR
  21. 21. AARRR
  22. 22. AARRR A.cquisition Comment les utilisateurs viennent?
  23. 23. 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
  24. 24. AARRR A.cquisition Comment les utilisateurs viennent? A.ctivation Est-ce qu’ils s’enregistrent ?
  25. 25. 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.
  26. 26. AARRR A.cquisition Comment les utilisateurs viennent? A.ctivation Est-ce qu’ils s’enregistrent ? R.etention Est-ce qu’ils reviennent/sont actifs?
  27. 27. 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.
  28. 28. 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?
  29. 29. 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?
  30. 30. 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 €€€ ?
  31. 31. 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?
  32. 32. Outils de récolte de métriques
  33. 33. Le plus connu?
  34. 34. Google Analytics
  35. 35. 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>
  36. 36. Google Analytics - Dashboards standards
  37. 37. Google Analytics - Surveiller des évènements
  38. 38. 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.
  39. 39. 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.
  40. 40. 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.
  41. 41. 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.
  42. 42. Google Analytics Cré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
  43. 43. Google Analytics Query Explorer http://ga-dev-tools.appspot.com/explorer/
  44. 44. Google Analytics Query Explorer
  45. 45. Google Analytics Query Explorer
  46. 46. Google Analytics Query Explorer
  47. 47. Google Analytics Query Explorer
  48. 48. Google Analytics Query Explorer
  49. 49. Google Analytics Cré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" }
  50. 50. Le plus en vogue?
  51. 51. StatsD + Graphite
  52. 52. StatsD + Graphite Application
  53. 53. StatsD + Graphite UDP Application StatsD
  54. 54. StatsD + Graphite UDP Application StatsD
  55. 55. StatsD + Graphite UDP inc(login) Application StatsD
  56. 56. StatsD + Graphite UDP inc(login) echo "login:1|c" | Application StatsD nc -w 1 -u graphite. example.com 8125
  57. 57. StatsD + Graphite UDP inc(login) inc(login) Application StatsD
  58. 58. StatsD + Graphite UDP inc(login) inc(login) inc(register) Application StatsD
  59. 59. StatsD + Graphite UDP inc(login) inc(login) inc(register) duration(search, Application StatsD 200ms)
  60. 60. StatsD + Graphite UDP inc(login) inc(login) inc(register) duration(search, Application StatsD 200ms) inc(login)
  61. 61. StatsD + Graphite UDP inc(login) inc(login) inc(register) duration(search, Application StatsD 200ms) inc(login) duration(search, 300ms)
  62. 62. StatsD + Graphite UDP inc(login) inc(login) inc(register) duration(search, Application StatsD 200ms) inc(login) duration(search, 300ms) duration(search, 100ms)
  63. 63. StatsD + Graphite UDP inc(login) inc(login) inc(register) duration(search, Application StatsD 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 });
  64. 64. StatsD + Graphite UDP inc(login) inc(login) inc(register) duration(search, Application StatsD 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 });
  65. 65. StatsD + Graphite Graphite
  66. 66. StatsD + Graphite 24h: /10 secondes Graphite
  67. 67. StatsD + Graphite 24h: /10 secondes 2 semaines: /1 minute Graphite
  68. 68. StatsD + Graphite 24h: /10 secondes 2 semaines: /1 minute Graphite 6 mois: /10 minutes
  69. 69. StatsD + Graphite 24h: /10 secondes 2 semaines: /1 minute Graphite 6 mois: /10 minutes 5 ans: /1 heure
  70. 70. StatsD + Graphite 24h: /10 secondes 2 semaines: /1 minute Graphite 6 mois: /10 minutes 5 ans: /1 heure
  71. 71. Outils de visualisation Graphite ● Grafana ● Tessera ● Graphiti ● Giraffe ● Graphene ● … plus sur: http://graphite.readthedocs. org/en/latest/tools.html#visualization
  72. 72. Grafana
  73. 73. Tessera
  74. 74. Et les autres…
  75. 75. Et les autres… ● Mixpanel ● Pirate Metrics ● KISSmetrics
  76. 76. En résumé Le succès dépend d’un feedback mesurable.
  77. 77. 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.
  78. 78. 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.
  79. 79. Merci https://joind.in/11937 http://lanyrd.com/sddybk
  80. 80. Credits www.flickr.com/photos/kk (Lil’ pirates) www.flickr.com/photos/betsyweber (Eric Ries) www.flickr.com/photos/highersights (Listen...) www.flickr.com/photos/75001512@N00/4228976596 (Geek) www.flickr.com/photos/phobia (Fail Stamp)

×