Il y a quelques jours, j'ai mis à disposition sur DockerHub un outil de développement que j'ai construit et dont je me sers depuis quelques mois.
Cet outil, baptisé Komander (https://komander.io), est le résultat de la même démarche que j'emploie avec mes clients, appliquée à ma propre activité. Voici en quoi elle consiste.
Le besoin est né (comme souvent) de différentes frustrations : au cour de l'année, je crée de nombreux repositories pour chaque projets sur lesquels j'intervient, et je maintien certains d'entre eux depuis plus de 10 ans ! Or je me suis rendu compte que j'effectuais certaines tâches chronophages et à faible valeur ajoutée de manière répétitives, comme l'initialisation des repositories avec les bons fichiers de base (.gitignore, Dockerfile, README.md etc.), la configuration de certaines nomenclatures ou encore l'ajout de scripts de déploiement etc. D'autre part, j'avais des difficultés à garder des environnements de développement opérationnels sur les projets les plus anciens et réalisé qu'avec le temps on fini par oublier les détails architecturaux qui font la spécificité de chaque projet.
J'ai donc résumé mon besoin en 3 points :
Tout d'abord, je prends toujours le problème à l'envers ! Je pars de la solution : à quoi ressemble la solution idéale en terme d'expérience utilisateur ? Je part toujours du fonctionnel, du besoin réel, pratique, et de l'opérationnel. Puis petit à petit, j'abstrais les besoins pour identifier les besoins techniques et concevoir une architecture globale.
En fait, il serait plus juste de parler "des phases de développement" au pluriel, car la démarche est itérative. Je conçois, je développe, j'utilise, je note les corrections à apporter et je recommence, jusqu'à avoir une solution satisfaisante. Mais qu'est-ce qu'une solution satisfaisante ? Cette question est d'autant plus difficile à répondre lorsque l'on travaille sur un projet "sans client", où l'on à tendance à travailler sans budget et sans vraiment de contraintes. Pour moi l'important c'est d'avancer étape par étape, et de se donner le temps de vraiment utiliser une solution logicielle pour pouvoir la faire évoluer au plus près des vrais besoins métier. Alors oui, tout n'est pas parfait au début, mais souvent on se rend compte que certains aspects ne sont pas aussi indispensables que l'on pensait ou encore que que d'autres plus importants sont manquants. Cela permet d'économiser du temps et des resources.
Ce projet est encore très jeune et je vois déjà plein d'améliorations possibles, mais j'aimerais pouvoir échanger avec d'autres développeurs pour confronter certaines idées et voir comment on pourrait le faire évoluer pour qu'il réponde au besoin d'un plus grand nombre de personnes. C'est pourquoi j'ai ouvert une discussion sur Discord, où n'importe qui peut venir poser des questions / donner des idées etc. à propos de Komander, ici : https://discord.gg/3Whq6UrKpq
À bientôt !