
Dans un précédent article, je disais que ma présence au Canada « m’apportera énormément ». En fait, il y’a comme une sorte de sérénité au plan personnel qui se développe en soi. Vivre avec les membres de ma famille installés au Québec depuis bien des années y contribue à cent pour cent à cette sensation de bien être. Comment ne pas s’améliorer alors? Je tacherai de produire et de publier à chaque fois qu’il y’a matière intéressante à faire découvrir dans ce blog consacré à « @GP3m Budget« , mon produit logiciel fétiche qui a fait de beaux jours à bien des universités algériennes. Cet article est l’occasion de faire connaitre à nos lecteurs certains aspects pour réussir un projet de développement et tout ce qui l’accompagne (Informatique de gestion s’entend) : la structure logique, les outils de développement, les tests en situation réelle, les feedbacks correctifs, la mise en production et la maintenance. Chacune de ces étapes consolide le projet et le prépare à la suivante. Il existe bien des méthodes à suivre pour aboutir aux objectifs fixés. En ces périodes ou étapes le développeur (l’équipe) est soumis à un stress grandissant au fur et à mesure que le projet avance. Il arrive que l’on bute sur un problème dont la solution nous échappe ou du moins nous apparait pas immédiatement. Et malheureusement, quelquefois tout le projet tombe à l’eau parce que nous avons manqué de clairvoyance. Pour éviter une telle catastrophe, une rigueur implacable doit être mise en marche dés le début et à chacune des étapes en utilisant des outils vraiment professionnels qui répondent à nos besoins correctement et rapidement.
La structure logique

Cette étape de conception s’appuie sur des méthodes qui ont fait leurs preuves et sont basées en général sur des concepts mathématiques assez fournis et compréhensibles à appliquer strictement. Ces préliminaires permettent de formaliser les aspects nécessaires pour aborder dans de meilleures conditions l’étape de développement. Parmi ces méthodes, nous citerons Merise, une méthode française, mise au point par Hubert Tardieu et son équipe. Elle comporte des étapes permettant de modéliser les données et les traitements. Elle était très utilisée en France et en Algérie au cours des années 80. De nos jours, les concepteurs font appel aux RAD (Rapid Application Development) pour gagner du temps et de la performance, un concept très utilisé pour presque tout actuellement (Framework, langages de programmation, …). L’encyclopédie Wikipédia fournie l’historique et explique « The James Martin RAD method ». Cette étape doit être documentée clairement avant d’aborder la suite, faute de quoi si le développement est fait en équipe, il y’a risque que chacun fasse à sa tête et l’avancement risque de prendre un coup. Cette méthode est très prisée, elle permet d’aller vite une fois les données et les traitements identifiés clairement. Après le regroupement en entités distinctes, les traitements conséquents peuvent s’opérer aisément. IL faut bien sur identifier les données en entrée et sortie de chacun des traitement répertoriés.
Les outils de développement

Actuellement la scène informatique nous offre une panoplie de langages pour aborder la programmation. Un vaste choix s’offre aux développeurs et souvent à titre gracieux! Le tri et la décision ne sont pas facile, mais dites vous bien que le langage n’est qu’un moyen de concrétiser les aspects conceptuels de vos idées et que plusieurs langages peuvent concourirent à leurs réalisations. Par exemple pour « @GP3m Budget » nous avons recouru essentiellement à deux langages distincts chacun jouant son rôle, en l’occurrence SQL Server avec Transact-SQL en Backend et Visual Basic classique pour l’interface utilisateur ou Frontend, ceci pour des application Desktop ou Réseau local. Sur toute page Internet, plusieurs langages sont sollicités pour atteindre la fluidité de l’affichage : HTML, CSS, Javascript, SQL, PHP et bien d’autres suivant la conception. Mais, mais … , il ne suffit pas de disposer des outils pour bien faire, hélas! Une bonne formation dans le domaine visé est absolument nécessaire. Une fois cette formation acquise et qu’on se sent prêt, l’intégration d’une équipe pour débuter en junior serait le tremplin idéal pour acquérir de l’expérience et être guidé sur le chemin qui mène à des résultats concrets. Le long du développement l’aspect humain joue un rôle prépondérant (J’espère que l’IA ou Intelligence Artificielle ne nous volera pas la vedette et nous aidera plutôt à mieux faire!). Le développeur doit s’équilibrer au plan affectif et psychologique pour réaliser ses objectifs.
Quand notre cerveau saturé et n’arrive pas à corriger des fautes de compilation ou de logique interne cela signifie : il lui faut du repos! Pour y parvenir à ne plus « buguer », moi personnellement j’ai trouvé l’astuce qui me convient : je décroche pour au moins 24 heures pour me consacrer à mon loisir préféré, la pêche en mer ou en lac artificiel ou barrage, l’essentiel est de se consacrer à une activité physique. Là, sans le vouloir des solutions commencent à trottiner dans ma tête et au retour tout se remet dans l’ordre. Évidement, si vous êtes nourris de logique formelle et de rigueur, tout devient plus facile. De nos jours les outils de développement RAD nous offrent une perspective alléchante. Dites vous bien que l’utilisation de l’IA, lors de l’écriture de programmes, il faut la prendre comme un assistant suffisamment intelligent qui est bien nourri voir bourré et capable de répondre à bien des questions pour avancer rapidement grâce aux exemples pratiques dans le langage de votre choix, une sorte de documentation fournie à votre demande. Vous restez ainsi maitre des choix cruciaux : vous gardez le contrôle.
Avant mon arrivée au Canada, j’étais toujours sous MacOs pour la rédaction de mes articles de blog, aujourd’hui je travaille avec Windows 11 préinstallé sur ma nouvelle machine (un mini pc) très confortable et pratique; elle est évidement équipée de Copilot, alors j’ai eu la surprise lors de la rédaction de cet article de ses propositions de réécriture par cette IA agissant en arrière plan pour m’aider ? je décline poliment évidement! Quel valeur aura un article préparé par l’IA ? Pour fermer cette parenthèse et revenir au développement, moi personnellement, je pense qu’un grand chamboulement se prépare en coulisses et les informaticiens développeurs doivent savoir agir en conséquence et saisir bien des opportunités lors de l’utilisation de l’IA tout en gardant le contrôle!
Les tests en situation réelle et feedbacks correctifs

En informatique de gestion, il faut procéder régulièrement avec les personnes concernées avant la mise en production à des tests en situation réelle, c’est-à-dire des données diversifiées prises dans le « monde réel » comme on dit. Il faut prévoir des cas de situations variées aussi complexes soient elles et mettre au point un jeu d’essai complet prévoyant tous les cas possibles et imaginables. Ce jeu d’essai lorsqu’il est bien fait, permet la correction de tous les points névralgiques susceptibles de causer des problèmes. Chacun des modules composants le produit logiciel en projet doit subir un test avec la rigueur adéquate pour s’assurer du bon fonctionnement de l’ensemble. Bien orchestrés les modules fonctionneront en harmonie suivant les besoins des utilisateurs. Avant la mise en production sur des données réelles, les tests auront certainement déniché les incohérences qui peuvent subsister malgré nos efforts pour y remédier. Des retours en arrière ou feedbacks s’avèreront nécessaires pour apporter les correctifs qu’il faut. Ce n’est qu’après qu’une fois tout est rentré dans l’ordre que la mise en production peut être envisagée. Dans un premier temps restreindre le choix des utilisateurs à ceux qui participent volontairement à aider le développeur par une utilisation intensive du produit dans ses moindre fonctionnalités jusqu’à élimination de toute erreur de logique ou autre. Dans le cas d’un produit destiné à la vente cette phase de débogage doit être vue comme une sorte de terrain de décollage. Ce n’est qu’après des résultats probants que la mise en production ou vente à des clients externes peut être envisagée.
La mise en production

Lorsque notre jeu d’essai s’avère fructueux et que nos tests donnent les résultats escomptés, commence alors la préparation de la mise en production, un cycle qui peut durer jusqu’à un mois voir plus : tout dépend de l’ampleur de l’institution. Cette préparation va porter essentiellement sur la formation des futurs utilisateurs. Une documentation servant à cet effet est sensée être préparée et prête à l’emploi. Une fois les utilisateurs formés, la mise en production peut commencer…. Cette étape est très sensible, notamment lorsqu’il s’agit de logiciels financiers ou un grands nombres d’utilisateurs ont accès. Le système doit avoir prévu à chacun son rôle et ses droits d’accès, faute de quoi, c’est la débandade! Je vise ici les systèmes de gestion ou chaque utilisateur a un rôle à assumer (Administrateur, lecture seule, lecture écriture, maintenance, etc…). Les systèmes de gestion de base de données sous jacents offrent une bonne gestion des utilisateurs et leurs droits pour divers rôles.
La maintenance

Après la version alpha, c’est-à-dire la première version mise en production, des mises à jour sont souvent produites pour prendre en charge une nouveauté qui s’est manifesté ou une demande de modification des utilisateurs, ou tout simplement une décision d’apporter des améliorations à la version précédente. Ces améliorations peuvent porter sur de nombreux points : algorithmes internes, interface utilisateur, base de données, ajout de modules, bref toute modification conduisant à une autre version. Le versioning aura pour tache principale un renforcement de la structure du produit tout en gardant à l’esprit les fameux tests avant tout mise en production de la nouvelle version. Le produit que j’essaie de mettre en avant dans cet article est également concerné par une maintenance que je souhaite active dans les prochains mois. L’existence de nouveau compilateur qui promettent une compatibilité Windows, MacOs et Linux semble un bon parti pour des exécutables en 64 bits. TwinBasic et RAD Basic peuvent compiler les sources VB6 tels qu’ils sont d’après leurs promoteurs. Dans les prochains jours une décision cruciale sera à prendre.
En résumé, le développement d’un produit logiciel professionnel destiné à la gestion d’une institution, lorsque c’est un produit nouveau, les étapes décrites précédemment sont requises pour espérer aboutir à un produit opérationnel qui répond aux exigences prescrites. La structure logique rassemble les données et prévoie les traitements nécessaires à effectuer sur celles-ci, ajouter, créer, modifier ou supprimer celles devenues obsolètes ou inutiles. Les données et les traitements seront pris en charge par les outils adéquats à différents niveaux lors du développement. Les tests s’effectuent au fur et à mesure du développement avant toute mise en production. L’étape de maintenance fera vivre le produit va améliorer certains points, ajouter des modules complémentaires. Un produit bien entretenu peut durer plusieurs années.
Excellent article relatant les phases cruciales de développement de tout produit informatique destiné aux institutions qui veulent faire de leur gestion un atout fort a leur progression.
Au plaisir de lire le prochain article.
On your commercial site, you do what you deem good to attract customers in terms of price and quality. the judgment is yours!