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.
1. Les contributeurs
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.
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.
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).
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."
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."
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."
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."
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.
Outils recommandés : Jenkins, Github Actions, Slack.