À propos du code beau-propre-béton

dt161017

Bon, bon, bon… Je me suis fait tiré des tomates suite à mon dernier billet. Apparemment, je ne comprendrais rien au développement techno et je ferais passer la profession d’informaticien pour une bande de vendeurs de fax.

Je me suis mal exprimé, désolé. Toutes mes excuses à la confrérie informaticienne.

Je crois réellement en l’importance du code de qualité. J’engage même du monde beaucoup plus compétent que moi à ce niveau. Je leur fais confiance les yeux fermés, je ne veux pas savoir comment ça marche du moment que ça marche.

Résumons mon point de vue simplement:

Focus client ne veut pas dire négligent.

Faire un programme tout croche et tout bogué ne va pas dans le sens d’avoir le focus sur le client, de répondre à son besoin efficacement, de lui donner entière satisfaction.

Focus client ne veut pas dire négligent.

dilbert-code

Par contre, la plupart des informaticiens que je connais travaillent en informatique de gestion, pas en aéronautique où un bug à 900 km/h à 40 000 pieds au dessus de l’atlantique peut être plus déplaisant qu’un bug dans une page Web qui se corrige en 10 secondes.

Focus client ne veut pas dire négligent.

Mais bien honnêtement, prendre la dernière techno obscure en bêta plutôt que le framework bien connu, bien rôdé, mais d’accord, nettement moins sexy et passionnant, je ne pense pas que ça soit de mettre le focus sur le client. .Net ou Ruby? Demande au client pour voir…

Focus client ne veut pas dire négligent.

Corriger un bug direct en “prod” une fois de temps en temps, faire une patch rapidos, “patenter” quelque chose en bric à brac, quand ça a pour but de donner un service client de qualité, je suis tout à fait d’accord. A l’inverse, faire des mois de tests supplémentaires alors qu’on peut avoir une version stable et “correcte” en 1 semaine, je trouve ça overkill et ça ne sert pas le client du tout.

Focus client ne veut pas dire négligent.

spaghetticode18

D’ailleurs, si tu as à choisir entre un service client “correct”, mais un programme parfait ou bien un service client parfait, mais un programme “correct”, tu choisis quoi? Moi, je choisis l’option 2. En plus, je pense que c’est beaucoup plus facile à vendre que l’option 1.

Mais ça c’est moi.

Focus client ne veut pas dire négligent.

D’autant plus que si la qualité du code était réellement un bénéfice pour le client, mon p’tit doigt me dit que le marketing l’utiliserait à son avantage. Par exemple:

  • Google, la compagnie avec le meilleur code au monde!
  • Apple, du design sexy c’est bien, mais du code qui dépasse vos attentes c’est mieux!
  • Zappos, on est reconnu pour notre service, mais t’as pas vu notre développement techno, oulàlà, c’est le summum!

Focus client ne veut pas dire négligent.

Tiens, j’y pense. Vous vous rappelez d’Honda qui publicisait leurs Civic en disant que c’était un super char cool avec le moteur DOHC (double arbre à cames en tête). Y’a vraiment quelqu’un qui se souciait de cet acronyme? Sérieux, on s’en sacre de comment est fait le moteur du moment qu’on a ces bénéfices: Ça démarre sans problème, ça avance, ça donne une puissance convenable et ça fonctionne sans trop d’entretien pour une couple d’années. Le “comment” est fait le moteur, la moyenne des ours s’en moque.

no-spaghetti

Focus client ne veut pas dire négligent.

Évidemment, si ton moteur est tout croche et ne remplit pas ses promesses, on est pas dans le focus client. Remplir ses promesses, avoir le désir profond de satisfaire son client fait partie intégrante du focus client.

Sinon Lada serait à la place de Toyota aujourd’hui.

Focus client ne veut pas dire négligent.

Je vais prendre mon ancien collègue aux technos comme un bon exemple d’un focus client comparable au vide interstellaire. L’idée du projet était de corriger quelques irritants pour le client. Il y avait des solutions pourtant simples, mais non, il s’est enligné pour faire le prochain Microsoft.

Son but n’était pas de satisfaire le client, mais de bâtir la compagnie techno qu’il avait en tête. Et par la bande, corriger les irritants du client. Ça, ce n’est définitivement pas avoir le focus sur le client.

Le client s’en fout de tes ambitions. Il veut que tu corriges ses irritants sinon il tire la plug et va voir ailleurs.

spaghetti

Focus client ne veut pas dire quoi? Négligent. T’as tout compris mon pote.

p.s.: Par ailleurs, faut prendre mon opinion avec un grain de sel. Si tu me provoques en duel mortel pour prouver que j’ai tort, je vais sûrement te botter les noisettes et passer à autre chose.

Partage avec tes potes!
  • Germain Tenthorey

    Hello,

    C’est tellement vrai et je suis d’accord avec ça, mais il y’a une certaines fierté à “montrer” qui fait le code le plus clean, le plus rapide, le plus stable ça flatte l’égo des informaticiens (oui c’est un peu limite).

    Mais souvent ceux qui sont bercés par ce genre de problématiques, n’ont pas forcément la vision rentabilité, viser le meilleur rapport qualité prix pour être concurrentiel.

    C’est une question de mentalité aussi… il faut dire qu’un ingénieur “employé” d’une grosse entreprise aura une vision très différente d’un “entrepreneur” qui doit faire tourner sa propre entreprise et qui doit vendre des prestations / services aux clients.

    A bientôt !

  • http://christianroy.tumblr.com christianroy

    Haha, c’est vrai que ton texte précédent pouvait donner le goût des tomates ou du trollisme… j’aurais même tendance à penser que tu faisais un peu exprès de ne pas faire dans les nuances. 😀

    J’ai même été tenté d’écrire une longue réponse qui aurait dit «mais oui mais tsé ça ne peut pas être juste du code de merde… mais dans le fond on le sait que tu le sais Stéphane, ta business ne serait pas rendue au scale actuel avec juste du code de merde…» et tout et tout.

    Mais finalement je me suis regardé dans mon téléphone (pas de miroir disponible) et je me suis dit: oublie ça pis retourne travailler, y’a des clients potentiels qui attendent…

  • http://www.youenchene.fr youen

    Un petit regard de CTO sur l’article. Tout est histoire de compromis et de responsabilité.

    L’objectif n’est pas d’avoir le meilleur code du monde.

    A court terme, c’est d’avoir le code suffisamment propre (good enough) pour ne pas t’avoir à te lever la nuit pour le support ou passer tes journées sur du support.

    A moyen terme, c’est d’avoir la souplesse de pouvoir ajouter de nouvelles fonctionnalités, une nouvelle interface pour s’adapter au marché et aux demandes des clients. Si c’est trop cracra, les délais de mise à disposition aux client augmenteront exponentiellement et la tu perds la partie contre tes concurrents. (note un code qui n’est pas en production devant le client, c’est du stock, sa valeur intrasèque est proche de zéro).

    A long terme, c’est garder les meilleurs développeurs de son équipe.

    Pour moi, c’est à l’équipe technique de juger le bon niveau et aux dirigeants de s’assurer que la culture est bonne dans l’équipe technique (pas trop cracra, pas trop sur ingénieurie).

  • http://dashthis.com/ Stéphane Guérin

    “on le sait que tu le sais” -> Clairement, c’est pas tout le monde qui pense que je le sais haha.

    Bon point: Lâche les internet pis va vendre héhé

  • http://dashthis.com/ Stéphane Guérin

    C’est exactement ça. Si tu cherches un job, appelle moi 😉

  • http://www.youenchene.fr youen

    😉 La c’est plus moi qui cherche du monde pour ma boite!