Développement
February 13, 2024

Interview avec Lyes : Retour sur un hackathon!

Suite à sa participation à un Hackathon chez son client, notre ossian Lyes nous partage son retour d'expérience.

Nous suivre

Bonjour Lyes! Merci d’avoir pris le temps de faire cette interview. Récemment tu as participé à un hackathon chez ton client.

Ton équipe a fini dans le top 3, félicitations. 

Peux-tu nous raconter brièvement en quoi consistait le hackathon et quel était l'objectif principal de ton équipe ?

Bonjour Eléonore. Avec plaisir, le hackathon était une compétition qui a duré une journée pendant laquelle participaient plusieurs équipes de développeurs. Le but était de proposer une solution informatique portant sur un sujet choisi par chaque équipe pour fournir de la valeur ajoutée à notre client. Nous avons choisi de mettre au point un prototype d’application de monitoring des dépendances et d'utilisations des APIs.

Quelles étaient les principales fonctionnalités de l’application ? 

L’application qu’on a choisie de développer peut potentiellement proposer un large éventail de fonctionnalités servant à cataloguer et gérer les APIs utilisées et développées chez notre client, parmi ces features on peut citer : 

  • Affichage des applications utilisées au sein de l’entreprise sous forme d’un graphe afin d’identifier les dépendances, les intéractions et les flux d’informations échangées entre celles-ci   
  • Identifier la fréquence d’utilisation des APIs afin d’allouer les ressources matérielles nécessaires à leur bon fonctionnement et décommissionner celles qui ne sont plus utilisées
  • Permettre aux développeurs/mainteneurs des applications de prévenir automatiquement les équipes qui dépendent de leurs services en cas de changement de leurs contrats d’API (breaking changes) et éviter ainsi des bugs pendant leur exploitation qui peuvent êtres difficiles à débusquer et provoquer des pertes financières pour l’entreprise.

Quelles étaient les principales étapes de développement de celle-ci ?

Étant donné que nous n’avions que très peu de temps pour mettre au point un prototype fonctionnel, nous avons plus ou moins “rushé” les étapes de développement de l'application.

On a commencé par une séance “whiteboard” durant laquelle on a réfléchi et fait des propositions pour d’une liste de fonctionnalités minimales qu’on pouvait développer en une journée, nous avons ensuite dressé un schéma de l’architecture de l’application et mis au point un wireframe simplifiée pour l’interface graphique du prototype.

On a ensuite partagé les différentes tâches de travail comme la récupération des données nécessaires au fonctionnement du prototype, le développement de l’interface graphique et la réalisation des slides de présentation du projet.

Quelles technos, API ou services avez-vous utilisés dans votre projet, et pourquoi les avez-vous choisis ?

Nous avons utilisé le langage Python pour récupérer les données et les exposer sous forme d’une REST API pouvant être appelée par le client.

On a mis en place une interface graphique en utilisant le langage Typescript et le framework front end Angular.

Nous avons privilégié ces outils/APIs car les membres de notre équipe étaient familiers avec ces derniers, cela nous a évité pas mal de bugs potentiels et nous a fait gagner du temps ce qui est très important dans ce genre de compétition.

Quels ont été les défis techniques auxquels ton équipe a dû faire face pendant le hackathon ? 

Nous avons rencontré quelques difficultés pour récupérer, agréger et filtrer une quantité de données brutes acceptable pour présenter le prototype. Nous avons ensuite dû adapter ces données et les reconstruire sous un format spécifique afin de les afficher et les synthétiser sous forme d’une interface graphique facile à visualiser ce qui était un challenge étant donnée la durée de ce dernier.

Comment avez-vous géré la planification et la répartition des tâches au sein de ton équipe pendant la compétition ?

Nous avons catégorisé les tâches selon leurs priorités “principales” et “secondaires”.

Nous nous sommes répartis les tâches après le whiteboard, des approches techniques ont été proposées pour réaliser les objectifs fixés et les membres de l’équipe qui avaient une idée précise pour implémenter une feature coopéraient entre eux. Des membres plus expérimentés étaient présents en renfort pour suggérer des approches plus adaptées, superviser et coordonner les développeurs qui implémentaient les fonctionnalités de l’application.

Peux-tu nous donner un aperçu de la conception de votre application et des choix de conception que vous avez fait pour améliorer l'expérience utilisateur ?

Par manque de temps, on s’est contenté de quelques diagrammes dessinés sur le whiteboard pour illustrer au mieux les objectifs à atteindre et l’architecture de l’application. L’application est découpé en deux parties: 

  • Le “Back-end” qui alimente l’interface utilisateur utilise des scripts python qui puisent dans les données brutes fournies dans une source tierce interne à la SG (base de données). Ces données sont ensuite reformatées et adaptées pour être consommées par l’interface utilisateur.
  • le “Front-end” qui représente l’interface avec laquelle interagit l’utilisateur.


Le principal choix de conception pour contribuer à améliorer l’expérience utilisateur était d’afficher ces données sous forme d’un graphe de dépendance qui peut être visualisé plus facilement par un utilisateur humain. Nous avions aussi pour idée de proposer de filtrer les données du graphes selon différents critères sélectionnés par l’utilisateur.

Comment avez-vous assuré la sécurité des données dans l’application ?

Il n’était pas vraiment question de se focaliser sur l’aspect sécurité de l’application à ce stade du développement au vu de la durée de la compétition ainsi que l'effectif réduit de l’équipe, notre objectif principal était de présenter un prototype pour illustrer la valeur ajoutée que pouvait apporter une telle application à l’entreprise.

As-tu eu des retours de la part des juges du hackathon ? Si oui, quels étaient-ils ?

On a fait une brève présentation du prototype aux juges du hackathon, ils ont trouvé l'idée pertinente au vu du large éventail des cas d’utilisations de l’application et son potentiel à suivre les flux d’informations des nombreuses applications développées chez le client. Le prototype a notamment donné un aperçu du potentiel qu’offrait l’application de pouvoir visualiser ces flux de manière détaillée.

Quels enseignements as-tu tiré de cette expérience de hackathon ?

Toujours éviter l’optimisation prématurée lors de la phase de développement, les fonctionnalités d’une application sont amenées à évoluer, il vaut mieux attendre une certaine maturité de celles-ci avant de les optimiser

Il faut donner une grande importance au temps imparti dans la gestion d’un projet de développement, il est très facile de sous-estimer les tâches de développement lors de la phase de conception ce qui peut nous amener à mal juger le temps à leur octroyer et à se fixer des deadlines inatteignables

Si vous aviez plus de temps ou de ressources, quelles améliorations aimerais-tu apporter à l’application ?

Avec du temps et des ressources supplémentaires on peut par exemple : 

  • Optimiser le code des features implémentées et ajouter des tests unitaires et d'intégrations
  • Implémenter l’aspect sécurité et gestion des utilisateurs potentiels de l’application
  • Améliorer l’interface graphique et offrir une expérience utilisateur optimale
  • Développer plus de features et réfléchir à la scalabilité de l’application
  • Remplacer les scripts python pour gérer les données et implémenter les REST APIs par un framework backend plus abouti (Ex: Spring boot)

Enfin, comment décrirais-tu l'expérience globale du hackathon et quelles leçons en as-tu tiré en tant que développeur ?

Ce fut une expérience mémorable et très enrichissante. Le fait de travailler en groupe, d’échanger des idées et de bénéficier de l'expérience et du point de vue des différents membres de l'équipe en temps réel est très stimulant pour toute l’équipe. Cela nous a permis de nous motiver pour atteindre notre objectif à très court terme.

La quantité de travail fourni n’est pas le seul facteur déterminant pour la réussite d’un projet. La méthode de travail et la gestion du moral de l’équipe sont des facteurs tout aussi importants.

Merci beaucoup pour ce retour complet Lyes! Nous avons hâte de suivre tes prochains défis techniques.

Découvrez aussi

Inscrivez-vous à notre newsletter