Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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.

Patrick Allaert

October 23, 2014
Tweet

More Decks by Patrick Allaert

Other Decks in Business

Transcript

  1. “ Personne, jamais. Tout a fonctionné du premier coup Personne,

    jamais. Tout a fonctionné du premier coup “ ”
  2. La métrique, ce n’est pas que pour le devops Forum

    PHP Paris 2014 Olivier Garcia, Patrick Allaert
  3. • CEO de catchy.io • Co-créateur de www.psychologue.pro • Co-organisateur

    de l’Agile Tour à Lille (Le 18/11, venez nombreux !) • @0livier • [email protected][email protected] Olivier Garcia
  4. Patrick Allaert • CTO de catchy.io • Travaille avec PHP/Linux

    depuis '98 • Auteur de l'extension PHP APM • @patrick_allaert • [email protected][email protected]
  5. • 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
  6. 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
  7. Vanité • Nombre de lignes de code • Followers sur

    Twitter AAA • Ratio code mort • Interactions avec followers
  8. Vanité • Nombre de lignes de code • Followers sur

    Twitter • Nombre de visiteurs AAA • Ratio code mort • Interactions avec followers • Visiteurs qui s’inscrivent
  9. 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
  10. Bonnes pratiques • Mesurez (absolument?) tout ! • Focalisez-vous sur

    des métriques en fonction de l’avancement du projet / sa réussite
  11. 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
  12. 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.
  13. 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.
  14. 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?
  15. 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?
  16. 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 €€€ ?
  17. 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?
  18. 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>
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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
  24. 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" }
  25. StatsD + Graphite Application StatsD UDP inc(login) inc(login) inc(register) duration(search,

    200ms) inc(login) duration(search, 300ms) duration(search, 100ms)
  26. 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 });
  27. 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 });
  28. StatsD + Graphite Graphite 24h: /10 secondes 2 semaines: /1

    minute 6 mois: /10 minutes 5 ans: /1 heure
  29. StatsD + Graphite Graphite 24h: /10 secondes 2 semaines: /1

    minute 6 mois: /10 minutes 5 ans: /1 heure
  30. Outils de visualisation Graphite • Grafana • Tessera • Graphiti

    • Giraffe • Graphene • … plus sur: http://graphite.readthedocs. org/en/latest/tools.html#visualization
  31. 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.
  32. 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.