100% ont trouvé ce document utile (1 vote)
166 vues35 pages

Rapport d'alternance Staff&Go

Transféré par

alt.zp-1oai8bm5
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
166 vues35 pages

Rapport d'alternance Staff&Go

Transféré par

alt.zp-1oai8bm5
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

16/20

Développement de
l’application Staff&Go

Rapport d’alternance

Valentin MOUGENOT
Alternance au sein de l’entreprise
DIGIDIZ
Du 3 juillet 2023 au 30 août 2024

Maitre de stage : Florian


KNOBLAUCH même ligne que le prénom

Enseignant tuteur : Karine


DESCHINKEL
Surligné en jaune : problème formel ou d'expression

Bon travail en général, mais il aurait fallu tenir compte des nouveautés du cours
concernant les intitulés de deux de vos parties : expression du besoin client et analyse de
l'apprentissage !
Remerciements
Je tiens à exprimer ma profonde gratitude envers toutes les personnes qui
ont joué un rôle essentiel dans le déroulement de mon alternance et qui m'ont
apporté un soutien précieux tout au long de cette année.
Tout d'abord, je souhaite remercier M. Fouad SEVIMLI et M. Hakim BARADI,
fondateurs de la société Digidiz, pour m'avoir accueilli au sein de leur entreprise. Je
remercie tout particulièrement M. Hakim BARADI, également directeur informatique.
Sa confiance et son encadrement attentif m'ont permis de mieux comprendre les
enjeux du domaine des ressources humaines. Ses conseils avisés et son expertise
ont été d'une grande valeur, me guidant dans mes missions et m'aidant à progresser
professionnellement.
Je tiens également à exprimer ma reconnaissance envers M. Florian
KNOBLAUCH, mon maître d'apprentissage et développeur full-stack, ainsi qu'envers
M. Vincent WILMET, développeur full-stack, mes collègues au sein de l'entreprise.
Leur expertise technique et leur générosité dans le partage de connaissances ont été
inestimables tout au long de mon alternance. Ils m'ont prodigué des conseils
précieux, guidé dans mes tâches, et répondu patiemment à toutes mes questions.
Leur soutien constant et leurs encouragements ont joué un rôle déterminant dans
mon apprentissage et ma progression professionnelle au sein de l'équipe.
Je souhaite aussi remercier chaleureusement Mme Karine DESCHINKEL,
ma professeure responsable de mon alternance à l'IUT. Sa bienveillance et ses
conseils avisés ont été d'une grande importance tout au long de cette année. Son
accompagnement pédagogique m'a permis de mettre en pratique les connaissances
acquises au cours de ma formation, renforçant ainsi ma compréhension du monde
professionnel.
Enfin, je tiens à adresser mes sincères remerciements à l'ensemble de mes
collègues chez Digidiz. Leur esprit d'équipe, leur partage de connaissances, et
l'ambiance conviviale qu'ils ont su créer ont grandement contribué à mon intégration
et à mon épanouissement au sein de l'entreprise. Leurs échanges et leur soutien ont
été une source d'inspiration continue tout au long de mon alternance.

3
Ces personnes ont joué un rôle clé dans la réussite de mon alternance, et je
leur suis profondément reconnaissant pour leur accompagnement bienveillant, leurs
conseils précieux, et la confiance qu'ils ont placée en moi.

4
Sommaire
Remerciements.................................................................................................................................3

Introduction......................................................................................................................................6

1 Présentation de l’entreprise.........................................................................................................7
1.1 Secteur d’activité.....................................................................................................................7
1.2 Histoire de l’entreprise.............................................................................................................7
1.3 Composition de l’entreprise.....................................................................................................8

2 Présentation du sujet..................................................................................................................10

3 Déroulement de l’alternance......................................................................................................10
titre incomplet
3.1 Cahier des charges................................................................................................................10
3.1.1 Descriptif fonctionnel.............................................................................................................10
3.1.2 Contraintes techniques..........................................................................................................12
3.1.3 Contraintes temporelles.........................................................................................................13
3.2 Mise en place.........................................................................................................................13
3.2.1 Rappels..................................................................................................................................13
3.2.2 Intégration avec le logiciel Sage100......................................................................................13
3.2.3 Intégration avec le logiciel Openpaye...................................................................................15
3.2.4 Import des natures d’EVP......................................................................................................16
3.2.5 Saisie des absences en heures............................................................................................18
3.2.6 Refactoring du microservice DigiDoc....................................................................................20
Il ne faut pas un bilan en trois sous-parties, mais une analyse de votre apprentissage
4 Bilan..............................................................................................................................................22
(elle peut être en trois parties, mais pas avec ces titres ni cet ordre)
4.1 Bilan pour l’entreprise............................................................................................................22
4.2 Bilan humain..........................................................................................................................22
4.3 Bilan pédagogique.................................................................................................................22

Conclusion......................................................................................................................................24

Table des illustrations....................................................................................................................25

Glossaire.........................................................................................................................................26

Sitographie......................................................................................................................................28
Introduction
La transformation numérique a considérablement modifié les processus de
gestion des ressources humaines au sein des entreprises, offrant de nouvelles
possibilités pour optimiser les tâches administratives complexes. Dans ce contexte,
j'ai eu l'opportunité d'effectuer mon alternance au sein de la société Digidiz, une
entreprise spécialisée dans le développement d’une solution dédiée aux ressources
humaines : Staff&Go. Ce rapport présente une synthèse de mon expérience et des
travaux réalisés durant cette période.
L'entreprise pour laquelle j'ai effectué mon alternance se positionne comme
un partenaire clé pour le département des ressources humaines. Son produit est une
solution complète visant à faciliter le processus de recrutement, à gérer efficacement
la distribution des bulletins de paie et à centraliser la gestion des congés et
absences. Cette solution vise à automatiser les tâches fastidieuses et chronophages
liées à la gestion administrative des salariés.
Sur le plan informatique, mon alternance s'est principalement concentrée sur
le développement full-stack de l'application Staff&Go. Cela inclut la correction de
bugs, l'implémentation de nouvelles fonctionnalités, l'écriture de tests automatisés,
ainsi que le refactoring*1 de code.
L'entreprise m'a confié ce projet d'alternance car les deux développeurs
seniors ne pouvaient plus assumer seuls la charge de travail, nécessitant ainsi un
renfort. En améliorant l'application, l'objectif était d'attirer de nouveaux utilisateurs
tout en fidélisant ceux déjà présents.
J'ai choisi de réaliser mon alternance au sein de cette entreprise en raison
de ma vision de l'informatique. Je pense que c’est un outil d'automatisation des
tâches fastidieuses et répétitives. La perspective de contribuer à l'amélioration d'un
produit destiné à simplifier la gestion des ressources humaines m'a particulièrement
motivé. De plus, l'environnement de travail favorisant l'esprit d'équipe et valorisant la
contribution de chaque membre, y compris les alternants, a renforcé mon choix.
Enfin, j'y ai également effectué mon stage de fin de BUT2, ce qui a fortement
influencé la décision.

1 Les mots suivis d’une astérisque (*) sont définis dans le glossaires page 25.

6
Dans un premier temps, nous allons voir comment se positionne Digidiz dans
son secteur d’activité et son histoire. Ensuite, nous allons dresser le cahier des
charges et les missions que l’entreprise m’a confiés pour cette alternance. Enfin,
nous aborderons les bilans humains, pédagogiques et pour l’entreprise.
Changement de partie = saut de page !

1 Présentation de l’entreprise

1.1 Secteur d’activité


Digidiz est une entreprise positionnée sur le marché des SIRH*. Son produit
phare (Staff&Go) vise à simplifier et faciliter le travail des professionnels des
ressources humaines en réduisant la charge administrative.
La mission de Digidiz est d'alléger les tâches chronophages liées à la gestion
des RH (Ressources Humaines), qui sont souvent submergées par la paperasse.
Staffngo permet de simplifier significativement les processus de recrutement, de
distribuer les bulletins de paie de manière dématérialisée ou par voie postale, ainsi
que de gérer efficacement les congés et absences des salariés. Grâce à ces
fonctionnalités, Digidiz permet aux professionnels RH de se concentrer sur des
tâches à plus forte valeur ajoutée et d'améliorer leur productivité. La plupart des
clients de Digidiz sont des cabinets comptables.
Parmi les principaux concurrents de Digidiz sur le marché des SIRH, on
retrouve MySilae et Lucca. Cependant, l’entreprise a pour ambition de devenir le
leader français de ce marché, en proposant une solution performante, fiable et
répondant aux besoins spécifiques de ses clients en matière de gestion des
ressources humaines.
En s'efforçant de simplifier les processus RH, Digidiz aspire à contribuer à
l'amélioration de l'efficacité des entreprises et à offrir une expérience utilisateur fluide
et intuitive pour les professionnels des ressources humaines.

1.2 Histoire de l’entreprise


Digidiz, fondée le 28 avril 2020, est le fruit de la collaboration entre deux
anciens salariés de General Electric, Fouad SEVIMLI et Hakim BARADI. Au

7
commencement, l'équipe était composée de seulement quatre employés.
Aujourd'hui, elle compte une quarantaine de membres, avec l'objectif d'atteindre 60
salariés d'ici la fin de l'année.
À ses débuts, l'entreprise s'est fixée pour mission de résoudre le problème
du processus de recrutement long et laborieux auquel font face de nombreuses
entreprises. L'objectif était de proposer une solution permettant de recruter une
personne en seulement dix minutes, tout en respectant les normes légales en
vigueur. Les résultats obtenus ont rapidement convaincu les clients, qui ont exprimé
de nouveaux besoins au fil du temps, tels que la distribution des bulletins de paie.
Cette évolution de la solution pour répondre aux attentes des clients
témoigne de la réactivité de Digidiz et de sa volonté d'apporter des fonctionnalités
supplémentaires en fonction des besoins du marché.

1.3 Composition de l’entreprise


En 2023, Digidiz est structuré en deux services clés : le service technique et
le service commercial. Ces deux départements jouent des rôles essentiels dans le
fonctionnement global de l'entreprise.
Le service technique est chargé du développement de nouvelles
fonctionnalités, de la résolution des problèmes techniques, de la réalisation de tests
et du support client. Les membres de cette équipe sont responsables de
l'amélioration continue de la solution, en veillant à ce qu'elle réponde aux besoins
des clients et aux exigences du marché. Ils travaillent en étroite collaboration avec
les autres services pour assurer le bon fonctionnement de la solution et garantir la
satisfaction des utilisateurs.
Quant au service commercial, il a pour mission de conquérir de nouveaux
contrats et de développer les activités commerciales de l'entreprise. Les membres de
cette équipe s'investissent dans des activités de prospection, de négociation et de
vente. Ils exploitent également divers canaux de communication, tels que la
promotion sur LinkedIn, pour accroître la visibilité de l'entreprise et attirer de
nouveaux clients potentiels.
La complémentarité entre le service technique et le service commercial est
essentielle pour assurer la croissance et le succès de Digidiz. Ensemble, ils

8
contribuent à la réalisation des objectifs stratégiques de l'entreprise en offrant une
solution performante et en assurant la satisfaction des clients actuels et futurs.

9
Je ne suis pas certaine de bien compendre les fonctionnalités supplémentaires
de Staff&Go par rapport aux outils existants.

2 Présentation du sujet
Depuis sa création en 2020, le produit Staff&Go n'a cessé d'évoluer,
intégrant de nouveaux modules tels que la gestion des congés et absences, ainsi
que la distribution sécurisée des bulletins de paie pour les salariés. Cependant, cette
croissance rapide a posé des défis à l'équipe de développement. La vélocité des
développeurs a diminué, et la gestion du produit devenait de plus en plus complexe.

C'est pourquoi il a été nécessaire de renforcer l'équipe produit, y compris


l'équipe de développement. C'est dans ce contexte que j'ai rejoint l'équipe. Ayant
déjà effectué un stage en tant que développeur de tests automatisés au sein de
l'entreprise, cela a conforté la décision de m'intégrer à l'équipe de développement,
puisque j'avais déjà une bonne connaissance des méthodes de travail en place.

Les tâches qui m’ont été confiées étaient diverses et variées, allant de la
correction de bugs à l'implémentation de nouvelles fonctionnalités, en passant par la
connexion avec de nouveaux logiciels de paie. Plutôt que de travailler sur un projet
unique, mon temps a été réparti entre plusieurs sujets plus petits contribuant à
améliorer la solution et à la rendre plus attractive.
Autre page puisque autre partie !

3 Déroulement de l’alternance
Titre incomplet : il faut parler de l'expression du besoin client
3.1 Cahier des charges

3.1.1 Descriptif fonctionnel


Cette partie reprend le contenu du descriptif des missions confiées pour mon
poste.

Travail en mode agile (SCRUM) avec l'équipe de développement :

• Collaborer étroitement avec une équipe de développeurs Full Stack/DevOps


pour assurer un développement itératif et incrémental de l'application
Staff&Go.

10
• Participer aux cérémonies agiles, incluant les daily stand-ups, les revues de
sprint, les rétrospectives, et les plannings de sprint.

Conception et définition des fonctionnalités :

• Contribuer activement à la conception de l'application Staff&Go, en intégrant


les besoins des utilisateurs et les objectifs de l'entreprise.

• Participer à la définition des Users Stories, en spécifiant clairement les


fonctionnalités requises et en s'assurant qu'elles répondent aux critères
d'acceptation.

Analyse des besoins et spécifications :

• Participer à l'analyse des données pour identifier les besoins fonctionnels et


techniques de l'application.

• Rédiger les spécifications fonctionnelles et techniques en collaboration avec


les parties prenantes, en s'assurant que les exigences sont claires, complètes
et réalisables.

Développement et programmation :

• Développer des applications et des programmes logiciels, tant pour le back-


end que pour le front-end, afin de répondre aux besoins des clients et aux
spécifications établies.

• Assurer que le code est conforme aux exigences de qualité, de performance,


et de sécurité.

Tests et automatisation :

• Enrichir les suites de tests existantes et automatiser les tests afin de garantir
la fiabilité des nouvelles fonctionnalités.

• Exécuter des tests unitaires, d'intégration et de bout en bout pour valider le


bon fonctionnement des applications développées.

Déploiement et pratiques DevOps :

• Participer au déploiement des applications dans une optique DevOps, en


mettant en œuvre des pipelines CI/CD pour automatiser les processus de
build, test, et déploiement.

11
• Collaborer avec l'équipe DevOps pour optimiser les environnements de
déploiement et assurer une livraison continue et sans interruption.

Mise en œuvre des meilleures pratiques :

• Mettre en œuvre et promouvoir les meilleures pratiques, normes et


procédures de développement logiciel, en s'assurant qu'elles sont respectées
par toute l'équipe.

• Veiller à la conformité avec les processus et procédures documentés tout au


long du cycle de vie des produits logiciels.

Documentation :

• Créer et maintenir une documentation détaillée sur les logiciels développés, y


compris les spécifications techniques, les guides d'utilisation, et les manuels
d'implémentation.

• Mettre à jour la documentation existante pour refléter les modifications


apportées aux logiciels et aux processus de développement.

3.1.2 Contraintes techniques


Dans le cadre de cette alternance, j'ai dû m'adapter à la stack technique*
déjà en place au sein de l'équipe de développement. Celle-ci comprenait C# et .NET
pour le backend, ainsi qu'Angular et Node.js pour le frontend. J'ai travaillé
principalement avec les éditeurs de code Visual Studio et Visual Studio Code. Le
backend et la base de données étaient exécutés au moyen de conteneurs Docker*,
facilitant ainsi la gestion des environnements de développement.

Pour le versionnage du code, nous utilisions Git, avec GitLab comme plateforme de
gestion des dépôts et de collaboration. Le suivi des tâches s'effectuait via Jira,
garantissant une organisation efficace du travail. La communication au sein de
l'équipe se faisait essentiellement par Microsoft Teams, permettant une collaboration
fluide et en temps réel.

12
3.1.3 Contraintes temporelles
Étant donné que ce rapport aborde plusieurs sujets distincts avec des
échéances différentes, j'aborderai chaque projet en détail au moment où j'en
discuterai dans le contexte de ce rapport.
Je n'ai pas compris

3.2 Mise en place


Une durée approximative de chaque projet aurait été utile

3.2.1 Rappels Pourquoi ne pas présenter que les principaux?

Comme évoqué à plusieurs reprises dans ce rapport, je vais présenter dans


cette section plusieurs projets qui m'ont été confiés, en détaillant les enjeux et les
résultats de chacun. L'objectif est de fournir un aperçu général des travaux que j'ai
réalisés au cours de cette année. Toutefois, il est impossible de couvrir l'intégralité de
mon travail, étant donné l'ampleur des tâches que j'ai accomplies.

3.2.2 Intégration avec le logiciel Sage100


En septembre 2023, Staff&Go était connecté à un seul logiciel de paie :
Silae. Cette connexion s'effectue via une API publique fournie par Silae. Le client
configure l'API sur Silae en utilisant les identifiants nécessaires, puis saisit ses
informations de connexion sur Staff&Go. Cela nous permet de nous connecter au
compte du client sur l'API de Silae, offrant ainsi diverses fonctionnalités, telles que
l'importation d'établissements, la synchronisation des salariés et de leurs emplois,
ainsi que l'exportation des congés et absences. Ces connexions avec les logiciels de
paie sont très appréciées des clients, car elles permettent de synchroniser
immédiatement les informations de Staff&Go avec le logiciel de paie.

Cependant, Silae était notre seul logiciel de paie connecté. Suite à une
demande client et dans un objectif de diversification, nous avons entrepris de nous
connecter au logiciel de paie Sage100. L'intégration avec Sage100 a présenté des
défis différents de ceux rencontrés avec Silae, car Sage100 ne dispose pas d'une
API préexistante. Sage100 est installé sur une machine de l'entreprise qui l'utilise,

13
avec une base de données SQL Server associée. Étant donné l'absence d'API, nous
avons dû en créer une nous-mêmes.

Pour ce faire, le client nous a fourni un serveur de tests sur lequel étaient
installés Sage100 et sa base de données. Nous avons commencé par analyser la
structure de cette base de données pour identifier les informations nécessaires. Le
logiciel DBeaver s'est avéré extrêmement utile dans cette tâche, car il permet de
visualiser les tables de la base de données et les relations entre elles. Nous n'avons
sélectionné que les données pertinentes pour notre intégration.

Une fois l'analyse terminée, nous avons développé une API en C# avec
ASP.NET. Cette API comprend plusieurs routes qui permettent d'effectuer les
opérations nécessaires à l'intégration dans Staff&Go, telles que l'importation
d'établissements et la synchronisation des salariés et de leurs emplois. Cependant,
cette API diffère de celle de Silae, car nous n'étions pas autorisés à écrire
directement dans la base de données de Sage100. Pour pallier cette limitation, nous
avons utilisé un outil appelé ConnectImport. ConnectImport lit un fichier texte,
conforme à un formalisme très précis, et exporte les données vers Sage100.
L'exportation des données reste semi-automatique, les clients devant exécuter
manuellement ConnectImport.

Le projet s'est déroulé en deux phases : la première, consacrée à


l'importation des établissements et à la synchronisation des salariés et de leurs
emplois, devait être achevée pour janvier 2024. La deuxième phase, axée sur la
synchronisation des congés et absences ainsi que l'exportation des notes de frais,
avait une échéance fixée à avril 2024. Ces délais ont été respectés.

14
Figure 1: Vue de la configuration de l'intégration pour Sage100

3.2.3 Intégration avec le logiciel Openpaye


De manière similaire à l'intégration réalisée avec Sage100, nous avons
également intégré Staff&Go avec le logiciel de paie Openpaye. Cependant,
contrairement à Sage100, les éditeurs d'Openpaye nous ont fourni une API, ce qui a
grandement simplifié la tâche.

15
Néanmoins, en tant que beta-testeurs pour cette API, nous avons rencontré
plusieurs bugs que nous devions signaler aux éditeurs pour qu'ils puissent les
corriger. Les fonctionnalités de l'API ont été déployées progressivement, ce qui nous
a obligés à nous adapter en permanence. Les nouvelles fonctionnalités étaient
souvent basées sur nos retours, car nous cherchions à maximiser les capacités de
l'intégration.

Pour utiliser l'API, l'équipe d'Openpaye a publié une documentation détaillée


sur laquelle nous nous sommes appuyés pour effectuer nos requêtes. Ils nous ont
également fourni un accès à leur logiciel pour que nous puissions réaliser nos tests.
Cela était essentiel pour minimiser les bugs et vérifier que notre code fonctionnait
correctement.

Grâce à Openpaye, il est possible d’importer des établissements,


synchroniser les salariés et leurs emplois, exporter les congés et absences, exporter
les variables de paie et importer les bulletins de paie des salariés.

Ce projet n'avait pas d'échéance stricte, car il dépendait du rythme de


développement et de correction de l'API par Openpaye. L'objectif était de déployer
les nouvelles fonctionnalités aussi rapidement que possible dès qu'une nouvelle
version de leur API était disponible.

3.2.4 Import des natures d’EVP


Ce projet avait pour objectif d'importer les natures d'EVP** depuis Silae, le
seul logiciel de paie offrant cette possibilité. Dans Staff&Go, les natures d'EVP
possèdent plusieurs propriétés (cf. Figure 2). Ces propriétés, saisies dans Silae, sont
recopiées à l'identique dans Staff&Go. L'objectif de ce projet était donc d'éviter la
ressaisie manuelle et de faire gagner du temps aux utilisateurs.

16
Figure 2: Propriétés d'une nature d'EVP

La première étape a consisté en une analyse de faisabilité pour vérifier que


l'API de Silae permettait cette opération. Après plusieurs recherches, nous avons
confirmé que cela était possible.

Nous avons ensuite développé un tableau affichant les natures d'EVP


récupérées de Silae, avec des cases à cocher permettant à l'utilisateur de
sélectionner les natures qu'il souhaite importer dans Staff&Go. Une particularité de
ce tableau est que si une nature existe déjà dans Staff&Go (ce qui signifie qu'elle a
déjà été importée ou saisie manuellement), la ligne correspondante est grisée,
rendant l'import impossible. Un lien est également ajouté pour rediriger l'utilisateur
vers la nature existante (cf. Figure 3).

17
Figure 3: Vue pour l'import des natures d'EVP

Par la suite, il a été décidé que Staff&Go pourrait proposer des natures
d'EVP en complément de celles provenant de Silae. Ces propositions sont stockées
directement en base de données, ce qui présente l'avantage d’éviter un
redéploiement du code pour ajouter ou supprimer une proposition.

Ce projet devait être finalisé pour mars 2024 et a été achevé dans les délais.

3.2.5 Saisie des absences en heures


Auparavant, sur Staff&Go, les absences ne pouvaient être saisies que sous
forme de journées ou de demi-journées. Cependant, avec l'arrivée du module GTA*,
il est devenu crucial de permettre la saisie des absences en heures et minutes. Tel
était l'objectif de ce projet. Bien que cela puisse sembler simple au premier abord, en
réalité, la mise en œuvre s'est avérée plus complexe en raison des nombreux
impacts associés.

La première étape a consisté à ajouter des options de paramétrage pour les


types d'absences afin d'autoriser la saisie en heures (cf. Figure 4). Plusieurs
nouveaux paramètres ont été introduits, dont l'un qui oblige la saisie des absences

18
en heures pour certains types, rendant impossible l'utilisation de journées ou de
demi-journées. Un autre paramètre permet de définir un seuil minimum, empêchant
les utilisateurs de saisir une absence inférieure à cette durée. Ces paramètres
peuvent également interagir avec d'autres configurations, en les verrouillant si
nécessaire.

Figure 4: Paramétrage pour la saisie en heure

Ensuite, il était essentiel de permettre aux utilisateurs de saisir une absence


en heures, tout en respectant les paramétrages définis pour chaque type d'absence
(cf. Figure 5). Pour cela, il a également été nécessaire de modifier la structure de la
table qui stocke les absences, afin d'y inclure la possibilité de stocker la durée en
heures.

19
Figure 5: Vue permettant la saisie d'une absence en heure

Enfin, la synchronisation des absences avec le logiciel de paie a dû être


ajustée pour éviter d'éventuels problèmes lors du transfert des données. Après une
analyse approfondie, nous avons effectué les changements nécessaires, qui se sont
révélés relativement mineurs, tout en garantissant le bon fonctionnement de la
synchronisation.
L’échéance de ce projet était pour juin 2024 et a été respectée.

3.2.6 Refactoring du microservice DigiDoc


DigiDoc est un microservice de la solution qui gère la GED*. C’est un
microservice relativement petit, mais essentiel. Le but de ce projet est de refondre
entièrement l'architecture de DigiDoc afin de faciliter les tests automatisés, tout en
améliorant les performances et la maintenabilité. Ce projet est en cours et n'a pas de
date d'échéance fixe.

L'ancienne architecture rendait la structure difficilement maintenable et peu


propice aux tests. Avec l'aide d'un consultant, nous avons décidé de migrer vers une
architecture en oignon (cf. Figure 6). Cette architecture présente l'avantage de
diviser le code en plusieurs couches, chacune ayant un rôle spécifique. Par exemple,

20
la couche "domaine" regroupe tous les objets métiers, tandis que la couche
"application" gère la logique métier. La couche "infrastructure" s'occupe de la
communication avec les bibliothèques et services externes, comme la base de
données, permettant ainsi d'abstraire la source de données de la couche applicative.
Cette structure est appliquée à la partie backend de l'application.

Figure 6: Schéma de l'achitecture en oignon

Pour la partie frontend, l'architecture n'a pas été modifiée en tant que telle,
mais la manière de coder a évolué. Nous nous efforçons désormais d'utiliser les
nouvelles fonctionnalités d'Angular, telles que les signaux. Les signaux permettent de
rafraîchir uniquement la partie de la vue concernée par une modification, alors
qu'auparavant, c'est la vue entière qui était réactualisée, ce qui était beaucoup moins
performant.
De manière générale, l'objectif de ce refactoring est d'améliorer le code sous
tous ses aspects, en adoptant les paradigmes* les plus récents que l'équipe de
développement a établis. En ajoutant des tests, nous minimisons également le risque
de régressions. Ce projet sert aussi d'exemple pour tous les nouveaux
développements à venir.

21
4 Bilan Titre mal choisi : "Analyse" conviendrait mieux

Bilan concernant le travail


4.1 Bilan pour l’entreprise
Le travail que j'ai accompli au cours de mon alternance a été très apprécié
par l'entreprise. Le code que j'ai écrit est fréquemment utilisé par les clients, ce qui
témoigne de sa qualité et de son utilité. J'ai beaucoup progressé cette année et je
à mettre en 4.3 : cela ne concerne pas l'entreprise !
suis désormais capable de réaliser presque toutes les tâches qui me sont confiées.
Grâce à l'autonomie que j'ai acquise, l'entreprise n'hésite pas à me confier des
tâches de grande importance, apportant une réelle valeur ajoutée. De plus,
l'entreprise a décidé de prolonger mon alternance pour mes deux prochaines années
de master, ce qui reflète la confiance qu'elle me témoigne.

Plutôt à mettre à la fin de cette partie


4.2 Bilan humain
Étant donné que j'avais déjà effectué mon stage de fin de BUT2 au sein de
cette entreprise, je connaissais déjà bien chacun des membres de l'équipe. J'ai pu
assister à l'arrivée de nouvelles personnes, ce qui a permis de renforcer l'équipe et
de faire évoluer le produit. En un an, la taille de l'entreprise a plus que doublé, et je
fais désormais partie des collaborateurs les plus anciens.

Bien que la moitié de l'équipe travaille à distance, ce qui pourrait


potentiellement rendre les relations un peu plus froides en raison du manque
d'interactions en personne, cela n'a pas été le cas. Tous les membres de l'équipe,
qu'ils soient en présentiel ou en distanciel, sont très sympathiques, ce qui facilite
grandement la collaboration.

4.3 Bilan pédagogique Bilan de compétences


Mon expérience en entreprise a été très différente de ce que j'ai pu vivre
pendant mon cursus universitaire en BUT, bien qu'il y ait eu quelques similitudes. J'ai
été confronté à un projet d'une envergure bien plus importante que tout ce que
j'avais réalisé auparavant. La manière de travailler était également plus structurée,
avec un product manager qui spécifie les tâches et les projets, des développeurs

22
chargés de traduire ces spécifications en code, et des testeurs responsables de
vérifier que le code respecte les spécifications à la lettre et qu'aucune régression n'a
été introduite.

Bien que les langages de programmation et les frameworks utilisés pendant


mon alternance n'aient pas été spécifiquement étudiés au cours de mon cursus
universitaire, cela n'a pas constitué un obstacle majeur. Je me suis rapidement
adapté, car les syntaxes étaient relativement similaires à ce que j'avais déjà appris.
J'ai également eu l'occasion d'appliquer des design patterns, similaires à ceux que
nous avions étudiés lors du troisième semestre. Je dois avouer que je ne m'attendais
pas à utiliser autant ces patterns dans ma carrière de développeur, mais j'ai réalisé
qu'ils sont indispensables pour gérer efficacement la quantité de code et éviter de
tout réécrire.

Enfin, je suis convaincu que ce que j'ai appris pendant mon cursus en BUT
m'a beaucoup aidé, tant sur le plan technique que méthodologique, en particulier
grâce à l'utilisation des méthodes agiles.

Expliquez comment vous estimez votre progression.

23
Conclusion
Les objectifs de mon alternance ont été atteints, compte tenu des différents
projets qui ont été réalisés dans les temps.

Les développements que j’ai effectué ont permis d’ajouter de la plus-value à


la solution. Staff&Go se place désormais parmi les meilleurs SIRH et les retours
clients sont toujours très positifs. Cependant il faudra encore ajouter de nouvelles
fonctionnalités si l’on veut rattraper les géants du secteur comme Lucca, qui est là
depuis plus de 20 ans.

Le refactoring et les tests, bien qu'invisibles pour les clients finaux, ont
permis de renforcer la solidité de la solution et de servir d'exemple pour les
développements futurs. Cependant, ce travail de refactoring, d'écriture de tests et de
réduction de la dette technique est un processus continu qui nous accompagnera
probablement tout au long de notre parcours.

Cette alternance au sein de Staff&Go conclut parfaitement mes trois années


de BUT, car elle m'a permis de mettre en pratique les connaissances acquises au
cours de mon cursus universitaire. De plus, elle m'a offert la possibilité d'acquérir de
nouvelles compétences fondamentales pour travailler efficacement en entreprise et
d’en consolider d’autres.

24
Table des illustrations
Figure 1: Vue de la configuration de l'intégration pour Sage100................................15
Figure 2: Propriétés d'une nature d'EVP....................................................................17
Figure 3: Vue pour l'import des natures d'EVP..........................................................18
Figure 4: Paramétrage pour la saisie en heure..........................................................19
Figure 5: Vue permettant la saisie d'une absence en heure......................................20
Figure 6: Schéma de l'achitecture en oignon.............................................................21

25
À mettre au début

Glossaire
Glossaire
• Conteneurs Docker : Environnements isolés qui encapsulent une application
et toutes ses dépendances, permettant de l'exécuter de manière cohérente
sur différents systèmes sans se soucier des configurations spécifiques de
l'environnement hôte.

• EVP (Éléments Variables de Paie) : Données spécifiques qui varient chaque


mois et influencent le calcul de la paie, comme les heures supplémentaires,
les primes, et les absences.

• GED (Gestion Électronique des Documents) : Système permettant de


numériser, stocker, organiser, gérer et partager des documents électroniques
au sein d'une organisation, facilitant ainsi l'accès, la recherche et la
sécurisation des informations.

• GTA (Gestion des Temps et des Activités) : Système permettant de suivre,


gérer et analyser le temps de travail, les absences, et les activités des
employés au sein d'une organisation.

• Nature d'EVP : Catégorie ou type spécifique d'élément variable de paie,


définissant sa nature, comme une prime, une indemnité, ou une retenue, pour
le calcul de la paie.

• Paradigme : Modèle ou cadre conceptuel qui guide la manière de penser et


d'aborder un problème, en particulier dans les domaines scientifiques,
technologiques, ou philosophiques. Dans le contexte de la programmation, il
fait référence aux styles ou approches de développement, comme la
programmation orientée objet ou fonctionnelle.

• Refactoring : Processus de restructuration du code existant pour en


améliorer la lisibilité, la maintenabilité et la performance, sans en modifier le
comportement fonctionnel.

• SIRH (Système d'Information des Ressources Humaines) : Plateforme


logicielle qui centralise et gère les processus RH d'une organisation, tels que
la paie, les congés, le recrutement, et la formation, en automatisant les tâches
administratives.

26
• Stack technique : Ensemble des technologies, langages de programmation,
frameworks, outils, et services utilisés pour concevoir, développer, et déployer
une application ou un système logiciel.

27
Sitographie
• Staff&Go : https://staffngo.com/

• Documentation C#, Microsoft : https://learn.microsoft.com/fr-fr/dotnet/csharp/

• Documentation Angular, Google : https://v17.angular.io/docs

• « Quand faut-il refactorer son code ? », Bocasay :


https://www.bocasay.com/fr/quand-faut-il-refactorer-son-code/

• Refactoring Guru : https://refactoring.guru/fr

28

Vous aimerez peut-être aussi