Pourquoi les développeurs disent : non ?
La réponse courte est : parce que l'informatique est contre-intuitive pour les humains.
Article publié le 13/04/2021, dernière mise à jour le 22/10/2024
Je ne vais pas faire un état des lieux de toutes les raisons pour lesquels les développeurs sont amenés à dire non à un client (ou à un manager), la raison la plus courante étant que la fenêtre de temps est incompatible avec l'ambition de ce dernier.
J'ai d'ailleurs consacré un article à l'estimation d'un projet et aux contraintes qui y sont liées disponible ici (tldr; c'est une tâche complexe).
Dans cet article, on va plutôt s'intéresser à la question d'ordre supérieure : Pourquoi demande-t'on souvent à un développeur d'effectuer une tâche plus complexe que le temps ne le permet ?
La réponse que je trouve la plus synthétique et à la fois la plus juste est une citation de Steven Pinker (chercheur en sciences cognitives et ancien co-directeur du département au MIT) sur les ordinateurs et l'intelligence artificielle :
"The main problem [...] is that hard problems are easy, and easy problems are hard"
Résumé en français : "Les problèmes compliqués sont simples, et les problèmes simples sont compliqués", ce qui est une description très juste de notre relation avec l'informatique et la raison principale de la confusion des clients qui pensent avoir une requête simple et se voient dire "non".
Je ne vous apprends rien en vous disant que nos cerveaux sont très différents de nos ordinateurs.
Même la démultiplication de la puissance de nos machines ne nous permettront pas de simuler le fonctionnement d'un cerveau, ce n'est pas un problème de puissance, mais de représentation des données à la base même de notre manière de raisonner.
Notre cerveau fonctionne de manière analogique, c'est à dire qu'il traite des signaux de données qui sont infinis et qui changent constamment (lumière, son, goût, etc...), tandis que nos ordinateurs fonctionnent avec des informations logiques, consistuées de 0 et de 1.
Si le concept de représentation binaire ne vous est pas familier, je vous invite à lire mon introduction à ce sujet.
Cette différence fondamentale induit le fait qu'une tâche qui sera simple à effectuer pour le cerveau d'un enfant de 5 ans sera parfois très complexe à réaliser avec les outils numériques à notre disposition.
On peut prendre l'exemple de la sémantique d'un texte, de la reconnaissance d'un chat, de l'analyse du sentiment d'une personne en rapport avec son visage, etc...
Tandis qu'à l'inverse, compter le nombre d’occurrences exact d'un mot dans un livre sera très facilement réalisable par un système informatique, est beaucoup plus complexe pour notre cerveau et notre mémoire.
Seulement lorsque l'on réfléchit à un projet sans connaitre le fonctionnement d'un système numérique, c'est notre cerveau humain qui va prendre les rennes et évaluer quelle tâche est compliquée et quelle tâche ne l'est pas, conduisant souvent à une erreur de jugement.
Et donc à un certains nombre de refus afin que le projet soit techniquement réalisable avec les outils à notre disposition.
En attendant l'arrivée des bio-ordinateurs grand public, gardez en tête: "En informatique, les problèmes les plus simples sont les plus compliqués.
Aucun commentaire pour l'instant