Considérer toutes les possibilitées

Considérer toutes les possibilités

Chez Resulto, lorsque nous rencontrons un problème technique, nous nous faisons un devoir d’évaluer plusieurs possibilités avant de choisir une solution. Nous croyons que d’un point de vue technique, tout est une question de compromis et le meilleur compromis dépend du contexte.

Lors d’une revue de design ou de code, nous demandons souvent à la personne qui présente sa solution quelle serait la meilleure alternative et pourquoi la solution présentée a été retenue. Même lorsqu’un problème nous semble facile à résoudre, faire l’exercice de considérer plusieurs solutions reste important, car:

  1. Une des façons les plus faciles de déterminer les forces et faiblesses d’une solution est de la comparer avec d’autres. Par exemple, dans le futur, quels types de modifications seront plus faciles ou plus difficiles à supporter?
  2. Nous voulons à tout prix éviter de nous retrouver dans le coin inférieur gauche du cadran de la dette technologique. En d’autres mots, nous ne voulons pas accumuler de dette technique sans le savoir! En explorant au moins une alternative, nous avons plus de chances de réaliser si nous sommes en train d’hypothéquer notre futur technique!
  3. Des solutions alternatives représentent parfois des opportunités d’affaires non prévues pour nos clients ou nous donnent justement des munitions pour démontrer que la solution que nous avons choisie est la plus avantageuse dans le contexte actuel.
  4. Nous voulons toujours nous améliorer et nous dépasser. Pour éviter de tomber dans la routine et de se transformer en chaine de montage de solutions répétitives, la recherche de solutions alternatives est une façon de se tenir à jour et de rester motiver même lorsqu’un problème nous semble simple!

Bien sûr, comme personne chez Resulto n’est devin, il ne s’agit pas de tenter de prédire quelle solution sera meilleure à l’avenir, mais plutôt de s’assurer que toutes les personnes concernées, développeurs et clients, comprennent bien les avantages et désavantages des différents scénarios.

Même lorsque nous rencontrons un problème que nous avons déjà réglé par le passé, nous ne choisissons pas automatiquement la même solution. Nous demandons à la personne qui a implémenté ou maintenu la solution de faire une petite rétrospection pour identifier ce qui a fait en sorte que la solution était gagnante ou inadéquate. Souvent, ce n’est pas la solution elle-même, mais le contexte qui explique le résultat.

Prenons un exemple pour bien illustrer cette culture de la solution alternative: nous avons dû dernièrement créer un système qui importe des inventaires de plusieurs sources et qui exportent ces inventaires chez le client. Il s’agit d’un problème courant que nous avons rencontré sous diverses formes.

La première solution à laquelle nous avons pensé est de créer des scripts d’importation exécutés chaque nuit pour chaque inventaire. Une alternative un peu plus compliquée est de créer de petits programmes qui transforment les différents inventaires en un format intermédiaire (appelé “format pivot”) et de créer un autre programme qui prend le format intermédiaire et qui l’exporte selon le format voulu par le client.

La première solution est généralement rapide à développer, mais elle est très limitée. Par exemple, si le client veut un nouveau format d’export (ex.: envoyer l’inventaire à une application mobile plutôt que vers un site web) ou s’il veut modifier le format actuel, tous les scripts doivent être modifiés. Le format intermédiaire de la deuxième solution requiert plus de temps à développer, mais a l’avantage qu’on peut facilement ajouter de nouvelles sources ou de nouveaux formats d’export. Dans ce cas-ci, le client s’est aperçu qu’il pourrait utiliser ces données sur des plateformes auxquelles il n’avait pas pensé et nous avons donc sélectionné l’approche un peu plus compliquée, mais plus flexible.

La prochaine fois qu’on vous propose une solution, n’hésitez pas à demander quelle est la meilleure alternative!


Vous avez un projet technologique complexe à faire développer? Vous vous demandez s’il existe une alternative à votre solution actuelle? N’hésitez pas à faire appel à nos services et à communiquer avec nous!