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 projetsans 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.

J'espère que cet article vous aura plu, et à bientôt sur le blog !

Les articles les plus populaires du blog

Envie de continuer à lire des articles autour du développement web (entre autres) ? Voici la sélection des articles de mon blog les plus lus par la communauté !

Voir la sélection 🚀

Recevez les articles de la semaine par e-mail pour ne rien manquer !

S'abonner à la newsletter 📧

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !

Photo by Isaiah Rustad on Unsplash