[Partie 1/2] Comment j'ai géré 10+ PRs/jour de développeurs juniors et garanti la qualité du code Frontend (Flutter)

author
Par Carrel MEZATSONG T.

06 Oct 2025

ÉfficacitéQualité

Face à une équipe de développeurs juniors et un budget serré, la qualité du code Frontend (Flutter) et la charge de révision des PRs menaçaient le projet. Découvrez comment j'ai mis en place un pipeline d'Intégration Continue (CI) automatisé pour déléguer les vérifications techniques à la machine et me concentrer uniquement sur la conformité du design.

image of gestion-prs-developpeurs-juniors-qualite-frontend-flutter-ci

Le Défi : Équilibre entre Budget, Vitesse et Qualité

Lors d'une mission récente, j'ai été chargé de manager un projet qui nécessitait une exécution rapide avec un budget limité. La solution adoptée par mon client fut de recruter de nombreux développeurs juniors en freelance.

Si cette approche a permis de maîtriser les coûts, elle a rapidement engendré des problèmes : une qualité de code inégale et une instabilité croissante de l'application.

Ma tâche devenait titanesque : je devais vérifier chaque Pull Request (PR) créée par les développeurs pour garantir la stabilité de la branche principale. Le problème ? Le volume ! Avec plus de 10 PRs par jour, il était humainement impossible de vérifier chaque ligne de code en profondeur sans ralentir l'équipe, et le budget interdisait le recrutement d'un ingénieur senior supplémentaire pour m'épauler.

Que faire pour garantir la qualité sans devenir le goulot d'étranglement du projet ?

La Solution Technique : Automatiser la Qualité Frontend (Flutter)

L'application frontend étant développée en Flutter, j'ai mis en place une stratégie en trois points pour que la machine effectue le gros du travail :

1. Le Linter Stricte : Éducation et Cohérence

J'ai commencé par intégrer un Linter avec un ensemble de règles strictes et personnalisées. Cette approche a deux bénéfices majeurs :

  • Éducation immédiate : Chaque développeur reçoit un feedback instantané sur la qualité et le style de son code, avant même de soumettre sa PR.
  • Cohérence du code : Toutes les contributions respectent désormais la même charte, minimisant les conflits de style et les erreurs basiques.

2. Le Test Automatisé des Interfaces (UI Testing)

La vérification manuelle d'une interface est chronophage. J'ai donc développé un test simple, mais crucial :

  • Il prend les nouvelles interfaces ajoutées par le développeur.
  • Il s'assure qu'elles s'affichent correctement (grâce à la capacité de Flutter de signaler les erreurs de rendu) et ne provoquent pas de plantage.

3. L'Intégration Continue (CI) : Le Garde-Fou

J'ai configuré un script d'Intégration Continue (CI) qui s'exécute automatiquement pour chaque nouvelle PR. Ce script exécute systématiquement les deux actions précédentes : la vérification par le Linter et le test des nouvelles interfaces.

L'Optimisation du Workflow de Revue

Pour finaliser le processus, j'ai demandé à chaque développeur d'inclure dans la description de sa PR :

  • Une capture d'écran du design attendu (Figma).
  • Une capture d'écran de sa réalisation finale.

Le gain de temps fut spectaculaire. Mon rôle s'est concentré sur l'essentiel :

  1. Vérifier que le rendu final est conforme au design Figma (une vérification visuelle rapide).
  2. M'assurer que le pipeline CI a bien passé les tests et le Linter (une simple coche verte).

Je pouvais désormais réviser plus de 10 PRs par jour sans l'aide d'un autre senior. Les développeurs juniors, grâce aux retours du linter, montaient rapidement en compétence, et l'instabilité du frontend a été drastiquement réduite.


C'est bien, mais ça ne résout pas l'instabilité côté Backend...

Absolument. La stabilité du backend nécessitait une approche différente, mais tout aussi efficace.

Rendez-vous à la Partie 2 pour découvrir la solution que j'ai mise en place pour le backend !

 
Partager :
Blog & Updates

Abonnez-vous à la newsletter

Recevez un e-mail et/ou une notification navigateur à chaque nouvel article publié. Pas de spam, désabonnement rapide.

(optionnel)

En activant les notifications, vous acceptez de recevoir des alertes de votre navigateur.