186 lines
9.8 KiB
Markdown
186 lines
9.8 KiB
Markdown
## Tech Debt
|
||
|
||
Analyse quantitativement la dette technique du projet et visualise les scores de santé avec l'impact sur l'efficacité de développement. Suit les améliorations grâce à l'analyse de tendances, calcule les coûts temporels et crée un plan d'amélioration priorisé.
|
||
|
||
### Utilisation
|
||
|
||
```bash
|
||
# Vérifier la configuration du projet pour analyser la dette technique
|
||
ls -la
|
||
"Analyser la dette technique de ce projet et créer un plan d'amélioration"
|
||
```
|
||
|
||
### Tableau de Bord de Santé du Projet
|
||
|
||
```text
|
||
Score de Santé du Projet: 72/100
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
|
||
📊 Scores par Catégorie
|
||
├─ Fraîcheur des dépendances: ████████░░ 82% (À jour: 45/55)
|
||
├─ Complétude de documentation: ███░░░░░░░ 35% (Manque README, docs API)
|
||
├─ Couverture de tests: ██████░░░░ 65% (Objectif: 80%)
|
||
├─ Sécurité: ███████░░░ 78% (Vulnérabilités: 2 Medium)
|
||
├─ Architecture: ██████░░░░ 60% (Dépendances circulaires: 3 emplacements)
|
||
└─ Qualité du code: ███████░░░ 70% (Complexité élevée: 12 fichiers)
|
||
|
||
📈 Tendances (30 derniers jours)
|
||
├─ Score global: 68 → 72 (+4) ↗️
|
||
├─ Éléments améliorés: 12 ✅
|
||
├─ Nouvelle dette: 3 ⚠️
|
||
├─ Dette résolue: 8 🎉
|
||
└─ Vitesse d'amélioration: +0.13/jour
|
||
|
||
⏱️ Impact temporel de la dette
|
||
├─ Ralentissement du développement: -20% (développement de nouvelles fonctionnalités prend 1.25x le temps normal)
|
||
├─ Temps de correction de bugs: +15% (temps de correction moyen 2h → 2.3h)
|
||
├─ Revue de code: +30% (temps supplémentaire par complexité de compréhension)
|
||
├─ Intégration: +50% (temps nécessaire pour que les nouveaux membres comprennent)
|
||
└─ Temps de retard cumulé: Équivalent à 40 heures/semaine
|
||
|
||
🎯 Effets attendus d'amélioration (basés sur le temps)
|
||
├─ Effet immédiat: Vitesse de développement +10% (après 1 semaine)
|
||
├─ Effet à court terme: Taux de bugs -25% (après 1 mois)
|
||
├─ Effet à moyen terme: Vitesse de développement +30% (après 3 mois)
|
||
├─ Effet à long terme: Temps de maintenance -50% (après 6 mois)
|
||
└─ ROI: Investissement 40 heures → Récupération 120 heures (3 mois)
|
||
```
|
||
|
||
### Exemples de Base
|
||
|
||
```bash
|
||
# Analyse détaillée du score de santé
|
||
find . -name "*.js" -o -name "*.ts" | xargs wc -l | sort -rn | head -10
|
||
"Calculer le score de santé du projet et évaluer par catégories"
|
||
|
||
# Analyse d'impact de dette TODO/FIXME
|
||
grep -r "TODO\|FIXME\|HACK\|XXX\|WORKAROUND" . --exclude-dir=node_modules --exclude-dir=.git
|
||
"Évaluer ces TODOs par impact de dette (temps×importance)"
|
||
|
||
# Vérification de santé des dépendances
|
||
ls -la | grep -E "package.json|Cargo.toml|pubspec.yaml|go.mod|requirements.txt"
|
||
"Calculer le score de fraîcheur des dépendances et analyser les risques et effets des mises à jour"
|
||
```
|
||
|
||
### Collaboration avec Claude
|
||
|
||
```bash
|
||
# Analyse intégrale de dette technique
|
||
ls -la && find . -name "*.md" -maxdepth 2 -exec head -20 {} \;
|
||
"Analyser la dette technique de ce projet sous ces perspectives:
|
||
1. Qualité du code (complexité, duplication, maintenabilité)
|
||
2. Santé des dépendances
|
||
3. Risques de sécurité
|
||
4. Problèmes de performance
|
||
5. Manque de couverture de tests"
|
||
|
||
# Analyse de dette architecturale
|
||
find . -type d -name "src" -o -name "lib" -o -name "app" | head -10 | xargs ls -la
|
||
"Identifier la dette technique au niveau architectural et proposer un plan de refactorisation"
|
||
|
||
# Plan d'amélioration priorisé
|
||
"Évaluer la dette technique selon ces critères et présenter en format tableau:
|
||
- Impact (Élevé/Moyen/Faible)
|
||
- Coût de correction (temps)
|
||
- Risque technique (possibilité de panne système, perte de données)
|
||
- Effet de réduction de temps par amélioration
|
||
- Moment recommandé d'implémentation"
|
||
```
|
||
|
||
### Exemples Détaillés
|
||
|
||
```bash
|
||
# Détection automatique du type de projet et analyse
|
||
find . -maxdepth 2 -type f \( -name "package.json" -o -name "Cargo.toml" -o -name "pubspec.yaml" -o -name "go.mod" -o -name "pom.xml" \)
|
||
"Basé sur le type de projet détecté, analyser:
|
||
1. Dette technique spécifique au langage/framework
|
||
2. Écarts des meilleures pratiques
|
||
3. Opportunités de modernisation
|
||
4. Stratégie d'amélioration graduelle"
|
||
|
||
# Analyse de métriques de qualité du code
|
||
find . -type f -name "*" | grep -E "\.(js|ts|py|rs|go|dart|kotlin|swift|java)$" | wc -l
|
||
"Analyser la qualité du code du projet et présenter ces métriques:
|
||
- Fonctions avec haute complexité cyclomatique
|
||
- Détection de code dupliqué
|
||
- Fichiers/fonctions trop longs
|
||
- Manque de gestion d'erreur appropriée"
|
||
|
||
# Détection de dette de sécurité
|
||
grep -r "password\|secret\|key\|token" . --exclude-dir=.git --exclude-dir=node_modules | grep -v ".env.example"
|
||
"Détecter la dette technique liée à la sécurité et proposer la priorité de correction et les contre-mesures"
|
||
|
||
# Analyse de manque de tests
|
||
find . -type f \( -name "*test*" -o -name "*spec*" \) | wc -l && find . -type f -name "*.md" | xargs grep -l "test"
|
||
"Analyser la dette technique de couverture de tests et proposer une stratégie de tests"
|
||
```
|
||
|
||
### Matrice de Priorités de Dette
|
||
|
||
```text
|
||
Priorité = (Impact × Fréquence) ÷ Coût de correction
|
||
```
|
||
|
||
| Priorité | Impact sur développement | Coût de correction | Effet de réduction de temps | Retour sur investissement | Délai de réponse |
|
||
| -------------------------- | ------------------------ | ------------------ | --------------------------- | --------------------------------- | ---------------- |
|
||
| **[P0] Réponse immédiate** | Élevé | Faible | > 5x | Investissement 1h→Réduction 5h+ | Immédiat |
|
||
| **[P1] Cette semaine** | Élevé | Moyen | 2-5x | Investissement 1h→Réduction 2-5h | Dans 1 semaine |
|
||
| **[P2] Ce mois** | Faible | Élevé | 1-2x | Investissement 1h→Réduction 1-2h | Dans 1 mois |
|
||
| **[P3] Ce trimestre** | Faible | Faible | < 1x | Investissement=temps de réduction | Dans 3 mois |
|
||
|
||
### Critères d'Évaluation par Type de Dette
|
||
|
||
| Type de dette | Méthode de détection | Impact sur développement | Temps de correction |
|
||
| ---------------------------- | --------------------------------------- | ------------------------------------------------------------ | ------------------- |
|
||
| **Dette architecturale** | Dépendances circulaires, couplage élevé | Grande portée d'impact lors de changements, tests difficiles | 40-80h |
|
||
| **Dette de sécurité** | Scan CVE, OWASP | Risque de vulnérabilités, conformité | 8-40h |
|
||
| **Dette de performance** | N+1, fuites mémoire | Augmentation temps de réponse, consommation ressources | 16-40h |
|
||
| **Dette de tests** | Couverture < 60% | Détection tardive de bugs, qualité instable | 20-60h |
|
||
| **Dette de documentation** | Manque README, docs API | Temps d'intégration augmenté | 8-24h |
|
||
| **Dette de dépendances** | Non mises à jour depuis 2+ ans | Risque de sécurité, problèmes de compatibilité | 4-16h |
|
||
| **Dette de qualité du code** | Complexité > 10 | Temps de compréhension/correction augmenté | 2-8h |
|
||
|
||
### Calcul d'Impact de Dette Technique
|
||
|
||
```text
|
||
Impact = Σ(poids de chaque élément × valeur mesurée)
|
||
|
||
📊 Indicateurs d'impact mesurables:
|
||
├─ Impact sur la vitesse de développement
|
||
│ ├─ Temps de compréhension du code: +X% (proportionnel à la complexité)
|
||
│ ├─ Portée d'impact lors de changements: Y fichiers (mesuré par couplage)
|
||
│ └─ Temps d'exécution de tests: Z minutes (pipeline CI/CD)
|
||
│
|
||
├─ Impact sur la qualité
|
||
│ ├─ Taux d'occurrence de bugs: +25% pour chaque 10 de complexité
|
||
│ ├─ Temps de révision: lignes de code × coefficient de complexité
|
||
│ └─ Risque par manque de tests: Haut risque si couverture < 60%
|
||
│
|
||
└─ Impact sur l'efficacité de l'équipe
|
||
├─ Temps d'intégration: +100% par manque de documentation
|
||
├─ Concentration de connaissances: Attention nécessaire si taux de contributeur unique >80%
|
||
└─ Lieux de correction par duplication de code: taux de duplication × fréquence de changement
|
||
```
|
||
|
||
### Calcul de ROI basé sur le temps
|
||
|
||
```text
|
||
ROI = (temps réduit - temps d'investissement) ÷ temps d'investissement × 100
|
||
|
||
Exemple: Résolution de dépendances circulaires
|
||
├─ Temps d'investissement: 16 heures (refactorisation)
|
||
├─ Effet de réduction (mensuel):
|
||
│ ├─ Temps de compilation: -10 min/jour × 20 jours = 200 min
|
||
│ ├─ Temps de débogage: -2 heures/semaine × 4 semaines = 8 heures
|
||
│ └─ Ajout de nouvelles fonctionnalités: -30% réduction de temps = 12 heures
|
||
├─ Temps de réduction mensuel: 23.3 heures
|
||
└─ ROI en 3 mois: (70 - 16) ÷ 16 × 100 = 337%
|
||
```
|
||
|
||
### Notes
|
||
|
||
- Auto-détecte le langage et framework du projet pour réaliser des analyses spécifiques
|
||
- Évalue le score de santé sur une échelle de 0-100 points, considérant sain 70+ points et nécessitant amélioration <50 points
|
||
- Calcule les coûts temporels et effets d'amélioration de manière spécifique, soutenant la prise de décision basée sur les données
|
||
- Pour la conversion monétaire, spécifier séparément le salaire horaire moyen de l'équipe ou coefficients spécifiques au projet
|