Allo Houston, on a un problème

Quand les contraintes forcent l'innovation

Vous souvenez-vous de ce film retraçant l’épopée de la mission Apollo 13 ?

Les astronautes américains partent pour la lune, et se retrouvent en très mauvaise posture suite à l'explosion d'un réservoir d'oxygène.

Toute l’intrigue s’articule autour de l’incertitude du retour des astronautes sains et saufs sur terre, alors que leur capsule spatiale part en lambeaux.

Au plus fort de la crise, les équipes détectent une augmentation alarmante du taux de CO2 dans l'habitable. Les ingénieurs du centre de contrôle doivent alors mettre rapidement au point un système pour éviter l'asphyxie des astronautes.

Mais comment construire un purificateur d'air avec les moyens du bord ?

Ca force à être imaginatif !

Au final, ils parviennent à transmettre aux astronautes des instructions pour fabriquer ce purificateur. Il ressemble à une boite aux lettres, mais il fonctionne.

J’aime bien cet exemple. Il illustre la capacité collective à innover pour résoudre un problème compliqué sous de fortes contraintes : construire un truc en utilisant seulement ce qui est disponible à bord, et dans un temps limité.

C’est un cas extrême.

Dans la vraie vie, on dispose de plein de temps et de pleins de ressources pour mener son projet, non ?

Dans la vraie vie, il suffit d’exprimer une idée générale, en pariant sur le fait que l'équipe de développeurs saura bien quoi en faire, non ?

"J'ai besoin d'un outil pour gérer les opérations de mon entreprise, qui soit simple et intuitif".

On peut penser que ce noyau d'exigences suffit. Les développeurs ont l’expérience suffisante et l’autonomie technique pour construire le projet autour de ça.

Parfois ça fonctionne.

Mais le plus souvent, votre projet est exposé à un sérieux risque de dérive.

Hard middle, soft walls

Pourquoi ?

Parce que l'imagination et l'esprit d'initiative de vos développeurs/designers va tourner à plein régime pour construire le produit idéal.

C'est ce que Ryan Singer nomme le “Hard middle, soft walls”. On construit autour d'un concept, d'une idée de départ. L'imagination travaille à ajouter ce que l'on suppose nécessaire pour le projet.

Et si on adoptait la démarche inverse ?

En fixant les limites à ne pas dépasser. Au lieu de donner un noyau, on donne une enveloppe de contraintes : construisez ce truc uniquement avec ce qui est disponible dans la capsule spatiale.

Au lieu d'aligner une liste sans fin de toutes les fonctionnalités qui seraient géniales, on commence plutôt par contraindre volontairement le projet. Par exemple :

  • 3 fonctionnalités essentielles, à faire en 5 jours max mise en production comprise.

  • L'utilisateur doit accéder à cette information en 1 clic.

  • Cette donnée n'est pas modifiable.

Cette approche “Hard walls, soft middle” impose de faire simple et de trouver des solutions astucieuses. En limitant les outils, le budget, le temps, on évite la construction d'une usine à gaz.

Deux stratégies pour travailler sous contrainte

Evidemment vous n'avez pas envie que votre projet ressemble à un bricolage.

L'objectif n'est pas de construire un logiciel assemblant 3 trucs vite fait qui tiennent avec du chewing-gum.

L’objectif est plutôt d’approfondir la recherche de solutions en se focalisant sur l’essentiel : apporter à l’utilisateur la fonctionnalité qui répond à son besoin.

Puisqu’on n’a pas le temps de papillonner, ça force à bien cerner le problème.

Ensuite, il y a 2 stratégies possibles :

Stratégie #1 : le framework

Plutôt que de repartir de zéro, on utilise un outil qui va accélérer le développement en fournissant un arsenal de fonctionnalités déjà prêtes à l'emploi.

C'est la démarche du no-code, du low-code ou du framework. On compose avec ce qui est faisable avec ces outils. C’est génial parce que tout est déjà prévu. Il suffit d’adapter, de configurer, de compléter.

Imaginez un restaurant contraint par ses ressources : il n’a qu’un seul cuisinier. S’il veut proposer plusieurs plats sur sa carte, il n’a pas d’autre choix que d’utiliser les plats pré-cuisinés de son congélateur.

Stratégie #2 : la frugalité

L’autre stratégie du restaurant consiste à limiter le nombre de plats proposés. C'est le cuisinier qui n'a qu'un seul plat du jour, simple et bon. 100% maison. Dont la qualité est irréprochable.

Avec cette stratégie, on code le coeur de la fonctionnalité. Sans superflu. Sans fioriture.

Forcer à faire simple est une démarche collective à double tranchant. Elle bénéficie au projet à condition d’être en capacité de faire des choix parfois radicaux pour se recentrer sur l’essentiel : ce qui compte vraiment pour l’utilisateur, et qui fera passer l’absence du reste au second plan.

Bonne semaine !

— Hervé