Construire le meilleur calendrier au monde : notre processus d'ingénierie

Par Xinxing Jiang

13 mai 2024

Chez Saturn, nous sommes en mission pour construire le meilleur calendrier au monde afin d'augmenter la productivité des étudiants. Nos utilisateurs savent que la construction du meilleur calendrier au monde implique de nombreuses surfaces et fonctionnalités interconnectées, et notre équipe d'ingénierie travaille constamment à identifier les outils et processus qui nous permettent de prendre de meilleures décisions et d'exécuter plus rapidement.

La gestion de projet est un élément critique de notre travail chez Saturn. Pour nous aider à gérer efficacement notre processus d'ingénierie, nous utilisons Linear comme notre plateforme de gestion de projet. Chez Saturn, nous utilisons Linear comme notre outil de gestion de projet et nous en sommes très satisfaits. Ce billet de blog vise à partager nos expériences avec Linear, en mettant en évidence comment nous l'exploitons pour la gestion de projet et les connaissances que nous avons acquises en cours de route.

Construire le meilleur calendrier du monde depuis notre bureau de NYC

Comment nous utilisons Linear

Notre processus commence avec des feuilles de route. Les feuilles de route sont développées par nos équipes de gestion de produit, et ces feuilles de route sont incorporées dans Linear, fournissant une vue d'ensemble des projets en cours et de leurs délais.

Nos feuilles de route dans Linear

Chaque feuille de route est décomposée en plusieurs projets, chacun correspondant à des fonctionnalités ou efforts d'ingénierie souhaités. Ces projets sont cruciaux pour la planification stratégique.

Exemples de projets dans Linear

Tout d'abord, chaque projet commence par une description de projet, fournissant un résumé à haut niveau qui informe les dirigeants, les chefs de produit et les ingénieurs des objectifs prévus du projet.

Un exemple de description de projet

Ensuite, un projet a quelques liens vers des spécifications pertinentes (y compris une spécification de produit, une spécification d'ingénierie et un design Figma, etc.) et des notes de réunion. Lier les spécifications au sein d'un projet fournit des repères utiles et du contexte aux parties prenantes afin que tout le monde ait une compréhension commune des aspects importants du produit ou de l'ingénierie du projet.

Notre équipe d'ingénierie travaille dur!

Spécifications liées à un projet

Une fois qu'un projet est « spécifié », et que la spécification est approuvée par les chefs de produit principaux, un ingénieur est désigné comme responsable de projet pour gérer le projet, avec d'autres ingénieurs et parties prenantes ajoutés en tant que membres.

Responsable de projet et membres

Une fois que l'équipe d'ingénierie est affectée à un projet, les ingénieurs travailleront ensemble pour définir le périmètre du projet. Les ingénieurs décomposeront le projet en jalons si nécessaire. La règle générale est que si un projet prend plus de 2 semaines au total, il sera divisé en plusieurs jalons. Notre objectif en désignant des jalons est de s'assurer que chaque jalon est un livrable de produit (en d'autres termes, une version que nous pouvons livrer à l'utilisateur pour recueillir des retours et des idées d'utilisateur en cours de route).

Jalons du projet

Une fois les jalons définis et discutés entre les ingénieurs et les chefs de produit, les ingénieurs chercheront à comprendre les tâches composantes au sein de chaque jalon et à ajouter des estimations pour chacune de ces tâches.

Ajouter une estimation à chaque tâche

Les tâches dans les jalons sont estimées en utilisant un système de points, où une journée de travail équivaut à deux points. Linear désigne ce système comme le « système linéaire ». Nous visons à ce que chaque ingénieur ait environ 8 points attribués par semaine, tout en comprenant que l'équipe aura également des obligations envers d'autres tâches telles que des réunions, des responsabilités d'astreinte, etc.

Système de points

Une fois que nous ajoutons des points à chaque tâche dans un jalon, nous pouvons additionner les points et obtenir un aperçu du temps qu'il faudra pour compléter l'ensemble du projet.

Une chose à garder à l'esprit est que le périmètre peut souvent augmenter pendant que le projet est en cours. Inévitablement, plus de tâches seront ajoutées à un projet pendant qu'il est en vol : corrections de bogues, augmentation du périmètre, plus de travail d'ingénierie pour gérer la dette technique, etc. Avec l'augmentation du périmètre, le calendrier de chaque jalon et de l'ensemble du projet peut facilement prendre plus de temps que prévu initialement.

Nous avons un système approfondi pour nous assurer que nous gérons correctement les tâches qui peuvent ne pas faire partie du périmètre initial en utilisant le statut Icebox. Les tâches dans l'icebox représentent des éléments qui ont été identifiés mais pas encore discutés / convenus pour être incorporés dans les projets. Cela diffère du statut Backlog, qui représente les projets qui ont été identifiés et seront intégrés dans les cycles d'ingénierie ultérieurs. L'équipe d'ingénierie discutera régulièrement des tâches de l'Icebox par lots afin d'incorporer ces projets et d'ajuster les délais en conséquence, ou de s'assurer que ces tâches sont abordées dans les jalons ultérieurs ou même dans des projets ultérieurs. L'objectif est de communiquer en permanence et de comprendre de nouveaux facteurs afin d'éviter les surprises.

Icebox et Backlog

Une fois que les tâches ont été définies et que leurs efforts ont été estimés, nos ingénieurs commencent à travailler. Nous opérons sur un cycle de sprint hebdomadaire, durant lequel les ingénieurs reçoivent généralement des tâches totalisant environ 8 points à compléter au cours de la semaine suivante.

Chacun a environ 8 points pour un cycle

Lors de l'implémentation, un outil précieux est la fonctionnalité de mise à jour de projet. Le responsable de projet a pour tâche d'écrire des mises à jour régulières dans Linear, fournissant aux parties prenantes un aperçu des progrès du projet. Pour améliorer la communication, nous avons configuré des automatisations Slack qui transmettent ces mises à jour aux groupes Slack pertinents. Les parties prenantes peuvent alors discuter et commenter directement dans Slack, avec leurs retours automatiquement synchronisés dans Linear, garantissant qu'il reste le dossier central de vérité.

Mises à jour de projet

Mise à jour des projets!

Une fois que le codage d'un projet et les tests initiaux sont terminés, le responsable de projet organise une session de chasse aux bogues. Cela implique d'inviter tous les membres de l'équipe concernés à télécharger la dernière version de staging et à s'engager activement avec la nouvelle fonctionnalité pour identifier tout problème. Nous utilisons Instabug pour gérer et suivre efficacement les rapports de bogues. À l'issue de cette session, les ingénieurs traitent rapidement et résolvent les bogues signalés, garantissant la stabilité et la fonctionnalité de la fonctionnalité.

Une fois que le projet est sans bogues, notre équipe d'ingénierie collaborera avec notre équipe de science des données pour initier un déploiement progressif, généralement géré par le biais d'une expérience Amplitude. Le statut du projet est mis à jour à "Déploiement" dans Linear pour un suivi clair. Au cours des prochaines semaines, l'équipe de science des données analysera les données pour évaluer si la nouvelle fonctionnalité influence positivement les indicateurs clés. Si l'analyse montre que la fonctionnalité est réussie, nous procédons à l'intégration de la fonctionnalité dans la base de code principale pour une activation par défaut. À l'inverse, si la fonctionnalité ne fonctionne pas comme prévu, nous réalisons un retour pour extraire des leçons précieuses et ensuite revenir à l'expérience et au code.

Phase de déploiement

Résumé

Ce qui précède résume l'ensemble du cycle de vie du projet et la façon dont nous utilisons Linear tout au long. Linear facilite notre gestion de projet en organisant les projets au sein de feuilles de route et en détaillant les projets individuels avec toutes les informations nécessaires aux parties prenantes clés pour passer de l'idée au développement. Cette approche aide à garantir transparence et efficacité tout au long de la durée du projet.

Réunion d'équipe pour vérifier les progrès

Leçons apprises sur la gestion de projet

En tant que start-up, nous réfléchissons constamment à nos processus et cherchons activement des domaines à améliorer. Cela peut être un défi pour une entreprise comme Saturn, où nous avons de nombreuses surfaces avec des degrés de complexité et de finalité différents. Certaines surfaces de l'application ont atteint une adéquation produit-marché tandis que d'autres sont encore en phase d'exploration. En conséquence, il est difficile d'appliquer une approche unique à notre processus.

Cependant, nous avons appris certaines leçons générales sur la gestion de projet que nous appliquons à notre processus. Voici quelques-unes :

  1. Maintien de la visibilité : Il est crucial que les parties prenantes puissent accéder à l'information dont elles ont besoin, quand elles en ont besoin.

    1. Auparavant, nous dépendions beaucoup de Slack pour la communication, ce qui, bien que efficace pour des discussions immédiates, s'est avéré insuffisant pour le suivi et la récupération des détails du projet. En intégrant Linear, nous avons amélioré la façon dont nous organisons les mises à jour et suivons les bogues et les demandes opérationnelles grâce à la fonctionnalité de triage, permettant aux ingénieurs de se concentrer sur leur travail tout en maintenant la transparence.

    2. Adoption d'une culture 'Shift Left' : Dans nos débuts, l'envie d'avancer rapidement nous a souvent amenés à ignorer le développement approfondi de spécifications. Avec le temps, nous avons réalisé que le temps économisé au départ était perdu plus tard en raison de problèmes tels que des exigences de produit floues ou des débats sur la conception du système lors des revues de code. Désormais, nous soulignons l'importance d'investir du temps dès le début dans le développement et l'approbation de spécifications de produit et d'ingénierie détaillées. Cette approche nous permet de traiter les problèmes potentiels dès le début du cycle de vie du projet, bien que nous restions suffisamment flexibles pour créer des démonstrations pour réduire les risques des projets même avant de finaliser les spécifications.

Conclusion

Chez Saturn, nous avons pour mission de créer le meilleur calendrier pour tous. Nous comprenons qu'un objectif aussi ambitieux nécessite une évaluation continue. Les rétrospectives continues et l'apprentissage continu nous aident à affiner non seulement nos processus mais aussi notre culture, garantissant que nous apprenons de nos erreurs et que nous améliorons constamment l'expérience utilisateur.

Venez nous aider à construire Saturn!

Nous embauchons activement pour de nombreux rôles dans les domaines de l'ingénierie et des postes non techniques. Consultez nos rôles ouverts et rejoignez notre équipe incroyable qui change l'avenir des calendriers.