Projet Roccess


Introduction

L'accroissement des outils informatiques de gestions en entreprises s'accélère de plus en plus dans les structures de toute taille. Ces derniers permettent de capitaliser et centraliser numériquement les informations appartenant aux entreprises. C'est notamment le cas de la société UPSA qui tend à développer l'industrie 4.0 aux services des collaborateurs dans le cadre du suivi des équipements réglementaires. Le but est de pouvoir suivre l'état de ces derniers et d'en signaler des anomalies s'il en existe.

Contexte

Lors de cette réalisation j'ai eu la chance de piloter et développer l'ensemble du projet.

Ma mission était de comprendre le besoin d'après l'existant et auprès des utilisateurs, d'apporter ma vision d'expert sur les différentes fonctionnalités utiles et de développer le nouvel outil.

Mes objectifs ont été les suivants :

Gestion de projet

Développement

L'enjeu de ce projet était avant tout de pouvoir proposer une expérience fluide, interactive et sans plantage car l'outil se destinait à des utilisateurs habitués au terrain mais peu à l'aise avec l'informatique.

Le principal risque durant le développement a été la question de la migration des données de l'ancien système. A savoir, il était primordial d'intégrer ces informations dans le nouvel écosystème que je développais. Je devais alors concevoir un système capable d'accueillir facilement ces données.

Les étapes

Gestion de projet

Description du besoin

La première étape a été de comprendre le besoin principal des utilisateurs. Les sociétés pharmaceutiques sont tenues de réaliser des contrôles réguliers sur leurs équipements. Ces contrôles sont réalisés par des entreprises extérieures mandatées pour faire des rapports réguliers sur les équipements réglementaires. Ces rapports sont ensuite récupérés et injectés dans ROCCESS (nom de l'outil informatique). Enfin, les utilisateurs s'y connectent et voient les équipements qui ont besoin d'une maintenance selon un ordre de criticité et tiennent à jour alors le statut de traitement des anomalies.

Recherche de l'existent

Cette étape m'a permis de trouver un outil déjà développé en interne avec Access et partagé en local sur un même réseau. L'outil comportait plusieurs problèmes, notamment la technologie commençait à être désuète. De plus, elle engendrait des corruptions de données lorsque plusieurs utilisateurs se connectaient et les données pouvaient être modifiées par n'importe qui ayant accès au répertoire.

Communication

La communication reste primordiale durant toutes les étapes du projet. Des points étaient régulièrement faits afin d'échanger sur l'outil et son avancement et de rectifier certaines fonctionnalités lorsque cela s'avérait nécessaire ». La communication passe aussi par l'accompagnement des utilisateurs. Des sessions « training » étaient organisées pour que je présente et accompagne les utilisateurs à se servir du nouvel outil une fois celui-ci déployé.

Intégration continue

Une fois le projet terminé, il est primordial de continuer à faire vivre l'outil de par son utilisation mais aussi de son amélioration, ce qui nécessite de recueillir continuellement les nouveaux besoins des utilisateurs et créer une timeline de versions priorisant la liste des nouveaux besoins. Ceci a été mon cas, les nouvelles fonctionnalités étaient recueillies puis ajoutées sous forme d'issue (tâches) sur le Git du projet. Enfin, ces issues sont tenues à jour par un statut (ouvert/fermé) et une date terminée.

Développement

Développement API

Durant le projet je me suis notamment occupé de toute la partie back office, c'est-à-dire développer un API (Application Programming Interface) permettant de faire la liaison entre les données et l'application web. L'API permet de mettre à disposition des services sous forme d'URL et de gérer les droits d'accès selon le rôle que possède un utilisateur. Par exemple tel type de données peut être lu par la totalité des utilisateurs mais ne pourra être modifié que par une minorité. L'application a été développée avec AdonisJS (voir la compétence associé).

Conception de l'interface

La conception de l'interface est un point clé dans la réalisation d'une bonne application. A mes yeux et ceux des utilisateurs, il était primordial de reprendre les anciennes interfaces pour minimiser au maximum le réapprentissage de l'utilisation de l'outil tout y en ajoutant de la modernité dans sa navigation, utilisation etc. L'idée étant d'implémenter les règles UI / UX (par exemple pour un modal de suppression, avec un bouton Oui à gauche plutôt qu'à droite pour susciter l'interrogation à l'utilisateur « je veux vraiment faire ça ? »).

Migration des données

Pour pouvoir migrer les données, j'ai développé une fonctionnalité permettant d'importer un formulaire Excel préformaté prenant en compte les dates, chaines de caractères, nombre etc. J'ai pu à partir de ce formulaire, répliquer les données et importer l'intégralité des données de l'ancienne base. J'ai opté pour cette solution car entre l'ancien outil et le nouveau, la base de données a grandement évolué rendant impossible la copie des données. De plus, ce même formulaire est utilisé pour l'importation des rapports fait par les sociétés extérieures. Ces rapports sont aussi au format Excel, téléchargeables sur leurs sites respectifs. Ensuite les informations sont répercutées sur le formulaire téléchargeable sur l'outil et enfin importées dans ce dernier. Ce formulaire peut importer plusieurs centaines de lignes sans problème, une gestion d'erreur est en place permettant de vérifier si les données dans le formulaire sont cohérentes avant l'importation. Si une erreur de formatage survient, un message signalant la ligne et l'erreur sera indiquée à l'utilisateur.

Débogage et Optimisation

Cette partie est essentielle, le but est de faire passer une batterie de tests à l'outil afin de minimiser au maximum les erreurs qui pourraient susciter un plantage. Ensuite je propose toujours à un groupe réduit d'utilisateurs de tester l'application, cela permet une mise à l'épreuve de l'outil en temps réel et de mettre en évidence des actions qui engendrent des erreurs.

Résultats

Pour ma part, ce projet a été l'occasion d'améliorer ma compréhension de la demande client et de son besoin. Les technologies utilisées dans ce projet m'ont permis d'améliorer mes compétences d'architecture logicielle et parallèlement de développer des compétences Fullstack.

L'entreprise a exprimé sa satisfaction dans le fait d'avoir à sa disposition un outil performant, facile d'utilisation et permettant un gain de temps important. Cet avis favorable a permis l'émergence de nouvelles idées concernant l'ajout de fonctionnalités et ainsi donner corps à de futures versions dans le GIT du projet.

Mon regard critique : Durant ce projet, j'étais constamment dans la compréhension du besoin des utilisateurs. Je pense que la plus-value a été de pouvoir proposer des alternatives pour améliorer l'existant et d'être à l'écoute des nouveaux besoins ou changements qui s'opéraient au cours des réunions. Je voyais des collaborateurs heureux d'être écoutés et le projet s'est réalisé dans une bonne ambiance.


Compétences associées à ce projet