11 min lecture • Guide 19 of 877
Estimer les Tâches de Développement avec Précision
L'estimation des tâches reste l'un des défis les plus difficiles du développement logiciel. GitScrum aide les équipes à estimer plus précisément en fournissant des données de vélocité historiques, un suivi des story points et des patterns d'estimation qui améliorent la prévisibilité.
Le Problème d'Estimation
Les mauvaises estimations causent des problèmes en cascade:
- Délais manqués — Les sprints sur-engagés échouent constamment
- Équipes épuisées — Travail en heures supplémentaires constant
- Frustration des stakeholders — Promesses répétitivement brisées
- Paralysie de planification — Peur de s'engager sur n'importe quel timeline
- Scope creep déguisé — Tâches "petites" grossissent de façon inattendue
- Crédibilité perdue — Les estimations de l'équipe perdent leur sens
Solution d'Estimation GitScrum
Construisez la précision d'estimation à travers les données:
Fonctionnalités Clés
| Fonctionnalité | Usage Estimation |
|---|---|
| Story points | Dimensionnement relatif qui s'améliore avec le temps |
| Suivi vélocité | Patterns de livraison historiques |
| Analytics sprint | Comparaison réel vs. planifié |
| Historique tâches | Référence travail passé similaire |
| Suivi temps | Calibrer estimations avec la réalité |
Estimation en Story Points
Comprendre le Dimensionnement Relatif
Échelle Story Points (Fibonacci):
1 point — Changement trivial, < 2 heures
Exemple: Corriger typo dans UI, mettre à jour valeur config
2 points — Tâche simple, implémentation claire
Exemple: Ajouter validation formulaire, mettre à jour endpoint API
3 points — Complexité modérée, quelques inconnues
Exemple: Nouveau composant avec patterns standards
5 points — Travail significatif, plusieurs parties
Exemple: Feature avec frontend + backend + tests
8 points — Feature complexe, beaucoup d'inconnues
Exemple: Nouvelle intégration, refactoring significatif
13 points — Très complexe, considérer diviser
Exemple: Nouvelle capacité majeure, changement architectural
21+ points — Trop grand, doit diviser avant de commencer
Exemple: Travail niveau epic, nécessite décomposition
Session d'Estimation dans GitScrum
Sprint Planning: Phase d'Estimation
Tâche: #234 "Implémenter dashboard utilisateur"
Estimations de l'Équipe (cachées jusqu'à révélation):
├── @alice: 8 points
├── @bob: 5 points
├── @carol: 13 points
└── @dave: 8 points
Discussion à la Révélation:
├── Plus bas (Bob, 5): "Nous avons des composants similaires à réutiliser"
├── Plus haut (Carol, 13): "Et la nouvelle bibliothèque de graphiques?"
└── Discussion: "Bon point - l'intégration graphiques ajoute de la complexité"
Ré-estimer:
├── @alice: 8 points
├── @bob: 8 points
├── @carol: 8 points
└── @dave: 8 points
Final: 8 points ✓
Analyse de Vélocité Historique
Dashboard de Vélocité de l'Équipe
Vélocité de l'Équipe: 6 Derniers Sprints
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Sprint │ Engagé │ Complété │ Taux
──────────┼──────────┼──────────┼──────
Sprint 18 │ 45 pts │ 42 pts │ 93%
Sprint 17 │ 50 pts │ 38 pts │ 76% ← Semaine férié
Sprint 16 │ 45 pts │ 44 pts │ 98%
Sprint 15 │ 48 pts │ 45 pts │ 94%
Sprint 14 │ 52 pts │ 40 pts │ 77% ← Nouveau membre
Sprint 13 │ 44 pts │ 43 pts │ 98%
Vélocité Moyenne: 42 points/sprint
Plage Fiable: 40-45 points (90% confiance)
Recommandation pour Sprint 19:
Engager 42 points (objectif stretch: 45)
Facteurs de Vélocité
Facteurs Affectant la Vélocité:
Réductions Prévisibles:
├── Jours fériés dans le sprint: -20% par jour
├── Congés membre équipe: -proportionnel
├── Réunions/événements majeurs: -10%
└── Sprint 1 avec nouvelle recrue: -15%
Variations Inattendues:
├── Incidents production: Variable
├── Changements scope mid-sprint: Variable
├── Découvertes techniques: Variable
└── Blocages externes: Variable
Exemple d'Ajustement:
Vélocité base: 42 points
Facteurs Sprint 19:
├── 1 jour férié: -20% de 1/10 = -2%
├── Alice en congé 2 jours: -8% (1 de 4 devs, 2 de 10 jours)
└── Pas d'autres facteurs
Capacité ajustée: 42 × 0.90 = 38 points
Référencer Travail Similaire
Comparaison de Tâches
Estimation: #250 "Ajouter export vers CSV"
Tâches Similaires Complétées:
├── #198 "Export vers PDF" — 5 points, 12 hrs réel
│ └── Notes: "Bibliothèque PDF avait bonne documentation"
├── #167 "Export vers Excel" — 8 points, 18 hrs réel
│ └── Notes: "Formatage Excel était compliqué"
└── #145 "Import depuis CSV" — 3 points, 6 hrs réel
└── Notes: "Parsing direct"
Analyse:
├── Export CSV plus simple que formatage PDF
├── Pas de formatage spécial comme Excel
├── Similaire à import CSV mais inverse
Estimation: 3 points
Raisonnement: "Plus simple qu'import (#145, 3pts) mais même domaine"
Historique d'Estimation par Type
Analyse Historique par Type de Tâche:
Endpoints API:
├── CRUD simple: 2-3 points (moy 2.4)
├── Logique complexe: 5-8 points (moy 6.2)
└── Intégration externe: 8-13 points (moy 9.5)
Composants Frontend:
├── Affichage simple: 1-2 points (moy 1.6)
├── Form avec validation: 3-5 points (moy 3.8)
└── Interactif complexe: 5-8 points (moy 6.1)
Correction de Bugs:
├── Cause connue: 1-2 points (moy 1.3)
├── Investigation nécessaire: 3-5 points (moy 4.2)
└── Reproduction pas claire: 5-8 points (moy 6.8)
Refactoring:
├── Fichier unique: 2-3 points (moy 2.5)
├── Niveau module: 5-8 points (moy 6.3)
└── Cross-cutting: 13+ points (moy 15.2)
Diviser les Grandes Tâches
Pattern de Décomposition
Tâche Originale: "Implémenter système de paiement" — 34 points (trop grand)
Décomposition:
├── Intégration fournisseur paiement
│ ├── Setup SDK fournisseur — 2 pts
│ ├── Gestion credentials API — 2 pts
│ └── Flux paiement basique — 5 pts
│
├── UI de Checkout
│ ├── Composant formulaire paiement — 3 pts
│ ├── Validation formulaire — 2 pts
│ └── UI gestion erreurs — 2 pts
│
├── Traitement backend
│ ├── Endpoint paiement — 3 pts
│ ├── Gestion webhooks — 5 pts
│ └── Stockage transactions — 3 pts
│
└── Tests et cas edge
├── Tests unitaires — 3 pts
├── Tests intégration — 3 pts
└── Scénarios erreur — 2 pts
Total après décomposition: 35 points (similaire)
Mais maintenant:
├── Chaque tâche est estimable
├── Travail parallèle possible
├── Progrès visible
└── Risques identifiés tôt
Quand Diviser les Tâches
Indicateurs de Division:
Basé sur la taille:
├── > 8 story points → Considérer diviser
├── > 13 story points → Doit diviser
└── "Ça dépend" dans la discussion → Nécessite clarification
Basé sur la complexité:
├── Plusieurs systèmes touchés → Diviser par système
├── Frontend + Backend → Diviser les couches
├── Plusieurs inconnues → Spike + Implémentation
Basé sur le temps:
├── > 3 jours travail estimé → Considérer diviser
├── > 1 semaine → Doit diviser
└── Ne peut pas finir dans le sprint → Définitivement diviser
Exemples:
❌ "Construire feature X" (vague, grand)
✓ "Créer schéma BD pour X"
✓ "Construire endpoint API de X"
✓ "Créer formulaire frontend de X"
✓ "Ajouter logique validation de X"
✓ "Écrire tests intégration de X"
Techniques d'Estimation
Planning Poker dans GitScrum
Session Planning Poker:
1. Product owner présente la tâche
2. L'équipe pose des questions de clarification
3. Chaque membre sélectionne estimation (cachée)
4. Toutes les estimations révélées simultanément
5. Haut/bas discutent leur raisonnement
6. Ré-estimer si nécessaire
7. Consensus enregistré
Exemple de Session:
Tâche: "Implémenter flux réinitialisation mot de passe"
Round 1:
├── Estimations: 3, 5, 5, 8
├── Discussion: "8 parce que templates email prennent du temps"
├── Réponse: "Nous avons un système de templates, juste nouveau contenu"
Round 2:
├── Estimations: 5, 5, 5, 5
└── Consensus: 5 points ✓
T-Shirt Sizing pour Backlog
Refinement Initial du Backlog:
Taille T-Shirt → Plage Story Points
XS (Extra Small) → 1-2 points
├── Victoires rapides
├── Changements config
└── Corrections mineures
S (Small) → 2-3 points
├── Features simples
├── Composants standards
└── Patterns connus
M (Medium) → 5 points
├── Features typiques
├── Quelque complexité
└── Exigences claires
L (Large) → 8 points
├── Features complexes
├── Plusieurs parties
└── Quelques inconnues
XL (Extra Large) → 13+ points
├── Nécessite division
├── Beaucoup d'inconnues
└── Impact architectural
Session Dimensionnement Backlog:
├── #301 Reset mot de passe: M → 5 pts
├── #302 Charts dashboard: L → 8 pts
├── #303 Feature export: S → 3 pts
├── #304 Système paiement: XL → nécessite division
└── #305 Bug: erreur login: S → 2 pts
Calibrer les Estimations
Suivi Réel vs. Estimé
Calibration Sprint 18:
Tâche │ Estimé │ Réel │ Ratio
────────────────────────┼────────┼────────┼──────
#201 Profil utilisateur │ 5 pts │ 4 hrs │ 0.8 hr/pt
#202 Refactor API │ 8 pts │ 12 hrs │ 1.5 hr/pt
#203 Validation form │ 3 pts │ 3 hrs │ 1.0 hr/pt
#204 Composant chart │ 5 pts │ 8 hrs │ 1.6 hr/pt
#205 Lot bug fixes │ 3 pts │ 2 hrs │ 0.7 hr/pt
Moyenne équipe: 1.1 hrs par story point
Insights:
├── Charts ont pris plus de temps (apprentissage nouvelle bibliothèque)
├── Refactor API a rencontré complexité inattendue
├── Bug fixes ont été plus rapides (bon debugging)
└── Considérer: Gonfler estimations charts par 1.5x
S'Améliorer avec le Temps
Tendance Précision Estimation:
Q1 2024:
├── Sprints complétés: 6
├── Taux moyen complétion: 78%
├── Variance estimation: ±35%
Q2 2024:
├── Sprints complétés: 6
├── Taux moyen complétion: 85%
├── Variance estimation: ±25%
Q3 2024:
├── Sprints complétés: 6
├── Taux moyen complétion: 91%
├── Variance estimation: ±15%
Améliorations Faites:
├── Commencé à utiliser tâches de référence
├── Ajouté spike stories pour inconnues
├── Divisé tâches > 8 points
├── Mises à jour quotidiennes progrès capturent surprises
└── Rétrospective focalisée sur estimations ratées
Meilleures Pratiques de Communication
Présenter Estimations aux Stakeholders
Communication Stakeholders:
❌ Ne dites pas:
"Ça prendra exactement 3 semaines"
"Nous pouvons définitivement finir vendredi"
"C'est une story de 5 points"
✓ Dites:
"Basé sur notre vélocité, nous attendons 2-3 semaines"
"Nous avons 80% de confiance dans la livraison vendredi"
"Des features similaires ont pris 1-2 sprints"
Estimations en Plage:
├── Meilleur cas: Tout se passe sans problème
├── Cas attendu: Complexité normale rencontrée
├── Pire cas: Blocages majeurs découverts
Exemple:
"Feature reset mot de passe:
├── Meilleur cas: 3 jours (pas de surprises)
├── Attendu: 5 jours (complexité typique)
└── Pire cas: 8 jours (problèmes fournisseur email)
Nous nous engageons sur le cas attendu et mettons
à jour quotidiennement si quelque chose change."
Gérer la Pression sur les Estimations
Quand Poussé pour Estimations Plus Basses:
Scénario: "Pouvez-vous le faire en moitié moins de temps?"
Cadre de Réponse:
1. Reconnaître le besoin: "Je comprends la pression du timeline"
2. Expliquer la base de l'estimation:
"Notre estimation est basée sur travail passé similaire:
- Feature X a pris 8 jours le mois dernier
- Celle-ci a une complexité similaire"
3. Offrir des trade-offs:
"Pour réduire le temps, nous pourrions:
- Retirer fonctionnalité Y (économise 2 jours)
- Sauter tests automatisés (ajoute du risque)
- Ajouter un autre développeur (un peu d'overhead)"
4. Clarifier conséquences:
"Si nous forçons un timeline plus court:
- La qualité souffrira
- La dette technique augmente
- Le travail futur ralentit"
5. Proposer alternatives:
"Pourrions-nous livrer MVP en 5 jours,
puis itérer avec features restantes?"
Meilleures Pratiques
Pour les Équipes
- Utilisez dimensionnement relatif — Comparez au travail connu, pas aux heures
- Suivez les réels — Calibrez avec données réelles
- Divisez grandes tâches — Rien au-dessus de 8 points
- Incluez buffer — Tout ne se passe pas sans problème
- Revoyez les ratés — Apprenez des surprises
Pour Scrum Masters
- Protégez le processus — Ne sautez pas l'estimation
- Facilitez la discussion — Assurez que toutes les voix sont entendues
- Suivez les tendances — Identifiez problèmes systématiques
- Partagez apprentissages — Calibration cross-équipe
Pour Product Owners
- Fournissez contexte — Exigences claires améliorent estimations
- Acceptez les plages — Pas des prédictions exactes
- Planifiez avec vélocité — Pas estimations tâches individuelles
- Priorisez clarification — Les questions font gagner du temps plus tard