diff --git a/docs/app/architecture.md b/docs/app/architecture.md index 104e39e..47301d7 100644 --- a/docs/app/architecture.md +++ b/docs/app/architecture.md @@ -221,8 +221,8 @@ Le script `scripts/generate-team-visualization-data.js` : - Lit les technologies depuis `radar-business/2025-01-15/*.md` - Génère `public/team-visualization-data.json` avec : - Données réseau (nodes/edges) pour Cytoscape.js - - Matrice de congestion pour ECharts - - Équipe de genèse MVP avec statistiques + - Matrice de congestion pour ECharts (technologies `adopt` uniquement - anciennement "core") + - Équipe de genèse MVP avec statistiques (basée sur les technologies `adopt`) Ce fichier est utilisé par `public/team.html` pour les visualisations interactives. diff --git a/docs/app/guide-page-equipe.md b/docs/app/guide-page-equipe.md index 1fed431..57d8cb7 100644 --- a/docs/app/guide-page-equipe.md +++ b/docs/app/guide-page-equipe.md @@ -63,7 +63,7 @@ La page propose trois visualisations complémentaires : **Fonctionnalités** : - **Axe X** : Membres de l'équipe -- **Axe Y** : Technologies +- **Axe Y** : Technologies (uniquement les technologies "adopt" - anciennement "core") - **Couleurs** : - Vert : Technologie maîtrisée par le membre - Rouge : Technologie non maîtrisée @@ -74,6 +74,8 @@ La page propose trois visualisations complémentaires : - Filtrer par technologie ou membre - Identifier visuellement les technologies avec peu de personnes +**Note** : Seules les technologies avec `ring: adopt` sont affichées dans la matrice, car ce sont les technologies fondamentales en production (anciennement classées comme "core"). + **Technologie** : ECharts (heatmap) ### 3. Équipe de Genèse MVP @@ -83,7 +85,7 @@ La page propose trois visualisations complémentaires : **Fonctionnalités** : - **Sélection automatique** : Algorithme qui sélectionne les membres selon : - Disponibilité >= 50% - - Couverture maximale des technologies critiques + - Couverture maximale des technologies critiques (technologies avec `ring: adopt` - anciennement "core") - Équilibre des compétences - **Statistiques** : - Nombre de membres sélectionnés @@ -242,9 +244,11 @@ Les données sont chargées depuis `/team-visualization-data.json` via `fetch()` Pour l'équipe de genèse MVP, le seuil est fixé à **50%**. Pour le modifier : 1. Ouvrir `scripts/generate-team-visualization-data.js` -2. Modifier la constante `MIN_AVAILABILITY` dans la fonction `generateGenesisTeam()` +2. Modifier le filtre `m.availability >= 50` dans les fonctions `generateCongestionMatrix()` et `generateGenesisTeam()` 3. Régénérer les données : `node scripts/generate-team-visualization-data.js` +**Note** : Les technologies critiques utilisées pour la sélection sont celles avec `ring: adopt` (anciennement "core"). Pour modifier ce critère, changer le filtre `t.ring === 'adopt'` dans `generateGenesisTeam()`. + ### Ajouter de nouvelles visualisations 1. Modifier `public/team.html` diff --git a/scripts/analyze-business-metrics.js b/scripts/analyze-business-metrics.js index cbf7a65..2766950 100755 --- a/scripts/analyze-business-metrics.js +++ b/scripts/analyze-business-metrics.js @@ -136,8 +136,8 @@ function calculateMetrics(blips) { }); } - // Technologies critiques (core + high impact) - if (m.ring === 'core' && m.businessImpact === 'high') { + // Technologies critiques (adopt + high impact) - anciennement "core" + if (m.ring === 'adopt' && m.businessImpact === 'high') { metrics.criticalTechnologies.push({ name: m.title, quadrant: m.quadrant, @@ -174,8 +174,8 @@ function identifyPatterns(blips, metrics) { for (const blip of blips) { const m = blip.metadata; - // Technologies critiques non différenciantes (commodité critique) - if (m.ring === 'core' && m.differentiation === 'low') { + // Technologies critiques non différenciantes (commodité critique) - anciennement "core" + if (m.ring === 'adopt' && m.differentiation === 'low') { patterns.criticalNonDifferentiating.push({ name: m.title, quadrant: m.quadrant, @@ -202,8 +202,8 @@ function identifyPatterns(blips, metrics) { }); } - // Gaps de compétences critiques - if (m.skillGap === 'high' && (m.ring === 'core' || m.businessImpact === 'high')) { + // Gaps de compétences critiques - anciennement "core", maintenant "adopt" + if (m.skillGap === 'high' && (m.ring === 'adopt' || m.businessImpact === 'high')) { patterns.skillGaps.push({ name: m.title, ring: m.ring, diff --git a/scripts/generate-team-visualization-data.js b/scripts/generate-team-visualization-data.js index 0f5c4b7..23d2076 100755 --- a/scripts/generate-team-visualization-data.js +++ b/scripts/generate-team-visualization-data.js @@ -212,8 +212,8 @@ function generateNetworkData(technologies, members) { // Générer la matrice de congestion function generateCongestionMatrix(technologies, members) { - // Filtrer technologies core uniquement - const coreTechs = technologies.filter(t => t.ring === 'core').sort((a, b) => { + // Filtrer technologies adopt uniquement (anciennement "core") + const coreTechs = technologies.filter(t => t.ring === 'adopt').sort((a, b) => { // Trier par businessImpact puis par coverage const impactOrder = { 'high': 3, 'medium': 2, 'low': 1 }; const impactDiff = (impactOrder[b.businessImpact] || 0) - (impactOrder[a.businessImpact] || 0); @@ -261,7 +261,8 @@ function generateCongestionMatrix(technologies, members) { // Générer l'équipe de genèse MVP function generateGenesisTeam(technologies, members) { - const coreTechs = technologies.filter(t => t.ring === 'core'); + // Technologies adopt (anciennement "core") - technologies fondamentales en production + const coreTechs = technologies.filter(t => t.ring === 'adopt'); const availableMembers = members.filter(m => m.availability >= 50); const genesisTeam = [];