Parlez moi de vos problèmes

Où il est question de construire des solutions et de bien comprendre le problème.

La mission de l'ingénieur logiciel c'est de construire la solution la plus appropriée pour un problème donné. C'est déjà un travail difficile que de bien comprendre le problème, et de construire une solution qui soit bien alignée avec.

Nous avons tendance à nous mettre des bâtons dans les roues tout seul au passage: en nous projetant trop tôt du côté des solutions, en nous mettant des contraintes arbitraires par des choix techniques prématurés ou dictés par la mode du moment ( microservices on vous voit!)

C'est encore plus difficile quand le "client" nous projette lui même trop vite du côté des solutions. C'est humain: quand nous avons un problème, nous avons tendance à réclamer une solution particulière, plutôt qu'à simplement exposer notre problème.

Peut-être la principale raison est-elle que ce n'est pas facile d'exposer simplement, et avec le moins d'éléments parasites possibles, le problème à résoudre. C'est même très difficile, notamment parce qu'il est plus simple d'imaginer des solutions et d'utiliser ce que l'on a déjà de concret - le produit existant.

Le problème pour le développeur (navré), c'est que si nous ne faisons pas l'effort d'aller chercher la compréhension du problème avec le "client", nous allons construire quelque chose qui ressemble à la solution imaginée. Nous partons d'emblée avec des contraintes inutiles, et une compréhension du problème polluée par des pré-supposés de solution.

Ce n'est pas très satisfaisant, et la probabilité que cela réponde au véritable problème qu'il fallait résoudre est mince.

La mission de l'ingénieur logiciel c'est donc en premier lieu de bien comprendre le problème du "client", avec lui - quitte parfois à bousculer un peu, gentimment. C'est aussi de refuser de se comporter en exécutant, quand c'est dans l'intérêt du produit, de l'organisation ou des utilisateurs. Ce n'est pas facile. Mais c'est notre responsabilité.

La mission du "client", c'est de parler de ses problèmes - et essayer de ne pas trop plaquer ces solutions dessus.