Dans le cadre des études en informatique, le travail de Bachelor est une étape cruciale qui permet aux étudiants de démontrer leurs compétences techniques, leur créativité et leur capacité à résoudre des problèmes complexes. Aujourd’hui, nous vous présentons notre développeur récemment diplômé, qui a choisi de se concentrer sur un projet de développement logiciel pour son travail de Bachelor. Dans cette interview, il partage son parcours, les défis rencontrés et les leçons apprises tout au long de cette expérience formatrice.
Présentation, parcours professionnel
Je m’appelle Malo. J’ai 24 ans. En 2019, j’ai obtenu mon CFC d’informaticien, puis j’ai effectué un stage de 3 mois chez CFI la même année. À la suite de ce stage et après avoir accompli mon service militaire, j’entame en 2020 un Bachelor en développement logiciel en cours d’emploi sur une durée de 4 ans à la HEIG-VD à Yverdon, tout en travaillant chez CFI au département développement.
Travail de Bachelor
À la fin de mon cursus, j’ai choisi de réaliser mon travail de Bachelor chez CFI SA. Mon projet, intitulé « Optimisation des ressources humaines au sein d’une équipe de développement », avait pour objectif de développer un système capable d’optimiser l’affectation des membres de l’équipe aux différents projets. Ce système devait tenir compte de nombreuses données et contraintes organisationnelles pour garantir une planification efficace.
Qu’est-ce qui vous a motivé à choisir ce sujet pour votre travail de diplôme ?
Pendant mon bachelor, j’ai eu l’occasion de suivre plusieurs cours théoriques en mathématiques, notamment sur la théorie des graphes et la programmation linéaire, qui figuraient parmi mes préférés. Ces cours, donnés par M. Jean-François Hêche, m’ont particulièrement marqué. J’ai donc voulu intégrer ces connaissances à ma formation en informatique et les appliquer concrètement dans le contexte de CFI. Le sujet de mon travail de bachelor a justement permis le mélange de ces deux domaines de compétences, tout en répondant à un besoin réel chez CFI.
Comment avez-vous organisé votre travail pendant le projet ?
En tant qu’étudiant en emploi, j’ai réalisé ce travail de Bachelor entre juin et septembre 2024, tout en continuant à travailler chez CFI. Avec un rythme de trois jours de travail par semaine sur quatorze semaines, j’ai réalisé plusieurs itérations de travail d’environ deux semaines chacune, en m’appuyant sur le cadre de travail Scrum.
Quel besoin spécifique l’application vise-t-elle à résoudre ?
L’application vise à résoudre le problème des affectations manuelles des membres aux projets et de la planification mensuelle, qui reposaient jusqu’alors sur l’expérience accumulée au fil des années chez CFI et sur une approche sans méthode précise.
Cette approche pouvait entraîner des déséquilibres dans la répartition de la charge de travail entre les membres et entre les semaines, créant parfois des périodes de surcharge.
L’objectif de l’application est donc de répartir de manière plus équilibrée la charge de travail entre les membres et au fil des semaines, tout en tenant compte des aspects financiers du département et des projets, ainsi que des contraintes organisationnelles spécifiques à chacun.
Quelles techniques et technologies le système développé utilise-t-il ?
Le système se divise en deux parties principales : le modèle et l’interface.
Le modèle est un solveur d’optimisation linéaire conçu pour intégrer les données d’entrée définies avec CFI. Il a d’abord été théorisé sur papier avant d’être implémenté en C# à l’aide d’OR-Tools, une solution open source développée par Google.
L’interface, quant à elle, a été développée en C# avec ASP.NET Core. Elle permet aux utilisateurs d’interagir avec le modèle de manière intuitive, de saisir les données et les valeurs des contraintes, et de visualiser les planifications générées. Une fois déployée, l’interface est accessible depuis n’importe quel navigateur, ce qui la rend pratique et facilement utilisable par les utilisateurs, assurant ainsi une flexibilité et une ergonomie accrues.
Comment avez-vous géré la mise en production de l’application et quels étaient les résultats attendus ?
L’application a été facilement déployée sur un serveur interne à CFI. Le modèle de résolution est encapsulé dans une API, également développée en ASP.NET Core, avec laquelle l’interface communique directement. Ces deux composants sont indépendants et simples à déployer, offrant une grande flexibilité.
Grâce à la compatibilité multiplateforme d’ASP.NET Core, l’application peut être déployée aussi bien sur un serveur Windows que Linux, ce qui la rend nativement adaptable à de nombreuses infrastructures existantes.
L’application est maintenant en phase d’intégration chez CFI, avec pour objectif d’être utilisée officiellement dès décembre 2024. Les tests réalisés jusqu’à présent ont démontré que l’application répond aux besoins de CFI et sera prête pour une mise en service dans les délais prévus.
Qu’avez-vous appris de ce projet en termes techniques et personnels ?
C’est probablement le plus gros projet informatique que j’ai réalisé seul, et j’en retire énormément de positif. Mon travail s’est déroulé en deux parties distinctes. La première partie a consisté en plusieurs semaines de recherche théorique et d’analyse, au cours desquelles j’ai eu de nombreux échanges enrichissants avec mon professeur, M. Jean-François Hêche. Ces discussions, ainsi que le travail de recherche personnel, ont été très formateurs et m’ont apporté de précieuses connaissances.
La seconde phase, dédiée au développement et à la mise en place de l’application, a été plus technique et parfois moins stimulante sur le plan théorique. Cependant, elle m’a permis de consolider mes compétences en développement logiciel, de faire face à des défis concrets et de comprendre les exigences pratiques de la réalisation d’un projet de bout en bout.
Quelle possibilité d’amélioration envisagez-vous par la suite ?
Il n’y a pas de limite aux améliorations potentielles à apporter au système. Bien qu’il intègre déjà les principales données et contraintes du département, il pourrait être affiné davantage pour offrir une planification encore plus précise et efficace.
L’extension de la période de planification est un point notable parmi les améliorations possibles. Actuellement, les planifications sont limitées à un mois maximum. Étendre l’outil pour qu’il couvre plusieurs mois à l’avance permettrait d’anticiper plus efficacement les périodes de creux et de pics de travail, et donc de mieux gérer les ressources à plus long terme.
En outre, certaines données, bien que jugées moins prioritaires, ne sont pas encore prises en compte. Cela inclut, par exemple, la gestion du télétravail des membres, la prise en compte des différents clients et la mise en place de stratégies spécifiques à chaque client. Les intégrer permettrait de proposer une planification encore plus complète et adaptée aux réalités du département.
Félicitations
Ce travail de Bachelor illustre parfaitement le talent, l’engagement et la persévérance nécessaires pour réussir dans le domaine du développement informatique. En concevant une application innovante et en relevant des défis techniques complexes, notre développeur a fait preuve d’une maîtrise impressionnante de ses compétences et d’une capacité à répondre aux exigences du monde professionnel. Toutes nos félicitations pour ce projet abouti, qui marque une étape décisive dans une carrière prometteuse !