Client
Elinext est une entreprise de développement de logiciels sur mesure, et ce projet est l'un de nos projets internes. Comme beaucoup d'autres solutions que nous développons pour notre écosystème, celle-ci vise à simplifier la vie quotidienne des employés.
Le cœur du logiciel peut et sera probablement utilisé pour accélérer le développement d'un produit personnalisé connexe pour nos clients.
Les nouveaux clients d'Elinext économisent une partie significative de leurs ressources en choisissant d'opter pour une version personnalisée d'un produit qui existe déjà.
Description du Projet
L'application Elinext Data Visualization est un outil pratique pour acquérir les données nécessaires de différentes sources externes et les manipuler.
Les applications web pour l'accumulation et la manipulation de données provenant de systèmes tiers consistent essentiellement à présenter les données dans les formats nécessaires. Voici les fonctionnalités qui ont été à réaliser :
- création de tableaux qui accumulent les données en un seul endroit
- gestion de l'affichage et de l'ordre des champs existants
- configuration de filtres étendus et de paramètres de tri
- application d'agrégations dans les données filtrées
- création de diagrammes de Gantt pour une meilleure visualisation des données
- création et gestion de tableaux de bord pour une perception facile des données
- différents affichages de données (tableaux pour le moment, dans les versions à venir)
- création de nouvelles Sources de Données pour recevoir de nouveaux champs
- attribution de noms lisibles pour les champs reçus
- gestion des tickets problématiques et de leur cycle de vie
Nous avons obtenu une source unique de données accumulées pour des rapports rapides alors que le projet était en cours de réalisation.
Défis
La raison du démarrage du projet était la nécessité de faciliter la gestion des ressources et de créer une source unique de données accumulées pour des rapports rapides, ce qui est censé faire gagner du temps sur la recherche des parties d'information à différents endroits.
Concernant les processus, le principal défi était de maintenir un processus d'implémentation continu dans les conditions de rotation d'équipe. C'est un problème courant avec les projets internes, car les projets dits "commerciaux" tendent à être prioritaires.
Le maintien du transfert de connaissances pendant la rotation d'équipe a été réalisé avec les mesures suivantes :
- Page Confluence avec des informations techniques cruciales pour les nouveaux développeurs.
- Commentaires expliquant les solutions pour les tâches techniques complexes.
- Tickets interliés pour une investigation plus facile des problèmes.
- Réunions de transfert de connaissances développeur-à-développeur lors des changements de membres d'équipe.
- Revue de code par les pairs (quand possible).
Complexité de la Gestion des Accès Inter-Systèmes :
- Défis d'intégration dus aux différents schémas d'accès à travers divers systèmes.
- Difficulté supplémentaire causée par les champs complexes et les applets inter-entités.
Implémentation de la Fonctionnalité d'Agrégation dans une Base de Données Non-Relationnelle :
- Difficulté à implémenter les fonctionnalités d'agrégation sur MongoDB (base de données non-relationnelle).
- Les défis sont surmontés grâce à une recherche et un développement approfondis.
Refactoring et Réécriture en Raison de l'Évolution des Exigences :
- Les conceptions initiales de composants simples sont devenues insuffisantes pour l'expansion des fonctionnalités.
- Nécessité de refactoriser et réécrire les composants pour gérer les champs complexes (y compris les objets imbriqués) et les configurations de filtrage avancées.
Processus
Concernant les processus, la méthodologie de type Kanban a été utilisée sur le projet, car elle convient le mieux à la situation avec des projets illimités dans le temps avec une rotation d'équipe.
Du point de vue technique, de nombreuses parties de la fonctionnalité étaient nouvelles pour l'équipe et nécessitaient une investigation approfondie (agrégation sur la base de données non-relationnelle, filtrage sur les champs complexes, gestion des accès inter-systèmes, problèmes d'applets inter-entités, et autres).
Le processus de développement était très flexible pour répondre aux exigences, qui changent souvent en raison des nombreuses dépendances et limitations.
Il y a eu plusieurs versions du produit, l'une d'entre elles est en cours de réalisation, et la quatrième est à venir.
Version 1
Le projet a été initié en janvier 2021. L'équipe a fait face à des défis avec la réalisation du schéma des permissions. La première version a eu lieu en mars 2023 car il y a eu de nombreuses rotations de membres d'équipe.
La version publiée incluait la fonctionnalité de base des applets de tableau, le filtrage simple et le tri. Le système de gestion des accès et l'intégration avec une Source de Données étaient également prêts.
Version 1.1
Publiée en juillet 2023.
La version intermédiaire incluait la correction de bugs et quelques améliorations de la fonctionnalité de filtrage, des améliorations de la représentation des grandes valeurs.
Version 2
Publiée en novembre 2023.
La version incluait de nouvelles fonctionnalités d'agrégation, une complexification suffisante du composant de filtrage pour travailler avec des champs complexes et des champs avec des tableaux, des améliorations de la fonctionnalité des alias, des améliorations UI/UX, l'ajout de filtres rapides, la fonctionnalité de téléchargement CV, et la fonctionnalité de filtrage et de tri sur les champs cachés.
Après la sortie de cette version, l'application pouvait fournir une réelle possibilité de travail de gestion et d'analyse. La gestion des accès a également été considérablement améliorée.
Version 2.1
Publiée en janvier 2024.
La version intermédiaire incluait la correction de bugs et quelques fonctionnalités supplémentaires : nouvelles améliorations UI/UX, un tableau de bord par défaut, des filtres de colonnes, et la navigation vers le profil de l'employé dans le système Talents directement depuis l'applet.
Version 3
Sera publiée prochainement.
Une nouvelle fonctionnalité de type d'applet (Séries Temporelles) devrait être ajoutée au système, ainsi que d'autres améliorations de code, améliorations UI/UX, changement de l'ordre des enregistrements dans la liste des tableaux de bord, filtres de colonnes personnalisés, et descriptions d'applets configurant une nouvelle Source de Données (un autre produit logiciel interne : Gestionnaire de Vacances).
En plus de cela, une grande quantité de travail backend doit être effectuée pour automatiser certains processus qui étaient auparavant effectués manuellement.
Après cela, une autre version de l'application est prévue.
La coordination du projet, les processus, la charge de l'équipe et la distribution des tickets sont conduits par l'analyste métier.
Solution
Il y a deux modules principaux : le module utilisateur et le module administrateur.
Module Utilisateur
La partie du système qui est disponible aux employés Elinext. La fonctionnalité principale est les tableaux de bord. Tout tableau de bord peut être complété avec des applets, qui ont été créés et publiés par l'Administrateur du système. L'utilisateur peut configurer sa représentation du tableau de bord et les paramètres de chaque applet selon ses besoins.
Page d'accueil
Ici, chaque utilisateur peut choisir le tableau de bord le plus important à afficher par défaut.
Mes Tableaux de Bord
La liste des tableaux de bord utilisateur et système. Jusqu'à 5 tableaux de bord peuvent être choisis comme favoris – ils seront affichés comme liens séparés dans le menu latéral. La liste peut être triée, et l'ordre des enregistrements peut être modifié selon les besoins de l'utilisateur. Un nouveau tableau de bord peut être créé pour un utilisateur particulier.
Page de Tableau de Bord
Chaque tableau de bord utilisateur peut être configuré selon les objectifs de l'utilisateur : changer la disposition, ajouter, supprimer et déplacer les applets (rapports séparés avec un certain ensemble de données dans chacun) sur le tableau. Chaque applet utilisateur peut être configuré indépendamment. Les tableaux de bord sont communément disponibles et ne peuvent pas être modifiés par un utilisateur dans le module actuel.
Formulaire de configuration d'Applet
Ce composant (fenêtre modale, disponible sur la page du tableau de bord) offre des moyens flexibles pour la gestion des données.
Module Administrateur
L'Admin prépare les applets et les publie pour l'utilisation commune. La fonctionnalité du module n'est pas limitée à cela. Ce module inclut les tâches de support, la création de tableaux de bord système, la gestion des problèmes et les informations d'intégration.
Voici la liste des fonctionnalités accessibles par les administrateurs :
- Liste des sources de données
- Page de détails des sources de données
- Alias des champs
- Liste des applets
- Page de détails des applets
- Type d'applets
- Tableaux de bord système
- Tickets
- Page de détails des tickets
- Arbre d'accès
Le projet est toujours en cours et certaines fonctionnalités, ainsi que les améliorations de l'expérience utilisateur, l'amélioration du code sont en cours d'implémentation. Par exemple, il est prévu d'ajouter une possibilité de présenter les résultats d'agrégation sous forme de graphiques circulaires ou en barres.
Résultats
Le produit final est un excellent outil pour simplifier le travail des gestionnaires de ressources et leur communication avec leurs employés. C'est un projet interne en cours sans date de fin définie.
Du point de vue de la croissance professionnelle du développeur, chaque membre de l'équipe a pu améliorer son expertise dans différentes technologies, les variantes de gestion d'accès, l'approfondissement de la fonctionnalité de filtrage et d'agrégation, le travail avec les graphiques et le travail avec une base de données non-relationnelle.
Quant à la solution, c'est un système logiciel viable qui est déjà utilisé dans notre entreprise mais qui est constamment amélioré lorsque nous avons des capacités de travail. Les versions 3 et 4 du système sont planifiées. D'autres idées et exigences peuvent survenir et seront implémentées.