Rapport d'alternance Staff&Go
Rapport d'alternance Staff&Go
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
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
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
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é.
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.
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
10
• Participer aux cérémonies agiles, incluant les daily stand-ups, les revues de
sprint, les rétrospectives, et les plannings de sprint.
Développement et programmation :
Tests et automatisation :
• Enrichir les suites de tests existantes et automatiser les tests afin de garantir
la fiabilité des nouvelles fonctionnalités.
11
• Collaborer avec l'équipe DevOps pour optimiser les environnements de
déploiement et assurer une livraison continue et sans interruption.
Documentation :
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
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.
14
Figure 1: Vue de la configuration de l'intégration pour Sage100
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.
16
Figure 2: Propriétés d'une nature d'EVP
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.
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.
19
Figure 5: Vue permettant la saisie d'une absence en heure
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.
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
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.
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.
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.
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.
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.
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/
28