Bonjour,
Nous développons actuellement un logiciel ERP pour lequel la base de données et toutes les opérations standards sont déjà terminées et validées mais pour lequel il y a encore un gros travail à effectuer au niveau design (plutôt la partie "Vue" d'un MVVM).
Ce logiciel sera basé sur des fonctionnalités "standards" qui ne sont donc pas spécifiquement réalisés pour des métiers particuliers (bien que la cible soit plutôt l'industrie). Nous envisageons également la possibilité de créer des "thèmes" proposant des modules plus spécifiques à certains types de métier.
Néanmoins, puisque dans un même secteur, les processus de travail des entreprises et leurs besoins peuvent fortement varier; nous souhaitons pouvoir permettre de personnaliser l'application et la rendre au maximum flexible sans avoir à effectuer de modifications dans le code. Ceci aurait pur but de donner de la flexibilité aux consultants/chefs de projets chargés des implémentations de l'ERP sans avoir à passer par notre équipe de développement pour des modifications drastiques du code.
Ce que nous aimerions mettre en place :
- Les listes étant basée sur des requêtes SQL, nous voudrions par exemple pouvoir permettre via des requêtes SQL qui seraient introduites dans l'application, de créer des filtres ou des affichages personnalisés. (via un module de configuration, par exemple)
- Donner la possibilité d'ajouter des champs dans la base SQL qui ne seraient pas standards mais bien spécifiques à chaque client acquérant la solution. (Exemple, dans une table "PRODUCTS" qui reprend les articles, un client souhaite ajouter un champ "couleur de fond")
- Donner la possibilité aux utilisateurs de modifier eux-mêmes certains contextes d'écrans (exemple les colonnes affichées dans les listes, voire afficher/cacher un champ dans un écran ou, mieux, la possibilité d'afficher un champ de la DB créé spécifiquement pour le client)
- Donner la possibilité d'introduire (dans un module de configuration, par exemple) des requêtes SQL permettant d'effectuer des traitements supplémentaires que les traitements "standards" (par exemple : à l'enregistrement d'une facture le client souhaite que le timestamp soit injecter dans un champ "remarque")
Ces différents exemples sont essentiellement (sauf pour la partie "contexte d'écrans") basés sur du SQL, et permettrait d'avoir une couche "client" totalement indépendante du coeur du logiciel. (On peut éventuellement inclure ces fonctions dans des DLL qui seraient chargées au démarrage du logiciel et garder cela "interne" sans que ça ne soit éditable directement par le client; le but étant simplement d'avoir une couche client personnalisable)
...
Je sais que ce genre de possibilités de personnalisations existent sur certains ERPs et c'est selon moi un outil non négligeable permettant d'augmenter sensiblement la flexibilité d'un logiciel sans avoir à devoir systématiquement passer par des modifications dans le code, des recompilations, etc... (et ce qui obligerait également à maintenir des versions différentes du logiciel chez les majorité des clients)
Toutes les remarques ou idées sont les bienvenues
Partager