Le Client, le Dev et L'Ops ! Histoire de mauvaise foi.

culture générale informatique developpement softskill Apr 29, 2022

Hello

Cette semaine, on va voir comment mener une vraie investigation quand le client est persuadé que c'est de ta faute ...

Alors que c'est LUI qui n'y comprend rien :)

Ça ne sert à rien de convaincre

Dans une de mes anciennes boites,chez un hébergeur, un client nous accuse d'être incompétents

Son ERP est trop lent sur notre infra alors que ça marche bien sur son serveur en local.

Le truc classique.

Il commence à nous discréditer auprès d'autres clients

Il s'énerve : "J'étais dessus il y a 5 min, c'est inacceptable, j'ai perdu des ventes et du CA, à cause de vous
Vos serveurs sont mal foutus, c'est lent, vous ne supervisez rien, c'est pas optimisé ..."

C'était donc à nous de prouver qu'on est "innocent" et que ce n'est pas possible.

Et on a réussi !

Je voulais tellement montrer à ce client que nous délivrions de la qualité.

Sauver notre image de marque. Montrer qu'on est des Pros.

Et surtout, comme il y a un impact sur son business, on comprend l'importance et l'urgence de la situation

Après quelques échanges de mails, on n'arrive pas à comprendre ce qui est lent précisément

On lui envoie nos graphes de supervision des ressources
CPU : calme plat
Disque : remplis à 55%
RAM : pas bougé d'un IOTA
Réseaux : tous les voyants au vert
IO Disk : pas plus, pas moins que d'habitude

On n'arrive pas à expliquer cette "lenteur"

On essaye de discuter avec lui. Il nous dit que son Dev en local n'a pas de problème.

C'est à ce moment que je me rendu compte : je ne vais pas pouvoir le convaincre.

Il devait cheminer lui-même vers la lumière 🤪

Le truc qui fait toute la diff : c'est que lui finisse par dire "Ah ben oui, le problème est de notre côté"

J'ai organisé une réunion en présentiel, lui, son dev, mon manageur et moi même

Moi : "Je veux voir de mes yeux la lenteur svp"

Le client : "Tiens Dev, montre-lui"

Le dev : "Bon je me connecte, je vais sur le menu, je clique sur Base
Jusqu'à là, rien de lent c'est ok.
Quand je clique sur la base produit : haaa. regarde, ca prend 10 secondes à charger les 1000 premiers produits"

Moi : "ok. Et sur ton env de Dev ?"

Le Dev : "tkt, je fais un dump de la bdd et je l'importe en live devant toi, tu ne pourras pas me dire que ce ne sont pas les mêmes données"

Il fait sa démo : "Ah tu vois, moins d'une seconde pour charger les 1000 premiers produits"

Moi : "Ah oui, en effet, y'a rien à voir"

Le client : "Je vous l'avais dit, je ne comprends pas pourquoi on nous a fait déplacer"

Moi : "Sur la prod, dans Base, si on clique sur autre chose que Produit ? Disons Clients ?"

Dev : "Faisons le ! humm. C'est rapide"

Moi : "Ah ok. Et si on essaye de passer une commande ?"

Dev : "Ok. Hummm c'est rapide aussi"

Moi : "ah ok."

Je me tourne vers le client :
"Vous êtes d'accord que quand vous dites que tout est lent, en fait ce n'est que l'écran Produit qui est lent ?"

Client qui bafouille : "heuuu mouiii moouiii ... mais c'est un écran important ... "

Moi : "ok ok. Oui, je comprends, vous avez raison."
Je me tourne vers le dev : "Toi qui es dans la technique, tu es d'accord avec moi que si c'était un problème serveur, tout aurait été lent et pas que la page Produit ?"

Dev : "huhu ... oui en effet."

Moi : "Tu veux bien le redire à ton patron (le client) stp "

Le Dev lui explique que mon raisonnement est bon.

Moi : "ok. Donc si je résume : il n'y a qu'une page qui est lente et on est maintenant tous d'accord que ce n'est pas notre serveur la cause
Je rappelle que vous (le client) avez la gestion de la conf et de la bdd"

Le Client : "ouii bon...ok.... il doit y avoir un problème sur la page produit. Mais pourquoi c'est lent chez vous et pas chez nous ?"

Moi : "Normalement c'est hors de notre responsabilité et hors de notre périmètre. Mais je veux bien vous aider pour vous montrer notre bonne foi."
Je me tourne vers le dev : "Tu as une piste ?"

Le Dev : "ben non"

Moi : "Ah ok. J'en ai une. S'il y a que la page Produit qui est lente, page qui n'affiche que la table Produit de la BDD au final, c'est qu'il y a un problème sur la table Produit dans la BDD"

Le Dev : "AHHH ben oui ! Pas con ! "

Moi 😑 : "Oui, oui je sais merci. Tu as un index cassé sur ta table... quand tu as dump et reload ta bdd sur ta machine, les index se sont reconstruites...
Hors tu as rien fait côté BDD sur le serveur prod"

Dev : ".... en effet."

Moi : "Bon, lance un optimize sur la table"

Dev lance les actions et reteste tout.

Dev : "C'est génial ! tout est redevenu rapide"

Moi : "Encore une fois, on est d'accord que le problème était bien de votre côté ?"

Le client et le dev en coeur : "Oui en effet"

Moi avec un regard malicieux vers le client : "Normalement ce genre de prestation de notre part est facturée.
Mais comme nous avions compris l'importance du sujet pour vous, je vous propose de clôturer le ticket."

Moral de l'histoire 

Ce qu'il faut retenir :

  • En informatique (Dev ou OPS d'ailleurs) : tu as tort tant que t'as pas prouvé que t'as raison face au (mauvais ?) client

    • c'est contre intuitif et chiant

    • Je déteste cette règle implicite

  • Mon template d'investigation quand on doit débugger :

    • Se mettre autour de la table avec TOUTES les parties prenantes, sans exception

    • Reproduire le problème

    • Savoir si le problème est localisé ou généralisé

    • Faire un break : vérifier que tout le monde est d'accord sur ce qui est constaté jusque là

      • Si pas d'unanimité, on recommence

    • Ecarter le maximum de pistes d'entrée de jeu

       

       
    • Faire un break vérifier que tout le monde est d'accord sur ce qui est constaté jusque là

      • Si pas d'unanimité, on recommence

    • A ce stade, on sait dans quelle zone de responsabilité se situe le problème :

      • Bien le faire valider par tout le monde

    • Maintenant le responsable de la zone prend le relai pour continuer

    • Ça nous empêche pas de soumettre des pistes, des hypothèses, des expériences

      • Voir, carrément donner la solution

Cette méthode, je l'ai appliqué des dizaines de fois :

  • Face à des clients (j'ai d'autres exemples comme ci-dessus)

  • Face à des manageurs

  • Face à des collègues qui ne voulaient pas prendre leurs responsabilités

Ça m'a sauvé de plein de situations envenimées et reloues à gérer

A toi de tester maintenant.

Imrane 🏖

 

La newsletter pour ne rien louper

Rejoins les 2500 lecteurs de  la newsletter pour obtenir des conseils, des stratégies et des ressources pour développer et monétiser tes compétences Tech.