Organiser un hackathon virtuel pour développeurs web

Nous avons organisé un concours pour mettre à l'épreuve les compétences de nos développeurs, tant en matière d'architecture web que de collaboration. Découvrez comment nous les avons défié et comment les clients en bénéficieront.

Organizing a virtual hackathon for web developers

Symetris a récemment organisé un « hackathon virtuel », auquel ont participé deux équipes de développeurs. Notre équipe d’innovation a organisé la compétition. Nous avons rencontré le Directeur de l’Innovation, Matthieu Gadrat, pour en savoir plus sur la façon dont lui et Elisabeth Lafrance, chef de projet, ont abordé l'événement et comment cela bénéficiera à la fois aux employés et aux clients.

Comment décririez-vous un hackathon et qu’est-ce qui a motivé la décision d’en organiser un?

Un hackathon est une compétition entre développeurs pour résoudre un problème dans un laps de temps limité. Dans ce cas-ci, nos équipes avaient deux jours pour soumettre leur solution.

Nous avons décidé d’organiser notre premier hackathon en réponse au confinement dû à la pandémie COVID-19. Cela nous a semblé être un excellent moyen de remplacer le voyage de conférence que nous organisons habituellement pour aider nos développeurs à se tenir au courant et à être enthousiasmés par les plus récentes technologies. La plupart des conférences ont été remplacées par des événements virtuels, ce qui est bien, mais nos développeurs avaient quand même envie de mettre la main sur les technologies et les expérimenter. Un hackathon nous semblait un bon moyen de les mettre au défi.

Décrivez le défi lancé aux équipes. Qu’est-ce qui vous a incité à choisir ce défi?

Les équipes devaient produire un microsite qui permettrait aux visiteurs de localiser sur une carte des photos de sites historiques de Montréal et de sélectionner des tirages à acheter.

Un certain nombre de conférences virtuelles auxquelles nos développeurs ont assisté avaient pour thème l’architecture « headless » et l’approche découplée. Il s’agit d’un type d’architecture dans laquelle le système de gestion de contenu est séparé de l’application front-end, ce qui permet d’utiliser une plus grande variété de méthodes front-end pour afficher les informations. Il s’agit d’une nouvelle approche que nos équipes étaient intéressées de mieux connaître.

Je voulais des données qui seraient inspirantes à utiliser dans le cadre de ce défi, j’ai donc consulté les catalogues de données ouvertes du gouvernement fédéral, du gouvernement provincial du Québec et de la ville de Montréal. J’ai trouvé un ensemble de photos du vieux Montréal qui m’a semblé constituer les données parfaites pour nos équipes du hackathon.

Créer une expérience de commerce électronique sans friction est un domaine dans lequel nous voulons exceller, surtout dans le contexte actuel, alors je me suis assuré d’incorporer cela aussi dans le défi.

Quel a été le plus grand obstacle auquel les équipes ont dû faire face et comment l’ont-elles surmonté?

Le plus grand défi était de faire un hackathon complètement à distance. Les équipes n’ont pas pu s’asseoir dans la même pièce et faire du brainstorming et jongler avec des idées comme elles l’auraient fait habituellement. 

Une des équipes est restée connectée pendant les deux jours complets de Google Meet. Ils ne se parlaient pas tout le temps, bien sûr, mais en restant connectés en ligne, cela leur a permis de recréer l’atmosphère d’une pièce commune en restant connectés en ligne. 

Comment avez-vous organisé le hackathon?

J’ai participé à plusieurs hackathons dans le passé, donc j’avais une bonne idée de ce dont les participants auraient besoin pour être en mesure de travailler sur le défi et ne pas s’enliser dans les détails.

Ils doivent connaître le calendrier, leur sujet et l’ensemble des données avec lesquelles ils auront à travailler. Ils ont également intérêt à disposer de certains paramètres précis, y compris des éléments qu’ils n’ont pas à construire. Vous ne voulez pas envoyer des équipes dans une course effrénée ou leur faire perdre du temps sur des choses qui ne sont pas essentielles au défi.

Vous devez veiller à ce que les équipes puissent ajouter leur propre touche à ce qu’elles produisent tout en rendant la tâche suffisamment difficile pour qu’elles restent enthousiastes et engagées dans le défi. Cela peut être difficile, car chaque équipe a des niveaux d’expérience différents et vous voulez qu’il y ait quelque chose pour mettre chacun au défi.

Nous avons constitué des équipes plutôt que de laisser les gens former eux-mêmes des équipes, de manière à créer des équipes aux compétences et aux approches diverses et à faire en sorte que les développeurs intermédiaires aient la confiance nécessaire pour travailler sur la tâche avec les développeurs seniors.

Et contrairement à d’autres hackathons qui se font souvent le week-end ou sur le temps libre des employés, nous avons veillé à réserver du temps pendant la semaine de travail pour que tout le monde puisse participer. 

Comment avez-vous assuré une collaboration efficace?

Il faut trouver un équilibre entre la mise en place d’une structure et une liberté suffisante pour s’auto-organiser. 

Les projets des clients de Symetris ont un processus bien rodé avec des rôles et une structure définie. Pour les équipes du hackathon, je voulais recréer certains de ces rôles, mais pas tous. Chaque équipe devait avoir un développeur principal, un chef de projet et un analyste de l’assurance qualité, mais les équipes devaient choisir les personnes qui allaient remplir chaque rôle. Je voulais qu’elles explorent dans un environnement plus chaotique comment elles pourraient s’auto-organiser.

Une équipe a choisi de mettre un développeur intermédiaire dans le rôle de développeur principal, par exemple. Bien que nous ne prenions pas ce risque sur un projet client, c’était stimulant pour la personne qui n’a pas l’habitude de remplir ce rôle. Elle a dû aller au-delà de son expérience pour répondre aux attentes de son équipe. Cette approche a très bien fonctionné pour eux.

Quelles étaient les règles et les exigences à remplir par les équipes?

Le site de photos historiques de chaque équipe devait offrir aux visiteurs la possibilité, entre autres:

  • De récupérer une photo d’archive, et la photo doit être mise en contexte dans une carte
  • De prévisualiser la photo et l’ajouter à leur panier
  • D'accéder à leur panier et de le modifier 

En plus de ces exigences, les équipes avaient des « buts bonus » supplémentaires, où un visiteur peut:

  • Sélectionner différentes tailles d’impression avec différents prix
  • Soumettre une photo historique, choisir son emplacement et accorder les droits de reproduction

Nous avons décidé de n’imposer aucune technologie car les données que nous avons fournies les ont poussés vers l’utilisation de l’architecture « headless » sur laquelle nous voulions de toute façon nous concentrer.

Ils avaient deux jours pour relever le défi. Ils avaient une courte fenêtre avant le hackathon pour préparer leur environnement de travail, mais ils n’avaient pas les données ni les exigences fonctionnelles, donc ils ne pouvaient pas prendre d’avance.

Comme surprise, à mi-parcours, nous avons invité l’un de nos clients, Atecna — qui s’occupe du développement UX — à organiser des séances de questions-réponses de 30 minutes avec chaque équipe afin de donner leur avis d’experts et de les aider à aligner leur travail sur les objectifs. Les équipes ont vraiment apprécié et ont fait un travail impressionnant en intégrant les commentaires d’Atecna.

Pouvez-vous me parler des principaux moments forts de l’événement ? Que pourriez-vous améliorer?

C’était génial de constituer des équipes comprenant des personnes qui ne travaillent pas ensemble normalement. Tout le monde a été impressionné par le niveau de réalisation des équipes en seulement deux jours, surtout si l’on considère qu’elles utilisaient de nouvelles technologies et architectures dans leur travail.

Si nous faisons à nouveau un hackathon comme celui-ci, j’adorerais explorer un défi encore plus difficile qui fait vraiment sortir les gens de leur zone de confort.

Quels avantages, directs ou indirects, vos clients retireront-ils de cet hackathon?

Une des préoccupations des équipes techniques est de savoir quand un projet nécessite ou pourrait bénéficier de nouvelles technologies qu’elles n’ont pas eu le temps de connaître. Le hackathon aide à renforcer la confiance des équipes dans leur capacité à composer avec l’inattendu et à apprendre de nouvelles technologies à la volée s’il le faut. 

Nos clients bénéficieront de la confiance de nos développeurs car ils pourront identifier et tirer profit des opportunités d’exploiter des architectures « headless » et découplées. 

Les hackathons aident également les équipes à comprendre ce qui fonctionne et ce qui ne fonctionne pas quand on est pressé. Les équipes ont une meilleure capacité à évaluer les délais et à améliorer les estimations pour les clients, en particulier lorsque le temps est un facteur du côté du client. 

Enfin, nous perfectionnons les capacités des employés à s’organiser et à collaborer de manière fluide, sous pression et en combinant ensemble des disciplines et des expériences antérieures. Cela renforce l’efficacité lorsqu’ils travaillent en équipe sur les produits livrables aux clients, ainsi que lorsqu’ils co-créent avec les membres de l’équipe du client.

Alors, quelle équipe a gagné le hackathon ? Nous vous ferons part des résultats et des caractéristiques saillantes de l’équipe gagnante dans un prochain article. Inscrivez-vous à notre infolettre pour la recevoir directement dans votre boîte de réception.

Notre infolettre.

Le scénario idéal est plus facile à imaginer qu'à implanter.
Inscrivez-vous à notre infolettre pour savoir par où commencer.