Aller au contenu principal

Éviter l'overengineering, et la hype

En parlant d'efficacité… l'overengineering c'est le fait de sur-complexifier le développement technique. Pourquoi faire simple quand on peut faire compliqué ? Parlez-en aux développeurs, ils sauront de quoi il est question.

Loin de nous l'idée de critiquer l'innovation… Le problème c'est qu'il y a à chaque fois un effet de mode (la "hype") où tout le monde ne fait plus que parler de ça. Cela dure un temps, puis cela s'estompe. On peut parler du NoSQL, de la blockchain, des microservices… ça répond à des besoins très spécifiques mais on se retrouve submergé de conférences où on pourrait croire que c'est la voix à suivre par défaut.

(source)

Cette innovation peut très bien être "productive" si elle est adaptée à votre produit. Mais dans les faits, une majorité des produits numériques d'aujourd'hui ne demande pas beaucoup plus de complexité que ceux d'il y a 15 ans. Un monolithe (backend + frontend), une base de données, et hop ça fonctionne. Bien évidemment on a beaucoup automatisé et standardisé le déploiement, les tests… mais l'essentiel des concepts est identique.

La sur-complexité est encombrante sur le long terme :

  • L'équipe technique n'a plus envie de mettre les mains dedans, au risque de faire bugguer quelque chose, ou tout simplement car le rapport temps travaillé / résultat n'est plus gratifiant ;
  • Les développeurs pionniers de cette complexité dans le projet deviennent indispensables pour continuer le développement ou maintenir l'outil. C'est un vrai problème car votre produit va idéalement vivre des années, mais ces personnes peuvent partir à tout instant… Bon courage aux nouvelles recrues !
Fallait y penser !

En adoptant une stack technique simple et minimaliste, vous êtes déjà indirectement en train de répondre à certaines problématiques d'écoconception (oui oui 😏🌱).