TPC
    TPC
    Tech

    Code Quality : bonnes pratiques de 6 startups tech

    Comment ManoMano, Back Market, Singulart, Coderative, BAM et Teads gerent la qualité du code, les tests, les code reviews et la dette technique.

    8 min de lecture

    Avec les contributions de :

    Florian LabadensEngineering @ ManoManoMarc G GauthierDirector of Engineering @ Back MarketMartin LechaptoisHead of Engineering @ SingulartIgor de Alcantara BarrosoCo-fondateur @ CoderativeAntoine DoubovetzkyLead React Native @ BAMVincent SaluzzoEngineering Manager @ Teads

    Ce dossier compile les pratiques de 6 équipes engineering autour de la qualité du code. Criteres de qualité, pipelines de tests, code review, gestion de la dette technique et monitoring. Des approches concretes issues de startups et studios de développement francais.

    2. Code Quality a l'echelle d'une licorne

    ManoMano compte environ 500 personnes dans l'équipe technique, reparties en 50 Feature Teams et 7 teams of teams. L'équipe Tech Excellence (environ 40 personnes) couvre Agility, Quality et Technical coaching.

    1. Maintenabilite

    Metriques : TTM (Time to Market), releases par jour, duree des pipelines CI/CD.

    Engineering

    Outils : Jellyfish.

    2. Securite

    SecureCoding training pour les développeurs. Scan automatisé des dependances et du code.

    Engineering

    Outils : Gemnasium, Gitleak, Snyk.

    3. Performance

    Load testing, monitoring des SLO, RUM et alerting systematiques.

    Engineering

    Outils : K6, LightHouse, Datadog, Sentry.

    4. Qualite du code

    Code review systematique. Feature flipping et monitoring des erreurs en production.

    Engineering

    Outils : Linters, SonarQube, LaunchDarkly, Datadog.

    Code review sur GitLab. 1 a 4 reviewers selon la sensibilite du changement. Chaque merge request est liée au ticket Jira correspondant.
    Pyramide de tests basee sur le modele Martin Fowler. Couverture definie par chaque équipe de manière autonome. Pas de testeurs dédiés : des quality coaches accompagnent les équipes.

    1. You build it, you run it

    Chaque équipe est responsable de ce qu'elle produit. Design patterns et cellule architecture pour la cohérence.

    2. Équipe Pulse

    Observabilite, coûts cloud, gestion d'incidents, chaos engineering, monitoring et on-call.

    3. Crafternoons

    Jeudi après-midi reserve a l'apprentissage et l'experimentation technique.

    4. Communities of Practice

    Groupes transverses par domaine technique. Presentations et workshops hands-on.

    Outils recommandés : Confluence, ADR (Architecture Decision Records), Site interne.

    Systeme proprietaire de classification des bugs A-Z. Participation de toute l'entreprise. Post-mortem systematique. Communication hebdomadaire transparente. 4 niveaux de priorité avec SLA : P1 resolu en quelques heures.
    Dette technique : approche holistique. Dette structurelle gérée par les architectes. Dette locale gérée par les équipes avec un guide de 20% de bande passante dédiée.

    3. Code Quality chez le leader du reconditionne

    Back Market compte plus de 250 personnes dans l'équipe technique. Plus d'une trentaine de squads regroupees en différentes tribes (expérience client, flux financiers, plateforme technique).

    Code review sur Github. Toute PR doit etre revue par au moins un reviewer. Le process de PR est considere comme cle pour capter des erreurs et repartir la connaissance.

    1. Tests

    Unit tests, tests d'intégration et tests end-to-end. Migration vers Playwright pour la stabilité des tests E2E.

    QA Engineers

    Outils : Playwright.

    2. QA distribuee

    Les QA engineers gerent le tooling et le partage des bonnes pratiques. La QA manuelle est une responsabilité partagée des squads.

    QA Engineers + Squads

    Outils : Github.

    3. Monitoring

    SLIs lies a des SLOs maintenus par les squads. Dashboards avec alerting. Suivi des metrics business (taux de conversion).

    Engineering

    Outils : Datadog.

    4. Gestion d'incidents

    Systeme de gestion d'incidents en constante amélioration. Post-mortems systematiques. Staff engineers operent de facon transverse.

    Engineering

    Outils : Jira.

    1. Tribe Platform

    Équipe qui fournit des outils et facilite les pratiques de développement du reste de l'organisation.

    2. Change management

    Process pour les modifications risquees ou majeures. Process de procurement pour les dependances tierces.

    3. Pair Programming et TDD

    Pratiques adoptees quand pertinentes. Approche DDD pour la migration monolithe vers micro-services.

    "La continuation de notre passage en micro-services est clairement notre principale priorité. Cela devrait permettre aux squads d'avoir plus d'ownership sur leur scope."

    Marc G Gauthier, Director of Engineering @ Back Market
    Bugs : guidelines internes sur l'evaluation de la criticite. Bug critique traite comme un incident avec astreinte. Bug léger traite comme du run avec delai plus eleve. Jira Service Desk pour la visibilité globale.
    Dette technique : métriques DORA (Deployment Frequency, Mean Lead Time, Mean Time to Recover, Change Failure Rate). Health checks reguliers aupres des équipes. Comite technique pour les sujets transverses.

    Outils recommandés : Github, Playwright, Jira, Datadog.

    4. Qualité du code dans une galerie d'art en ligne

    Singulart est une galerie d'art en ligne. Équipe tech de 23 personnes : 1 CTO, 1 Head of Engineering, 3 Engineer Managers, 1 Lead QA, 2 Staff Engineers et 15 développeurs repartis en 3 squads autonomes.

    1. Maintenabilite

    La couverture de tests ne doit pas diminuer dans les nouveaux developpements. Warnings affiches sur les pipelines CI/CD.

    Lead Dev

    Outils : GitLab.

    2. Performance

    Dashboards de RUM (Real-user Metrics) sur Datadog. Alertes configurees en cas de baisse de performance.

    Engineering

    Outils : Datadog.

    3. Code review

    Toutes les Merge Requests reviewees par au moins 1 développeur sur GitLab. Template defini avec description, impact et procedures de test.

    Lead Dev

    Outils : GitLab.

    4. Tests

    Lead QA recrute pour piloter la stratégie qualité. Tests E2E sur Cypress pour les chemins critiques. Tests unitaires avec Phpunit (back) et Jest (front). Tests fonctionnels avec Behat.

    QA + Dev

    Outils : Cypress, Phpunit, Jest, Behat.

    "Je suis super content de l'équipe car ils sont hyper reactifs : une solution est généralement trouvee dans la demi-heure et le fix, s'il est trivial, sera trouve dans la journee."

    Martin Lechaptois, Head of Engineering @ Singulart
    Monitoring : Sentry pour les erreurs applicatives (reduction de 60% des erreurs en 3 mois). Datadog pour les erreurs infra. RUM et dashboarding sur Influx et Google Datastudio.
    Distribution cible par trimestre : 60% roadmap produit, 20% taches quotidiennes (demandes et bugs), 20% roadmaps techniques des guildes (Architecture, Infrastructure, Performance, CI/CD, DX, Front-End).

    Outils recommandés : GitLab, Cypress, Phpunit, Jest, Behat, Sentry, Datadog.

    5. Pratiques de qualité dans un collectif de devs

    Coderative est un collectif de développeurs, designers et entrepreneurs. 3 fondateurs et un réseau de collaborateurs. Studio, recrutement/formation et formations développeurs.

    1. Metriques DORA

    Frequence de déploiement, duree entre commit et mise en service, temps moyen d'interruption, frequence d'incidents.

    Engineering

    Outils : Outils de CD.

    2. Code review

    Un changement produit par une personne necessite la revue par un autre membre. Code produit en Pair ou Ensemble Programming dispense de revue.

    Engineering

    Outils : Github, GitLab.

    3. CI/CD automatisee

    Tests unitaires, intégration et UI. Formatage du code, audit des dependances (CVE), analyse statique. Tout echec bloque la pipeline.

    Engineering

    Outils : CI/CD.

    4. Monitoring

    Collecte de logs, métriques et traces. Alertes en cas d'anomalies ou d'erreurs applicatives.

    Engineering

    Outils : Monitoring.

    1. Formation continue

    Un jour entier par semaine dédié a l'apprentissage : technos, katas, lecture d'ouvrages de reference.

    2. Retrospectives

    Chaque cycle de développement se termine par une analyse des pratiques et leur evolution.

    3. Approche pragmatique

    Pas de concept de dette technique. Les équipes corrigent les bugs a la detection. Si le fix depasse quelques heures, un ticket est créé et priorise.

    Outils recommandés : Github, GitLab.

    6. Code Quality en développement mobile

    BAM est un studio specialise en développement mobile. 120+ projets realises. Stack : React Native, Flutter, Swift UI, Kotlin. 50 experts React Native sur une quinzaine de projets.

    1. Guidelines qualité

    Chaque Tech Lead est responsable de la qualité de son projet. Matrice basee sur les DORA metrics. Objectif : releases hebdomadaires.

    Tech Lead

    Outils : TypeScript, ESLint, Jest.

    2. Performance mobile

    Mesure du startup time, FPS et consommation RAM/CPU. Outil interne : Android Performance Profiler. Tests sur Samsung J3 (device peu performant).

    Engineering

    Outils : Flashlight, Lighthouse.

    3. Code review

    1 reviewer pour les projets clients, 2-3 pour les outils internes. Templates de PR avec lien ticket, screenshots iOS/Android et maquette Figma.

    Tech Lead

    Outils : Github.

    4. Tests

    Stratégie basee sur le Testing Trophy (Kent C. Dodds). Threshold global a 80%, 100% sur la logique métier. Tests E2E avec Maestro.

    Engineering

    Outils : Jest, React Native Testing Library, Maestro.

    "Les QAs devraient plutôt faire des tests exploratoires en continu plutôt qu'executer des cahiers de tests avant chaque release, parce que ca ralentit le process de release."

    Antoine Doubovetzky, Lead React Native @ BAM

    1. Crash Free Session Rate

    Objectif de 99.99%. Monitoring avec Sentry (gestion des sourcemaps React Native). Changelogs generes automatiquement via Commitizen.

    2. 3 piliers qualité

    Aligner toute l'équipe sur l'importance de la qualité. Formation continue par les Tech Leads. Flux de conception complets (BPMN, ADRs, refinement).

    3. Zero Defect Policy

    Pas de priorisation : tous les defauts sont traites des la detection. Analyse QRQC (Quick Response Quality Control) inspiree du Lean.

    4. Shape Up

    Methodologie permettant de traiter des gros blocs de dette technique et des sujets d'innovation.

    Outils recommandés : Jest, React Native Testing Library, Maestro, Sentry, Commitizen, Flashlight.

    7. Qualité du code dans l'adtech

    Teads est une plateforme media globale. 1300 employes dans 30 pays. Hub engineering (Teads Innovation) de 200 personnes reparti entre Montpellier, Paris et Bucarest.

    "Je suis en charge de développer le SDK intégré dans les applications mobiles de nos editeurs de presse et mon équipe est composee de 8 personnes aujourd'hui."

    Vincent Saluzzo, Engineering Manager @ Teads

    1. Autonomie

    Chaque membre mene un développement du design a la release en autonomie. Les équipes sont organisees par responsabilité de composants.

    Engineering

    Outils : Jenkins, Github Actions.

    2. Code review

    Chaque pull request doit etre revue par un codeowner du projet. Couverture de tests inclut le respect du formatage des PR.

    Engineering

    Outils : Github.

    3. CI/CD

    Jenkins pour la plupart de l'écosystème. Github Actions pour iOS. Tests unitaires et d'intégration. Approche pragmatique de couverture.

    Engineering

    Outils : Jenkins, Github Actions.

    4. Monitoring

    Solutions de monitoring et alertes 24/7. Chaque release publiee dans un channel Slack pour tracer les deployements.

    Engineering

    Outils : Slack.

    1. Design docs

    Systematises pour les projets impactants. Verification sécurité, infrastructure et consultation de tous les intervenants. Travail asynchrone.

    2. Communautes de pratique

    Partage regulier de veille et retours d'expérience par domaine technique.

    3. Alerting structure

    Alertes critiques et non critiques. En horaire de bureau : équipes opérationnelles. Hors horaires : équipe on-duty par binome avec releve hebdomadaire.

    Post-mortem obligatoire après chaque intervention critique. Correctifs et communication aux équipes opérationnelles.
    Dette technique : chaque équipe gere a sa facon. Refactoring traite soit quand l'équipe a du temps, soit lors du prochain passage sur le composant. Design docs et ADRs pour perenniser les choix architecturaux.

    Outils recommandés : Jenkins, Github Actions, Slack.

    Vous recrutez ce profil ?

    TPC vous accompagne pour trouver des profils adaptés à vos besoins.

    Découvrez aussi notre pôle Engineering et son accompagnement dédié.