Retour

Jeudi 29 avril 2021

Se comprendre entre développeurs et clients, pas toujours évident !

By Mathieu R. ***************************  

Introduction

Le dicton dit « une image vaut mille mots » alors voilà : Voilà, merci d’avoir lu mon article ! Et très bonne journée ! Non ? Vous êtes encore là ? OK, parlons-en alors. On ne va cependant pas parler de TDD ni de POO ou encore de WYSIWYG, ni d’aucune autre combinaison énigmatique des lettres de l’alphabet d’ailleurs. Aujourd’hui on va parler du monde des développeurs et on va en parler en français  ! Une idée très répandue, surtout dans le monde du cinéma, est celle que les développeurs sont des êtres dotés de grosses lunettes, orné de capuche et qui tapent sur un clavier tels des épileptiques durant une grosse crise. Cela bien sûr, tout en narrant ce qu’ils font comme si quelqu’un était censé comprendre ce dont ils parlent. Cela vous évoque peut-être des mots clés comme « pare-feu », « adresse IP » ou encore « serveur proxy ». Sans parler des kilomètres de textes en vert sur fond noir qui défilent. C’est bien, vous êtes dans le bain. Dans le monde professionnel les développeurs sont plutôt vus comme une communauté de magiciens faiseur de miracles. Grâce à un langage incompréhensible ils sont capable de jeter des sorts informatiques appelés « algorithmes ». De quoi faire quelques blagues sympas sur les réseaux et autour d’un café. Alors, où est le mal ? Là où ce clivage entre le monde des développeurs et celui des autres collaborateurs fait mal c’est justement dans le monde professionnel où les principales unités de mesures sont généralement le temps et le budget. Imaginez-vous être chauffeur chez votre garagiste pendant que celui-ci remplace votre câble de frein. Il vous dit que ça prendra 2 heures, mais la première heure à peine passée le client appelle disant qu’il a besoin de la voiture de toute urgence ! Allez-vous dire au garagiste de laisser tomber le câble de freinage car « voyons mon bon monsieur, ce n’est plus la priorité numéro 1 » ? J’espère que votre réponse est « non » car sinon il y aura du ralentissement sur l’autoroute après vous. Dans ce cas de figure comme dans d’autres, tels que des travaux dans une maison ou chez votre médecin, le client et/ou l’utilisateur comprend qu’il a intérêt à attendre que tout soit fait dans les règles de l’art. Ou du moins, avec le moins de bricolage possible. Et pourtant, qui n’a pas entendu cette célèbre requête tomber au beau milieu d’un sprint : « Est-ce que tu peux rapidement ajouter cette feature ? C’est tout petit. Regarde il y a de la place là ».

Pourquoi ce clivage ?

Le but ici n’est pas de peindre une image de méchants clients ou patrons bornés, le cigare à la bouche et une bague en or à chaque doigt, contre les petits chaperons aux lunettes. Le but est de comprendre pourquoi ce clivage entre devs et non-devs. Selon moi, la cause du problème est un manque de communication et de transparence d’un côté et une fausse image et/ou un manque d’éducation sur le sujet de l’autre. Le souci vient souvent d’un pré-conditionnement via la culture, comme dans l’exemple du cinéma mais pas seulement. Un peu comme les mathématiques au lycée, le monde du développement informatique est souvent perçu comme un domaine à la logique froide et stricte, au vocabulaire complexe et difficilement abordable. Au-delà de la perception populaire, dans le monde professionnel les développeurs sont perçus comme des boîtes noires. Et pourtant, ce sont bien ces boîtes qui sont les architectes du monde moderne, celui de l’ère de l’information. Cela étant dit il faut aussi faire la part des choses. Oui, au sein des géants de la tech comme ceux de la Silicon Valley ou au sein de certaines startups, le code est une religion dont les devs sont les prêtres. Nul n’est censé ignorer la sainte documentation et gare aux hâtés ! Mais cela reste une minorité dans le grand océan du monde de l’emploie. Ici je parle bien de la situation de monsieur et madame tout le monde qui sort d’école de commerce et des clients lambdas, souvent avec un budget bien défini. Aussi, il est impensable que du haut de mes trois ans d’apprentissage et un an et demi de CDI je puisse éduquer qui que ce soit à l’immensité des secteurs de l’informatique. Et ce encore moins en quelques paragraphes. Je vous propose à la place de survoler quelques idées très générales, et surtout, de défaire certaines idées reçues. C’est parti !

Les développeurs sont des génies

« J’ai développé un algorithme qui… » l’explication pour tout dans le domaine de l’informatique. Des IA qui vous vieillissent de 50 ans aux voitures qui se conduisent toute seule en passant par ces chaussures water proof que vous avez fini par acheter sur internet après une n-ième pub de gens qui marchent sur des clous. La vraie magie derrière ce mot c’est qu’il est accepté par tout le monde alors qu’on ne sait bien souvent pas grand-chose de ce qu’il se passe derrière. Vous imaginez votre plombier vous dire « j’ai fait un algorithme dans votre salle de bain, ça vous fera 2000 euros ». Et pourtant c’est souvent ce qu’un développeur vous dira et ça sonnera parfaitement acceptable. Mais un algorithme c’est quoi ? Un algorithme c’est ni plus ni moins qu’une suite d’instructions destinées à une machine pour lui dire quoi faire. C’est un peu comme la cuisine, ce n’est pas parce que vous avez vu une recette cuisinée par un chef cinq étoiles sur YouTube que vous allez sortir le même résultat. Les développeurs ne sont *pas* des génies (désolé mes compatriotes, mais c’est pour l’article). En tout cas pour la grande majorité. Et tout comme vous et moi (si on possédait une voiture) pourrions faire une recherche google pour savoir ce qu’est un vilebrequin, à quoi ça sert et pourquoi on n’a pas envie de changer ça nous-même, les développeurs passent aussi leurs temps à chercher sur google. Bien souvent il s’avère être très utile de prendre le temps de comprendre avec eux de quoi il s’agit ne serait-ce que de manière générale. Un peu comme avec son plombier ou son médecin, on se fait une idée de la situation avant de se lancer dans les gros travaux. Alors bon, soyons honnête en tant que développeur, on n’aide pas vraiment non plus. « Ils ont push un patch qui a fait planter la prod, j’ai dû me connecter en ssh pour revert le commit puis reboot tous les services. Il y a eu un peu de down time mais ça va ». Entre le franglais et les termes purement ésotériques, on a vite fait de décrocher. Surtout si c’est ce qu’entend le client ou le commercial, ça ne va pas. La communication est une compétence tout aussi importante que le code. Et c’est une compétence qui est malheureusement fait défaut pour beaucoup de devs.²

Ce n’est pas si compliqué comme feature… si ?

« Ce serait bien si on n’avait pas à faire [tâche] à la main, pourrais-tu automatiser ça ? ». Alors dans l’absolue la réponse est presque toujours oui. Souvent la phrase qui tue est celle qui suit après : « tu penses qu’une semaine c’est suffisant ». Une phrase qui ressemble à une question, qui sonne comme une question mais qui, bien souvent, est belle est bien une affirmation de la part du client ou product owner. En à peine 4 ans et demi dans le monde du travail et seulement 3 boîtes, très différentes en termes de secteur et de taille, j’ai déjà entendu trop de fois cette réplique. Alors comment dire ? Oui, c’est possible d’attacher un balcon à votre appartement situé au 3ème étage, mais en une semaine… Et pourtant là encore, il semble tout à fait raisonnable de négocier avec le lead technique du temps que ça devrait prendre. Encore une fois, et parce que c’est bien de le dire, il ne s’agit pas de pointer du doigt les méchants. Il existe sur internet bon nombre d’articles sur le fameux sujet « 7 surprise celebrities who know how to code » ou en français :  7 célébrités qui savent coder, contre toute attente. Ces articles relatent la situation et les dires de 7 célébrités (acteurs, musiciens, et même joueur à la NBA). Et ce qu’il en ressort est souvent que savoir coder, ou du moins lire et comprendre le code, se rapproche de plus en plus aujourd’hui de savoir lire et écrire. Le monde se numérise (d’ailleurs en français c’est numériser et non digitaliser) à un rythme sans précédent. Certains parlent carrément d’une révolution anthropologique tellement la société a changé depuis les années 80. Et pourtant, oui je dis beaucoup ça, pourtant, pourtant, dans les esprits, il reste aujourd’hui raisonnable d’imaginer construire des buildings informatiques en quelques semaines.

En conclusion

Malgré la récurrence des sujets abordés dans cet article dans la pratique, j’ai été stupéfait par le peu ressource traitant de ces sujets. Peut-être est-ce là un signe que le sujet mérite d’être aborder ? Je pourrais encore continuer longtemps dans cet article mais je pense que j’ai plus ou moins fait passer le message : Les développeurs ne sont pas des mathématiciens génies, faiseur de miracles. Et pour peu que chacun veuille bien faire l’effort de parler le langage de l’autre, tout le monde y gagne.