Skip to content

Commit b84c24d

Browse files
committed
[WIP] Comment rendre vos utilisateurs heureux
Signed-off-by: Alban Dericbourg <[email protected]>
1 parent 73da643 commit b84c24d

5 files changed

+83
-3
lines changed
Lines changed: 83 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,89 @@
11
---
2-
Title: Comment rendre vos utilisateurs heureux (grâce à vos métriques applicatives)
2+
Title: Comment rendre vos utilisateurs heureux (avec vos métriques)
33
Category: Blog
44
Tags: sre, métriques, expérience utilisateur, bonnes pratiques
5-
Status: draft
65
Date: 2100-01-01
76
---
87

9-
TODO
8+
Ça y est ! Mon application est déployée en production et reçoit du trafic ! C'est maintenant
9+
que les choses sérieuses commencent : les utilisateurs seront les meilleurs ambassadeurs pour
10+
en faire la promotion... ou pour en dire leur déception. Ce serait utile d'avoir des retours
11+
sur leur perception, de pouvoir mesurer leur expérience mais je n'ai pas le budget pour lancer
12+
une étude.
13+
14+
Je fais donc avec les moyens du bord, et ils sont déjà riches ! Et si je commençais par utiliser
15+
mes métriques applicatives ?
16+
17+
## Adopter de justes proportions
18+
19+
En me mettant à la place de mes utilisateurs, je me dis que ce qui peut arriver de pire serait
20+
de tomber sur une erreur bloquante. C'est quelque chose que je peux mesurer en utilisant les
21+
codes HTTP des réponses de mon application.
22+
23+
Je ne suis pas parfait : je sais qu'il y en a et qu'il risque d'y en avoir toujours, ne serait-ce
24+
que parce que mon infrastructure n'est pas parfaite et que certains composants peuvent parfois
25+
tomber. Je ne vise pas le zéro absolu mais j'aimerais en avoir le moins possible. Quand soudain,
26+
j'observe une augmentation exponentielle du nombre « d'erreurs 500 » !
27+
28+
![Augmentation exponentielle du nombre de réponses HTTP avec un statut 500](/images/utilisateurs_heureux_metriques/500_exp_increase.png){.center}
29+
30+
Pourquoi cette augmentation subite ? Je n'ai pourtant pas déployé de nouvelle version depuis
31+
quelques jours. Je commence à paniquer. En regardant les logs, ce sont les mêmes erreurs que
32+
d'habitude. Je sais bien que j'aurais dû corriger ça avant mais il y en avait peu, ça n'était
33+
pas prioritaire. Là, c'est l'explosion !
34+
35+
L'explosion, vraiment ? Y en a-t-il vraiment plus qu'avant ? En quantité, c'est certain, mais
36+
qu'en est-il _proportionnellement_ au trafic de mon application ?
37+
38+
* Si cette augmentation du nombre d'erreur s'observe à nombre constant de requêtes, il y a
39+
effectivement un problème dont je veux être alerté, et vite.
40+
* En revanche, si le nombre de requêtes varie dans les mêmes proportions que le nombre d'erreurs,
41+
cela semble plus cohérent. Être réveillé la nuit par une alerte qui indique que le trafic a
42+
augmenté mais tout est normal me mettrait de mauvaise humeur.
43+
44+
![Deux profils du nombre de requêtes associé : nombre constant et croissance exponentielle](/images/utilisateurs_heureux_metriques/500_over_total_request.png){.center}
45+
46+
Une façon d'éviter cette possible confusion est d'exprimer les indicateurs comme une _proportion_
47+
_d'événements valides qui étaient bons_. Si cette formulation peut sembler abstraite, sa mise en
48+
place est beaucoup plus simple. Dans notre exemple d'un système répondant à des requêtes, on
49+
peut mesurer la proportion de requêtes ayant abouti à une réponse de code HTTP de classe 200, 300
50+
ou 400 par rapport au nombre total de requêtes.
51+
52+
> _Pourquoi prendre les codes HTTP de classe 400 comme des succès ?_
53+
>
54+
> S'ils sont perçus comme une erreur vis-à-vis de votre client, il représentent en réalité un
55+
> cas prévu qui correspond à une action non-autorisée de votre utilisateur. Essayer d'accéder à
56+
> une page nécessitant une authentification sans s'être préalablement connecté n'est pas autorisé :
57+
> retourner autre chose qu'un code HTTP 403 serait probablement une erreur.
58+
59+
## Prendre le temps, et le bon
60+
61+
J'ai compris la leçon et j'ai exprimé une métrique importante de mon application comme une
62+
proportion. Le système d'alerte se comporte comme une guirlande de Noël. L'alerte sonne, tout
63+
est rouge, et le temps que je regarde, tout est revenu à la normale. Je pars me faire un café
64+
et en revenant, l'alerte a encore oscillé trois fois entre « tout va bien » et « tout brûle ».
65+
66+
En regardant la courbe, je reste circonspect.
67+
68+
![Courbe d'une métrique quelconque présentant une forte variance sur des périodes de temps très courtes](/images/utilisateurs_heureux_metriques/whatever_short_time_window.png){.center}
69+
70+
Je ne vois rien sur cette courbe. La variance est trop grande, je ne peux en dégager aucune tendance
71+
à l'œil nu. Une solution à cela est de lisser par une fonction d'agrégation sur une fenêtre du temps
72+
plus large que la période d'échantillonnage de vos métriques.
73+
74+
75+
76+
![Courbe d'une métrique quelconque présentant une forte variance sur des périodes de temps très courtes avec en superposition la moyenne glissante sur quelques minutes, beaucoup plus stable](/images/utilisateurs_heureux_metriques/whatever_long_time_window.png){.center}
77+
78+
79+
## Dites 33
80+
81+
## Partez en voyage
82+
83+
## C'est pas tout mais...
84+
85+
pas révélateur de l'ux
86+
87+
> Cet article a également été décliné sous forme d'une présentation aux
88+
> _Human Talks_ Paris le 14 janvier 2020 sous le titre
89+
> [How to make your users happy (with your metrics)](https://www.youtube.com/watch?v=gNMtIdWKfEg).
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)