9 min lecture • Guide 41 of 877
Coordonner les Équipes de Développement Frontend et Backend
Les équipes frontend et backend travaillant en parallèle font souvent face à des défis de coordination: travail bloqué en attente d'APIs, surprises d'intégration, priorités inconsistantes et blâme quand les timelines glissent. GitScrum fournit la visibilité et la structure pour coordonner ces tracks parallèles, assurant des handoffs fluides et réduisant la friction d'intégration.
Problèmes Courants de Coordination
Quand les équipes frontend et backend travaillent séparément:
| Problème | Symptôme | Impact |
|---|---|---|
| API pas prête | Frontend bloqué, utilisant mocks indéfiniment | Retards intégration |
| Changements API sans préavis | Frontend casse après intégration | Retravail, frustration |
| Priorités différentes | Équipes travaillant sur features non liées | Livraison désalignée |
| Contrats flous | Les deux équipes assument comportements différents | Intégration bugguée |
| Pas de visibilité partagée | Chaque équipe aveugle au progrès de l'autre | Surprises tardives |
| Culture du blâme | "On attendait sur eux" | Faible confiance |
Structure Coordination GitScrum
Configuration Board Partagé
Configuration Board pour Travail Cross-Team:
OPTION 1: BOARD UNIFIÉ
┌─────────────────────────────────────────────────────────────┐
│ DÉVELOPPEMENT FEATURE │
├─────────────────────────────────────────────────────────────┤
│ │
│ Backlog │ Backend │ Frontend │ Intégra- │ Testing │Done│
│ │ Dev │ Dev │ tion │ │ │
│ ───────────┼──────────┼──────────┼──────────┼─────────┼────│
│ [Profil │ [API: │ │ │ │ │
│ Utilisateur]│ Profil]│ │ │ │ │
│ │ BE: Alex │ │ │ │ │
│ │ │ │ │ │ │
│ [Dash- │ [API: │ [UI: │ │ │ │
│ board] │ Stats] │ Stats │ │ │ │
│ │ BE: Sam │ Widget] │ │ │ │
│ │ │ FE: Kim │ │ │ │
└─────────────────────────────────────────────────────────────┘
OPTION 2: BOARDS LIÉS
┌─────────────────────────────────────────────────────────────┐
│ BOARD BACKEND BOARD FRONTEND │
├─────────────────────────────────────────────────────────────┤
│ │
│ À Faire│En Cours│Review│Fait ║ À Faire│En Cours│Review│Fait│
│ ───────┼────────┼──────┼──── ║ ───────┼────────┼──────┼────│
│ [API: │ │ │ ║ [UI: │ │ │ │
│ User │ │ │ ║ User │ │ │ │
│ ──────┼────────┼──────┼─────╬─────────┼────────┼──────┼────│
│ Bloque: UI: Profil User] ║ Bloqué par: API: User] │
│ ║ │
│ Liens montrent dépendances entre boards │
└─────────────────────────────────────────────────────────────┘
Configuration Dépendances Tâches
Configurer Dépendances Cross-Team:
CONFIGURATION DÉPENDANCES:
┌─────────────────────────────────────────────────────────────┐
│ TÂCHE: UI - Page Profil Utilisateur │
│ Équipe: Frontend │
│ Assigné: Kim │
├─────────────────────────────────────────────────────────────┤
│ │
│ DÉPENDANCES: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Bloqué Par (doit compléter d'abord): ││
│ │ ││
│ │ ├── [✓] API: Authentification User (Fait) ││
│ │ ├── [→] API: CRUD Profil User (En Cours) ││
│ │ │ Assigné: Alex ││
│ │ │ ETA: Demain ││
│ │ │ Statut: 80% complet ││
│ │ └── [○] API: Upload Image Profil (À Faire) ││
│ │ Assigné: Sam ││
│ │ ETA: Prochain sprint ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ MODE TRAVAIL: │
│ ○ Attendre toutes les dépendances │
│ ● Démarrer avec mocks, intégrer quand prêt │
│ ○ Démarrer seulement après bloqueurs faits │
│ │
│ STATUT MOCK: │
│ Utilisant mock API: Oui │
│ Endpoint mock: /mocks/user-profile.json │
│ API réelle prête: Partiel (2 sur 3 endpoints) │
└─────────────────────────────────────────────────────────────┘
Gestion Contrats API
Spécification API comme Tâches
Tracking Contrats API:
TÂCHE CONTRAT API:
┌─────────────────────────────────────────────────────────────┐
│ CONTRAT API: Endpoints Profil Utilisateur │
│ Type: Contrat • Statut: Approuvé │
├─────────────────────────────────────────────────────────────┤
│ │
│ SPÉCIFICATION: │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ GET /api/v1/users/:id/profile ││
│ │ ││
│ │ Réponse: ││
│ │ { ││
│ │ "id": "uuid", ││
│ │ "email": "string", ││
│ │ "name": "string", ││
│ │ "avatar_url": "string | null", ││
│ │ "created_at": "ISO8601", ││
│ │ "preferences": { ││
│ │ "theme": "light | dark", ││
│ │ "notifications": "boolean" ││
│ │ } ││
│ │ } ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ STATUT APPROBATION: │
│ ├── Backend: ✓ Approuvé (Alex) │
│ ├── Frontend: ✓ Approuvé (Kim) │
│ └── Date: 15 Jan 2024 │
│ │
│ STATUT IMPLÉMENTATION: │
│ ├── Backend: ✓ Implémenté, déployé en staging │
│ ├── Frontend: → Utilisant en développement │
│ └── Test intégration: En attente │
│ │
│ CHANGELOG: │
│ v1.1 (20 Jan): Ajouté objet preferences │
│ v1.0 (15 Jan): Contrat initial │
└─────────────────────────────────────────────────────────────┘
Workflow Changement Contrat
Gérer Changements API:
FLUX DEMANDE CHANGEMENT:
┌─────────────────────────────────────────────────────────────┐
│ │
│ Backend Tâche de Frontend │
│ propose ──► revue ◄── évalue │
│ changement contrat impact │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Discussion │ │
│ │ dans tâche │ │
│ └─────────────┘ │
│ │ │
│ ┌──────────┼──────────┐ │
│ ▼ ▼ ▼ │
│ [Approuver] [Négocier] [Rejeter] │
│ │ │ │ │
│ ▼ │ ▼ │
│ Mettre à jour │ Garder actuel │
│ spec et │ │
│ Implémenter │ │
│ │ │ │
│ ▼ ▼ │
│ Notifier équipes affectées │
│ │
└─────────────────────────────────────────────────────────────┘
Jalons Intégration
Points Intégration Feature
Planification Jalons Intégration:
FEATURE: Dashboard Utilisateur
┌─────────────────────────────────────────────────────────────┐
│ JALONS INTÉGRATION │
├─────────────────────────────────────────────────────────────┤
│ │
│ Semaine 1 │
│ ├── API: Authentification ───┐ │
│ │ ├──► INT-1: Auth fonctionne│
│ └── UI: Flux login ───┘ avec API réelle │
│ Date: 22 Jan │
│ Statut: ✓ Fait │
│ │
│ Semaine 2 │
│ ├── API: Stats dashboard ───┐ │
│ │ ├──► INT-2: Stats affichage│
│ └── UI: Stats widgets ───┘ Date: 29 Jan │
│ Statut: → Aujourd'hui │
│ │
│ Semaine 3 │
│ ├── API: Données graphiques ───┐ │
│ │ ├──► INT-3: Graphiques live│
│ └── UI: Composants graphique───┘ Date: 5 Fév │
│ Statut: ○ Planifié │
│ │
│ Semaine 4 │
│ └── Test intégration complet ────► INT-4: E2E complet │
│ Date: 12 Fév │
│ Statut: ○ Planifié │
│ │
└─────────────────────────────────────────────────────────────┘
Visibilité Cross-Team
Coordination Standup
Utiliser Team Standup pour MAJ Cross-Team:
VUE STANDUP COMBINÉE:
┌─────────────────────────────────────────────────────────────┐
│ STANDUP QUOTIDIEN - 29 Jan 2024 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ÉQUIPE BACKEND │
│ ────────────────────────────────────────────────────────────│
│ Alex: │
│ Hier: Complété endpoint API stats │
│ Aujourd'hui: Ajout gestion état vide │
│ Bloqueurs: Aucun │
│ 📌 "API Stats prête pour intégration @ 15h" │
│ │
│ ÉQUIPE FRONTEND │
│ ────────────────────────────────────────────────────────────│
│ Kim: │
│ Hier: UI widget stats complet │
│ Aujourd'hui: Intégration avec API réelle │
│ Bloqueurs: En attente API stats │
│ 📌 "@Alex - prêt quand tu veux pour intégration" │
│ │
│ ITEMS SYNC CROSS-TEAM: │
│ ├── INT-2: Intégration stats planifiée 14h │
│ ├── Changement API: champ last_login approuvé │
│ └── Prochaine intégration: Graphiques (5 Fév) │
└─────────────────────────────────────────────────────────────┘
Dashboard Progrès
Vue Progrès Cross-Team:
PROGRÈS FEATURE: Dashboard Utilisateur
┌─────────────────────────────────────────────────────────────┐
│ │
│ PROGRÈS BACKEND │
│ ████████████████████░░░░░░░░░░ 65% │
│ ├── API Auth ████████████████████ 100% ✓ │
│ ├── API Stats ████████████████████ 100% ✓ │
│ ├── API Graphiques ████████████░░░░░░░░ 60% → │
│ └── API Export ░░░░░░░░░░░░░░░░░░░░ 0% ○ │
│ │
│ PROGRÈS FRONTEND │
│ █████████████████░░░░░░░░░░░░░ 55% │
│ ├── UI Login ████████████████████ 100% ✓ │
│ ├── Stats Widgets ████████████████████ 100% ✓ │
│ ├── Affichage Graph ████████░░░░░░░░░░░░ 40% → │
│ └── Export UI ░░░░░░░░░░░░░░░░░░░░ 0% ○ │
│ │
│ PROGRÈS INTÉGRATION │
│ █████████░░░░░░░░░░░░░░░░░░░░░ 33% │
│ ├── INT-1: Auth ████████████████████ 100% ✓ │
│ ├── INT-2: Stats ████████████░░░░░░░░ 60% → Aujourd'hui│
│ ├── INT-3: Graphs ░░░░░░░░░░░░░░░░░░░░ 0% ○ 5 Fév │
│ └── INT-4: E2E ░░░░░░░░░░░░░░░░░░░░ 0% ○ 12 Fév │
│ │
│ GLOBAL: 51% complet │
│ Objectif: 15 Fév (Beta) │
│ Statut: ✓ Sur Track │
└─────────────────────────────────────────────────────────────┘
Patterns Communication
Intégration Slack/Teams
Notifications Automatisées Cross-Team:
RÈGLES NOTIFICATION:
┌─────────────────────────────────────────────────────────────┐
│ Configuration Notification Cross-Team │
├─────────────────────────────────────────────────────────────┤
│ │
│ QUAND: Tâche API passe à "Fait" │
│ NOTIFIER: Canal #frontend-team │
│ MESSAGE: "🟢 API prête: [Titre Tâche] │
│ Staging: [URL] │
│ Docs: [Lien] │
│ Bloque: [Tâches FE liées]" │
│ │
│ QUAND: Contrat API créé/mis à jour │
│ NOTIFIER: #frontend-team + #backend-team │
│ MESSAGE: "📋 MAJ contrat: [Nom API] │
│ Changement: [Résumé] │
│ Revue nécessaire: [Assignés]" │
│ │
│ QUAND: Tâche intégration créée │
│ NOTIFIER: Les deux canaux équipe │
│ MESSAGE: "🔗 Intégration planifiée: [Tâche] │
│ Date: [Date/Heure] │
│ Participants: [Noms]" │
└─────────────────────────────────────────────────────────────┘
Meilleures Pratiques
Pour Coordination Fluide
- Approche API-first — Définir contrats avant implémentation
- Mocks tôt — Frontend ne devrait pas attendre APIs réelles
- Petites intégrations — Intégrer fréquemment, pas à la fin
- Ownership clair — Chaque point intégration a un propriétaire
- Définition partagée de done — Les deux équipes s'accordent sur "complet"
Anti-Patterns à Éviter
ÉVITER CES:
✗ Intégration "big bang" à la fin
✗ Accords API verbaux (pas de contrats écrits)
✗ Attendre APIs parfaites avant démarrer frontend
✗ Backlogs séparés sans visibilité
✗ Intégration comme "problème de quelqu'un d'autre"
✗ Changer APIs sans notifier consommateurs