Le moteur de règles
Conserver un code simple pour des règles métiers complexes
Accueil > Nos réalisations > Mise en place d’un moteur de règles
Échanges avec
Dimitri Ashikhmin
Dimitri Ashikhmin, directeur associé de FWA, explique l’intérêt de la mise en place d’un moteur de règles.
Nos projets en cours
Aujourd’hui, nous travaillons sur une soixantaine de projets par an. Les deux tiers de ces projets sont des applications existantes qui demandent des prestations de maintenance et évolutions. Le tiers restant est constitué de nouveaux projets. Bien sûr, nous gardons notre cap sur les projets d’informatique de gestion. Nous nous orientons donc principalement vers le monde collaboratif, la mobilité et la gestion commerciale.
Parmi nos projets les plus récents, nous pouvons citer une application de cotations logistiques, un système de gestion électronique de documents nommé Dispodoc, une application de consolidation des statistiques des accidents de travail…
Nos outils de développement et de gestion de projet
Nous utilisons la méthode classique de gestion de projet basée sur les spécifications, le maquettage, le développement, la livraison et la maintenance des logiciels. Mais notre approche est différente dans la phase de spécification car nous attachons beaucoup d’importance aux écrans de consultation et à leur enchainement. Nous savons que les instances du code ou la structure de la base de données découlent naturellement lorsque l’interface de l’application est bien construite.
Avant la phase de construction des maquettes, nous utilisons le formalisme UML pour identifier les différents cas d’utilisation. Ensuite, nous rédigeons les spécifications. Une fois cette étape réalisée, nous concevons les maquettes avec Balsamiq Mockups. Nous développons ensuite l’application à l’aide de Visual Studio. Les bases de données sont multiples. Tout le code source est géré dans Azure DevOps. Enfin, nous traçons le support et les évolutions dans un outil dédié.
Ainsi, les nombreuses applications avec une logique très complexe sont devenues faciles à croquer. De cette façon, le code applicatif reste simple, les règles de gestion sont paramétrées dans des fichiers modèles par des experts fonctionnels sans compétence de coding.
Pourquoi un moteur de règles ?
Le développement de certaines applications soulève des problématiques récurrentes. Par exemple :
- Pour une application de calcul de rémunération variable, il s’agit de rendre souples les règles de calcul des primes.
- Pour une application de proposition commerciale complexe, il faut calculer le meilleur tarif selon les conditions d’exécution du contrat.
- Dans une application de gestion des documents, on cherchera à rendre le formulaire de qualification adapté au contexte du document.
Cette problématique d’externalisation des règles de gestion n’est pas nouvelle. Elle nous poursuit depuis de nombreuses années. C’est pourquoi, nous avons essayé plusieurs méthodes d’externalisation des règles métier : base de données, fichiers XML, fichiers de code applicatif compilables à la volée…
Sortir la logique complexe du code applicatif
Depuis deux ans, nous avons mis en place un moteur de règles performant qui nous permet d’externaliser toute logique complexe du code applicatif et la rendre transparente. Ainsi, les nombreuses applications avec une logique très complexe sont devenues faciles à croquer. De cette façon, le code applicatif reste simple, les règles de gestion sont paramétrées dans des fichiers modèles par des experts fonctionnels sans compétence de coding.
Le grand avantage que nous y avons trouvé est de faire participer notre client à la conception, la réalisation et les tests des fichiers de règles métier. De plus, notre approche permet de tester les modèles sans les intégrer dans l’application. Et inversement, l’application peut toujours nous fournir le modèle avec les valeurs en cours d’exécution pour nous expliquer les résultats obtenus.
Quelles applications concrètes au moteur de règles ?
Les débouchés sont multiples. Pour le moment, nous avons couvert le domaine du calcul des offres tarifaires complexes, de la rémunération variable, de la création des formulaires dynamiques de qualification, de la gestion dynamique des flux décisionnels, du tracking complexe des documents…
Par la suite, nous irons vers des objectifs plus ambitieux comme la gestion des conformités dans les entreprises, le suivi des événements financiers et de gestion ou d’autres domaines.
Et une fois en production, c'est figé ?
Non, justement ! Les règles peuvent évoluer avec ou sans notre accompagnement.
Par exemple, un de nos clients fait évoluer son système de rémunération variable sans nous solliciter. Il a même transformé le fichier modèle en outil de simulation de la rémunération afin de laisser les commerciaux programmer leur bonus en fonction de leurs résultats budgétés.
Cependant, certains clients nous confient la gestion des évolutions des règles avec l’assurance du respect de la cohérence de l’ensemble des règles entre plusieurs domaines d’activité, pays, cultures.
Nous créons des modèles suffisamment ouverts pour améliorer la logique des règles sans changer de code applicatif, ce qui rend le processus de maintenance et d’évolution bien plus économique pour nos clients.